Async Chat

Token360 Async Chat queues a single non-streaming chat completion and returns a job you can poll. Use it when you do not want to hold an HTTP connection for the model response.

This is not the Batch API. For many lines in one JSONL file, see Batch Jobs.

Workflow

text
11. POST /v1/async/chat/completions     → job id + request_id (status=queued)
22. GET  /v1/async/chat/completions/{id} → poll until terminal
33. POST /v1/async/chat/completions/{id}/cancel  → optional, non-terminal only
44. GET  /v1/billing/{request_id}        → reconcile usage after completed

There is no list endpoint. Query jobs by id.

Webhook / callback_url is not supported on Async Chat. Intermediate and terminal states are only visible via GET. If you need a HTTPS callback for many completions, use Batch Jobs and pass callback_url (or the console account webhook). See Webhook.

Create

Shell
1curl -X POST https://api.token360.ai/v1/async/chat/completions \
2  -H "Authorization: Bearer sk-your-api-key" \
3  -H "Content-Type: application/json" \
4  -d '{
5    "model": "claude-opus-5",
6    "messages": [{"role": "user", "content": "Say hi in one word."}],
7    "max_tokens": 16,
8    "stream": false
9  }'

stream must be false (or omitted). stream: true returns 400 invalid_request.

Response (abbreviated):

JSON
1{
2  "id": "chatjob_...",
3  "object": "chat.completion.job",
4  "status": "queued",
5  "model": "claude-opus-5",
6  "request_id": "async-..."
7}

Poll

Shell
1curl https://api.token360.ai/v1/async/chat/completions/chatjob_... \
2  -H "Authorization: Bearer sk-your-api-key"

Terminal statuses: completed, failed, cancelled, expired.
On completed, result is a normal chat-completion object (choices, usage).

Cancel

Shell
1curl -X POST https://api.token360.ai/v1/async/chat/completions/chatjob_.../cancel \
2  -H "Authorization: Bearer sk-your-api-key"

Non-terminal jobs move to cancelled. Already terminal jobs return the current object.

Billing

Successful jobs are billed at the same rates as POST /v1/chat/completions, including the account’s enterprise / VIP price factor. Reconcile with GET /v1/billing/{request_id} (billed, total_amount).

¿Ha sido de ayuda?