Skip to content
Start here

Table

dns_firewall.analytics.reports.get(strdns_firewall_id, ReportGetParams**kwargs) -> Report
GET/accounts/{account_id}/dns_firewall/{dns_firewall_id}/dns_analytics/report

Retrieves a list of summarised aggregate metrics over a given time period.

See Analytics API properties for detailed information about the available query parameters.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
DNS Firewall WriteDNS Firewall Read
ParametersExpand Collapse
account_id: str

Identifier.

maxLength32
dns_firewall_id: str

Identifier.

maxLength32
dimensions: Optional[str]

A comma-separated list of dimensions to group results by.

filters: Optional[str]

Segmentation filter in ‘attribute operator value’ format.

limit: Optional[int]

Limit number of returned metrics.

metrics: Optional[str]

A comma-separated list of metrics to query.

since: Optional[Union[str, datetime]]

Start date and time of requesting data period in ISO 8601 format.

formatdate-time
sort: Optional[str]

A comma-separated list of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending).

until: Optional[Union[str, datetime]]

End date and time of requesting data period in ISO 8601 format.

formatdate-time
ReturnsExpand Collapse
class Report:
data: List[Data]

Array with one row per combination of dimension values.

dimensions: List[str]

Array of dimension values, representing the combination of dimension values corresponding to this row.

metrics: List[float]

Array with one item per requested metric. Each item is a single value.

data_lag: float

Number of seconds between current time and last processed event, in another words how many seconds of data could be missing.

minimum0
max: object

Maximum results for each metric (object mapping metric names to values). Currently always an empty object.

min: object

Minimum results for each metric (object mapping metric names to values). Currently always an empty object.

query: Query
dimensions: List[str]

Array of dimension names.

limit: int

Limit number of returned metrics.

metrics: List[str]

Array of metric names.

since: datetime

Start date and time of requesting data period in ISO 8601 format.

formatdate-time
until: datetime

End date and time of requesting data period in ISO 8601 format.

formatdate-time
filters: Optional[str]

Segmentation filter in ‘attribute operator value’ format.

sort: Optional[List[str]]

Array of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending).

rows: float

Total number of rows in the result.

minimum0
totals: object

Total results for metrics across all data (object mapping metric names to values).

Table

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
report = client.dns_firewall.analytics.reports.get(
    dns_firewall_id="023e105f4ecef8ad9ca31a8372d0c353",
    account_id="023e105f4ecef8ad9ca31a8372d0c353",
)
print(report.data)
{
  "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": {}
  }
}
Returns Examples
{
  "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": {}
  }
}