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 exposes what Bluemoon measures every day: 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 your represented titles are AI-cited, and which high-authority domains in your market you do not yet represent.
  • Agencies and DSPs: build curated deal lists or contextual targeting from domains whose authority is validated by the answer engines themselves. Pages that AI engines cite receive the clicks from AI answers — human traffic in active research mode.
  • Advertisers: pull your own tracked brands’ cited sources 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 — ad creative never enters a model’s input. If your goal is AI visibility itself, the lever is indexable content, and Bluemoon measures that effect separately. This feed describes 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 individually revocable. The key defines what you see: To request a key, contact your Bluemoon account manager at hello@trybluesky.com.

Endpoint

Response

Field notes:
  • citations90d — how many times AI answers cited this domain in the last 90 days.
  • trendPct — last 30 days vs the 30 days before, in percent; null when the earlier window is too small for a meaningful trend.
  • markets — citations broken down by the country the answers were collected for. Bluemoon collects answers with real geo targeting per market, not prompt wording.
  • sellableBy — sales houses from the directory below whose footprint appears in the domain’s public ads.txt. confidence is confirmed for account-level evidence and probable for a comment-only mention; when several houses match, they are ordered strongest first (confirmed DIRECT before resellers). Every claim carries the raw ads.txt lines as evidence — the source is public and auditable.
  • adSystems — the domain’s raw monetization profile (which SSPs, DIRECT or RESELLER, how many seller accounts). If your sales house is not in the directory yet, match your own account ids against this field.

The sales-house directory

ads.txt lines carry account numbers, not namesgoogle.com, pub-5786… tells a machine who may sell a site, but tells a human nothing. The directory is Bluemoon’s mapping from those numbers to the companies behind them. It is what turns a raw file into the answer “this AI-cited site is sold by Media Impact”: the sellableBy field of this API, the “Sold by” badge in the Bluemoon dashboard, and the sellableBy= filter for deal lists all read from it. Every entry was verified on the live ads.txt files of the house’s own publishers (August 2026). A house is identified only by its own advertising infrastructure or by the publisher’s own declaration — never by a seller seat it shares with the rest of the market (see the evidence rules below). We report representation, not supply-chain presence. Two things count as proof that a house sells a site: (1) an OWNERDOMAIN/MANAGERDOMAIN declaration naming the house — the site states in plain text who runs its sales; (2) a DIRECT data line through the house’s own ad system or a cross-verified seat. A comment naming the house is reported as probable, never confirmed. RESELLER lines are deliberately ignored. Reseller seats travel across the whole open market — the seat xandr.com, 14082, RESELLER sits on a German broadcaster’s site and on a US outdoor magazine — so honouring them would label unrelated publishers as sold by a house that merely sits somewhere in their supply chain. That distinction is the difference between a deal list you can act on and one you cannot. Adding a house takes minutes once its footprint is verified — if yours is missing, write to hello@trybluesky.com and we will verify and add it. CSV columns: host, citations_90d, trend_pct, organizations, markets, sellable_by, confidence, relationship, ad_systems.

Using it with OpenRTB

The feed is deliberately upstream of the bidstream — Bluemoon is a data layer, not a bidder or an exchange. Two standard integration 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 via your SSP or a Prebid RTD module. The data describes pages, never users — there is no personal identifier anywhere in this product, by construction.

Freshness, privacy, and limits

  • The global feed is a pre-computed snapshot, refreshed weekly; generatedAt tells you its age. Organization-scoped responses are computed from your live data behind a short cache. Either way, polling is always cheap and always fast.
  • The global feed is domain-level only, and a domain is published only when it clears a k-anonymity gate (cited across at least 2 independent organizations, or 50+ citations) — it can never reveal what any single Bluemoon customer tracks. Organization-scoped keys see only that organization’s own data.
  • No user data, no audience segments, no identifiers. Domain-level facts derived from public AI answers and public ads.txt files.