curl --request POST \
--url https://api.aurous-labs.com/v1/chat/completions/{id}/cancel \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.aurous-labs.com/v1/chat/completions/{id}/cancel"
headers = {"X-Api-Key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.aurous-labs.com/v1/chat/completions/{id}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aurous-labs.com/v1/chat/completions/{id}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aurous-labs.com/v1/chat/completions/{id}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aurous-labs.com/v1/chat/completions/{id}/cancel")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aurous-labs.com/v1/chat/completions/{id}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "cmp_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"object": "chat.completion",
"created": 1731948000,
"model": "aurous-grow-2.0-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": {},
"tool_calls": [
{
"id": "call_01HXM...",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\":\"Tokyo\"}"
}
}
]
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 200,
"completion_tokens": 600,
"total_tokens": 850,
"credits_charged": 0.2856,
"breakdown": {
"input_credits": 0.0006,
"output_credits": 0.27,
"model": "aurous-grow-2.0-pro",
"pricing_version": 7,
"reasoning_credits": 0.015
},
"reasoning_tokens": 50
},
"status": "completed",
"error": {
"code": "chat_provider_unavailable",
"type": "server_error",
"message": "Provider request failed."
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}Cancel an in-flight chat completion
Aborts a streaming chat completion that is still in progress. Commits actuals up to the abort point against the credit hold and releases the remainder. Returns the final-state ChatCompletionResponse.
State machine:
pending— hold placed, dispatch not yet started → released, statuscancelled_by_request.processingAND in-flight on this instance → upstream aborted, partial actuals committed,cancelled_by_request.processingon a previous deploy → 409chat_cancel_target_not_cancellable(no cross-instance signalling in v1.0; pollGET /v1/chat/completions/:idfor the final state).- already terminal → 409
chat_cancel_target_already_terminal. - id unknown or cross-team → 404
chat_cancel_target_not_found.
curl --request POST \
--url https://api.aurous-labs.com/v1/chat/completions/{id}/cancel \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.aurous-labs.com/v1/chat/completions/{id}/cancel"
headers = {"X-Api-Key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.aurous-labs.com/v1/chat/completions/{id}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aurous-labs.com/v1/chat/completions/{id}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aurous-labs.com/v1/chat/completions/{id}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aurous-labs.com/v1/chat/completions/{id}/cancel")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aurous-labs.com/v1/chat/completions/{id}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "cmp_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"object": "chat.completion",
"created": 1731948000,
"model": "aurous-grow-2.0-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": {},
"tool_calls": [
{
"id": "call_01HXM...",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\":\"Tokyo\"}"
}
}
]
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 200,
"completion_tokens": 600,
"total_tokens": 850,
"credits_charged": 0.2856,
"breakdown": {
"input_credits": 0.0006,
"output_credits": 0.27,
"model": "aurous-grow-2.0-pro",
"pricing_version": 7,
"reasoning_credits": 0.015
},
"reasoning_tokens": 50
},
"status": "completed",
"error": {
"code": "chat_provider_unavailable",
"type": "server_error",
"message": "Provider request failed."
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}Authorizations
Your team API key (starts with al_live_).
Headers
Optional API version pin (YYYY-MM-DD). Omit the header to receive the platform default, currently 2026-08-26.
^\d{4}-\d{2}-\d{2}$"2026-08-26"
Path Parameters
Opaque chat completion id (cmp_).
"cmp_01HXMQ7Z3K8Y2VNABCDEFGHJKM"
Response
Cancelled (or already-completed if a race occurred during cancel).
Opaque chat-completion id.
"cmp_01HXMQ7Z3K8Y2VNABCDEFGHJKM"
chat.completion Unix timestamp (seconds).
1731948000
Aurous model slug used.
"aurous-grow-2.0-pro"
Always exactly 1 entry in v1.0.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Aurous extension: terminal state of the chat completion. completed is the normal happy path. in_progress means the request is still being processed (only possible when polling GET /:id during a streamed request). failed means the provider or platform errored — see error for the typed reason. cancelled means a cancel was requested or the client disconnected.
completed, in_progress, failed, cancelled "completed"
Aurous extension: present only when status is failed or cancelled (in addition to the main error response when applicable). Echoes the typed error envelope shape so customers can branch on error.code without parsing string messages.
Show child attributes
Show child attributes
{
"code": "chat_provider_unavailable",
"type": "server_error",
"message": "Provider request failed."
}

