# Analytics # Reports ## Table `client.dns.analytics.reports.get(ReportGetParamsparams, RequestOptionsoptions?): Report` **get** `/zones/{zone_id}/dns_analytics/report` Retrieves a list of summarised aggregate metrics over a given time period. See [Analytics API properties](https://developers.cloudflare.com/dns/reference/analytics-api-properties/) for detailed information about the available query parameters. ### Parameters - `params: ReportGetParams` - `zone_id: string` Path param: Identifier. - `dimensions?: string` Query param: A comma-separated list of dimensions to group results by. - `filters?: string` Query param: Segmentation filter in 'attribute operator value' format. - `limit?: number` Query param: Limit number of returned metrics. - `metrics?: string` Query param: A comma-separated list of metrics to query. - `since?: string` Query param: Start date and time of requesting data period in ISO 8601 format. - `sort?: string` Query param: A comma-separated list of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). - `until?: string` Query param: End date and time of requesting data period in ISO 8601 format. ### Returns - `Report` - `data: Array` Array with one row per combination of dimension values. - `dimensions: Array` Array of dimension values, representing the combination of dimension values corresponding to this row. - `metrics: Array` Array with one item per requested metric. Each item is a single value. - `data_lag: number` Number of seconds between current time and last processed event, in another words how many seconds of data could be missing. - `max: unknown` Maximum results for each metric (object mapping metric names to values). Currently always an empty object. - `min: unknown` Minimum results for each metric (object mapping metric names to values). Currently always an empty object. - `query: Query` - `dimensions: Array` Array of dimension names. - `limit: number` Limit number of returned metrics. - `metrics: Array` Array of metric names. - `since: string` Start date and time of requesting data period in ISO 8601 format. - `until: string` End date and time of requesting data period in ISO 8601 format. - `filters?: string` Segmentation filter in 'attribute operator value' format. - `sort?: Array` Array of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). - `rows: number` Total number of rows in the result. - `totals: unknown` Total results for metrics across all data (object mapping metric names to values). ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const report = await client.dns.analytics.reports.get({ zone_id: '023e105f4ecef8ad9ca31a8372d0c353', }); console.log(report.data); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "data": [ { "dimensions": [ "NODATA" ], "metrics": [ 0 ] } ], "data_lag": 60, "max": {}, "min": {}, "query": { "dimensions": [ "responseCode", "queryName" ], "limit": 100, "metrics": [ "queryCount", "responseTimeAvg" ], "since": "2023-11-11T12:00:00Z", "until": "2023-11-11T13:00:00Z", "filters": "responseCode==NOERROR,queryType==A", "sort": [ "+responseCode", "-queryName" ] }, "rows": 100, "totals": {} } } ``` ## Domain Types ### Report - `Report` - `data: Array` Array with one row per combination of dimension values. - `dimensions: Array` Array of dimension values, representing the combination of dimension values corresponding to this row. - `metrics: Array` Array with one item per requested metric. Each item is a single value. - `data_lag: number` Number of seconds between current time and last processed event, in another words how many seconds of data could be missing. - `max: unknown` Maximum results for each metric (object mapping metric names to values). Currently always an empty object. - `min: unknown` Minimum results for each metric (object mapping metric names to values). Currently always an empty object. - `query: Query` - `dimensions: Array` Array of dimension names. - `limit: number` Limit number of returned metrics. - `metrics: Array` Array of metric names. - `since: string` Start date and time of requesting data period in ISO 8601 format. - `until: string` End date and time of requesting data period in ISO 8601 format. - `filters?: string` Segmentation filter in 'attribute operator value' format. - `sort?: Array` Array of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). - `rows: number` Total number of rows in the result. - `totals: unknown` Total results for metrics across all data (object mapping metric names to values). # Bytimes ## By Time `client.dns.analytics.reports.bytimes.get(BytimeGetParamsparams, RequestOptionsoptions?): ByTime` **get** `/zones/{zone_id}/dns_analytics/report/bytime` Retrieves a list of aggregate metrics grouped by time interval. See [Analytics API properties](https://developers.cloudflare.com/dns/reference/analytics-api-properties/) for detailed information about the available query parameters. ### Parameters - `params: BytimeGetParams` - `zone_id: string` Path param: Identifier. - `dimensions?: string` Query param: A comma-separated list of dimensions to group results by. - `filters?: string` Query param: Segmentation filter in 'attribute operator value' format. - `limit?: number` Query param: Limit number of returned metrics. - `metrics?: string` Query param: A comma-separated list of metrics to query. - `since?: string` Query param: Start date and time of requesting data period in ISO 8601 format. - `sort?: string` Query param: A comma-separated list of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). - `time_delta?: "all" | "auto" | "year" | 7 more` Query param: Unit of time to group data by. - `"all"` - `"auto"` - `"year"` - `"quarter"` - `"month"` - `"week"` - `"day"` - `"hour"` - `"dekaminute"` - `"minute"` - `until?: string` Query param: End date and time of requesting data period in ISO 8601 format. ### Returns - `ByTime` - `data: Array` Array with one row per combination of dimension values. - `dimensions: Array` Array of dimension values, representing the combination of dimension values corresponding to this row. - `metrics: Array>` Array with one item per requested metric. Each item is an array of values, broken down by time interval. - `data_lag: number` Number of seconds between current time and last processed event, in another words how many seconds of data could be missing. - `max: unknown` Maximum results for each metric (object mapping metric names to values). Currently always an empty object. - `min: unknown` Minimum results for each metric (object mapping metric names to values). Currently always an empty object. - `query: Query` - `dimensions: Array` Array of dimension names. - `limit: number` Limit number of returned metrics. - `metrics: Array` Array of metric names. - `since: string` Start date and time of requesting data period in ISO 8601 format. - `time_delta: "all" | "auto" | "year" | 7 more` Unit of time to group data by. - `"all"` - `"auto"` - `"year"` - `"quarter"` - `"month"` - `"week"` - `"day"` - `"hour"` - `"dekaminute"` - `"minute"` - `until: string` End date and time of requesting data period in ISO 8601 format. - `filters?: string` Segmentation filter in 'attribute operator value' format. - `sort?: Array` Array of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). - `rows: number` Total number of rows in the result. - `time_intervals: Array>` Array of time intervals in the response data. Each interval is represented as an array containing two values: the start time, and the end time. - `totals: unknown` Total results for metrics across all data (object mapping metric names to values). ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const byTime = await client.dns.analytics.reports.bytimes.get({ zone_id: '023e105f4ecef8ad9ca31a8372d0c353', }); console.log(byTime.data); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "data": [ { "dimensions": [ "NODATA" ], "metrics": [ [ 0 ] ] } ], "data_lag": 60, "max": {}, "min": {}, "query": { "dimensions": [ "responseCode", "queryName" ], "limit": 100, "metrics": [ "queryCount", "responseTimeAvg" ], "since": "2023-11-11T12:00:00Z", "time_delta": "hour", "until": "2023-11-11T13:00:00Z", "filters": "responseCode==NOERROR,queryType==A", "sort": [ "+responseCode", "-queryName" ] }, "rows": 100, "time_intervals": [ [ "2023-11-11T12:00:00Z" ] ], "totals": {} } } ``` ## Domain Types ### By Time - `ByTime` - `data: Array` Array with one row per combination of dimension values. - `dimensions: Array` Array of dimension values, representing the combination of dimension values corresponding to this row. - `metrics: Array>` Array with one item per requested metric. Each item is an array of values, broken down by time interval. - `data_lag: number` Number of seconds between current time and last processed event, in another words how many seconds of data could be missing. - `max: unknown` Maximum results for each metric (object mapping metric names to values). Currently always an empty object. - `min: unknown` Minimum results for each metric (object mapping metric names to values). Currently always an empty object. - `query: Query` - `dimensions: Array` Array of dimension names. - `limit: number` Limit number of returned metrics. - `metrics: Array` Array of metric names. - `since: string` Start date and time of requesting data period in ISO 8601 format. - `time_delta: "all" | "auto" | "year" | 7 more` Unit of time to group data by. - `"all"` - `"auto"` - `"year"` - `"quarter"` - `"month"` - `"week"` - `"day"` - `"hour"` - `"dekaminute"` - `"minute"` - `until: string` End date and time of requesting data period in ISO 8601 format. - `filters?: string` Segmentation filter in 'attribute operator value' format. - `sort?: Array` Array of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). - `rows: number` Total number of rows in the result. - `time_intervals: Array>` Array of time intervals in the response data. Each interval is represented as an array containing two values: the start time, and the end time. - `totals: unknown` Total results for metrics across all data (object mapping metric names to values).