## Query analytics timeseries `client.analyticsQuery.timeseries(stringdataset, AnalyticsQueryTimeseriesParamsparams, RequestOptionsoptions?): AnalyticsQueryTimeseriesResponse` **post** `/accounts/{account_id}/analytics/query/{dataset}/timeseries` Returns time-bucketed analytics data for a dataset. Includes time slots, each containing the requested stats, group-by dimensions, and resolution-controlled bucket size (e.g. `hour`, `day`). ### Parameters - `dataset: string` - `params: AnalyticsQueryTimeseriesParams` - `account_id: string` Path param: Cloudflare account identifier. - `filters: Array` Body param: Filters to apply before aggregating results. - `name: string` Specifies the column name to filter on. Requires a valid column for the target dataset (e.g. `country`, `allowed`, `appId`). - `op: string` Filter operator. Common values: `eq`, `neq`, `in`, `not_in`, `gt`, `lt`, `gte`, `lte`. - `values: Array` Values to match against. Type depends on the column. - `string` - `boolean` - `number` - `from: string` Body param: The start of the query time range (inclusive). RFC3339 format with timezone is required (e.g. `2024-11-05T00:00:00Z`). - `groupBy: Array` Body param: Specifies the column names to group results by. Requires valid columns for the target dataset. - `resolution: string` Body param: Time bucket size for grouping results. Controls the granularity of the returned time slots. - `stats: Array` Body param: Specifies the stat names to include in results. Requires valid stats for the target dataset (e.g. `attemptsTotal`, `bytesTotal`). - `to: string` Body param: Specifies the end of the query time range (exclusive). Requires RFC3339 format with timezone. ### Returns - `AnalyticsQueryTimeseriesResponse` - `resolution: string` The resolution used for time bucketing. - `slots: Array>` Time-bucketed result rows. Each slot contains a `time_bucket` field plus the requested stats and group-by dimensions. ### Example ```typescript import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.analyticsQuery.timeseries('shadow_it', { account_id: '023e105f4ecef8ad9ca31a8372d0c353', filters: [ { name: 'allowed', op: 'eq', values: [true], }, ], from: '2024-11-01T00:00:00Z', groupBy: ['country', 'allowed'], resolution: 'day', stats: ['attemptsTotal'], to: '2024-11-08T00:00:00Z', }); console.log(response.resolution); ``` #### Response ```json { "errors": [], "messages": [ { "code": 1000, "message": "API in beta: expect breaking changes." } ], "result": { "resolution": "hour", "slots": [ { "appName": "Slack", "bytesTotal": 1048576, "time_bucket": "2024-11-05T00:00:00Z" }, { "appName": "Slack", "bytesTotal": 2097152, "time_bucket": "2024-11-05T01:00:00Z" } ] }, "success": true } ```