# SDK package quickstart

Use this page when you intentionally want package-level control. Create a wavebird account first, complete onboarding, and start with the sandbox secret key from your dashboard. Hosted defaults remain documented under /api/quickstart and /api/patterns/server-api. The SDK quickstart below uses the released `wavebird` surface.

Quickstart for the released wavebird SDK package surface.

Copy the code only after choosing the SDK path and storing your sandbox secret key server-side as `WAVEBIRD_SECRET_KEY`. Move to Integration flow, Configuration, and the `WavebirdClient` reference for deeper lifecycle and type details.

## NODE ENTRY

```typescript
import { WavebirdClient } from "wavebird";

const client = new WavebirdClient({
  baseUrl: "https://api.wavebird.ai",
  getApiKey: () => process.env.WAVEBIRD_SECRET_KEY ?? "",
  publisher: {
    app_name: "MyAIChatApp",
    app_domain: "mychatapp.com",
    categories: ["IAB19"],
  },
  decisionDelivery: "polling",
});

const job = await client.createJob({
  job_type: "chat",
});

const decision = job?.slot_ids[0] ? await client.getDecision(job.slot_ids[0]) : null;
console.log(decision);
```

## PRIVACY

```typescript
const job = await client.createJob({
  job_type: "chat",
  consent: {
    semantic_targeting: true,
    prompt_shared: false,
    gdpr_applies: true,
    consent_source: "wrapper_cmp",
    tcf_consent_string: "CONSENT_STRING",
    gpp_string: "DBAB...",
    gpp_sections: [7],
  },
});
```

## BRAND SAFETY

```typescript
const job = await client.createJob({
  job_type: "chat",
  brand_safety: {
    blocked_categories: ["IAB25-3"],
    blocked_domains: ["ads.bad.example"],
  },
});
```

## CONTEXT

```typescript
const job = await client.createJob({
  job_type: "chat",
  context: {
    topic: "programming",
  },
});
```

## SLOT CONFIG

```typescript
const job = await client.createJob({
  job_type: "chat",
  slot_config: {
    allowed_formats: ["banner"],
    max_width: 728,
    max_height: 90,
    position_hint: "above",
    bidfloor: 0.5,
    bidfloorcur: "EUR",
  },
});
```
