Wavebird API

Integrate wavebird through the public API.

Start with the Server API when your app already has a backend. Use Script Tag when the browser should render the slot directly. The SDK remains available, but it is a tertiary compatibility layer over the same API surface.

Server API

Recommended default for most production apps. Use your secret key against the public /v1 endpoints and keep orchestration on your backend.

Best when your backend already owns job creation, pacing, or render orchestration.

Script Tag

Fastest browser path. One script, no package install, no framework dependency, built-in consent handling, auto-rendering, and beacon wiring.

Best for browser slots that should go live with minimal frontend work.

Advanced SDK

Tertiary option for TypeScript and React teams that want a thin client over the same API-first contracts.

Use only when the Script Tag or direct REST surface is not the right fit. Deep package docs live under /sdk.

Start here

Recommended integration order

  1. 1. Create keys and client_id

    Generate your publishable and secret keys in the dashboard. Every project gets a stable client_id used by browser and server paths.

  2. 2. Start with Server API

    Use the public REST API when your backend owns the flow. Switch to Script Tag only when the browser should render the slot directly.

  3. 3. Validate decisions and beacons

    Test the full path against jobs, decisions, consent, and beacons before you switch production traffic to live keys.

Code

Primary implementation paths

create-job.sh

bash

RECOMMENDED
curl -X POST https://api.wavebird.ai/v1/jobs \
  -H "Authorization: Bearer sk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "wbproj_your_client_id",
    "session_id": "sess_demo_123",
    "job_type": "chat",
    "slots_requested": 1
  }'

script-tag.html

html

BROWSER PATH
<script
  src="https://wavebird.ai/wavebird.js"
  data-client-id="wbproj_your_client_id"
  data-publishable-key="pk_publishable_your_key"
  data-job-type="chat">
</script>

<div
  data-wavebird-slot
  data-wavebird-formats="banner,native"
  data-wavebird-position="between">
</div>
$ npm install @csl/wrapper-sdk

Scope

What the API surface covers

Browser activation through publishable keys and allowed origins
Job creation and decision reads through the canonical /v1 routes
Consent state storage for Script Tag or custom publisher UX
Beacon recording for rendered, visible, and completed events
Project config loading through client_id and non-secret runtime config
Advanced SDK compatibility without changing the public wire shape

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.