GraphQL API
AI Crawl Control analytics are available through Cloudflare's GraphQL Analytics API. You can query the same data shown in the dashboard to build custom reports, integrate with monitoring systems, or export for analysis. Test queries using the GraphQL API Explorer ↗, or capture the exact queries the dashboard uses via Chrome DevTools.
| Filter | Description | Availability |
|---|---|---|
requestSource: "eyeball" | Real client requests only. Excludes internal Cloudflare traffic. | All plans |
userAgent_like: "%...%" | Filter by user agent. Can be spoofed. | All plans |
edgeResponseStatus_geq / _lt | Filter by HTTP status code range. | All plans |
clientRequestPath_like: "%...%" | Filter by URL path pattern. | All plans |
clientRefererHost_like: "%...%" | Filter by referrer domain. | Paid plans only |
botDetectionIds_hasany: [...] | Filter by detection IDs. Reliably verified by Cloudflare. | Bot Management |
Get AI crawler requests over time using detection IDs
{ viewer { zones(filter: { zoneTag: "<ZONE_ID>" }) { httpRequestsAdaptiveGroups( filter: { datetime_geq: "2027-01-01T00:00:00Z" datetime_leq: "2027-01-02T00:00:00Z" requestSource: "eyeball" # 123815556 = GPTBot, 132995013 = ChatGPT-User, 126255384 = OAI-SearchBot botDetectionIds_hasany: [123815556, 132995013, 126255384] } limit: 5000 ) { count dimensions { datetimeHour botDetectionIds clientRequestHTTPHost } sum { edgeResponseBytes } } } }}Get AI crawler requests over time using user agent
{ viewer { zones(filter: { zoneTag: "<ZONE_ID>" }) { httpRequestsAdaptiveGroups( filter: { datetime_geq: "2027-01-01T00:00:00Z" datetime_leq: "2027-01-02T00:00:00Z" requestSource: "eyeball" userAgent_like: "%GPTBot%" } limit: 5000 ) { count dimensions { datetimeHour userAgent clientRequestHTTPHost } sum { edgeResponseBytes } } } }}Get top crawled paths
{ viewer { zones(filter: { zoneTag: "<ZONE_ID>" }) { httpRequestsAdaptiveGroups( filter: { datetime_geq: "2027-01-01T00:00:00Z" datetime_leq: "2027-01-02T00:00:00Z" requestSource: "eyeball" edgeResponseStatus_geq: 200 edgeResponseStatus_lt: 400 userAgent_like: "%GPTBot%" } limit: 5000 orderBy: [count_DESC] ) { count dimensions { clientRequestPath clientRequestHTTPHost } } } }}Get AI referral traffic
{ viewer { zones(filter: { zoneTag: "<ZONE_ID>" }) { httpRequestsAdaptiveGroups( filter: { datetime_geq: "2027-01-01T00:00:00Z" datetime_leq: "2027-01-02T00:00:00Z" requestSource: "eyeball" OR: [ { clientRefererHost_like: "%.chatgpt.com%" } { clientRefererHost: "chatgpt.com" } { clientRefererHost_like: "%.perplexity.ai%" } { clientRefererHost: "perplexity.ai" } ] } limit: 5000 orderBy: [count_DESC] ) { count dimensions { datetimeHour clientRefererHost } } } }}Get data transfer by crawler
{ viewer { zones(filter: { zoneTag: "<ZONE_ID>" }) { httpRequestsAdaptiveGroups( filter: { datetime_geq: "2027-01-01T00:00:00Z" datetime_leq: "2027-01-02T00:00:00Z" requestSource: "eyeball" userAgent_like: "%GPTBot%" } limit: 5000 orderBy: [sum_edgeResponseBytes_DESC] ) { count dimensions { userAgent } sum { edgeResponseBytes } } } }}- Bot reference — Detection IDs and user agents
- GraphQL Analytics API — Full API documentation