Skip to main content
AI answer engines (ChatGPT, Perplexity, Gemini, Google AI Overviews) answer buying questions by citing a small set of sources, and those sources are rarely the ones traditional media plans assume. The Cited Inventory API tells you which domains the AI engines cite, how often, in which markets, and who can sell advertising on them.

What it is for

  • Media companies and sales houses: see which of the titles you represent are cited by AI, and which cited domains in your market you do not represent yet.
  • Agencies and DSPs: build curated deal lists or contextual targeting from domains the answer engines already rely on.
  • Advertisers: pull the cited sources of the brands you track into your planning tools, with the seller of each source identified.
What this feed does not claim: display advertising on a cited domain does not change what an AI engine says. If your goal is AI visibility itself, the lever is content the engines can read and cite. This feed shows where AI attention already is, so you can buy the human attention that follows it.

Authentication and key scopes

Every request carries an API key issued by Bluemoon:
Keys are issued per consumer and can be revoked one by one. Your key decides what you see: To request a key, contact your Bluemoon account manager at hello@trybluemoon.com.

Endpoint

Response

How to read the fields:
  • citations90d: how many times AI answers cited this domain in the last 90 days.
  • trendPct: the last 30 days compared with the 30 days before, in percent. null when there is too little earlier data for a meaningful trend.
  • markets: citations split by the country the answers were collected for.
  • sellableBy: the sales houses that sell this domain, according to its public ads.txt. confidence is confirmed when the evidence is clear and probable when it is weaker. When several houses appear, the strongest evidence comes first. evidence holds the ads.txt lines behind each entry, so you can check it yourself.
  • adSystems: the domain’s raw advertising profile: which ad systems, DIRECT or RESELLER, and how many seller accounts. If your sales house is not in the list below, match your own account IDs against this field.

Sales houses

These are the sales houses Bluemoon recognises. Use the slug with the sellableBy= filter. The same list feeds the “Sold by” badge in the Bluemoon dashboard. sellableBy reports who represents a site, not every company in its supply chain: reseller lines in ads.txt do not count. You still see them in adSystems. If your sales house is missing, write to hello@trybluemoon.com and we will check it and add it. CSV columns: host, citations_90d, trend_pct, organizations, markets, sellable_by, confidence, relationship, ad_systems.

Using it with OpenRTB

Bluemoon is a data source, not a bidder or an exchange: you use the feed before the bidstream. Two standard patterns:
  • Curated deals: package the filtered host list as a private marketplace deal in your SSP; the deal travels as imp.pmp.deals[].id in bid requests. Refresh from the feed on your own schedule; your SSP owns the deal.
  • Contextual segments: attach page-level segments (site.content.data[].segment[]) such as AI-cited source through your SSP or a Prebid RTD module. The data describes pages, never users: there is no personal identifier anywhere in this product.

Freshness and privacy

  • The global feed is refreshed weekly; generatedAt tells you its age. Organization-scoped responses reflect your current data, with a short cache.
  • The global feed is aggregated and domain-level: it does not reveal what any single Bluemoon customer tracks. Organization-scoped keys see only their own organization’s data.
  • No user data, no audience segments, no identifiers: only domain-level facts drawn from public AI answers and public ads.txt files.