Type reference

The sections below collect the released SDK type documentation, including configuration, decision, lifecycle, beacon, and error types.

Overview

WavebirdClientOptions

Constructor options for WavebirdClient, including baseUrl, server getApiKey, browser getPublishableKey, delivery mode, timing, onError, and wrapper_version.

DecisionDeliveryMode

The four supported delivery modes: auto, websocket, polling, and callback.

WavebirdSdkError

Structured SDK error object emitted through options.onError when transport, parsing, timeout, or internal failures are observed.

WavebirdSdkErrorCode

Machine-readable error-code enum for HTTP, network, timeout, WebSocket, parse, and internal failures.

ConsentFlags

Optional privacy and consent flags used by createJob().

JobRequest

Create-job request shape. Start with job_type, then add optional consent, context, slot configuration, brand safety, routing, or callback settings as needed.

JobResponse

Union of accepted job metadata and the typed rate_limit_exceeded result returned by createJob().

DecisionResponse

Normalized decision union for pending, ready no-fill, and ready fill. Fill preserves creative, asset_token, constraints, and cs_declaration.

GenerationEvent

"started" | "finished" | "failed". This type sits behind reportGeneration().

GenerationRequest

Payload for generation lifecycle reporting. The documented fields are generation_id, model_id, usage_json, and error.

BeaconRequest

Payload for wrapper beacon events. The documented fields are beacon id, asset token, beacon type, client timestamp, and optional measurements.

BeaconResponse

Acknowledgement response for sendBeacon(). It returns { accepted, reason_code }.

Package and client types

WavebirdClientOptions

Constructor options for WavebirdClient, including baseUrl, server getApiKey, browser getPublishableKey, delivery mode, timing, onError, and wrapper_version.

DecisionDeliveryMode

The four supported delivery modes: auto, websocket, polling, and callback.

auto prefers WebSocket when a global WebSocket exists, falls back to polling when it does not, and switches to callback when callback_url is supplied.

WavebirdSdkError

Structured SDK error object emitted through options.onError when transport, parsing, timeout, or internal failures are observed.

WavebirdSdkErrorCode

Machine-readable error-code enum for HTTP, network, timeout, WebSocket, parse, and internal failures.

Jobs and decisions

ConsentFlags

Optional privacy and consent flags used by createJob().

In the current integration flow, these flags align with the Semantic Source and Semantic Persistence dimensions of the Compute Sponsoring standard. Setting semantic_targeting: true with both persistence flags false corresponds to the CS-S (S1/P0) profile described in the Compute Sponsoring glossary.

JobRequest

Create-job request shape. Start with job_type, then add optional consent, context, slot configuration, brand safety, routing, or callback settings as needed.

JobResponse

Union of accepted job metadata and the typed rate_limit_exceeded result returned by createJob().

DecisionResponse

Normalized decision union for pending, ready no-fill, and ready fill. Fill preserves creative, asset_token, constraints, and cs_declaration.

Lifecycle and contracts

GenerationEvent

"started" | "finished" | "failed". This type sits behind reportGeneration().

GenerationRequest

Payload for generation lifecycle reporting. The documented fields are generation_id, model_id, usage_json, and error.

BeaconRequest

Payload for wrapper beacon events. The documented fields are beacon id, asset token, beacon type, client timestamp, and optional measurements.

BeaconResponse

Acknowledgement response for sendBeacon(). It returns { accepted, reason_code }.

WavebirdClientOptions

Released package surface

Every SDK HTTP request sends x-csl-wrapper-version: <wrapper_version> as a wire-protocol header. decisionDelivery defaults to "auto", and timing values are clamped to safe ranges.

FieldTypeRequiredDefaultDescription
baseUrlstringyesnoneBase wavebird API URL. A trailing slash is normalized away.
getApiKey() => string | Promise<string>server onlynoneServer-side secret key resolver for wrapper-authenticated requests. Use a sandbox sk_test_... key first, then switch to a live key after production readiness is approved.
getPublishableKey() => string | Promise<string>browser onlynoneBrowser-safe publishable key resolver. The SDK exchanges this for an activation token after the request origin matches the allowed origins configured in the dashboard.
publishableKeystringbrowser onlynoneStatic browser-safe publishable key alternative to getPublishableKey. Use only publishable keys in browser code.
decisionDelivery"auto" | "websocket" | "polling" | "callback"no"auto"Decision delivery strategy for the client.
publisher{ app_name?: string; app_domain?: string; app_bundle?: string; categories?: string[] }nononeOptional publisher metadata automatically merged into every createJob() request.
options.timeout_msnumberno2000Base request timeout. Values are clamped to the documented safe range.
options.decision_timeout_msnumberno30000Decision wait budget. Values are clamped to the documented safe range.
options.long_poll_wait_msnumberno1500Long-poll wait_ms used by decision reads.
options.short_poll_interval_msnumberno250Short-poll interval used after long-poll attempts are exhausted.
options.onError(error: WavebirdSdkError) => voidnononeObservation hook for structured SDK errors surfaced through onError rather than thrown as hard failures.
options.wrapper_versionstringno"sdk"Optional wrapper version label. Sent as x-csl-wrapper-version on every SDK request.

JobRequest

Released public types

job_type is required and slots_requested defaults to 1. When decisionDelivery: "callback" is used without callback_url, createJob() returns null and onError receives WavebirdSdkError with code sdk_internal.

FieldTypeRequiredDefaultDescription
job_typestringyesnoneApp job type.
slots_requestednumberno1Number of requested slots.
model_idstringno"unknown"Optional model identifier for the job.
localestringno"en"Optional app locale.
predicted_latency_msnumbernononeOptional latency hint.
client_idstringnoruntime-derived if omittedOptional client id.
chat_session_idstringnononeOptional chat session id.
prompt{ text?: string; token_count_estimate?: number } | stringnononeOptional prompt payload. Sent to the wavebird runtime for topic extraction only when you choose to provide it. The data firewall reduces this to an abstract category and language before any signal reaches a configured partner path. Raw text is never forwarded.
context.topicstringnononeOptional topic hint when you do not want to share prompt text.
context.prompt_textstringnononeOptional prompt alias for integrations that separate explicit context from prompt capture.
consentConsentFlagsnoserver defaultsOptional consent flags for semantic targeting, prompt sharing, GDPR, wrapper-CMP TCF, GPP, and legacy US privacy.
publisher{ app_name?: string; app_domain?: string; app_bundle?: string; categories?: string[] }noconstructor defaults if configuredOptional publisher metadata automatically merged from the client constructor when configured.
slot_config{ allowed_formats?: ("banner" | "clip" | "native")[]; max_width?: number; max_height?: number; position_hint?: string; bidfloor?: number; bidfloorcur?: string }nononeOptional format, size, placement, and bidfloor hints.
brand_safety{ blocked_categories?: string[]; blocked_domains?: string[] }nononeOptional blocking controls for categories and advertiser domains.
ssp_partner_idstringnononeLegacy single-partner selector for advanced routing cases.
routing.preferred_partner_idstringnononePreferred routing hint for new integrations.
routing.candidate_partner_idsstring[]nononeOptional routing hint list for candidate partners.
callback_urlstringnononeCallback target for callback delivery.

GenerationRequest

Released public types

FieldTypeRequiredDefaultDescription
generation_idstringnononeIdentifier for the model generation.
model_idstringnononeReported model identifier.
usage_jsonunknownnononeUsage payload for finished or failed.
errorstringnononeFailure detail for the failed path.

BeaconRequest

Released public types

FieldTypeRequiredDefaultDescription
beacon_idstringyesnoneIdempotency input for the beacon.
asset_tokenstringyesnoneAsset authenticator for fill beacons.
beacon_type"rendered" | "visible_started" | "visible_ended" | "heartbeat" | "play_started" | "play_completed" | "clicked"yesnoneBeacon type for render, visibility, playback, or click events.
occurred_at_ms_clientnumberyesnoneClient timestamp for the event.
measurementsRecord<string, unknown>nononeOptional measurements bag.

Choose hosted defaults or package control

Back to API docsContact the team

These pages document the package layer for teams that choose wavebird to control ad requests, decisions, rendering helpers, consent, and beacons directly. Use the API docs for hosted defaults, and use contact only when you want rollout review, enterprise coordination, or help with non-standard integration constraints. Beacon billing rules live in SDK Concepts.