Skip to main content
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.
Ads in ChatGPT

Ads in ChatGPT

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

Ad structure

Brand structure

Card structure

Served vs shown

The served list can include ads the user never saw. Three fields let you measure real exposure:
  • renderedtrue only for the ad shown as a visible card. Count rendered: true for user-visible impressions rather than the length of ads.
  • visibilityallowed for eligible ads; hidden marks ads OpenAI filtered (for example, an integrity check). A hidden ad is never shown.
  • adsResponseIndex — the served slot position. It reflects the order OpenAI returned the ads, not which one was shown. It is usually zero-based, as in the example below, but not guaranteed — a lone ad can arrive at a higher index (for example 2) — so treat it as an opaque position rather than a dense sequence.
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