## Get a run

**get** `/runs/{runId}`

Returns status and completed output URLs for a public API run, including action runs started through POST /runs/action.

### Path Parameters

- `runId: string`

  Run identifier

### Returns

- `created_at: number`

- `progress: number`

- `run_id: string`

  Run identifier

- `status: "pending" or "running" or "completed" or "failed"`

  - `"pending"`

  - `"running"`

  - `"completed"`

  - `"failed"`

- `charged_cost: optional number`

  Cost charged in USD

- `completed_at: optional number`

- `error_code: optional string`

  Machine-readable run error code

- `error_message: optional string`

  Human-readable run error message

- `outputs: optional array of object { output_id, type, url }`

  - `output_id: string`

    Run output identifier

  - `type: "imageUrl" or "videoUrl" or "audioUrl" or 2 more`

    Run output media type

    - `"imageUrl"`

    - `"videoUrl"`

    - `"audioUrl"`

    - `"text"`

    - `"documentUrl"`

  - `url: string`

    Run output URL or text content

- `poll_url: optional string`

  URL to poll pending/running runs or fetch completed/failed run details.

- `started_at: optional number`

### Example

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

#### Response

```json
{
  "created_at": 0,
  "progress": 0,
  "run_id": "run_abc123",
  "status": "pending",
  "charged_cost": 0,
  "completed_at": 0,
  "error_code": "provider_error",
  "error_message": "The provider failed to complete the generation.",
  "outputs": [
    {
      "output_id": "output_1",
      "type": "imageUrl",
      "url": "https://media.flora.ai/output.png"
    }
  ],
  "poll_url": "https://example.com",
  "started_at": 0
}
```
