AsyncAPI 2.6 description of the asynchronous surfaces of the Novita AI platform: 1. **Server-Sent Events (SSE) streaming** for OpenAI-compatible chat completions (`POST /openai/v1/chat/completions` with `stream: true`). Modeled as a publish-from-server channel that emits incremental chat completion chunk events terminated by the `[DONE]` sentinel. 2. **Outbound webhook callbacks** for the asynchronous image, video, image editing, and upscale tasks created against the `/v3/async/*` and `/v3beta/*` task endpoints. When a request includes `extra.webhook.url`, Novita AI delivers the completed task result to the caller-hosted endpoint with the same payload shape returned by the `GET /v3/async/task-result` polling endpoint. Scope is deliberately limited to event-driven surfaces. Synchronous REST operations (LLM non-streaming chat, embeddings, reranking, batch, GPU instance management, Seedream 4.0 synchronous image generation, etc.) are described separately in the OpenAPI document referenced from `apis.yml`.
View SpecView on GitHubAILLMInferenceGPUOpenAI CompatibleImage GenerationVideo GenerationAudioEmbeddingsSandboxMCPAsyncAPIWebhooksEvents
Channels
/openai/v1/chat/completions
subscribesubscribeChatCompletionStream
Receive incremental chat completion chunks over SSE.
Server-Sent Events stream for OpenAI-compatible chat completions. Opened by `POST https://api.novita.ai/openai/v1/chat/completions` with `Accept: text/event-stream` and request body `stream: true`. Each `data:` frame carries a JSON `chat.completion.chunk` object; the stream terminates with the literal frame `data: [DONE]`.
webhook/task-result
publishpublishTaskResultWebhook
Receive completed async task results.
Outbound webhook delivered to the URL provided in `extra.webhook.url` at async task submission time. The POST body matches the synchronous `GET /v3/async/task-result?task_id={task_id}` response and is dispatched once on task completion. Applies to image generation (`/v3/async/txt2img`, `/v3/async/img2img`, FLUX, Seedream 3.0, Qwen image), image editing (`/v3/async/upscale`, `/v3/async/remove-background`, `/v3/async/replace-background`, `/v3/async/inpainting`), and video generation (`/v3/async/txt2video`, `/v3/async/img2video`, `/v3/async/hunyuan-video-fast`, `/v3/async/kling-v2.1-t2v-master`, `/v3/async/minimax-hailuo-02`).
Messages
✉
ChatCompletionChunk
Chat Completion Chunk
A single incremental token/delta frame in an SSE chat completion stream.
✉
ChatCompletionStreamDone
SSE Stream Terminator
Sentinel frame written by the server as the literal SSE line `data: [DONE]` to signal end of stream.
✉
TaskResultWebhook
Async Task Result Webhook
Final task payload delivered to `extra.webhook.url` when an async image/video/edit task reaches a terminal status.
Servers
https
productionapi.novita.ai
Novita AI production API host. SSE chat completion streams originate from `https://api.novita.ai/openai/v1/chat/completions`. Async task submissions target `https://api.novita.ai/v3/async/*` (or `https://api.novita.ai/v3beta/*` for select FLUX endpoints), and webhook callbacks are dispatched outbound from this host to the URL supplied in `extra.webhook.url`.
https
webhook-receiver{webhookHost}
Customer-hosted HTTPS endpoint that receives outbound POST callbacks from Novita AI when an async task completes. The exact URL is the `extra.webhook.url` value supplied at task submission time.