Field guide
Can you see which competitors run ChatGPT ads? What the ChatGPT answer APIs return
There is no official ChatGPT ad library. Twelve commercial prompts through three ChatGPT answer APIs, in the US, UK and Canada, 42 answers and not one sponsored ad: why the scrape routes miss the ads, and what is left if you want to watch a competitor.
Written for people asking: Are there any tools where you can see which businesses are running ChatGPT ads in your industry?Is there an ad library for ChatGPT ads like the Meta Ad Library or the Google Ads Transparency Center?Can an API show the sponsored ads in ChatGPT answers?
Not through an API, as of 19 October 2026. OpenAI publishes no ad library or transparency centre for ChatGPT ads, and the ChatGPT answer APIs that list an ads field did not return a single ad. On 19 October twelve commercial prompts (project software, CRM, mattresses, car insurance, VPNs, flowers, meal kits, running shoes, web hosting, online therapy, travel cards, hotels) went through Cloro's ChatGPT route in two modes and DataForSEO's ChatGPT scraper in the US, three of them again from the UK and Canada: 42 answers, 0 ads, about $0.16 in all. A third route, crawl4ai's logged-out ChatGPT answer, failed on all 12 calls and was not billed. The product cards DataForSEO returned on 3 prompts are ChatGPT's own shopping results, not paid placements. OpenAI says ads appear below an answer for Free and Go users, and these routes do not ask as a logged-in Free account, so they get the answer without the ad unit. What is left is a logged-in Free account asking your category's prompts by hand, or a third-party library built from its own probes, which is a sample rather than OpenAI's inventory.
The question, in one line
A paid-search manager wants what the Meta Ad Library and the Google Ads Transparency Center give for other channels: a list of the businesses in their category that are buying ChatGPT ads, and what those ads say. The thread got one honest reply: “nothing public for chatgpt yet”. The job here is to check whether an API can stand in for the missing library, since several ChatGPT answer APIs list an ads field.
What OpenAI publishes
OpenAI’s help centre (Ads in ChatGPT, read 19 October 2026) says testing started in the US on 9 February 2026 and is rolling out “to eligible users on the Free and Go plans in select regions”. Plus, Pro, Business, Enterprise and Edu accounts see none. An ad is one unit below a ChatGPT response, labelled and separate from the answer, chosen on the conversation’s context, the advertiser’s landing page, copy and targeting, and bids. Logged-out experiences can show ads too, limited to ones “appropriate for all audiences”.
The advertiser side is an Ads Manager with self-service in 63 countries, the US, UK and Canada among them. Nothing on either page describes a public library, a transparency report or a way to look up another advertiser’s ads.
What the APIs returned
Twelve commercial prompts, one per category, written the way a buyer asks (“which crm should a 10 person sales team buy”, “hotels near times square new york”). Each went through three routes on 19 October 2026 (UTC):
| Route | Mode | Country | Answers | With an ad | With product cards | Median time |
|---|---|---|---|---|---|---|
| Cloro ChatGPT | desktop (legacy: true), ads and shopping flags on |
US | 12 of 12 | 0 | 0 | 28.8 s |
| Cloro ChatGPT | default, ads and shopping flags on | US | 12 of 12 | 0 | 0 | 28.5 s |
| Cloro ChatGPT | desktop | UK, Canada (3 prompts each) | 6 of 6 | 0 | 0 | 29 to 35 s |
| DataForSEO ChatGPT LLM Scraper | live advanced | US | 12 of 12 | 0 | 3 | 27.3 s |
| crawl4ai ChatGPT answer | logged-out visitor | US | 0 of 12 (fetch_failed) |
– | – | 2.5 s |
Forty-two answers, every one with cited sources (9 to 87 per Cloro answer), none with an ad. Cloro’s ads array came back empty on all 30 calls, and the word “sponsored” appears in none of the 42 answer texts. DataForSEO’s response has no ad item type at all: across the 12 answers its item types were text, images, tables, products and local businesses. Cloro’s catalog note says the ads block appears on the desktop interface, which legacy: true selects; switching modes made no difference here.
Why the scrape routes miss them
crawl4ai’s description says its route asks as a logged-out visitor, and DataForSEO’s response carries a check_url of the form chatgpt.com/?prompt=…, a link that opens a fresh chat without an account. Cloro’s documentation does not say whether its sessions are logged in; its responses return no account or plan. OpenAI’s own wording targets ads at Free and Go accounts, and says logged-out ads are restricted to a subset. Forty-two commercial answers without one ad is consistent with logged-out sessions seeing ads rarely or not at all. One day and twelve categories cannot rule out that a different prompt, country or hour would show one.
Product cards are not ads
DataForSEO returned a product block on 3 of 12 prompts: mattresses, running shoes and travel cards. The cards carry product names (WinkBed Mattress, Brooks Adrenaline GTS 25, Chase Sapphire Preferred), ChatGPT’s own tags such as “Best overall” on the first card, and a price on some of them. These are ChatGPT’s shopping results, built from the answer. OpenAI’s help page is explicit that ads “do not influence ChatGPT’s answers” and sit in a separate labelled unit. A competitor that shows up in a product card earned it in the answer; it did not buy it, so a list of product-card brands is an AI-visibility measure, not an ad-spend one. For that measurement, see which brands ChatGPT names and cites.
What is left if you want to watch a competitor
- A logged-in Free account, by hand. Ask your category’s buying prompts the way a customer would, from the country you sell in, and screenshot the ad unit under each answer. Ads are chosen on conversation context and, when personalisation is on, on the account’s history, so use a fresh account with personalisation turned off in Settings → Ad Controls. It is slow, and it shows what one account was served, not what a competitor is running.
- A third-party library. chatgptadlibrary.com says it probes ChatGPT with consumer prompts and records the sponsored cards that come back; its home page listed 11,103 advertisers and 43,410 creatives on 19 October 2026, with no collection dates or countries shown. Treat it as a sample of what its prompts triggered, and check a competitor you care about by hand before you report it.
- The advertiser’s other libraries. A business buying ChatGPT ads usually runs the same offer on Meta and Google, where the libraries are public and an API returns them by domain: see checking a domain against the Google and Meta libraries.
What this run cannot tell you
Twelve prompts, one day, three countries, no logged-in session. It shows that the answer APIs did not return ads on these prompts; it does not show how often a Free user sees one, which advertisers buy them, or what they pay. OpenAI has published no rate card. The UK and Canada were checked on three prompts each through one route. Only the advertiser numbers on chatgptadlibrary.com’s home page were read, not its data.
How this was measured
scripts/run-chatgpt-ads-check.pyholds the twelve prompts and makes every call through the treg CLI, one key for all three providers, and stores one raw response per call (kept out of the repository).scripts/score-chatgpt-ads-check.pyreads them with no provider call and writes summary.json and calls.csv: per call, route, country, prompt, ads, sponsored mentions in the text, product cards, sources and time.- Cost: Cloro $0.0036 a call with the ads flag set (31 calls including one probe), DataForSEO $0.004 a call (12), crawl4ai not billed on failure. The Treg balance fell by $0.16 across the run.
Next step
Re-check one prompt yourself; if an ads array ever comes back non-empty, the route has started to see them:
treg auth login
treg call cloro.ai-search.chatgpt.scrape --method POST --data '{"prompt":"which crm should a 10 person sales team buy","country":"US","legacy":true,"include":{"markdown":true,"ads":true,"shopping":true}}' > a.json
python3 -c 'import json; r=json.load(open("a.json"))["result"]; print("ads:", len(r.get("ads") or []), "| sources:", len(r.get("sources") or []))'
Or re-run all twelve with your own prompts: edit PROMPTS, then scripts/run-chatgpt-ads-check.py evidence/chatgpt-ads-checks/$(date +%F) and scripts/score-chatgpt-ads-check.py evidence/chatgpt-ads-checks/$(date +%F). Download the runner · the scorer.
Questions this page answers
Is there an ad library for ChatGPT ads like the Meta Ad Library?
No. As of 19 October 2026 OpenAI publishes no ad library or transparency centre for ChatGPT ads; its help centre covers who sees ads and how to control them, and an Ads Manager for advertisers in 63 countries. Third-party sites such as chatgptadlibrary.com build libraries from their own prompts, which makes them a sample of what they happened to trigger, not OpenAI's inventory.
Can an API show the sponsored ads in ChatGPT answers?
Not on this run. Twelve commercial prompts through Cloro's ChatGPT route (with the ads flag set, in desktop and default modes) and DataForSEO's ChatGPT scraper returned 42 answers and 0 ads in the US, UK and Canada on 19 October 2026. The routes ask without logging in, and ChatGPT shows ads to Free and Go accounts.
Are the product cards in ChatGPT answers ads?
No. DataForSEO returned a product block on 3 of 12 prompts (mattresses, running shoes, travel cards), tagged with labels such as 'Best overall'. Those are ChatGPT's shopping results. OpenAI says ads are labelled and shown in one unit below the response, separate from the answer.
Relationship: the people who run this site also work on Treg, one of the routes compared on this page. Every Treg figure here is a call we paid for, with the raw response downloadable, and the same fixture is run against the alternatives where their terms allow.
Spotted an error or a changed price? Email corrections@adapiguide.com with the page URL and a source. Corrections are logged on the corrections page.