## List actions

**get** `/actions`

Returns released prebuilt Flora actions that can be executed by the public API. Action identifiers are raw slugs such as rotate-image, not action-prefixed IDs.

### Returns

- `actions: array of object { action_id, charged_cost, description, 5 more }`

  - `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 \
    -H "Authorization: Bearer $FLORA_API_KEY"
```

#### Response

```json
{
  "actions": [
    {
      "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
        }
      ]
    }
  ]
}
```
