Brand safety

Brand safety belongs to your project config and job overrides, not to undocumented renderer behavior. The API surface exposes the controls explicitly so browser and server paths stay aligned.

POST /v1/placements

Apply request-level controls

Put format and brand-safety controls in overrides. The required project, session, and job fields remain present even when the request only changes policy.

Create a placement with brand-safety overrides

brand-safety.sh

bash

cURL
curl -X POST https://api.wavebird.ai/v1/placements \  -H "Authorization: Bearer $WAVEBIRD_SECRET_KEY" \  -H "Content-Type: application/json" \  -d '{    "client_id": "wbproj_...",    "session_id": "sess_...",    "job_type": "chat",    "overrides": {      "allowed_formats": ["banner", "native"],      "blocked_categories": ["gambling", "tobacco"],      "blocked_domains": ["competitor.example"]    }  }'

Policy

Controls that matter

allowed_formats

Limit the renderable creative formats for the active job or project defaults.

blocked_categories

Apply category-based exclusions before the market-side request is accepted.

blocked_domains

Prevent delivery from blocked advertiser or destination domains when your project policy requires it.

Important

Failure behavior

Invalid or overly strict policy does not break your app. The sponsor path should resolve as no-fill while the model or product flow continues.

Need rollout review?

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

Contact the team