Skip to content
Visit Analytics on GitHub
Set theme to dark (⇧+D)


Data accessibility

The GraphQL Analytics API is available to all Cloudflare users; however, users on larger plans have access to a greater selection of data sets and can query over broader historical intervals.

Data node access (by customer plan)

Use the table below to identify which data nodes are included in your customer plan and the range of historical data you can query. For example, Free plans have access to the last 24 hours of browserPerf1mGroups data, while Enterprise plans have access to the last 30 days.

Data nodeFreeProBusinessEnterprise
browserPerf1mGroups24 hours7 days30 days30 days
dosdNetworkAnalyticsAdaptiveGroupsn/an/an/a90 days
dosdAttackAnalyticsAdaptiveGroupsn/an/an/a90 days
firewallEventsAdaptiveByTimeGroups14 days14 days30 days30 days
firewallEventsAdaptiveGroupsn/a3 days30 days30 days
firewallEventsAdaptive14 days14 days30 days30 days
firewallRulePreviewGroupsn/an/an/a30 days
flowtrackdNetworkAnalyticsAdaptiveGroupsn/an/an/a90 days
healthCheckEventsGroupsn/a3 days30 days90 days
healthCheckEventsn/a3 days30 days90 days
httpRequests1dByColoGroupsn/an/an/a365 days
httpRequests1dGroups365 days365 days365 days365 days
httpRequests1hGroups3 days7 days30 days90 days
httpRequests1mByColoGroupsn/an/an/a7 days
httpRequests1mGroupsn/a24 hours3 days7 days
ipFlows1mGroups*n/an/an/a30 days
ipFlows1hGroups*n/an/an/a6 months
ipFlows1dGroups*n/an/an/a1 year
ipFlows1mAttackGroups*n/an/an/a1 year
loadBalancingRequestsGroupsn/a3 days30 days30 days
loadBalancingRequestsn/a3 days30 days30 days
magicFirewallNetworkAnalyticsAdaptiveGroupsn/an/an/a90 days
magicFirewallSamplesAdaptiveGroupsn/an/an/a7 days
magicTransitNetworkAnalyticsAdaptiveGroupsn/an/an/a90 days
spectrumNetworkAnalyticsAdaptiveGroupsn/an/an/a90 days
synAvgPps1mGroupsn/an/an/a7 days

* These nodes are deprecated. Refer to Data Sets for more information.

Query settings for account limits

To obtain specific information regarding account limits for a particular data node, use the settings node.

The example query below demonstrates how to retrieve account limits for the browserPerf1mGroups data node. The example queries the following fields:

enabledReturns true if the data set (node) is available for the current plan.
maxDurationDefines the maximum time period (in seconds) that can be requested in one query (varies by data node).
maxNumberOfFieldsDefines the maximum number of fields that can be requested in one query (varies by data node).
maxPageSizeDefines the maximum number of records that can be returned in one query (varies by data node).
notOlderThanLimits how far back in the record a query can search (in seconds, varies by data set and plan).

Example query

viewer {
zones(filter: { zoneTag: $zoneTag }) {
settings {
browserPerf1mGroups {


"data": {
"viewer": {
"zones": [
"settings": {
"browserPerf1mGroups": {
"enabled": true,
"maxDuration": 2592000,
"maxNumberOfFields": 30,
"maxPageSize": 10000,
"notOlderThan": 2595600
"errors": null

Query limits

In addition to access restrictions, there are limits on the volume of data that a query can return, and there are user limits on daily data volume. The following limits apply in addition to the general rate limits enforced by the Cloudflare API:

  • A zone-scoped query can include up to 10 zones.
  • Account-scoped queries can aggregate data for up to 1,000 zones—queries that involve aggregated data across more than 1,000 zones return with an error.
  • Queries can request up to 30 fields—this limit is indicated by maxNumberOfFields in settings.
  • Responses can return up to 10,000 records—this limit is indicated by maxPageSize in settings.

Queries must explicitly specify the upper bound of records to return, using the limit argument, as in the example below.

viewer {
zones(filter: { zoneTag: $zoneTag }) {
limit: 100
filter: {
datetime_geq: "2019-10-16T21:08:00Z"
datetime_lt: "2019-10-16T21:12:00Z"
orderBy: [datetime_ASC]
) {
dimensions {