Skip to main content

CampaignOfferContextResponse

The curated, recipient-facing view of a campaign offer --- enough for a client to render the review/accept screen. Deliberately minimal: no internal ids, no inviter identity, no raw verification code, no persistence internals, no creative/storage internals. Returned from the public token surface. The voices array lists the podcast's ready voices the recipient can pick to accept the offer.

campaign_namestring

Name of the campaign the offer belongs to

Example: Spring Sneaker Launch
brand_namestring

Brand advertising in the campaign

Example: Acme Footwear
product_namestring

Product being advertised in the campaign

Example: Acme Trail Runner 2
podcast_titlestring

Title of the podcast the offer is for

Example: The Daily Tech Roundup
statusstring

Lifecycle status of the campaign-offer invitation behind the magic link

Possible values: [pending, started, accepted, rejected, expired, cancelled]

Example: pending
expires_atdate-time

When the magic-link offer invitation expires and can no longer be acted on

Example: 2026-01-15T09:30:00Z
verifiedboolean

Whether the recipient has already passed verification-code verification for this magic link

Example: false
code_expires_atdate-timenullable

When the current verification code expires, if one is outstanding; null when no code has been sent

Example: 2026-01-15T09:30:00Z
voices object[]

The podcast's ready voices the recipient can choose from when accepting the offer

  • Array [
  • idstring

    Unique identifier for the voice.

    Example: 7Hb2Kp9QvL3mNx0R8tZ4
    titlestringnullable

    Display name of the voice.

    Example: Morning Host
    statusstring

    Lifecycle status; a voice is 'ready' once it has audio samples

    Possible values: [pending, ready, archived, failed]

    Example: ready
  • ]
  • CampaignOfferContextResponse
    {
    "campaign_name": "Spring Sneaker Launch",
    "brand_name": "Acme Footwear",
    "product_name": "Acme Trail Runner 2",
    "podcast_title": "The Daily Tech Roundup",
    "status": "pending",
    "expires_at": "2026-01-15T09:30:00Z",
    "verified": false,
    "code_expires_at": "2026-01-15T09:30:00Z",
    "voices": [
    {
    "id": "7Hb2Kp9QvL3mNx0R8tZ4",
    "title": "Morning Host",
    "status": "ready"
    }
    ]
    }