HTTP Requests by Colo Groups to HTTP Requests by Adaptive Groups
This guide shares considerations when migrating from the deprecated httpRequests1mByColoGroups and httpRequests1dByColoGroups GraphQL API nodes to the httpRequestsAdaptiveGroups GraphQL API node.
For example, if you wanted to see which five data centers had the most number of requests, the total number of those requests, and the total amount of data transfer, in the past you used the httpRequests1mByColoGroups GraphQL API node as in the following example:
{  viewer {    zones(filter: { zoneTag: $zoneTag }) {      series: httpRequests1mByColoGroups(        limit: 5        orderBy: [sum_requests_DESC]        filter: { datetime_geq: $start, datetime_lt: $end }      ) {        sum {          requests          bytes        }        dimensions {          coloCode        }      }    }  }}Response
 {  "data": {    "viewer": {      "zones": [        {          "series": [            {              "dimensions": {                "coloCode": "LHR"              },              "sum": {                "bytes": 18260055,                "requests": 4404              }            },            {              "dimensions": {                "coloCode": "AMS"              },              "sum": {                "bytes": 17563009,                "requests": 4302              }            },            {              "dimensions": {                "coloCode": "CDG"              },              "sum": {                "bytes": 17200434,                "requests": 4032              }            },            {              "dimensions": {                "coloCode": "PTY"              },              "sum": {                "bytes": 10400209,                "requests": 2707              }            },            {              "dimensions": {                "coloCode": "JIB"              },              "sum": {                "bytes": 9040105,                "requests": 2601              }            }          ]        }      ]    }  },  "errors": null}With the deprecation of the httpRequests1mByColoGroups and httpRequests1dByColoGroups GraphQL API nodes, use the httpRequestsAdaptiveGroups GraphQL API node to access the same data (count, sum(edgeResponseBytes), and visits).
Request
query MigrationSample($zoneTag: string, $start: Time, $end: Time) {  viewer {    zones(filter: { zoneTag: $zoneTag }) {      series: httpRequestsAdaptiveGroups(        limit: 5        orderBy: [count_DESC]        filter: {          datetime_geq: $start          datetime_lt: $end          requestSource: "eyeball"        }      ) {        count        avg {          sampleInterval        }        sum {          visits          edgeResponseBytes        }        dimensions {          coloCode        }      }    }  }}Response
 {  "data": {    "viewer": {      "zones": [        {          "series": [            {              "avg": {                "sampleInterval": 10              },              "count": 4350,              "dimensions": {                "coloCode": "LHR"              },              "sum": {                "edgeResponseBytes": 17860000,                "visits": 4120              }            },            {              "avg": {                "sampleInterval": 10              },              "count": 4210,              "dimensions": {                "coloCode": "AMS"              },              "sum": {                "edgeResponseBytes": 17110000,                "visits": 3910              }            },            {              "avg": {                "sampleInterval": 10              },              "count": 3890,              "dimensions": {                "coloCode": "CDG"              },              "sum": {                "edgeResponseBytes": 17050000,                "visits": 3700              }            },            {              "avg": {                "sampleInterval": 10              },              "count": 2550,              "dimensions": {                "coloCode": "PTY"              },              "sum": {                "edgeResponseBytes": 10286000,                "visits": 2130              }            },            {              "avg": {                "sampleInterval": 10              },              "count": 2410,              "dimensions": {                "coloCode": "JIB"              },              "sum": {                "edgeResponseBytes": 9029000,                "visits": 2080              }            }          ]        }      ]    }  },  "errors": null}This query says:
- Given the indicated zones,limit, andtime range.
- Fetch the total number of requests (as count), the total amount of data transfer (asedgeResponseBytesofsumobject), and the total number ofvisitsper data center.
A few points to note:
- Adding the requestSourcefilter foreyeballreturns request, data transfer, and visit data about only the end users of your website.
- Instead of requests, thehttpRequestsAdaptiveGroupsnode reportscount, which indicates the number of requests per data center.
- To measure data transfer, use sum(edgeResponseBytes). Note that in the old API this was calledbandwidtheven though it actually measured data transfer.
- unique visitors per colocationis not supported in- httpRequestsAdaptiveGroups, but the- httpRequestsAdaptiveGroupsAPI does support- visits. A visit is defined as a page view that originated from a different website or direct link. Cloudflare checks where the HTTP referer does not match the hostname. One visit can consist of multiple page views.
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Products
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark