Datasets (tables)
Cloudflare Analytics offers a range of datasets, including both general and product-specific ones. Datasets use a consistent naming scheme that explicitly identifies the type of data they return:
-
Domain - Each dataset is named after the field it describes and is associated with a set of nodes. Product-specific data nodes incorporate the name of the relevant product, for instance
loadBalancingRequests*nodes. -
Adaptive Sampling - Nodes that represent data acquired using adaptive sampling incorporate the
Adaptivesuffix. For more details, refer to sampling. -
Aggregated data - Nodes that represent aggregated data include the
Groupssuffix. For example, theloadBalancingRequestsAdaptiveGroupsnode represents aggregated data for Load Balancing requests. Aggregated data is returned in an array of...Groupobjects. Please note: we have a node that currently excluded from that naming convention -workersInvocationsAdaptive(beta). -
Raw data - Raw data nodes, such as
loadBalancingRequestsAdaptive, are not aggregated and so do not incorporate theGroupssuffix. Raw data is returned in arrays containing objects of the relevant data type. For example, a query toloadBalancingRequestsAdaptivereturns a variety ofLoadBalancingRequestobjects.
To find out more information about datasets, availability, beta, and deprecation statuses, please refer to GraphQL discovery features.
This example illustrates the structure for Groups:
type WhateverGroup { count # No subfields, it is just the group size. Not available for roll-up tables. sum { # fields that support summing (numbers, maps of numbers) } avg { # fields that support averaging (numbers) } uniq { # fields that support uniqueing (numbers, strings, enums, IPs, dates, etc.) }}Unique values are not available as a dimension but can be queried as demonstrated in this example:
{ # Get number of bytes and unique IPs in each minute. httpRequests1mGroups { sum { bytes } uniq { uniques # unique IPs } dimensions { datetimeMinute } }
# Count the number of events in each hour. firewallEventsAdaptiveGroups { count dimensions { datetimeHour } }}Every exposed table has a GraphQL type definition. Type definitions observe the following rules:
- Regular fields represent themselves.
- Every field, including nested fields, has a type and represents a list of that type.
- The
enumtype represents an enumerated field.
Here is an example type definition for ContentTypeMapElem:
type ContentTypeMapElem { edgeResponseContentType: UInt32! requests: UInt64! bytes: UInt64!}
# An array of httpRequestsGroup is the result of httpRequests1hGroups or# httpRequests1mGroups query.type httpRequestsGroup { date: Date! timeslot: DateTime! requests: UInt64! contentTypeMap: [ContentTypeMapElem!]! # ... other fields}
enum TrustedClientCategory { UNKNOWN REAL_BROWSER HONEST_BOT}
# An array of Request is the result of httpRequests query.type Request { trustedClientCategory: TrustedClientCategory! # ... other fields}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