POST/v1/jobs

Create job

Use this as the main server-side entry point. Server-stored project configuration is loaded by client_id and merged with documented request-level overrides.

Auth: Secret key, or activation token for browser flows

Request parameters

NameTypeRequiredDescription
client_idstringYesProject identifier.
session_idstringYesStable publisher session identifier.
job_typestringYesWorkload category such as chat, search, agent, or summarization.
slots_requestedintegerNoNumber of ad slots to request. Defaults to one.
consentobjectNoConsent state or consent reference for this request.

Response fields

NameTypeRequiredDescription
job_idstringYesCreated job identifier.
slot_idsstring[]YesSlots to render or poll for decisions.
poll_path_templatestringYesCanonical decision polling path.
request_idstringYesSupport identifier.

Examples

create-job.sh
curl -X POST https://api.wavebird.ai/v1/jobs \
  -H "Authorization: Bearer sk_test_wavebird_demo_secret" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "wbproj_demo_8jK42",
    "session_id": "sess_demo_123",
    "job_type": "chat",
    "slots_requested": 1,
    "consent": {
      "source": "publisher",
      "purposes": {
        "ads": true,
        "measurement": true
      }
    }
  }'

Response example

{
  "job_id": "job_demo_123",
  "slot_ids": ["slot_demo_123"],
  "poll_path_template": "/v1/decisions/{slot_id}",
  "request_id": "req_JVd28x"
}

Errors

unauthorized401

Missing key or activation token.

forbidden403

Wrong key type for the request.

rate_limited429

Key exceeded its rate limit; retry after the Retry-After header.

validation_error400

The request body failed validation.

Need rollout review?

Contact the team

Start in the dashboard, choose Script Tag or Server API, and use contact only when you need rollout review, enterprise coordination, or non-standard integration help. Billing beacon rules live in the API concepts guide.