ChatGPT sponsored ads schema - cloro

ChatGPT Endpoint

The ChatGPT endpoint returns sponsored ads in result.ads when you opt in with include.ads: true — no separate API call. For use cases, pricing context, and copy-paste examples, see the ChatGPT ads scraper page on the product site.

Result Ads

result.ads lists every ad OpenAI serves for the prompt; the interface renders at most one of them, so use the rendered field to tell which ad was actually shown. See Served vs shown below.

Example Request

{
  "prompt": "What are the best running shoes?",
  "model": "CHATGPT",
  "country": "US",
  "include": {
    "ads": true
  }
}

Ad Structure

Field Type Description
brand object Advertiser brand information (name, url, favicon)
cards array Array of carousel cards promoting products/services
visibility string OpenAI serving status: allowed, or hidden when the ad was filtered (for example, an integrity check)
adsResponseIndex integer The ad’s slot position in OpenAI’s served ad response (served order, not a guarantee of what was shown)
rendered boolean Whether the ad was shown as a visible card; false means served but not displayed

Brand Structure

Field Type Description
name string Advertiser brand name
url string Advertiser brand URL with attribution
favicon string Advertiser brand favicon URL (optional)

Card Structure

Field Type Description
title string Card title/heading
body string Card description text
url string Card destination URL with attribution
image string Card image URL (optional)

Served vs Shown

The served list can include ads the user never saw. Three fields let you measure real exposure:

rendered is derived from the response DOM at capture time. It reliably flags served-but-not-shown ads, but treat it as a strong signal rather than a guarantee — a rare late-painting render can be missed.

Response Example

{
  "success": true,
  "result": {
    "text": "Here are several running shoes...",
    "ads": [
      {
        "brand": {
          "name": "Acme Shoes",
          "url": "https://www.acmeshoes.com?utm_source=chatgpt.com",
          "favicon": "https://images.openai.com/favicon.ico"
        },
        "cards": [
          {
            "title": "Premium Running Shoes",
            "body": "Lightweight running shoes with cushioning technology",
            "url": "https://www.acmeshoes.com/running?utm_source=chatgpt.com",
            "image": "https://images.openai.com/product.jpg"
          },
          {
            "title": "Trail Running Shoes",
            "body": "Durable shoes designed for off-road running with strong grip",
            "url": "https://www.acmeshoes.com/trail?utm_source=chatgpt.com",
            "image": "https://images.openai.com/product2.jpg"
          }
        ],
        "visibility": "allowed",
        "adsResponseIndex": 0,
        "rendered": true
      },
      {
        "brand": {
          "name": "Trailblaze Gear",
          "url": "https://www.trailblazegear.com?utm_source=chatgpt.com",
          "favicon": "https://images.openai.com/favicon.ico"
        },
        "cards": [
          {
            "title": "All-Terrain Running Shoes",
            "body": "Grippy outsole built for mixed trails",
            "url": "https://www.trailblazegear.com/shoes?utm_source=chatgpt.com",
            "image": "https://images.openai.com/product3.jpg"
          }
        ],
        "visibility": "allowed",
        "adsResponseIndex": 1,
        "rendered": false
      }
    ]
  }
}