Run a batch
Confirm a batch quote to run it. Reserves the batch credits and starts every generation together. Retrying with the same idempotency key returns the same result.
POST
/v1/generation-batchesHeader parameters
Idempotency-KeystringrequiredA unique string that makes retries safe. Any value 16-255 characters; reuse it only when retrying the exact same request.
min length 16 · max length 255 · matches ^[A-Za-z0-9._:-]+$
X-RoasOS-ProjectstringOptional label to group this request under one of your projects. Appears in your usage records.
min length 1 · max length 64 · matches ^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$
X-RoasOS-Cost-CenterstringOptional label to attribute this request to a cost center. Appears in your usage records.
min length 1 · max length 64 · matches ^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$
Request body
requiredapplication/jsonbatch_quote_idstring<uuid>requiredResponses
201Atomically admitted generation batch
dataobjectrequiredShow propertiesHide properties
kindstringrequiredAllowed:
generation_batchidstring<uuid>requiredstatusstringrequiredAllowed:
processingitemsobject[]requiredmin items 1 · max items 8
Show propertiesHide properties
Array of
objectitem_idstringrequiredmin length 1 · max length 64 · matches ^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$
generation_idstring<uuid>requiredtypestringrequiredAllowed:
imagevideoaudiolipsyncstatusstringrequiredAllowed:
processingmodelstringrequiredmin length 1 · max length 200
reserved_creditsintegerrequiredmin 0
total_reserved_creditsintegerrequiredmin 0
created_atstring<date-time>required400Invalid confirmation request
errorobjectrequiredShow propertiesHide properties
codestringrequiredmin length 1 · max length 128
messagestringrequiredmin length 1 · max length 2000
retryablebooleanrequiredrequest_idstring<uuid>requiredbalanceintegermin 0
requiredintegermin 0
fieldstringmin length 1 · max length 512
statestringmin length 1 · max length 128
retryWithNewKeybooleanparameterstringmin length 1 · max length 128
allowedstring[]max items 100
402Insufficient credits
errorobjectrequiredShow propertiesHide properties
codestringrequiredmin length 1 · max length 128
messagestringrequiredmin length 1 · max length 2000
retryablebooleanrequiredrequest_idstring<uuid>requiredbalanceintegermin 0
requiredintegermin 0
fieldstringmin length 1 · max length 512
statestringmin length 1 · max length 128
retryWithNewKeybooleanparameterstringmin length 1 · max length 128
allowedstring[]max items 100
403Quote approval or API key spend policy denied the batch
errorobjectrequiredShow propertiesHide properties
codestringrequiredmin length 1 · max length 128
messagestringrequiredmin length 1 · max length 2000
retryablebooleanrequiredrequest_idstring<uuid>requiredbalanceintegermin 0
requiredintegermin 0
fieldstringmin length 1 · max length 512
statestringmin length 1 · max length 128
retryWithNewKeybooleanparameterstringmin length 1 · max length 128
allowedstring[]max items 100
404Batch quote not found
errorobjectrequiredShow propertiesHide properties
codestringrequiredmin length 1 · max length 128
messagestringrequiredmin length 1 · max length 2000
retryablebooleanrequiredrequest_idstring<uuid>requiredbalanceintegermin 0
requiredintegermin 0
fieldstringmin length 1 · max length 512
statestringmin length 1 · max length 128
retryWithNewKeybooleanparameterstringmin length 1 · max length 128
allowedstring[]max items 100
409Quote, idempotency, materialization, or dispatch authority conflict
errorobjectrequiredShow propertiesHide properties
codestringrequiredmin length 1 · max length 128
messagestringrequiredmin length 1 · max length 2000
retryablebooleanrequiredrequest_idstring<uuid>requiredbalanceintegermin 0
requiredintegermin 0
fieldstringmin length 1 · max length 512
statestringmin length 1 · max length 128
retryWithNewKeybooleanparameterstringmin length 1 · max length 128
allowedstring[]max items 100
429Write rate or active-generation quota exceeded
errorobjectrequiredShow propertiesHide properties
codestringrequiredmin length 1 · max length 128
messagestringrequiredmin length 1 · max length 2000
retryablebooleanrequiredrequest_idstring<uuid>requiredbalanceintegermin 0
requiredintegermin 0
fieldstringmin length 1 · max length 512
statestringmin length 1 · max length 128
retryWithNewKeybooleanparameterstringmin length 1 · max length 128
allowedstring[]max items 100
503Billing, database authority, or recovery outcome is temporarily unavailable
errorobjectrequiredShow propertiesHide properties
codestringrequiredmin length 1 · max length 128
messagestringrequiredmin length 1 · max length 2000
retryablebooleanrequiredrequest_idstring<uuid>requiredbalanceintegermin 0
requiredintegermin 0
fieldstringmin length 1 · max length 512
statestringmin length 1 · max length 128
retryWithNewKeybooleanparameterstringmin length 1 · max length 128
allowedstring[]max items 100
Request
curl -X POST "https://api.roasos.com/v1/generation-batches" \
-H "Idempotency-Key: string" \
-H "Content-Type: application/json" \
-d '{
"batch_quote_id": "99999999-9999-4999-8999-999999999999"
}'const response = await fetch("https://api.roasos.com/v1/generation-batches", {
method: "POST",
headers: {
"Idempotency-Key": "string",
"Content-Type": "application/json"
},
body: JSON.stringify({
"batch_quote_id": "99999999-9999-4999-8999-999999999999"
})
});import requests
response = requests.post(
"https://api.roasos.com/v1/generation-batches",
headers={
"Idempotency-Key": "string",
"Content-Type": "application/json"
},
json={
"batch_quote_id": "99999999-9999-4999-8999-999999999999"
},
)Response
{
"data": {
"kind": "generation_batch",
"id": "<uuid>",
"status": "processing",
"items": [
{
"item_id": "string",
"generation_id": "<uuid>",
"type": "image",
"status": "processing",
"model": "string",
"reserved_credits": 0
}
],
"total_reserved_credits": 0,
"created_at": "2024-01-01T00:00:00Z"
}
}{
"error": {
"code": "string",
"message": "string",
"retryable": true,
"request_id": "<uuid>",
"balance": 0,
"required": 0,
"field": "string",
"state": "string",
"retryWithNewKey": true,
"parameter": "string",
"allowed": [
"string"
]
}
}{
"error": {
"code": "string",
"message": "string",
"retryable": true,
"request_id": "<uuid>",
"balance": 0,
"required": 0,
"field": "string",
"state": "string",
"retryWithNewKey": true,
"parameter": "string",
"allowed": [
"string"
]
}
}{
"error": {
"code": "string",
"message": "string",
"retryable": true,
"request_id": "<uuid>",
"balance": 0,
"required": 0,
"field": "string",
"state": "string",
"retryWithNewKey": true,
"parameter": "string",
"allowed": [
"string"
]
}
}{
"error": {
"code": "string",
"message": "string",
"retryable": true,
"request_id": "<uuid>",
"balance": 0,
"required": 0,
"field": "string",
"state": "string",
"retryWithNewKey": true,
"parameter": "string",
"allowed": [
"string"
]
}
}{
"error": {
"code": "string",
"message": "string",
"retryable": true,
"request_id": "<uuid>",
"balance": 0,
"required": 0,
"field": "string",
"state": "string",
"retryWithNewKey": true,
"parameter": "string",
"allowed": [
"string"
]
}
}{
"error": {
"code": "string",
"message": "string",
"retryable": true,
"request_id": "<uuid>",
"balance": 0,
"required": 0,
"field": "string",
"state": "string",
"retryWithNewKey": true,
"parameter": "string",
"allowed": [
"string"
]
}
}{
"error": {
"code": "string",
"message": "string",
"retryable": true,
"request_id": "<uuid>",
"balance": 0,
"required": 0,
"field": "string",
"state": "string",
"retryWithNewKey": true,
"parameter": "string",
"allowed": [
"string"
]
}
}