Beta. This endpoint is new and its response shape may still change. It is
the crawl-intelligence sibling of Export Analytics:
same authentication, windowing, and domain scoping, but it reports attribution
tiers (was the bot’s identity IP-verified?) and each bot’s intent.
verified / declared / unknown), and annotates every bot with its intent (why it crawls — e.g. training, search-classic, answer-fetch).
Programmatic (API key) access requires the Pro plan and above — requests
from Starter accounts return
403 plan_upgrade_required.Request
Headers
Body Parameters
Choose the reporting window in one of two ways — a rollingperiod, or an explicit startDate/endDate range. The two are mutually exclusive.
Range rules — a request that breaks any of these returns
400 invalid_request:
periodandstartDate/endDatecannot be combined.endDatecannot be sent on its own — it requires astartDate.- Dates must be real calendar dates in
YYYY-MM-DDform (e.g.2026-02-30is rejected). startDatemust not be afterendDate, and neither may be in the future.- The range may span at most 365 days (inclusive), the same cap as the
365dperiod.
Example Request
Response
Success (200)
Fields
Attribution tiers
Every crawl is placed in exactly one tier, based on whether the bot’s claimed identity could be confirmed:verified is point-in-time: it means confirmed against the operator’s
published ranges as of when those ranges were last fetched (refreshed
weekly). A named bot appearing only as declared is normal — many bots
(social crawlers, most AI answer bots) publish no verifiable IP ranges.Bot intent
intent describes why a bot crawls, from our bot taxonomy:
Legacy data before the cutover
Verified crawl tracking begins atlegacyCutover (2026-07-09). Requested days before it are backfilled from legacy User-Agent-only analytics, so the tier semantics differ:
- Only Googlebot and Bingbot were IP-verified before the cutover, so only they carry a
verifiedtier on legacy days. Every other bot isdeclared(it was UA-only). - AI bots (GPTBot, ClaudeBot, PerplexityBot) were UA-only before the cutover, so they appear as
declaredthere and can appear asverifiedafter — expect a step-change at the cutover date, not a real traffic shift. - A few legacy columns are family aggregates (e.g. all OpenAI crawlers were counted together) and are reported under a single representative bot for those days.