---
title: GraphQL API
description: Query AI Crawl Control analytics data using the GraphQL Analytics API.
image: https://developers.cloudflare.com/core-services-preview.png
---

> Documentation Index  
> Fetch the complete documentation index at: https://developers.cloudflare.com/ai-crawl-control/llms.txt  
> Use this file to discover all available pages before exploring further.

[Skip to content](#%5Ftop) 

# GraphQL API

AI Crawl Control analytics are available through Cloudflare's [GraphQL Analytics API](https://developers.cloudflare.com/analytics/graphql-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 ↗](https://graphql.cloudflare.com/), or capture the exact queries the dashboard uses via [Chrome DevTools](https://developers.cloudflare.com/analytics/graphql-api/tutorials/capture-graphql-queries-from-dashboard/).

## Key filters

| Filter                           | Description                                                                                                                     | Availability                                                                         |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| requestSource: "eyeball"         | Real client requests only. Excludes internal Cloudflare traffic.                                                                | All plans                                                                            |
| userAgent\_like: "%...%"         | Filter by [user agent](https://developers.cloudflare.com/ai-crawl-control/reference/bots/). 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](https://developers.cloudflare.com/ai-crawl-control/reference/bots/#referrer-domains-by-operator).   | Paid plans only                                                                      |
| botDetectionIds\_hasany: \[...\] | Filter by [detection IDs](https://developers.cloudflare.com/ai-crawl-control/reference/bots/). Reliably verified by Cloudflare. | [Bot Management](https://developers.cloudflare.com/bots/get-started/bot-management/) |

## Query examples

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

        }

      }

    }

  }

}


```

## Related

* [Bot reference](https://developers.cloudflare.com/ai-crawl-control/reference/bots/) — Detection IDs and user agents
* [GraphQL Analytics API](https://developers.cloudflare.com/analytics/graphql-api/) — Full API documentation

```json
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"/directory/","name":"Directory"}},{"@type":"ListItem","position":2,"item":{"@id":"/ai-crawl-control/","name":"AI Crawl Control"}},{"@type":"ListItem","position":3,"item":{"@id":"/ai-crawl-control/reference/","name":"Reference"}},{"@type":"ListItem","position":4,"item":{"@id":"/ai-crawl-control/reference/graphql-api/","name":"GraphQL API"}}]}
```
