# Endpoint index

> Find the guide, authentication, protocol and recovery instructions for each customer data-plane operation.

This inventory counts each method and canonical path once. Each `/api/v1` path has a `/v1` alias. [Download the OpenAPI reference](https://aihub.belive.sg/docs/openapi/data-plane.yaml) for request fields, bounds, required inputs, response content types and security requirements. The [Markdown export](https://aihub.belive.sg/docs/markdown/endpoints) contains the same inventory.

## Availability and model limits

A documented operation depends on your key's permissions and on the model and provider route that serves it. Read the [model catalogue](https://aihub.belive.sg/docs/models), use the endpoint route its entry declares, and read the provider list on the model card.

Per-provider parameter values, defaults, output-token bounds and media constraints are in the endpoint schema and the family guide. For a limit that is not listed there, contact [support](https://aihub.belive.sg/support) with the model, provider and request identifier.

## Operation index

All entries link to [safe recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely). Read-only polling can use bounded backoff. Submission, cancellation, upload and deletion each have their own retry rules, described on their guides. Realtime uses a WebSocket handshake and protocol events.

| Operation | Guide / protocol | Authentication | Availability and recovery |
| --- | --- | --- | --- |
| `GET /api/v1/realtime` | [audio-inputs](https://aihub.belive.sg/docs/audio-inputs) WebSocket | Workspace inference key; see operation security | Needs an enabled realtime model; an unavailable model answers 404. Server-to-server upgrade only. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Handle WebSocket error and close events. After a lost connection open a new session; audio is not replayed. |
| `GET /api/v1/generation` | [billing](https://aihub.belive.sg/docs/billing) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs inference access and a model whose route matches. Key restrictions and provider capacity apply. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `POST /api/v1/chat/jobs` | [chat](https://aihub.belive.sg/docs/chat) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `GET /api/v1/chat/jobs` | [chat](https://aihub.belive.sg/docs/chat) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/chat/jobs/{chat_job_id}` | [chat](https://aihub.belive.sg/docs/chat) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `POST /api/v1/chat/jobs/{chat_job_id}/cancel` | [chat](https://aihub.belive.sg/docs/chat) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Cancellation depends on job state. On not_cancellable or an uncertain answer, read the existing job; cancelling does not reverse completed work. |
| `POST /api/v1/audio/generations` | [audio-api](https://aihub.belive.sg/docs/audio-api) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled audio model. Status and content use your key or a signed delivery URL. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `GET /api/v1/audio/generations/{job_id}` | [audio-api](https://aihub.belive.sg/docs/audio-api) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled audio model. Status and content use your key or a signed delivery URL. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/audio/generations/{job_id}/content` | [audio-api](https://aihub.belive.sg/docs/audio-api) HTTP bytes | Workspace inference key; see operation security | Needs an enabled audio model. Status and content use your key or a signed delivery URL. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Read job status first. content_not_ready: wait. content_expired: the output is gone. Retry the download alone for transient failures; do not resubmit generation. |
| `GET /api/v1/videos` | [video](https://aihub.belive.sg/docs/video) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `POST /api/v1/videos` | [video](https://aihub.belive.sg/docs/video) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `GET /api/v1/videos/{job_id}` | [video](https://aihub.belive.sg/docs/video) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/videos/{job_id}/content` | [video](https://aihub.belive.sg/docs/video) HTTP bytes | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Read job status first. content_not_ready: wait. content_expired: the output is gone. Retry the download alone for transient failures; do not resubmit generation. |
| `POST /api/v1/videos/{job_id}/cancel` | [video](https://aihub.belive.sg/docs/video) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Cancellation depends on job state. On not_cancellable or an uncertain answer, read the existing job; cancelling does not reverse completed work. |
| `GET /api/v1/videos/models` | [models](https://aihub.belive.sg/docs/models) HTTP JSON (see response content types) | Public; no inference key | Public. Lists each model with its providers and routes. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `POST /api/v1/videos/characters` | [video](https://aihub.belive.sg/docs/video) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Save the created character ID and poll that character to ready/failed. Fix consent or input refusals before another creation; reconcile uncertain creation first. |
| `GET /api/v1/videos/characters` | [video](https://aihub.belive.sg/docs/video) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/videos/characters/{character_id}` | [video](https://aihub.belive.sg/docs/video) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `DELETE /api/v1/videos/characters/{character_id}` | [video](https://aihub.belive.sg/docs/video) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Deletion changes state. After an uncertain answer, read the character before creating another. |
| `POST /api/v1/3d/generations` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `GET /api/v1/3d/generations/{job_id}` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/3d/generations/{job_id}/content` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP bytes | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Read job status first. content_not_ready: wait. content_expired: the output is gone. Retry the download alone for transient failures; do not resubmit generation. |
| `GET /api/v1/3d/generations/models` | [models](https://aihub.belive.sg/docs/models) HTTP JSON (see response content types) | Public; no inference key | Public. Lists each model with its providers and routes. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `POST /api/v1/files` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Inference authentication. Slot creation returns a signed upload URL for the bytes. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Reserve a slot, then PUT bytes using the returned opaque upload_url and required headers. Keep the URL secret. Use the file after the upload succeeds. |
| `POST /api/v1/audio/transcriptions` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced speech endpoint; one that is not available answers 503. Another workspace's status is 404. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `GET /api/v1/audio/transcriptions/{job_id}` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced speech endpoint; one that is not available answers 503. Another workspace's status is 404. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `POST /api/v1/audio/language` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced speech endpoint; one that is not available answers 503. Another workspace's status is 404. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `GET /api/v1/audio/language/{job_id}` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced speech endpoint; one that is not available answers 503. Another workspace's status is 404. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `POST /api/v1/audio/moderate` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced speech endpoint; one that is not available answers 503. Another workspace's status is 404. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `GET /api/v1/audio/moderate/{job_id}` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced speech endpoint; one that is not available answers 503. Another workspace's status is 404. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `POST /api/v1/audio/speakers` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced speech endpoint; one that is not available answers 503. Another workspace's status is 404. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `GET /api/v1/audio/speakers/{job_id}` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced speech endpoint; one that is not available answers 503. Another workspace's status is 404. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `POST /api/v1/video/transcode` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/watermark` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/subtitles` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/thumbnail` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/moderate` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/documents/extract` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/documents/convert` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/media/enhance` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/highlights` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/scenes` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/reframe` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/avatar` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/lipsync` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/erase` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/interpolate` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/face-blur` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/assemble` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/summarise` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/product-motion` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/audio/music-bed` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/music-id` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/clips` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/translate` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/captions` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/dub` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/quality` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/video/presenters` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `GET /api/v1/video/presenters/{presenter_id}` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `POST /api/v1/video/presenters/{presenter_id}/videos` | [video](https://aihub.belive.sg/docs/video) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an eligible ready model. Job reads are scoped to the submitting workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `GET /api/v1/video/jobs/{job_id}` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/video/jobs/{job_id}/content` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP bytes | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Read job status first. content_not_ready: wait. content_expired: the output is gone. Retry the download alone for transient failures; do not resubmit generation. |
| `GET /api/v1/jobs/{job_id}` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/jobs/{job_id}/content` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP bytes | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Read job status first. content_not_ready: wait. content_expired: the output is gone. Retry the download alone for transient failures; do not resubmit generation. |
| `POST /api/v1/translate` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/text/sentiment` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/text/keywords` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/text/entities` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/text/moderate` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/text/intent` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/text/summarise` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/commerce/listing` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/commerce/reviews` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/ocr` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/ocr/receipt` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/tables` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/commerce/attributes` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/commerce/tryon` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/commerce/pricetag` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/barcode` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/tags` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/moderate` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/logos` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/quality` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/crop` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs the capability's enabled, priced endpoint and an input that matches its schema. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/background` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/upscale` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/background-replace` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/erase` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/vision/outpaint` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/audio/denoise` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/audio/separate` | [capabilities](https://aihub.belive.sg/docs/capabilities) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs an enabled, priced capability; one that is not available answers 503. Job status reads are scoped to your workspace. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `POST /api/v1/audio/speech` | [audio-api](https://aihub.belive.sg/docs/audio-api) HTTP JSON (see response content types) | Workspace inference key; see operation security | Named synthesis models use their own ready endpoint and voice; capability synthesis uses its priced endpoint. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Fix validation and model refusals. After a synchronous timeout or 5xx, keep the request identifier and read Activity before repeating work. |
| `POST /api/v1/audio/speech/jobs` | [audio-api](https://aihub.belive.sg/docs/audio-api) HTTP JSON (see response content types) | Workspace inference key; see operation security | Named synthesis models use their own ready endpoint and voice; capability synthesis uses its priced endpoint. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Keep the accepted job ID and the original Idempotency-Key/body where this operation supports replay. Read the job through its status route before another submit; a 202 means the job was accepted. |
| `GET /api/v1/audio/speech/jobs/{job_id}` | [audio-api](https://aihub.belive.sg/docs/audio-api) HTTP JSON (see response content types) | Workspace inference key; see operation security | Named synthesis models use their own ready endpoint and voice; capability synthesis uses its priced endpoint. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/audio/speech/jobs/{job_id}/content` | [audio-api](https://aihub.belive.sg/docs/audio-api) HTTP bytes | Workspace inference key; see operation security | Named synthesis models use their own ready endpoint and voice; capability synthesis uses its priced endpoint. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Read job status first. content_not_ready: wait. content_expired: the output is gone. Retry the download alone for transient failures; do not resubmit generation. |
| `POST /api/v1/media/offers` | [routing](https://aihub.belive.sg/docs/routing) HTTP JSON (see response content types) | Workspace inference key; see operation security | Bearer inference key. Returns the permitted installed prices for a matching request; creates no generation or reservation. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Read-only same-settings provider estimates and advisory capacity. No generation or reservation is created. A new paid submit requires explicit confirmation, one provider.only and the current tokenhub_quote; quote_changed requires a fresh estimate and confirmation. |
| `POST /api/v1/images/generations` | [images](https://aihub.belive.sg/docs/images) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs inference access and a model whose route matches. Key restrictions and provider capacity apply. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Fix validation and model refusals. After a synchronous timeout or 5xx, keep the request identifier and read Activity before repeating work. |
| `POST /api/v1/images` | [images](https://aihub.belive.sg/docs/images) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs inference access and a model whose route matches. Key restrictions and provider capacity apply. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Fix validation and model refusals. After a synchronous timeout or 5xx, keep the request identifier and read Activity before repeating work. |
| `GET /api/v1/images/models` | [models](https://aihub.belive.sg/docs/models) HTTP JSON (see response content types) | Public; no inference key | Public. Lists each model with its providers and routes. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/images/content/{image_id}` | [images](https://aihub.belive.sg/docs/images) HTTP bytes | Signed link; treat query credentials as secret | Needs inference access and a model whose route matches. Key restrictions and provider capacity apply. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Use the returned signed link before it expires. After expiry, submit a new request for the image. |
| `POST /api/v1/chat/completions` | [chat](https://aihub.belive.sg/docs/chat) Chat JSON / SSE | Workspace inference key; see operation security | Needs inference access and a model whose route matches. Key restrictions and provider capacity apply. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Use this protocol's error envelope and terminal events. After a timeout or truncated stream, keep the request identifier and read Activity before generating again. |
| `POST /api/v1/responses` | [responses](https://aihub.belive.sg/docs/responses) Responses JSON / SSE | Workspace inference key; see operation security | Needs inference access and a model whose route matches. Key restrictions and provider capacity apply. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Use this protocol's error envelope and terminal events. After a timeout or truncated stream, keep the request identifier and read Activity before generating again. |
| `POST /api/v1/messages` | [messages](https://aihub.belive.sg/docs/messages) Messages JSON / SSE | Workspace inference key; see operation security | Needs inference access and a model whose route matches. Key restrictions and provider capacity apply. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Use this protocol's error envelope and terminal events. After a timeout or truncated stream, keep the request identifier and read Activity before generating again. |
| `POST /api/v1/rerank` | [reranking](https://aihub.belive.sg/docs/reranking) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs inference access and a model whose route matches. Key restrictions and provider capacity apply. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Fix validation and model refusals. After a synchronous timeout or 5xx, keep the request identifier and read Activity before repeating work. |
| `POST /api/v1/embeddings` | [embeddings](https://aihub.belive.sg/docs/embeddings) HTTP JSON (see response content types) | Workspace inference key; see operation security | Needs inference access and a model whose route matches. Key restrictions and provider capacity apply. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): Fix validation and model refusals. After a synchronous timeout or 5xx, keep the request identifier and read Activity before repeating work. |
| `GET /api/v1/models` | [models](https://aihub.belive.sg/docs/models) HTTP JSON (see response content types) | Public; no inference key | Public. Lists each model with its providers and routes. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/models/rankings` | [models](https://aihub.belive.sg/docs/models) HTTP JSON (see response content types) | Public; no inference key | Public. Lists each model with its providers and routes. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/models/{author}/{slug}` Also `/api/v1/model/{author}/{slug}, /v1/model/{author}/{slug}` | [models](https://aihub.belive.sg/docs/models) HTTP JSON (see response content types) | Public; no inference key | Public. Lists each model with its providers and routes. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |
| `GET /api/v1/public/catalogue` | [models](https://aihub.belive.sg/docs/models) HTTP JSON (see response content types) | Public; no inference key | Anonymous display catalogue; no key. The prices that apply to requests are on GET /v1/models. [Recovery](https://aihub.belive.sg/docs/errors#errors-retrying-safely): A read does not submit generation. Retry transient 429/5xx with bounded backoff and conditional Retry-After. Check the same workspace and identifier on 404. |

## Management and account operations

These customer controls belong to a separate API plane. Management keys have scoped access; account and sensitive settings can require a person's session and role. They do not accept an inference key. The [Management guide](https://aihub.belive.sg/docs/management) describes that boundary. The inference OpenAPI covers the data plane.

**Management/account operation inventory (119 operations)**

| Operation | Contract security alternatives | Coverage |
| --- | --- | --- |
| `POST /mgmt/v1/auth/signup` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/auth/login` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/auth/mfa/verify` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/security/mfa` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/security/mfa/enrol/begin` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/security/mfa/enrol/finish` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/security/mfa/backup-codes` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/security/mfa/disable` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/auth/logout` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/auth/methods` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/auth/verify-email` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/auth/resend-verification` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/auth/password-reset` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/auth/password-reset/confirm` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/auth/password-change` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/auth/google/start` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/auth/google/callback` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/auth/github/start` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/auth/github/callback` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/catalogue-rollout` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/ui-flags` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/me` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `PATCH /mgmt/v1/me` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/me/active-organization` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/me/delete` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/members` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `PATCH /mgmt/v1/members/{user_id}` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `DELETE /mgmt/v1/members/{user_id}` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/members/invitations` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/members/invitations` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/members/invitations/{invitation_id}/revoke` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/members/invitations/preview` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/members/invitations/accept` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/members/me/leave` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `PATCH /mgmt/v1/workspaces/{workspace_id}` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/keys` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces/{workspace_id}/keys` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `PATCH /mgmt/v1/workspaces/{workspace_id}/keys/{key_id}` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces/{workspace_id}/keys/{key_id}/revoke` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces/{workspace_id}/keys/{key_id}/rotate` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/presets` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces/{workspace_id}/presets` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/presets/{preset_id}` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `PATCH /mgmt/v1/workspaces/{workspace_id}/presets/{preset_id}` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces/{workspace_id}/presets/{preset_id}/archive` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/model-pins` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `PUT /mgmt/v1/workspaces/{workspace_id}/model-pins` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/usage` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/activity` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/activity/{request_id}/outputs` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/byok/providers` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/byok` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `PUT /mgmt/v1/workspaces/{workspace_id}/byok/{provider_id}` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `PATCH /mgmt/v1/workspaces/{workspace_id}/byok/{provider_id}` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces/{workspace_id}/byok/{provider_id}/verify` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces/{workspace_id}/byok/{provider_id}/revoke` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/webhook` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `PUT /mgmt/v1/workspaces/{workspace_id}/webhook` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `DELETE /mgmt/v1/workspaces/{workspace_id}/webhook` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces/{workspace_id}/webhook/secret` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces/{workspace_id}/webhook/test` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/webhook/deliveries` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/models` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/capabilities` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/capabilities/notify` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/capabilities/search` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/apps` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `PATCH /mgmt/v1/workspaces/{workspace_id}/apps/{app_id}` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces/{workspace_id}/apps/{app_id}/files` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/apps/{app_id}/runs` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/workspaces/{workspace_id}/apps/{app_id}/runs` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/apps/{app_id}/runs/{job_id}` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/apps/{app_id}/runs/{job_id}/content` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/apps/{app_id}/runs/{job_id}/edits` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `PUT /mgmt/v1/workspaces/{workspace_id}/apps/{app_id}/runs/{job_id}/edits` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `DELETE /mgmt/v1/workspaces/{workspace_id}/apps/{app_id}/runs/{job_id}/edits` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/apps/{app_id}/immediate-runs` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/workspaces/{workspace_id}/apps/{app_id}/immediate-runs/{request_id}` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/management-keys` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/management-keys` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/management-keys/self` | managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/management-keys/self/revoke` | managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/management-keys/{management_key_id}` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/management-keys/{management_key_id}/rotate` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `POST /mgmt/v1/management-keys/{management_key_id}/revoke` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/usage` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/activity` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/audit` | sessionCookie or managementKey | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/status/incidents` | Operation-specific public/session flow; see Management guide | [Guide](https://aihub.belive.sg/docs/management) |
| `GET /mgmt/v1/incidents/active` | sessionCookie | [Guide](https://aihub.belive.sg/docs/management) |

Billing and referral controls are signed-in console flows.

## Coverage and separate surfaces

The inventory and reference are generated from the installed published contracts package (14.12.0). Source registration was reviewed on 2026-10-22; this is schema and source coverage, not a claim that every operation or provider has been executed.

- `PUT returned upload_url`: Opaque signed upload transport; follow the returned URL and headers. Not a standalone OpenAPI operation.
- `/admin/v1, /internal, health and metrics`: Staff, internal and operational surfaces are outside the customer data plane.
- `/mgmt/v1 and account authentication`: Separate management-key/session control plane: see Management API and Workspaces guides. Not part of the inference OpenAPI download.

See [Management API](https://aihub.belive.sg/docs/management) and [Workspaces & governance](https://aihub.belive.sg/docs/workspaces) for account and organization controls. They use management-key or session authentication according to the operation and have a separate schema scope.
