API Operations Reference: Endpoints and Scopes
FoxCue API endpoints for brands, brand kits, sources, scripts, outputs, jobs, recordings, media, editing runs and compositions, with their required scopes.
This page lists the core FoxCue API operations and the scope each one needs. The full, authoritative list, with request schemas, is in your server's OpenAPI schema at GET /api/v1/openapi.json. Knowledge, strategy and performance operations are documented there.
Lists accept limit (1–100, default 50) and offset. Script edits need expected_updated_at, and brand kit approval needs expected_revision.
Brands and brand kits
| Method & path | Scope | Description |
|---|---|---|
GET/POST /projects, GET/PATCH/DELETE /projects/{id} | brands:read / brands:write | Brands (products) |
GET/POST /offerings, /ctas, /styles (and /{id}) | brands:read / brands:write | Offerings, calls to action, writing styles |
GET /projects/{id}/brand-kit | brands:read | Read the saved brand kit, revision and provenance |
PATCH /projects/{id}/brand-kit | brands:write | Approve the brand kit, with a revision check |
POST /projects/{id}/brand-kit/import-website | brands:write | Import an editable website candidate (doesn't approve it) |
POST /projects/{id}/brand-kit/import-image | brands:write | Import a raster image candidate (doesn't approve it) |
POST /projects/{id}/brand-kit/import-logo | brands:write | Copy a public raster logo into your workspace |
Sources
| Method & path | Scope | Description |
|---|---|---|
/collections, /knowledge (CRUD) | sources:read / sources:write | Collections and knowledge documents |
Scripts
| Method & path | Scope | Description |
|---|---|---|
/scripts (CRUD) | scripts:read / scripts:write | Scripts. Body up to 200,000 characters. |
GET /script-versions, GET /script-versions/{id} | scripts:read | Version snapshots |
POST /script-versions | scripts:write | Save a manual snapshot |
Jobs
| Method & path | Scope | Description |
|---|---|---|
POST /jobs | generation:write | Queue script.generate, script.generate_long, article.generate, slides.generate or video.render |
GET /jobs, GET /jobs/{id} | jobs:read | List and poll jobs |
POST /jobs/{id}/cancel | jobs:write | Cancel queued work, or request cooperative cancellation |
See Jobs and idempotency.
Outputs
| Method & path | Scope | Description |
|---|---|---|
GET /artifacts | outputs:read | List saved outputs. Filter with script_id, composition_id, kind. |
GET /artifacts/{id} | outputs:read | Read output metadata and content |
Recordings and media
| Method & path | Scope | Description |
|---|---|---|
GET /recordings, GET /recordings/{id} | media:read | Recording sessions |
POST /recordings | media:write | Create a recording session |
POST /recordings/{id}/sources/upload | media:write | Upload a track. Use an upload_id UUID for retries. |
GET /media?key= | media:read | Download owned media |
GET /director/media, POST /director/media | media:read / media:write | List or upload reusable screenshots and recordings (API uploads up to 64 MiB) |
GET /director/blocks | media:read | Reusable animation blocks and their parameters |
Editing runs and compositions
| Method & path | Scope | Description |
|---|---|---|
GET /editing/styles | media:read | Editing styles |
POST /editing/styles/{ref}/copies | media:write | Save a customized copy of an editing style |
POST /editing/runs | generation:write + media:write | Edit a recording with its original voice, timed captions, Library cutaways and motion blocks |
GET /editing/runs, GET /editing/runs/{id} | jobs:read | Editing runs and their progress, decisions and checked output |
POST /editing/runs/{id}/cancel, /retry, /rebuild | generation:write | Cancel, resume or rebuild an edit |
POST /director/from-recording | media:write | Open a recording as an editable composition (no AI) |
GET /compositions/{id} | outputs:read | Read a composition and its timeline |
POST /compositions/{id}/ops | media:write | Apply reversible edits against a base revision |
POST /compositions/{id}/render | generation:write | Render a composition to a saved video |
GET /compositions/render-jobs/{jobId} | jobs:read | Poll a composition render |