---
title: "List async video jobs"
method: GET
path: "/api/v1/workspaces/{workspace_id}/ai/jobs"
tags: ["🎬 AI Videos"]
---

# List async video jobs

`GET /api/v1/workspaces/{workspace_id}/ai/jobs`

Video jobs the public API itself submitted for this workspace — never jobs originated by chat or internal tools, even though they share the same underlying record. Local snapshot only, no live upstream poll per row — a row's status can lag a few seconds behind reality. To force a fresh check on one specific job, call GET .../ai/jobs/{job_id} instead.

## Path parameters

- `workspace_id` string, required

## Query parameters

- `status` 'queued' | 'processing' | 'completed' | 'failed' | 'cancelled'
- `page` integer
- `per_page` integer

## Response `200`

Jobs retrieved

- object
  - `status` boolean
  - `message` string
  - `data` object[]
  - `pagination` object
    - `current_page` integer
    - `per_page` integer
    - `total` integer
    - `last_page` integer

## Other responses

- `401` — Unauthorized - API key missing or invalid
- `403` — No access to this workspace
- `422` — Validation error (`VALIDATION_ERROR`)
- `429` — Too many requests

---

[API](https://skmtc.dev/contentstudio/apis/contentstudio-api-v1.md) · [All operations](https://skmtc.dev/contentstudio/apis/contentstudio-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/contentstudio/contentstudio-api-v1/revisions/ec0c85521883/schema)
