## Get an action

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

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

### Path Parameters

- `actionId: "color-grade-image-browser" or "overlay-image-browser" or "draw-image-browser" or 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

- `action_id: "color-grade-image-browser" or "overlay-image-browser" or "draw-image-browser" or 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 of object { name, type, dynamic, 2 more }`

  Action input slots

  - `name: string`

    Action input or output name

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

    Action input or output media type

    - `"image"`

    - `"video"`

    - `"text"`

    - `"audio"`

  - `dynamic: optional boolean`

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

  - `multiple: optional true or object { max, min }`

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

    - `true`

      - `true`

    - `object { max, min }`

      - `max: optional number`

      - `min: optional number`

  - `optional: 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" or "python"`

  Action runtime language

  - `"javascript"`

  - `"python"`

- `name: string`

  Action name

- `outputs: array of object { name, type, dynamic, 2 more }`

  Action output slots

  - `name: string`

    Action input or output name

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

    Action input or output media type

    - `"image"`

    - `"video"`

    - `"text"`

    - `"audio"`

  - `dynamic: optional boolean`

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

  - `multiple: optional true or object { max, min }`

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

    - `true`

      - `true`

    - `object { max, min }`

      - `max: optional number`

      - `min: optional number`

  - `optional: 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 of object { key, type, available_values, 6 more }`

  Action parameters

  - `key: string`

    Action parameter key

  - `type: string`

    Action parameter control type

  - `available_values: optional array of object { label, value, description }`

    Allowed parameter values

    - `label: string`

    - `value: string`

    - `description: optional string`

  - `default_value: optional unknown`

    Default parameter value

  - `info_tooltip: optional string`

    Action parameter description

  - `label: optional string`

    Action parameter label

  - `max_number_value: optional number`

  - `min_number_value: optional number`

  - `number_step: optional number`

### Example

```http
curl https://app.flora.ai/api/v1/actions/$ACTION_ID \
    -H "Authorization: Bearer $FLORA_API_KEY"
```

#### 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
    }
  ]
}
```
