Products · Core platform

Analytics

Visualize the performance, security, and reliability data collected by Cloudflare products

Pricing and limits

Pricing

as of Nov 3, 2026

As of Nov 3, 2026, from Cloudflare's docs, last updated there Apr 23, 2026. Licensed CC BY 4.0; navigation removed.

Workers Analytics Engine is priced based on two metrics — data points written, and read queries.

Plan Data points written Read queries
Workers Paid 10 million included per month
(+$0.25 per additional million)
1 million included per month (+$1.00 per additional million)
Workers Free 100,000 included per day 10,000 included per day

Pricing availability

Currently, you will not be billed for your use of Workers Analytics Engine. Pricing information here is shared in advance, so that you can estimate what your costs will be once Cloudflare starts billing for usage in the coming months.

If you are an Enterprise customer, contact your account team for information about Workers Analytics Engine pricing and billing.

Data points written

Every time you call writeDataPoint() in a Worker, this counts as one data point written.

Each data point written costs the same amount. There is no extra cost to add dimensions or cardinality, and no additional cost for writing more data in a single data point.

Read queries

Every time you post to Workers Analytics Engine's SQL API, this counts as one read query.

Each read query costs the same amount. There is no extra cost for more or less complex queries, and no extra cost for reading only a few rows of data versus many rows of data.

Limits

as of Nov 3, 2026

As of Nov 3, 2026, from Cloudflare's docs, last updated there Oct 2, 2026. Licensed CC BY 4.0; navigation removed.

Cloudflare GraphQL API exposes more than 70 datasets representing products with different configurations and data availability for different zones and accounts plans.

To support this variety of products, Cloudflare GraphQL API has three layers of limits:

  • global limits
  • user limits
  • node (dataset) limits

Global limits

These limits are applied to every query for every plan:

  • A zone-scoped query can include up to 10 zones
  • An account-scoped query can include only 1 account

Additionally, there is a limited number of queries you can make per request. The total number of queries in a request is equal to the number of zone/account scopes, multiplied by the number of nodes to which they are applied.

User limits

Cloudflare GraphQL API limits the number of GraphQL requests each user can send. The default quota is 300 GraphQL queries over 5-minute window. It allows a user to run at least 1 query every second or do a burst of 300 queries and then wait 5 minutes before issuing another query.

That rate limit is applied in addition to the general rate limits enforced by the Cloudflare API.

Account-based rate limiting

If you query analytics across many zones or accounts, you can opt into account-based rate limiting, where limits apply per account and per zone instead of per user or API token. Because each account and zone has its own budget, a single user or token can make far more requests overall, and limit increases can be applied per resource and take effect quickly.

To learn how to enable it and the query requirements, refer to Account-based rate limiting.

Node limits and availability

Each data node has its limits, such as:

  • how far back in time can data be requested,
  • the maximum time period (in seconds) that can be requested in one query,
  • the maximum number of fields that can be requested in one query,
  • the maximum number of records that can be returned in one query.

Node limits are tied to requested zoneTag or accountTag. Higher plans have access to a greater selection of datasets or fields, and can query over broader historical intervals.

Adaptive datasets, such as httpRequestsAdaptiveGroups and firewallEventsAdaptive, retain at least 31 days of data on every plan. Aggregated datasets, such as httpRequests1hGroups, keep their own per-plan limits.

To get exact boundaries and availability for your zone(s) or account, please refer to settings.

Limits

as of Nov 3, 2026

As of Nov 3, 2026, from Cloudflare's docs, last updated there Apr 23, 2026. Licensed CC BY 4.0; navigation removed.

The following limits apply to Workers Analytics Engine:

  • Analytics Engine will accept up to twenty blobs, twenty doubles, and one index per call to writeDataPoint.
  • The total size of all blobs in a request must not exceed 16 KB. The 16 KB size limit for the blobs field applies to each individual data point, regardless of how many are included in a single request using writeDataPoints().
  • Each index must not be more than 96 bytes.
  • You can write a maximum of 250 data points per Worker invocation (client HTTP request). Each call to writeDataPoint counts towards this limit.

Data retention

Data written to Workers Analytics Engine is stored for three months.

Interested in longer retention periods? Join the #analytics-engine channel in the Cloudflare Developers Discord ↗︎ and tell us more about what you are building.

Limits

as of Nov 3, 2026

As of Nov 3, 2026, from Cloudflare's docs, last updated there Oct 2, 2026. Licensed CC BY 4.0; navigation removed.

The following limits apply to SQL API queries:

Limit Value
SQL statements per request 1
SQL statement length 10 KiB
Parser nesting depth 10
Datasets per statement 1
Accounts per statement 1
Minimum time constraint A lower timestamp bound is required.
ORDER BY Requires LIMIT, except for Workers Analytics Engine datasets.
LIMIT and OFFSET Non-negative integer literals. OFFSET normally requires LIMIT.

The lower timestamp bound and tenancy scope can be supplied in SQL or through the JSON request fields.

Dataset-specific limits can restrict field availability, the number of selected fields, historical retention, query duration, and the maximum number of returned rows. These limits depend on the dataset, your plan, and the account or zone being queried. A dataset-specific maximum page size rejects an explicit LIMIT above the maximum. It does not add a limit to a query that omits one.

The API also applies request-rate, concurrency, queue, execution-time, and resource-consumption limits. Cloudflare can adjust these operational limits to protect service availability.

When a request exceeds a rate or resource limit, the API returns HTTP 429, 507, or 503. Reduce the requested time range or returned row count before retrying. Honor the Retry-After response header when it is present.

Timeline

13 entries since February 2024.

October 2026

  • SQL API introspection: `include_attributes` parameter

    The SQL API introspection endpoint has a new include_attributes query parameter. Setting it to true discovers the keys of a dataset's attributes JSON column, and their types, from the preceding seven days of your account's data. Discovered keys are returned in the dataset's attributes response field. Some datasets store additional key-value data in an attributes JSON column, which you query with…

  • 30 days of analytics data on every plan

    Every plan now gets at least 30 days of analytics data. Adaptive analytics datasets, such as HTTP requests, security events, and DNS analytics, retain at least 31 days of data for Free and Pro domains, and you can query up to 30 days in a single request. Previously, Free and Pro domains could see between 24 hours and 8 days of history depending on the dataset. A full month of history lets you inv…

  • SQL API (Beta)

    The SQL API is now available in beta. It provides a single HTTP endpoint for querying Cloudflare analytics and observability data using SQL. Supported dataset types include event datasets (such as HTTP requests and security events), state datasets (such as D1 storage), log datasets (such as Workers logs), and Workers Analytics Engine datasets. The SQL API supports SELECT queries with filtering, a…

  • Workers Observability logs and traces in Custom Dashboards

    You can now build Custom Dashboards charts from Workers Observability data. Two new datasets, Workers Observability — Logs and Workers Observability — Traces (OTel), let you chart Worker invocations, log levels, errors, CPU and wall time, span counts, and durations next to HTTP traffic, security events, and other analytics datasets. This gives you one dashboard for an application that spans Cloud…

August 2026

  • WebSocket reporting now includes full connection data transfer and duration

    Cloudflare has fixed an issue affecting WebSocket data transfer and session duration reporting. HTTP Traffic Analytics and HTTP request logs now correctly report data transferred throughout a WebSocket connection and the duration of the full session. During the affected period, reporting captured only the bytes and duration of the initial 101 Switching Protocols handshake for some WebSocket conne…

April 2026

  • Custom dashboards available to all customers

    Custom Dashboards are now available to all Cloudflare customers. Build personalized views that highlight the metrics most critical to your infrastructure and security posture, moving beyond standard product dashboards. This update significantly expands the data available for visualization. Build charts based on any of the 100+ datasets available via the Cloudflare GraphQL API, covering everything…

February 2026

  • New cfWorker metric in Server-Timing header

    The Server-Timing header now includes a new cfWorker metric that measures time spent executing Cloudflare Workers, including any subrequests performed by the Worker. This helps developers accurately identify whether high Time to First Byte (TTFB) is caused by Worker processing or slow upstream dependencies. Previously, Worker execution time was included in the edge metric, making it harder to ide…

January 2026

  • Workers Analytics Engine SQL now supports filtering using HAVING and LIKE

    You can now use the HAVING clause and LIKE pattern matching operators in Workers Analytics Engine ↗︎. Workers Analytics Engine allows you to ingest and store high-cardinality data at scale and query your data through a simple SQL API. Filtering using HAVING The HAVING clause complements the WHERE clause by enabling you to filter groups based on aggregate values. While WHERE filters rows before ag…

December 2025

  • Improved accuracy of cached request classification in analytics

    The cached/uncached classification logic used in Zone Overview analytics has been updated to improve accuracy. Previously, requests were classified as "cached" based on an overly broad condition that included blocked 403 responses, Snippets requests, and other non-cache request types. This caused inflated cache hit ratios — in some cases showing near-100% cached — and affected approximately 15% o…

November 2025

  • More SQL aggregate, date and time functions available in Workers Analytics Engine

    You can now perform more powerful queries directly in Workers Analytics Engine ↗︎ with a major expansion of our SQL function library. Workers Analytics Engine allows you to ingest and store high-cardinality data at scale (such as custom analytics) and query your data through a simple SQL API. Today, we've expanded Workers Analytics Engine's SQL capabilities with several new functions: New aggrega…

October 2025

  • Workers Analytics Engine adds supports for new SQL functions

    You can now perform more powerful queries directly in Workers Analytics Engine ↗︎ with a major expansion of our SQL function library. Workers Analytics Engine allows you to ingest and store high-cardinality data at scale (such as custom analytics) and query your data through a simple SQL API. Today, we've expanded Workers Analytics Engine's SQL capabilities with several new functions: New aggrega…

  • New Confidence Intervals in GraphQL Analytics API

    The GraphQL Analytics API now supports confidence intervals for sum and count fields on adaptive (sampled) datasets. Confidence intervals provide a statistical range around sampled results, helping verify accuracy and quantify uncertainty. Supported datasets: Adaptive (sampled) datasets only. Supported fields: All sum and count fields. Usage: The confidence level must be provided as a decimal bet…

May 2025

  • New GraphQL Analytics API Explorer and MCP Server

    We’ve launched two powerful new tools to make the GraphQL Analytics API more accessible: GraphQL API Explorer The new GraphQL API Explorer ↗︎ helps you build, test, and run queries directly in your browser. Features include: In-browser schema documentation to browse available datasets and fields Interactive query editor with autocomplete and inline documentation A "Run in GraphQL API Explorer" bu…