Guide

First ad in 5 minutes

The shortest production-shaped path is key creation, POST /v1/placements, then render.js with wavebird.withTurn().

1. Create keys

Create a test secret key in the dashboard and copy the project client_id. Keep live keys out of local examples.

2. Create a placement

Send a POST /v1/placements?wait_ms=1500 request from your backend. The response is the canonical decision shape and includes placement.render when filled.

Create a placement

create-placement.shbash
1curl -X POST https://api.wavebird.ai/v1/placements?wait_ms=1500 \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    "slot_hint": {10      "position": "below",11      "max_width": 728,12      "max_height": 9013    },14    "overrides": {15      "allowed_formats": ["banner", "clip"],16      "timing": "during"17    },18    "consent": {19      "semantic_targeting": false,20      "prompt_shared": false,21      "consent_source": "publisher"22    }23  }'

3. Render and beacon

Load /v1/render.js in the frontend and wrap the chat request with wavebird.withTurn(). The hosted renderer handles media, sizing, clicks, and beacons.

Need rollout review?

Start with the Server API. Use contact only when you need rollout review, enterprise coordination, or non-standard integration help.