Skip to main content

Documentation Index

Fetch the complete documentation index at: https://agenticadvertisingorg-changeset-release-main.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Experimental. Sponsored Intelligence (si_get_offering, si_initiate_session, si_send_message, si_terminate_session) is part of AdCP 3.0 as an experimental surface — it may change between 3.x releases with at least 6 weeks’ notice. Sellers implementing any of these tasks MUST declare sponsored_intelligence.core in experimental_features. See experimental status for the full contract.
Start a conversational session with a brand agent. The host platform invokes this task when a user expresses interest in engaging with a brand.

Request

FieldTypeRequiredDescription
intentstringYesNatural language description of user intent — the conversation handoff from the host
identityobjectYesUser identity with consent status
media_buy_idstringNoAdCP media buy ID if triggered by advertising
placementstringNoWhere the session was triggered (e.g., “chatgpt_search”)
offering_idstringNoBrand-specific offering reference to apply
supported_capabilitiesobjectNoWhat the host platform supports
offering_tokenstringNoToken from si_get_offering for correlation
contextobjectNoOpaque correlation data echoed unchanged in the response (see application context)

Offering Token

If a host performed a si_get_offering lookup before initiating, include the token for session continuity:
{
  "offering_token": "offering_abc123xyz"
}
The token lets the brand agent know exactly what products were shown to the user (and in what order). This enables natural conversation flow:
  • User sees: “Nike Pegasus ($89), Air Max ($129), Vomero ($139)”
  • User says: “Tell me more about the middle one”
  • Brand agent resolves “middle one” → Air Max via the token’s stored context

Identity Object

When consent_granted is true:
FieldTypeRequiredDescription
consent_grantedbooleanYesMust be true
consent_timestampstringYesISO 8601 timestamp of consent
consent_scopearrayYesFields the user agreed to share
privacy_policy_acknowledgedobjectNoBrand policy user accepted
userobjectYesUser’s PII
When consent_granted is false:
FieldTypeRequiredDescription
consent_grantedbooleanYesMust be false
anonymous_session_idstringYesUnique ID for this anonymous session

Supported Capabilities Object

Declares what the host platform can render:
{
  "modalities": {
    "conversational": true,
    "voice": { "providers": ["elevenlabs", "openai"] },
    "video": false,
    "avatar": false
  },
  "components": {
    "standard": ["text", "link", "image", "product_card", "carousel", "action_button"],
    "extensions": {
      "chatgpt_apps_sdk": "1.0"
    }
  },
  "commerce": {
    "acp_checkout": true
  }
}

Response

FieldTypeDescription
session_idstringUnique identifier for this session
responseobjectBrand agent’s initial response
negotiated_capabilitiesobjectIntersection of brand and host capabilities

Response Object

FieldTypeDescription
messagestringText response from brand agent
ui_elementsarrayVisual components to render

Example

Request

{
  "$schema": "/schemas/sponsored-intelligence/si-initiate-session-request.json",
  "idempotency_key": "f6a7b8c9-d0e1-4234-f567-234567890123",
  "intent": "User wants to fly to Boston next Tuesday morning on flight 632 at 6 AM.",
  "media_buy_id": "delta_q1_premium_upgrade",
  "placement": "chatgpt_search",
  "offering_id": "delta_chatgpt_3313",
  "identity": {
    "consent_granted": true,
    "consent_timestamp": "2026-01-18T10:30:00Z",
    "consent_scope": ["name", "email"],
    "privacy_policy_acknowledged": {
      "brand_policy_url": "https://delta.com/privacy",
      "brand_policy_version": "2026-01"
    },
    "user": {
      "email": "jane@example.com",
      "name": "Jane Smith",
      "locale": "en-US"
    }
  },
  "supported_capabilities": {
    "modalities": {
      "conversational": true,
      "voice": true
    },
    "components": {
      "standard": ["text", "link", "image", "product_card", "carousel", "action_button"]
    },
    "commerce": {
      "acp_checkout": true
    }
  }
}

Response

{
  "$schema": "/schemas/sponsored-intelligence/si-initiate-session-response.json",
  "status": "completed",
  "session_id": "sess_abc123",
  "session_status": "active",
  "response": {
    "message": "Hi Jane! I found DL632 departing at 6:15 AM next Tuesday. Great news—as a SkyMiles Gold member, you qualify for our free Premium Economy upgrade on this flight.",
    "ui_elements": [
      {
        "type": "product_card",
        "data": {
          "title": "DL632 to Boston - Tue Jan 27",
          "subtitle": "6:15 AM → 9:42 AM (3h 27m)",
          "price": "$199",
          "badge": "Free Premium Economy Upgrade",
          "image_url": "https://delta.com/images/premium-economy.jpg",
          "cta": { "label": "Book with Upgrade", "action": "checkout" }
        }
      }
    ]
  },
  "negotiated_capabilities": {
    "modalities": {
      "conversational": true,
      "voice": true
    },
    "components": {
      "standard": ["text", "link", "image", "product_card", "carousel", "action_button"]
    },
    "commerce": {
      "acp_checkout": true
    }
  }
}

Key Points

  1. intent is the conversation handoff - The host tells the brand agent what the user needs in natural language. The brand agent responds naturally, continuing the conversation. context is a separate, optional field: an opaque object (e.g., {"trace_id": "abc-123"}) that the brand agent echoes back unchanged — used by the buyer for correlation, never parsed by the brand agent.
  2. Brand looks up loyalty data - If Jane’s email is recognized, Delta retrieves her SkyMiles status automatically. Hosts don’t store loyalty numbers.
  3. offering_id is brand-specific - The brand interprets this reference to apply promotions, discounts, or loyalty rewards. Hosts pass it through without needing to understand offering semantics.
  4. Capability negotiation - The response includes negotiated_capabilities showing what features this session can use (intersection of brand and host capabilities).
  5. Clear PII with explicit consent - When consent_granted is true, actual email/name are passed (not hashed). This is a direct, consented handoff.