Accept localization drafts
Turns ready drafts into tracked prompts, as versions of their source family, in one transaction: every draft lands or none does. Each accepted version consumes one active-prompt slot and starts executing immediately. Jobs that are not ready, or whose source wording changed since the draft was made, are skipped and listed; queue those again.
Requires the write:localization scope, and the workspace must be enabled for API writes.
POST /v1/brands/{brand_id}/localization/acceptAuthorization
| Header | Type | Required |
|---|---|---|
Authorization | Bearer asky_sk_… | required |
Idempotency-Key | string | required |
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
brand_id | uuid | required | From List brands |
Body
application/json
| Field | Type | Required | Description |
|---|---|---|---|
job_ids | uuid[], 1-200 | required | Ready jobs. From List localization jobs |
Request
cURL
curl --request POST \
--url 'https://api.askylabs.com/v1/brands/242546de-4cee-4a7d-952e-f6aa60c63ef8/localization/accept' \
--header 'Authorization: Bearer <api-key>' \
--header 'Idempotency-Key: 5b0e77d2-13a9-4f6a-8ce1-9a3f5e21c0aa' \
--header 'Content-Type: application/json' \
--data '{"job_ids": ["e1c2b3a4-5d6e-4f70-8192-a3b4c5d6e7f8"]}'Response
200
{
"data": {
"accepted_prompt_ids": [
"b6a0c2d4-1e3f-4a5b-8c7d-9e0f1a2b3c4d"
],
"accepted": 1,
"added_slots": 1,
"runs": 1,
"skipped": [],
"dispatched": true
},
"request_id": "req_2f7b90c14ae8471da3cd"
}Response fields
| Field | Type | Description |
|---|---|---|
data.accepted_prompt_ids | uuid[] | required. The new tracked versions |
data.added_slots | integer | required. Active-prompt slots consumed |
data.skipped | object[] | required. { job_id, reason } for jobs that were not accepted |
Errors
| Status | Code | When |
|---|---|---|
| 400 | invalid_request | None of the jobs is ready; the message lists each with its reason |
| 403 | quota_exceeded | Accepting would exceed your active-prompt allowance. Nothing is accepted |
| 409 | conflict | The source, draft or market coverage changed since it was read |
| 503 | service_unavailable | Your allowance could not be checked. Nothing is accepted. Retry shortly |
| 401 | invalid_token | The key is missing, malformed, or does not exist |
| 403 | insufficient_scope | The key does not carry write:localization |
| 403 | plan_required | This workspace is not enabled for API writes |
| 404 | not_found | The brand does not exist, or this key is not allowed to reach it |
| 429 | rate_limited | Over the per-minute limit for this endpoint |
Last updated on