---
title: "Get status for a generation run"
method: GET
path: "/v1/models/{modelId}/suggestions/runs/{runId}"
tags: ["AI Model Suggestions"]
---

# Get status for a generation run

`GET /v1/models/{modelId}/suggestions/runs/{runId}`

<Note>
  **Organization Admin** permissions are required to use this endpoint.
</Note>

Retrieve the status of a specific generation run. Poll until `status` is terminal (`complete` or `failed`), then re-fetch the suggestions list.

## Path parameters

- `modelId` string, uuid, required — UUID of the shared model the run belongs to
- `runId` string, uuid, required — UUID of the generation run

## Response `200`

The generation run

- SuggestionRun — Represents a single AI model suggestion generation run.
  - `id` string, uuid, required — The run ID.
  - `status` 'queued' | 'executing' | 'complete' | 'failed', required — Run status. Terminal states are `complete` and `failed`.
  - `triggerSource` 'manual' | 'scheduled', required — Whether the run was triggered manually or by the schedule.
  - `triggeredBy` object, nullable, required — The user who triggered a manual run; `null` for scheduled runs.
    - `userId` string, uuid, required — The user's ID.
    - `name` string, nullable, required — The user's name.
  - `createdAt` string, date-time, required — ISO 8601 timestamp when the run was created (queued).
  - `executionStartedAt` string, date-time, nullable, required — ISO 8601 timestamp when the worker started executing; `null` while queued.
  - `completedAt` string, date-time, nullable, required — ISO 8601 timestamp when the run reached a terminal state.
  - `error` object, nullable, required — Failure details when `status` is `failed`; `null` otherwise.

## Other responses

- `400` — Malformed `modelId` or `runId`
- `401` — Authentication required
- `403` — Feature not enabled, AI disabled, model is not a shared model, or caller lacks Organization Admin permissions
- `404` — Run not found, does not belong to this model, or does not belong to this organization
- `405` — Method not allowed
- `429` — Too Many Requests - Rate limit exceeded (60 requests/minute)
- `500` — Internal Server Error

---

[API](https://skmtc.net/omni/apis/omni-api.md) · [All operations](https://skmtc.net/omni/apis/omni-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/omni/omni-api/revisions/6b02f7349d0e/schema)
