POST
/v1/jobsCreate job
Use this when you intentionally need job-plus-decision orchestration. New Server API integrations should start with POST /v1/placements.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
| client_id | string | Required | Project identifier. |
| session_id | string | Required | Stable publisher session identifier. |
| job_type | string | Required | Workload category such as chat, search, agent, or summarization. |
| slots_requested | integer | Optional | Number of ad slots to request. Defaults to one. |
| consent | object | Optional | Consent state or consent reference for this request. |
Returns
| Name | Type | Description |
|---|---|---|
| job_id | string | Created job identifier. |
| slot_ids | string[] | Slots to render or poll for decisions. |
| poll_path_template | string | Canonical decision polling path. |
| request_id | string | Support identifier. |
Request example
POST /v1/jobs
create-job.shbash
1curl -X POST https://api.wavebird.ai/v1/jobs \2 -H "Authorization: Bearer sk_test_wavebird_demo_secret" \3 -H "Content-Type: application/json" \4 -d '{5 "client_id": "wbproj_demo_8jK42",6 "session_id": "sess_demo_123",7 "job_type": "chat",8 "slots_requested": 1,9 "consent": {10 "source": "publisher",11 "purposes": {12 "ads": true,13 "measurement": true14 }15 }16 }'Response example
Response
response.jsonjson
1{2 "job_id": "job_demo_123",3 "slot_ids": ["slot_demo_123"],4 "poll_path_template": "/v1/decisions/{slot_id}",5 "request_id": "req_JVd28x"6}Errors
unauthorized401Missing key or activation token.
forbidden403Wrong key type for the request.
rate_limited429Key exceeded its rate limit; retry after the Retry-After header.
validation_error400The request body failed validation.