Getting started

Quickstart

The shortest path is: create keys, call /v1/jobs, read a decision, render, and record beacons. Use Script Tag when the browser should own rendering, and SDK only when you intentionally want the package layer.

Start in the dashboard

Create a workspace, generate test keys, copy the project client_id, and configure local allowed origins before browser testing.

Option 1

Server API request

Recommended default path for backend-owned integrations.

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
      }
    }
  }'

Option 2

Script Tag install

Browser-first rendering with built-in activation, consent, and beacons.

index.html
<script
  src="https://wavebird.ai/wavebird.js"
  data-client-id="wbproj_demo_8jK42"
  data-publishable-key="pk_test_wavebird_demo_publishable"
  data-job-type="chat">
</script>

<div
  data-wavebird-slot
  data-wavebird-formats="banner,native"
  data-wavebird-position="between">
</div>

Option 3

Advanced SDK

Compatibility package for TypeScript teams that intentionally choose a wrapper.

wavebird.ts
import { CslClient } from "@csl/wrapper-sdk";

const client = new CslClient({
  baseUrl: "https://api.wavebird.ai",
  getApiKey: () => process.env.WAVEBIRD_SECRET_KEY ?? "",
});

const job = await client.createJob({
  client_id: "wbproj_demo_8jK42",
  session_id: "sess_demo_123",
  job_type: "chat",
  slots_requested: 1,
});

Validate decisions

Check filled, pending, and no-fill paths before live traffic.

Validate consent

Confirm consent is collected or synced before sponsored decisions that require it.

Validate beacons

Confirm render, visibility, click, and retry behavior is idempotent.

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.