## Get an action

`client.actions.retrieve("color-grade-image-browser" | "overlay-image-browser" | "draw-image-browser" | 37 moreactionID, RequestOptionsoptions?): ActionRetrieveResponse`

**get** `/actions/{actionId}`

Returns metadata for one released prebuilt Flora action. Action identifiers are raw slugs such as rotate-image, not action-prefixed IDs.

### Parameters

- `actionID: "color-grade-image-browser" | "overlay-image-browser" | "draw-image-browser" | 37 more`

  Action identifier

  - `"color-grade-image-browser"`

  - `"overlay-image-browser"`

  - `"draw-image-browser"`

  - `"crop-image-browser"`

  - `"scene-3d-image-browser"`

  - `"blur-image-browser"`

  - `"change-image-ar-browser"`

  - `"rotate-image-browser"`

  - `"color-filter-image-browser"`

  - `"color-tint-image-browser"`

  - `"filter-color-image-browser"`

  - `"duplicate-image-browser"`

  - `"side-by-side-composite-browser"`

  - `"add-shape-to-image-browser"`

  - `"add-text-to-image-browser"`

  - `"qr-code-generator-browser"`

  - `"resize-image-browser"`

  - `"shader-effect-browser"`

  - `"split-text-browser"`

  - `"find-and-replace-text-browser"`

  - `"concat-text-browser"`

  - `"ken-burns-video"`

  - `"stitch-videos"`

  - `"split-video"`

  - `"extract-video-frames"`

  - `"color-grade-video"`

  - `"video-to-frame-grid"`

  - `"boomerang-video"`

  - `"reverse-video"`

  - `"video-to-long-exposure"`

  - `"video-effect"`

  - `"color-filter-video"`

  - `"speed-up-video"`

  - `"slow-down-video"`

  - `"duplicate-video"`

  - `"greenscreen-video"`

  - `"resize-video"`

  - `"change-video-ar"`

  - `"split-audio-from-video"`

  - `"merge-audio-into-video"`

### Returns

- `ActionRetrieveResponse`

  - `action_id: "color-grade-image-browser" | "overlay-image-browser" | "draw-image-browser" | 37 more`

    Action identifier

    - `"color-grade-image-browser"`

    - `"overlay-image-browser"`

    - `"draw-image-browser"`

    - `"crop-image-browser"`

    - `"scene-3d-image-browser"`

    - `"blur-image-browser"`

    - `"change-image-ar-browser"`

    - `"rotate-image-browser"`

    - `"color-filter-image-browser"`

    - `"color-tint-image-browser"`

    - `"filter-color-image-browser"`

    - `"duplicate-image-browser"`

    - `"side-by-side-composite-browser"`

    - `"add-shape-to-image-browser"`

    - `"add-text-to-image-browser"`

    - `"qr-code-generator-browser"`

    - `"resize-image-browser"`

    - `"shader-effect-browser"`

    - `"split-text-browser"`

    - `"find-and-replace-text-browser"`

    - `"concat-text-browser"`

    - `"ken-burns-video"`

    - `"stitch-videos"`

    - `"split-video"`

    - `"extract-video-frames"`

    - `"color-grade-video"`

    - `"video-to-frame-grid"`

    - `"boomerang-video"`

    - `"reverse-video"`

    - `"video-to-long-exposure"`

    - `"video-effect"`

    - `"color-filter-video"`

    - `"speed-up-video"`

    - `"slow-down-video"`

    - `"duplicate-video"`

    - `"greenscreen-video"`

    - `"resize-video"`

    - `"change-video-ar"`

    - `"split-audio-from-video"`

    - `"merge-audio-into-video"`

  - `charged_cost: number`

    Cost per execution in USD

  - `description: string`

    Action description

  - `inputs: Array<Input>`

    Action input slots

    - `name: string`

      Action input or output name

    - `type: "image" | "video" | "text" | "audio"`

      Action input or output media type

      - `"image"`

      - `"video"`

      - `"text"`

      - `"audio"`

    - `dynamic?: boolean`

      Deprecated alias for `multiple: true`. Mirrors `multiple` for back-compat.

    - `multiple?: true | UnionMember1`

      Many-connections form. `true` is unbounded shorthand; the object form sets explicit min/max bounds.

      - `true`

        - `true`

      - `UnionMember1`

        - `max?: number`

        - `min?: number`

    - `optional?: boolean`

      Whether the slot allows zero connections in single-input mode. Ignored when `multiple` is the object form (use `min: 0` there instead).

  - `language: "javascript" | "python"`

    Action runtime language

    - `"javascript"`

    - `"python"`

  - `name: string`

    Action name

  - `outputs: Array<Output>`

    Action output slots

    - `name: string`

      Action input or output name

    - `type: "image" | "video" | "text" | "audio"`

      Action input or output media type

      - `"image"`

      - `"video"`

      - `"text"`

      - `"audio"`

    - `dynamic?: boolean`

      Deprecated alias for `multiple: true`. Mirrors `multiple` for back-compat.

    - `multiple?: true | UnionMember1`

      Many-connections form. `true` is unbounded shorthand; the object form sets explicit min/max bounds.

      - `true`

        - `true`

      - `UnionMember1`

        - `max?: number`

        - `min?: number`

    - `optional?: boolean`

      Whether the slot allows zero connections in single-input mode. Ignored when `multiple` is the object form (use `min: 0` there instead).

  - `params: Array<Param>`

    Action parameters

    - `key: string`

      Action parameter key

    - `type: string`

      Action parameter control type

    - `available_values?: Array<AvailableValue>`

      Allowed parameter values

      - `label: string`

      - `value: string`

      - `description?: string`

    - `default_value?: unknown`

      Default parameter value

    - `info_tooltip?: string`

      Action parameter description

    - `label?: string`

      Action parameter label

    - `max_number_value?: number`

    - `min_number_value?: number`

    - `number_step?: number`

### Example

```typescript
import FLORA from '@flora-ai/flora';

const client = new FLORA({
  apiKey: process.env['FLORA_API_KEY'], // This is the default and can be omitted
});

const action = await client.actions.retrieve('color-grade-image-browser');

console.log(action.action_id);
```

#### Response

```json
{
  "action_id": "color-grade-image-browser",
  "charged_cost": 0,
  "description": "Rotate an image by a fixed angle.",
  "inputs": [
    {
      "name": "image",
      "type": "image",
      "dynamic": true,
      "multiple": true,
      "optional": true
    }
  ],
  "language": "javascript",
  "name": "Rotate Image",
  "outputs": [
    {
      "name": "image",
      "type": "image",
      "dynamic": true,
      "multiple": true,
      "optional": true
    }
  ],
  "params": [
    {
      "key": "angle",
      "type": "select",
      "available_values": [
        {
          "label": "label",
          "value": "value",
          "description": "description"
        }
      ],
      "default_value": {},
      "info_tooltip": "Rotation angle in degrees.",
      "label": "Angle",
      "max_number_value": 0,
      "min_number_value": 0,
      "number_step": 0
    }
  ]
}
```
