GET
/v1/decisions/{slot_id}Get decision
Call this after job creation when you are rendering manually instead of using the Script Tag or SDK helper.
Auth: Secret key or browser activation context
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
| slot_id | string | Yes | Slot ID returned from POST /v1/jobs. |
| wait_ms | integer | No | Optional long-poll wait time in milliseconds. |
Response fields
| Name | Type | Required | Description |
|---|---|---|---|
| status | string | Yes | Decision state, usually pending, ready, or no_fill. |
| asset | object | No | Sponsored asset payload when a decision is ready. |
| beacon | object | No | Beacon URLs or identifiers for render and visibility events. |
| request_id | string | Yes | Support identifier. |
Examples
get-decision.sh
curl "https://api.wavebird.ai/v1/decisions/slot_demo_123?wait_ms=1500" \
-H "Authorization: Bearer sk_test_wavebird_demo_secret"Response example
{
"status": "ready",
"slot_id": "slot_demo_123",
"asset": {
"format": "native",
"headline": "Secure inference-time sponsorship"
},
"request_id": "req_01Jg3s"
}Errors
unauthorized401Missing auth.
not_found404Slot does not exist or belongs to another project.
rate_limited429Polling rate exceeded.