# Radar # AI # To Markdown ## Convert Files into Markdown `radar.ai.to_markdown.create(ToMarkdownCreateParams**kwargs) -> SyncSinglePage[ToMarkdownCreateResponse]` **post** `/accounts/{account_id}/ai/tomarkdown` Converts uploaded files into Markdown format using Workers AI. ### Parameters - `account_id: str` - `files: SequenceNotStr[FileTypes]` ### Returns - `class ToMarkdownCreateResponse: …` - `data: str` - `format: str` - `mime_type: str` - `name: str` - `tokens: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.radar.ai.to_markdown.create( account_id="023e105f4ecef8ad9ca31a8372d0c353", files=[b"Example data"], ) page = page.result[0] print(page.data) ``` #### Response ```json { "result": [ { "data": "data", "format": "format", "mimeType": "mimeType", "name": "name", "tokens": "tokens" } ], "success": true } ``` ## Domain Types ### To Markdown Create Response - `class ToMarkdownCreateResponse: …` - `data: str` - `format: str` - `mime_type: str` - `name: str` - `tokens: str` # Inference ## Get Workers AI inference distribution by dimension `radar.ai.inference.summary_v2(Literal["MODEL", "TASK"]dimension, InferenceSummaryV2Params**kwargs) -> InferenceSummaryV2Response` **get** `/radar/ai/inference/summary/{dimension}` Retrieves an aggregated summary of unique accounts using Workers AI inference grouped by the specified dimension. ### Parameters - `dimension: Literal["MODEL", "TASK"]` Specifies the attribute by which to group the results. - `"MODEL"` - `"TASK"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class InferenceSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.inference.summary_v2( dimension="MODEL", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "@cf/meta/llama-3-8b-instruct": "8.381743", "@cf/meta/m2m100-1.2b": "22.904", "@cf/stabilityai/stable-diffusion-xl-base-1.0": "10.274394" } }, "success": true } ``` ## Get time series distribution of Workers AI inference by dimension. `radar.ai.inference.timeseries_groups_v2(Literal["MODEL", "TASK"]dimension, InferenceTimeseriesGroupsV2Params**kwargs) -> InferenceTimeseriesGroupsV2Response` **get** `/radar/ai/inference/timeseries_groups/{dimension}` Retrieves the distribution of unique accounts using Workers AI inference, grouped by the specified dimension over time. ### Parameters - `dimension: Literal["MODEL", "TASK"]` Specifies the attribute by which to group the results. - `"MODEL"` - `"TASK"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` ### Returns - `class InferenceTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.inference.timeseries_groups_v2( dimension="MODEL", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Inference Summary V2 Response - `class InferenceSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Inference Timeseries Groups V2 Response - `class InferenceTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Summary ## Get Workers AI models summary `radar.ai.inference.summary.model(SummaryModelParams**kwargs) -> SummaryModelResponse` **get** `/radar/ai/inference/summary/model` Retrieves the distribution of unique accounts by model. ### Parameters - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryModelResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.inference.summary.model() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "@cf/meta/llama-3-8b-instruct": "8.381743", "@cf/meta/m2m100-1.2b": "22.904", "@cf/stabilityai/stable-diffusion-xl-base-1.0": "10.274394" } }, "success": true } ``` ## Get Workers AI tasks summary `radar.ai.inference.summary.task(SummaryTaskParams**kwargs) -> SummaryTaskResponse` **get** `/radar/ai/inference/summary/task` Retrieves the distribution of unique accounts by task. ### Parameters - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryTaskResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.inference.summary.task() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "text generation": "10.274394", "text-to-image": "22.904" } }, "success": true } ``` ## Domain Types ### Summary Model Response - `class SummaryModelResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Summary Task Response - `class SummaryTaskResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` # Timeseries Groups # Summary ## Get Workers AI models time series `radar.ai.inference.timeseries_groups.summary.model(SummaryModelParams**kwargs) -> SummaryModelResponse` **get** `/radar/ai/inference/timeseries_groups/model` Retrieves the distribution of unique accounts by model over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryModelResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.inference.timeseries_groups.summary.model() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get Workers AI tasks time series `radar.ai.inference.timeseries_groups.summary.task(SummaryTaskParams**kwargs) -> SummaryTaskResponse` **get** `/radar/ai/inference/timeseries_groups/task` Retrieves the distribution of unique accounts by task over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryTaskResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.inference.timeseries_groups.summary.task() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Summary Model Response - `class SummaryModelResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Summary Task Response - `class SummaryTaskResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Bots ## Get AI bots HTTP requests distribution by dimension `radar.ai.bots.summary_v2(Literal["USER_AGENT", "CRAWL_PURPOSE", "INDUSTRY", 2 more]dimension, BotSummaryV2Params**kwargs) -> BotSummaryV2Response` **get** `/radar/ai/bots/summary/{dimension}` Retrieves an aggregated summary of AI bots HTTP requests grouped by the specified dimension. ### Parameters - `dimension: Literal["USER_AGENT", "CRAWL_PURPOSE", "INDUSTRY", 2 more]` Specifies the attribute by which to group the results. - `"USER_AGENT"` - `"CRAWL_PURPOSE"` - `"INDUSTRY"` - `"VERTICAL"` - `"CONTENT_TYPE"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `content_type: Optional[List[Literal["HTML", "IMAGES", "JSON", 13 more]]]` Filters results by content type category. - `"HTML"` - `"IMAGES"` - `"JSON"` - `"JAVASCRIPT"` - `"CSS"` - `"PLAIN_TEXT"` - `"FONTS"` - `"XML"` - `"YAML"` - `"VIDEO"` - `"AUDIO"` - `"MARKDOWN"` - `"DOCUMENTS"` - `"BINARY"` - `"SERIALIZATION"` - `"OTHER"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `crawl_purpose: Optional[SequenceNotStr[str]]` Filters results by bot crawl purpose. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `industry: Optional[SequenceNotStr[str]]` Filters results by industry. - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `user_agent: Optional[SequenceNotStr[str]]` Filters results by user agent. - `vertical: Optional[SequenceNotStr[str]]` Filters results by vertical. ### Returns - `class BotSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.bots.summary_v2( dimension="USER_AGENT", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "Amazonbot": "10.274394", "Bytespider": "8.381743", "facebookexternalhit": "63.40249" } }, "success": true } ``` ## Get AI bots HTTP requests time series `radar.ai.bots.timeseries(BotTimeseriesParams**kwargs) -> BotTimeseriesResponse` **get** `/radar/ai/bots/timeseries` Retrieves AI bots HTTP request volume over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `content_type: Optional[List[Literal["HTML", "IMAGES", "JSON", 13 more]]]` Filters results by content type category. - `"HTML"` - `"IMAGES"` - `"JSON"` - `"JAVASCRIPT"` - `"CSS"` - `"PLAIN_TEXT"` - `"FONTS"` - `"XML"` - `"YAML"` - `"VIDEO"` - `"AUDIO"` - `"MARKDOWN"` - `"DOCUMENTS"` - `"BINARY"` - `"SERIALIZATION"` - `"OTHER"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `crawl_purpose: Optional[SequenceNotStr[str]]` Filters results by bot crawl purpose. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `industry: Optional[SequenceNotStr[str]]` Filters results by industry. - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `user_agent: Optional[SequenceNotStr[str]]` Filters results by user agent. - `vertical: Optional[SequenceNotStr[str]]` Filters results by vertical. ### Returns - `class BotTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.bots.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] } }, "success": true } ``` ## Get time series distribution of AI bots HTTP requests by dimension. `radar.ai.bots.timeseries_groups(Literal["USER_AGENT", "CRAWL_PURPOSE", "INDUSTRY", 2 more]dimension, BotTimeseriesGroupsParams**kwargs) -> BotTimeseriesGroupsResponse` **get** `/radar/ai/bots/timeseries_groups/{dimension}` Retrieves the distribution of HTTP requests from AI bots, grouped by the specified dimension over time. ### Parameters - `dimension: Literal["USER_AGENT", "CRAWL_PURPOSE", "INDUSTRY", 2 more]` Specifies the attribute by which to group the results. - `"USER_AGENT"` - `"CRAWL_PURPOSE"` - `"INDUSTRY"` - `"VERTICAL"` - `"CONTENT_TYPE"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `content_type: Optional[List[Literal["HTML", "IMAGES", "JSON", 13 more]]]` Filters results by content type category. - `"HTML"` - `"IMAGES"` - `"JSON"` - `"JAVASCRIPT"` - `"CSS"` - `"PLAIN_TEXT"` - `"FONTS"` - `"XML"` - `"YAML"` - `"VIDEO"` - `"AUDIO"` - `"MARKDOWN"` - `"DOCUMENTS"` - `"BINARY"` - `"SERIALIZATION"` - `"OTHER"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `crawl_purpose: Optional[SequenceNotStr[str]]` Filters results by bot crawl purpose. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `industry: Optional[SequenceNotStr[str]]` Filters results by industry. - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `user_agent: Optional[SequenceNotStr[str]]` Filters results by user agent. - `vertical: Optional[SequenceNotStr[str]]` Filters results by vertical. ### Returns - `class BotTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.bots.timeseries_groups( dimension="USER_AGENT", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Bot Summary V2 Response - `class BotSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Bot Timeseries Response - `class BotTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Bot Timeseries Groups Response - `class BotTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Summary ## Get AI user agents summary `radar.ai.bots.summary.user_agent(SummaryUserAgentParams**kwargs) -> SummaryUserAgentResponse` **get** `/radar/ai/bots/summary/user_agent` Retrieves the distribution of traffic by AI user agent. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryUserAgentResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.bots.summary.user_agent() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "Amazonbot": "10.274394", "Bytespider": "8.381743", "facebookexternalhit": "63.40249" } }, "success": true } ``` ## Domain Types ### Summary User Agent Response - `class SummaryUserAgentResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` # Timeseries Groups ## Get AI user agents time series `radar.ai.timeseries_groups.user_agent(TimeseriesGroupUserAgentParams**kwargs) -> TimeseriesGroupUserAgentResponse` **get** `/radar/ai/bots/timeseries_groups/user_agent` Retrieves the distribution of traffic by AI user agent over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TimeseriesGroupUserAgentResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.timeseries_groups.user_agent() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get AI bots HTTP requests distribution by dimension `radar.ai.timeseries_groups.summary(Literal["USER_AGENT", "CRAWL_PURPOSE", "INDUSTRY", 2 more]dimension, TimeseriesGroupSummaryParams**kwargs) -> TimeseriesGroupSummaryResponse` **get** `/radar/ai/bots/summary/{dimension}` Retrieves an aggregated summary of AI bots HTTP requests grouped by the specified dimension. ### Parameters - `dimension: Literal["USER_AGENT", "CRAWL_PURPOSE", "INDUSTRY", 2 more]` Specifies the attribute by which to group the results. - `"USER_AGENT"` - `"CRAWL_PURPOSE"` - `"INDUSTRY"` - `"VERTICAL"` - `"CONTENT_TYPE"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `content_type: Optional[List[Literal["HTML", "IMAGES", "JSON", 13 more]]]` Filters results by content type category. - `"HTML"` - `"IMAGES"` - `"JSON"` - `"JAVASCRIPT"` - `"CSS"` - `"PLAIN_TEXT"` - `"FONTS"` - `"XML"` - `"YAML"` - `"VIDEO"` - `"AUDIO"` - `"MARKDOWN"` - `"DOCUMENTS"` - `"BINARY"` - `"SERIALIZATION"` - `"OTHER"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `crawl_purpose: Optional[SequenceNotStr[str]]` Filters results by bot crawl purpose. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `industry: Optional[SequenceNotStr[str]]` Filters results by industry. - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `user_agent: Optional[SequenceNotStr[str]]` Filters results by user agent. - `vertical: Optional[SequenceNotStr[str]]` Filters results by vertical. ### Returns - `class TimeseriesGroupSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.timeseries_groups.summary( dimension="USER_AGENT", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "Amazonbot": "10.274394", "Bytespider": "8.381743", "facebookexternalhit": "63.40249" } }, "success": true } ``` ## Get AI bots HTTP requests time series `radar.ai.timeseries_groups.timeseries(TimeseriesGroupTimeseriesParams**kwargs) -> TimeseriesGroupTimeseriesResponse` **get** `/radar/ai/bots/timeseries` Retrieves AI bots HTTP request volume over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `content_type: Optional[List[Literal["HTML", "IMAGES", "JSON", 13 more]]]` Filters results by content type category. - `"HTML"` - `"IMAGES"` - `"JSON"` - `"JAVASCRIPT"` - `"CSS"` - `"PLAIN_TEXT"` - `"FONTS"` - `"XML"` - `"YAML"` - `"VIDEO"` - `"AUDIO"` - `"MARKDOWN"` - `"DOCUMENTS"` - `"BINARY"` - `"SERIALIZATION"` - `"OTHER"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `crawl_purpose: Optional[SequenceNotStr[str]]` Filters results by bot crawl purpose. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `industry: Optional[SequenceNotStr[str]]` Filters results by industry. - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `user_agent: Optional[SequenceNotStr[str]]` Filters results by user agent. - `vertical: Optional[SequenceNotStr[str]]` Filters results by vertical. ### Returns - `class TimeseriesGroupTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.timeseries_groups.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] } }, "success": true } ``` ## Get time series distribution of AI bots HTTP requests by dimension. `radar.ai.timeseries_groups.timeseries_groups(Literal["USER_AGENT", "CRAWL_PURPOSE", "INDUSTRY", 2 more]dimension, TimeseriesGroupTimeseriesGroupsParams**kwargs) -> TimeseriesGroupTimeseriesGroupsResponse` **get** `/radar/ai/bots/timeseries_groups/{dimension}` Retrieves the distribution of HTTP requests from AI bots, grouped by the specified dimension over time. ### Parameters - `dimension: Literal["USER_AGENT", "CRAWL_PURPOSE", "INDUSTRY", 2 more]` Specifies the attribute by which to group the results. - `"USER_AGENT"` - `"CRAWL_PURPOSE"` - `"INDUSTRY"` - `"VERTICAL"` - `"CONTENT_TYPE"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `content_type: Optional[List[Literal["HTML", "IMAGES", "JSON", 13 more]]]` Filters results by content type category. - `"HTML"` - `"IMAGES"` - `"JSON"` - `"JAVASCRIPT"` - `"CSS"` - `"PLAIN_TEXT"` - `"FONTS"` - `"XML"` - `"YAML"` - `"VIDEO"` - `"AUDIO"` - `"MARKDOWN"` - `"DOCUMENTS"` - `"BINARY"` - `"SERIALIZATION"` - `"OTHER"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `crawl_purpose: Optional[SequenceNotStr[str]]` Filters results by bot crawl purpose. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `industry: Optional[SequenceNotStr[str]]` Filters results by industry. - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `user_agent: Optional[SequenceNotStr[str]]` Filters results by user agent. - `vertical: Optional[SequenceNotStr[str]]` Filters results by vertical. ### Returns - `class TimeseriesGroupTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ai.timeseries_groups.timeseries_groups( dimension="USER_AGENT", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Timeseries Group User Agent Response - `class TimeseriesGroupUserAgentResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group Summary Response - `class TimeseriesGroupSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Timeseries Group Timeseries Response - `class TimeseriesGroupTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Timeseries Group Timeseries Groups Response - `class TimeseriesGroupTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # CT ## Get certificate distribution by dimension `radar.ct.summary(Literal["CA", "CA_OWNER", "DURATION", 11 more]dimension, CTSummaryParams**kwargs) -> CTSummaryResponse` **get** `/radar/ct/summary/{dimension}` Retrieves an aggregated summary of certificates grouped by the specified dimension. ### Parameters - `dimension: Literal["CA", "CA_OWNER", "DURATION", 11 more]` Specifies the certificate attribute by which to group the results. - `"CA"` - `"CA_OWNER"` - `"DURATION"` - `"ENTRY_TYPE"` - `"EXPIRATION_STATUS"` - `"HAS_IPS"` - `"HAS_WILDCARDS"` - `"LOG"` - `"LOG_API"` - `"LOG_OPERATOR"` - `"PUBLIC_KEY_ALGORITHM"` - `"SIGNATURE_ALGORITHM"` - `"TLD"` - `"VALIDATION_LEVEL"` - `ca: Optional[SequenceNotStr[str]]` Filters results by certificate authority. - `ca_owner: Optional[SequenceNotStr[str]]` Filters results by certificate authority owner. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `duration: Optional[List[Literal["LTE_3D", "GT_3D_LTE_7D", "GT_7D_LTE_10D", 4 more]]]` Filters results by certificate duration. - `"LTE_3D"` - `"GT_3D_LTE_7D"` - `"GT_7D_LTE_10D"` - `"GT_10D_LTE_47D"` - `"GT_47D_LTE_100D"` - `"GT_100D_LTE_200D"` - `"GT_200D"` - `entry_type: Optional[List[Literal["PRECERTIFICATE", "CERTIFICATE"]]]` Filters results by entry type (certificate vs. pre-certificate). - `"PRECERTIFICATE"` - `"CERTIFICATE"` - `expiration_status: Optional[List[Literal["EXPIRED", "VALID"]]]` Filters results by expiration status (expired vs. valid). - `"EXPIRED"` - `"VALID"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `has_ips: Optional[Iterable[bool]]` Filters results based on whether the certificates are bound to specific IP addresses. - `has_wildcards: Optional[Iterable[bool]]` Filters results based on whether the certificates contain wildcard domains. - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `log: Optional[SequenceNotStr[str]]` Filters results by certificate log. - `log_api: Optional[List[Literal["RFC6962", "STATIC"]]]` Filters results by certificate log API (RFC6962 vs. static). - `"RFC6962"` - `"STATIC"` - `log_operator: Optional[SequenceNotStr[str]]` Filters results by certificate log operator. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["RAW_VALUES", "PERCENTAGE"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"RAW_VALUES"` - `"PERCENTAGE"` - `public_key_algorithm: Optional[List[Literal["DSA", "ECDSA", "RSA"]]]` Filters results by public key algorithm. - `"DSA"` - `"ECDSA"` - `"RSA"` - `signature_algorithm: Optional[List[Literal["DSA_SHA_1", "DSA_SHA_256", "ECDSA_SHA_1", 12 more]]]` Filters results by signature algorithm. - `"DSA_SHA_1"` - `"DSA_SHA_256"` - `"ECDSA_SHA_1"` - `"ECDSA_SHA_256"` - `"ECDSA_SHA_384"` - `"ECDSA_SHA_512"` - `"PSS_SHA_256"` - `"PSS_SHA_384"` - `"PSS_SHA_512"` - `"RSA_MD2"` - `"RSA_MD5"` - `"RSA_SHA_1"` - `"RSA_SHA_256"` - `"RSA_SHA_384"` - `"RSA_SHA_512"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. - `unique_entries: Optional[List[Literal["true", "false"]]]` Specifies whether to filter out duplicate certificates and pre-certificates. Set to true for unique entries only. - `"true"` - `"false"` - `validation_level: Optional[List[Literal["DOMAIN", "ORGANIZATION", "EXTENDED"]]]` Filters results by validation level. - `"DOMAIN"` - `"ORGANIZATION"` - `"EXTENDED"` ### Returns - `class CTSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `Dict[str, str]` - `class Summary0UnionMember1: …` - `rfc6962: str` - `static: str` - `class Summary0UnionMember2: …` - `gt_121d: str` - `gt_16d_lte_31d: str` - `gt_31d_lte_91d: str` - `gt_3d_lte_16d: str` - `gt_91d_lte_121d: str` - `lte_3d: str` - `class Summary0UnionMember3: …` - `certificate: str` - `precertificate: str` - `class Summary0UnionMember4: …` - `expired: str` - `valid: str` - `class Summary0UnionMember5: …` - `negative: str` - `positive: str` - `class Summary0UnionMember6: …` - `dsa: str` - `ecdsa: str` - `rsa: str` - `class Summary0UnionMember7: …` - `domain: str` - `extended: str` - `organization: str` - `unknown: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ct.summary( dimension="CA", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "DigiCert": "10.274394", "GoDaddy": "8.381743", "Internet Security Research Group": "63.40249" } }, "success": true } ``` ## Get certificates time series `radar.ct.timeseries(CTTimeseriesParams**kwargs) -> CTTimeseriesResponse` **get** `/radar/ct/timeseries` Retrieves certificate volume over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `ca: Optional[SequenceNotStr[str]]` Filters results by certificate authority. - `ca_owner: Optional[SequenceNotStr[str]]` Filters results by certificate authority owner. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `duration: Optional[List[Literal["LTE_3D", "GT_3D_LTE_7D", "GT_7D_LTE_10D", 4 more]]]` Filters results by certificate duration. - `"LTE_3D"` - `"GT_3D_LTE_7D"` - `"GT_7D_LTE_10D"` - `"GT_10D_LTE_47D"` - `"GT_47D_LTE_100D"` - `"GT_100D_LTE_200D"` - `"GT_200D"` - `entry_type: Optional[List[Literal["PRECERTIFICATE", "CERTIFICATE"]]]` Filters results by entry type (certificate vs. pre-certificate). - `"PRECERTIFICATE"` - `"CERTIFICATE"` - `expiration_status: Optional[List[Literal["EXPIRED", "VALID"]]]` Filters results by expiration status (expired vs. valid). - `"EXPIRED"` - `"VALID"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `has_ips: Optional[Iterable[bool]]` Filters results based on whether the certificates are bound to specific IP addresses. - `has_wildcards: Optional[Iterable[bool]]` Filters results based on whether the certificates contain wildcard domains. - `log: Optional[SequenceNotStr[str]]` Filters results by certificate log. - `log_api: Optional[List[Literal["RFC6962", "STATIC"]]]` Filters results by certificate log API (RFC6962 vs. static). - `"RFC6962"` - `"STATIC"` - `log_operator: Optional[SequenceNotStr[str]]` Filters results by certificate log operator. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `public_key_algorithm: Optional[List[Literal["DSA", "ECDSA", "RSA"]]]` Filters results by public key algorithm. - `"DSA"` - `"ECDSA"` - `"RSA"` - `signature_algorithm: Optional[List[Literal["DSA_SHA_1", "DSA_SHA_256", "ECDSA_SHA_1", 12 more]]]` Filters results by signature algorithm. - `"DSA_SHA_1"` - `"DSA_SHA_256"` - `"ECDSA_SHA_1"` - `"ECDSA_SHA_256"` - `"ECDSA_SHA_384"` - `"ECDSA_SHA_512"` - `"PSS_SHA_256"` - `"PSS_SHA_384"` - `"PSS_SHA_512"` - `"RSA_MD2"` - `"RSA_MD5"` - `"RSA_SHA_1"` - `"RSA_SHA_256"` - `"RSA_SHA_384"` - `"RSA_SHA_512"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. - `unique_entries: Optional[List[Literal["true", "false"]]]` Specifies whether to filter out duplicate certificates and pre-certificates. Set to true for unique entries only. - `"true"` - `"false"` - `validation_level: Optional[List[Literal["DOMAIN", "ORGANIZATION", "EXTENDED"]]]` Filters results by validation level. - `"DOMAIN"` - `"ORGANIZATION"` - `"EXTENDED"` ### Returns - `class CTTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ct.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] } }, "success": true } ``` ## Get time series of certificate distribution by dimension `radar.ct.timeseries_groups(Literal["CA", "CA_OWNER", "DURATION", 11 more]dimension, CTTimeseriesGroupsParams**kwargs) -> CTTimeseriesGroupsResponse` **get** `/radar/ct/timeseries_groups/{dimension}` Retrieves the distribution of certificates grouped by the specified dimension over time. ### Parameters - `dimension: Literal["CA", "CA_OWNER", "DURATION", 11 more]` Specifies the certificate attribute by which to group the results. - `"CA"` - `"CA_OWNER"` - `"DURATION"` - `"ENTRY_TYPE"` - `"EXPIRATION_STATUS"` - `"HAS_IPS"` - `"HAS_WILDCARDS"` - `"LOG"` - `"LOG_API"` - `"LOG_OPERATOR"` - `"PUBLIC_KEY_ALGORITHM"` - `"SIGNATURE_ALGORITHM"` - `"TLD"` - `"VALIDATION_LEVEL"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `ca: Optional[SequenceNotStr[str]]` Filters results by certificate authority. - `ca_owner: Optional[SequenceNotStr[str]]` Filters results by certificate authority owner. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `duration: Optional[List[Literal["LTE_3D", "GT_3D_LTE_7D", "GT_7D_LTE_10D", 4 more]]]` Filters results by certificate duration. - `"LTE_3D"` - `"GT_3D_LTE_7D"` - `"GT_7D_LTE_10D"` - `"GT_10D_LTE_47D"` - `"GT_47D_LTE_100D"` - `"GT_100D_LTE_200D"` - `"GT_200D"` - `entry_type: Optional[List[Literal["PRECERTIFICATE", "CERTIFICATE"]]]` Filters results by entry type (certificate vs. pre-certificate). - `"PRECERTIFICATE"` - `"CERTIFICATE"` - `expiration_status: Optional[List[Literal["EXPIRED", "VALID"]]]` Filters results by expiration status (expired vs. valid). - `"EXPIRED"` - `"VALID"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `has_ips: Optional[Iterable[bool]]` Filters results based on whether the certificates are bound to specific IP addresses. - `has_wildcards: Optional[Iterable[bool]]` Filters results based on whether the certificates contain wildcard domains. - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `log: Optional[SequenceNotStr[str]]` Filters results by certificate log. - `log_api: Optional[List[Literal["RFC6962", "STATIC"]]]` Filters results by certificate log API (RFC6962 vs. static). - `"RFC6962"` - `"STATIC"` - `log_operator: Optional[SequenceNotStr[str]]` Filters results by certificate log operator. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["RAW_VALUES", "PERCENTAGE"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"RAW_VALUES"` - `"PERCENTAGE"` - `public_key_algorithm: Optional[List[Literal["DSA", "ECDSA", "RSA"]]]` Filters results by public key algorithm. - `"DSA"` - `"ECDSA"` - `"RSA"` - `signature_algorithm: Optional[List[Literal["DSA_SHA_1", "DSA_SHA_256", "ECDSA_SHA_1", 12 more]]]` Filters results by signature algorithm. - `"DSA_SHA_1"` - `"DSA_SHA_256"` - `"ECDSA_SHA_1"` - `"ECDSA_SHA_256"` - `"ECDSA_SHA_384"` - `"ECDSA_SHA_512"` - `"PSS_SHA_256"` - `"PSS_SHA_384"` - `"PSS_SHA_512"` - `"RSA_MD2"` - `"RSA_MD5"` - `"RSA_SHA_1"` - `"RSA_SHA_256"` - `"RSA_SHA_384"` - `"RSA_SHA_512"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. - `unique_entries: Optional[List[Literal["true", "false"]]]` Specifies whether to filter out duplicate certificates and pre-certificates. Set to true for unique entries only. - `"true"` - `"false"` - `validation_level: Optional[List[Literal["DOMAIN", "ORGANIZATION", "EXTENDED"]]]` Filters results by validation level. - `"DOMAIN"` - `"ORGANIZATION"` - `"EXTENDED"` ### Returns - `class CTTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `class Serie0UnnamedSchemaRef7826220e105d84352ba1108d9ed88e55: …` - `timestamps: List[datetime]` - `class Serie0UnionMember1: …` - `rfc6962: List[str]` - `static: List[str]` - `class Serie0UnionMember2: …` - `gt_121d: List[str]` - `gt_16d_lte_31d: List[str]` - `gt_31d_lte_91d: List[str]` - `gt_3d_lte_16d: List[str]` - `gt_91d_lte_121d: List[str]` - `lte_3d: List[str]` - `class Serie0UnionMember3: …` - `certificate: List[str]` - `precertificate: List[str]` - `class Serie0UnionMember4: …` - `expired: List[str]` - `valid: List[str]` - `class Serie0UnionMember5: …` - `negative: List[str]` - `positive: List[str]` - `class Serie0UnionMember6: …` - `dsa: List[str]` - `ecdsa: List[str]` - `rsa: List[str]` - `class Serie0UnionMember7: …` - `domain: List[str]` - `extended: List[str]` - `organization: List[str]` - `unknown: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ct.timeseries_groups( dimension="CA", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### CT Summary Response - `class CTSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `Dict[str, str]` - `class Summary0UnionMember1: …` - `rfc6962: str` - `static: str` - `class Summary0UnionMember2: …` - `gt_121d: str` - `gt_16d_lte_31d: str` - `gt_31d_lte_91d: str` - `gt_3d_lte_16d: str` - `gt_91d_lte_121d: str` - `lte_3d: str` - `class Summary0UnionMember3: …` - `certificate: str` - `precertificate: str` - `class Summary0UnionMember4: …` - `expired: str` - `valid: str` - `class Summary0UnionMember5: …` - `negative: str` - `positive: str` - `class Summary0UnionMember6: …` - `dsa: str` - `ecdsa: str` - `rsa: str` - `class Summary0UnionMember7: …` - `domain: str` - `extended: str` - `organization: str` - `unknown: str` ### CT Timeseries Response - `class CTTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### CT Timeseries Groups Response - `class CTTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `class Serie0UnnamedSchemaRef7826220e105d84352ba1108d9ed88e55: …` - `timestamps: List[datetime]` - `class Serie0UnionMember1: …` - `rfc6962: List[str]` - `static: List[str]` - `class Serie0UnionMember2: …` - `gt_121d: List[str]` - `gt_16d_lte_31d: List[str]` - `gt_31d_lte_91d: List[str]` - `gt_3d_lte_16d: List[str]` - `gt_91d_lte_121d: List[str]` - `lte_3d: List[str]` - `class Serie0UnionMember3: …` - `certificate: List[str]` - `precertificate: List[str]` - `class Serie0UnionMember4: …` - `expired: List[str]` - `valid: List[str]` - `class Serie0UnionMember5: …` - `negative: List[str]` - `positive: List[str]` - `class Serie0UnionMember6: …` - `dsa: List[str]` - `ecdsa: List[str]` - `rsa: List[str]` - `class Serie0UnionMember7: …` - `domain: List[str]` - `extended: List[str]` - `organization: List[str]` - `unknown: List[str]` # Authorities ## Get certificate authority details `radar.ct.authorities.get(strca_slug, AuthorityGetParams**kwargs) -> AuthorityGetResponse` **get** `/radar/ct/authorities/{ca_slug}` Retrieves the requested CA information. ### Parameters - `ca_slug: str` Certificate authority SHA256 fingerprint. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` ### Returns - `class AuthorityGetResponse: …` - `certificate_authority: CertificateAuthority` - `apple_status: Literal["INCLUDED", "NOT_YET_INCLUDED", "NOT_INCLUDED", 4 more]` The inclusion status of a Certificate Authority (CA) in the trust store. - `"INCLUDED"` - `"NOT_YET_INCLUDED"` - `"NOT_INCLUDED"` - `"NOT_BEFORE"` - `"REMOVED"` - `"DISABLED"` - `"BLOCKED"` - `authority_key_identifier: str` The authorityKeyIdentifier value extracted from the certificate PEM. - `certificate_record_type: Literal["ROOT_CERTIFICATE", "INTERMEDIATE_CERTIFICATE"]` Specifies the type of certificate in the trust chain. - `"ROOT_CERTIFICATE"` - `"INTERMEDIATE_CERTIFICATE"` - `chrome_status: Literal["INCLUDED", "NOT_YET_INCLUDED", "NOT_INCLUDED", 4 more]` The inclusion status of a Certificate Authority (CA) in the trust store. - `"INCLUDED"` - `"NOT_YET_INCLUDED"` - `"NOT_INCLUDED"` - `"NOT_BEFORE"` - `"REMOVED"` - `"DISABLED"` - `"BLOCKED"` - `country: str` The two-letter ISO country code where the CA organization is based. - `country_name: str` The full country name corresponding to the country code. - `microsoft_status: Literal["INCLUDED", "NOT_YET_INCLUDED", "NOT_INCLUDED", 4 more]` The inclusion status of a Certificate Authority (CA) in the trust store. - `"INCLUDED"` - `"NOT_YET_INCLUDED"` - `"NOT_INCLUDED"` - `"NOT_BEFORE"` - `"REMOVED"` - `"DISABLED"` - `"BLOCKED"` - `mozilla_status: Literal["INCLUDED", "NOT_YET_INCLUDED", "NOT_INCLUDED", 4 more]` The inclusion status of a Certificate Authority (CA) in the trust store. - `"INCLUDED"` - `"NOT_YET_INCLUDED"` - `"NOT_INCLUDED"` - `"NOT_BEFORE"` - `"REMOVED"` - `"DISABLED"` - `"BLOCKED"` - `name: str` The full name of the certificate authority (CA). - `owner: str` The organization that owns and operates the CA. - `parent_name: str` The name of the parent/root certificate authority that issued this intermediate certificate. - `parent_sha256_fingerprint: str` The SHA-256 fingerprint of the parent certificate. - `related: List[CertificateAuthorityRelated]` CAs from the same owner. - `certificate_record_type: Literal["ROOT_CERTIFICATE", "INTERMEDIATE_CERTIFICATE"]` Specifies the type of certificate in the trust chain. - `"ROOT_CERTIFICATE"` - `"INTERMEDIATE_CERTIFICATE"` - `name: str` The full name of the certificate authority (CA). - `revocation_status: Literal["NOT_REVOKED", "REVOKED", "PARENT_CERT_REVOKED"]` The current revocation status of a Certificate Authority (CA) certificate. - `"NOT_REVOKED"` - `"REVOKED"` - `"PARENT_CERT_REVOKED"` - `sha256_fingerprint: str` The SHA-256 fingerprint of the intermediate certificate. - `revocation_status: Literal["NOT_REVOKED", "REVOKED", "PARENT_CERT_REVOKED"]` The current revocation status of a Certificate Authority (CA) certificate. - `"NOT_REVOKED"` - `"REVOKED"` - `"PARENT_CERT_REVOKED"` - `sha256_fingerprint: str` The SHA-256 fingerprint of the intermediate certificate. - `subject_key_identifier: str` The subjectKeyIdentifier value extracted from the certificate PEM. - `valid_from: str` The start date of the certificate’s validity period (ISO format). - `valid_to: str` The end date of the certificate’s validity period (ISO format). ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) authority = client.radar.ct.authorities.get( ca_slug="24EDD4E503A8D3FDB5FFB4AF66C887359901CBE687A5A0760D10A08EED99A7C3", ) print(authority.certificate_authority) ``` #### Response ```json { "result": { "certificateAuthority": { "appleStatus": "INCLUDED", "authorityKeyIdentifier": "1TkcnFtvBKqilUzvIN0pdKTFRXE", "certificateRecordType": "ROOT_CERTIFICATE", "chromeStatus": "INCLUDED", "country": "PT", "countryName": "Portugal", "microsoftStatus": "INCLUDED", "mozillaStatus": "INCLUDED", "name": "MULTICERT Advanced Certification Authority 005", "owner": "MULTICERT", "parentName": "MULTICERT Root Certification Authority 01", "parentSha256Fingerprint": "604D32D036895AED3BFEFAEB727C009EC0F2B3CDFA42A1C71730E6A72C3BE9D4", "related": [ { "certificateRecordType": "ROOT_CERTIFICATE", "name": "MULTICERT Advanced Certification Authority 005", "revocationStatus": "NOT_REVOKED", "sha256Fingerprint": "24EDD4E503A8D3FDB5FFB4AF66C887359901CBE687A5A0760D10A08EED99A7C3" } ], "revocationStatus": "NOT_REVOKED", "sha256Fingerprint": "24EDD4E503A8D3FDB5FFB4AF66C887359901CBE687A5A0760D10A08EED99A7C3", "subjectKeyIdentifier": "VbqXmCURhMmiMtD7nFY6iCr4z", "validFrom": "2019-12-09", "validTo": "2032-06-08" } }, "success": true } ``` ## List certificate authorities `radar.ct.authorities.list(AuthorityListParams**kwargs) -> AuthorityListResponse` **get** `/radar/ct/authorities` Retrieves a list of certificate authorities. ### Parameters - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `offset: Optional[int]` Skips the specified number of objects before fetching the results. ### Returns - `class AuthorityListResponse: …` - `certificate_authorities: List[CertificateAuthority]` - `certificate_record_type: Literal["ROOT_CERTIFICATE", "INTERMEDIATE_CERTIFICATE"]` Specifies the type of certificate in the trust chain. - `"ROOT_CERTIFICATE"` - `"INTERMEDIATE_CERTIFICATE"` - `country: str` The two-letter ISO country code where the CA organization is based. - `country_name: str` The full country name corresponding to the country code. - `name: str` The full name of the certificate authority (CA). - `owner: str` The organization that owns and operates the CA. - `parent_name: str` The name of the parent/root certificate authority that issued this intermediate certificate. - `parent_sha256_fingerprint: str` The SHA-256 fingerprint of the parent certificate. - `revocation_status: Literal["NOT_REVOKED", "REVOKED", "PARENT_CERT_REVOKED"]` The current revocation status of a Certificate Authority (CA) certificate. - `"NOT_REVOKED"` - `"REVOKED"` - `"PARENT_CERT_REVOKED"` - `sha256_fingerprint: str` The SHA-256 fingerprint of the intermediate certificate. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) authorities = client.radar.ct.authorities.list() print(authorities.certificate_authorities) ``` #### Response ```json { "result": { "certificateAuthorities": [ { "certificateRecordType": "ROOT_CERTIFICATE", "country": "PT", "countryName": "Portugal", "name": "MULTICERT Advanced Certification Authority 005", "owner": "MULTICERT", "parentName": "MULTICERT Root Certification Authority 01", "parentSha256Fingerprint": "24EDD4E503A8D3FDB5FFB4AF66C887359901CBE687A5A0760D10A08EED99A7C3", "revocationStatus": "NOT_REVOKED", "sha256Fingerprint": "24EDD4E503A8D3FDB5FFB4AF66C887359901CBE687A5A0760D10A08EED99A7C3" } ] }, "success": true } ``` ## Domain Types ### Authority Get Response - `class AuthorityGetResponse: …` - `certificate_authority: CertificateAuthority` - `apple_status: Literal["INCLUDED", "NOT_YET_INCLUDED", "NOT_INCLUDED", 4 more]` The inclusion status of a Certificate Authority (CA) in the trust store. - `"INCLUDED"` - `"NOT_YET_INCLUDED"` - `"NOT_INCLUDED"` - `"NOT_BEFORE"` - `"REMOVED"` - `"DISABLED"` - `"BLOCKED"` - `authority_key_identifier: str` The authorityKeyIdentifier value extracted from the certificate PEM. - `certificate_record_type: Literal["ROOT_CERTIFICATE", "INTERMEDIATE_CERTIFICATE"]` Specifies the type of certificate in the trust chain. - `"ROOT_CERTIFICATE"` - `"INTERMEDIATE_CERTIFICATE"` - `chrome_status: Literal["INCLUDED", "NOT_YET_INCLUDED", "NOT_INCLUDED", 4 more]` The inclusion status of a Certificate Authority (CA) in the trust store. - `"INCLUDED"` - `"NOT_YET_INCLUDED"` - `"NOT_INCLUDED"` - `"NOT_BEFORE"` - `"REMOVED"` - `"DISABLED"` - `"BLOCKED"` - `country: str` The two-letter ISO country code where the CA organization is based. - `country_name: str` The full country name corresponding to the country code. - `microsoft_status: Literal["INCLUDED", "NOT_YET_INCLUDED", "NOT_INCLUDED", 4 more]` The inclusion status of a Certificate Authority (CA) in the trust store. - `"INCLUDED"` - `"NOT_YET_INCLUDED"` - `"NOT_INCLUDED"` - `"NOT_BEFORE"` - `"REMOVED"` - `"DISABLED"` - `"BLOCKED"` - `mozilla_status: Literal["INCLUDED", "NOT_YET_INCLUDED", "NOT_INCLUDED", 4 more]` The inclusion status of a Certificate Authority (CA) in the trust store. - `"INCLUDED"` - `"NOT_YET_INCLUDED"` - `"NOT_INCLUDED"` - `"NOT_BEFORE"` - `"REMOVED"` - `"DISABLED"` - `"BLOCKED"` - `name: str` The full name of the certificate authority (CA). - `owner: str` The organization that owns and operates the CA. - `parent_name: str` The name of the parent/root certificate authority that issued this intermediate certificate. - `parent_sha256_fingerprint: str` The SHA-256 fingerprint of the parent certificate. - `related: List[CertificateAuthorityRelated]` CAs from the same owner. - `certificate_record_type: Literal["ROOT_CERTIFICATE", "INTERMEDIATE_CERTIFICATE"]` Specifies the type of certificate in the trust chain. - `"ROOT_CERTIFICATE"` - `"INTERMEDIATE_CERTIFICATE"` - `name: str` The full name of the certificate authority (CA). - `revocation_status: Literal["NOT_REVOKED", "REVOKED", "PARENT_CERT_REVOKED"]` The current revocation status of a Certificate Authority (CA) certificate. - `"NOT_REVOKED"` - `"REVOKED"` - `"PARENT_CERT_REVOKED"` - `sha256_fingerprint: str` The SHA-256 fingerprint of the intermediate certificate. - `revocation_status: Literal["NOT_REVOKED", "REVOKED", "PARENT_CERT_REVOKED"]` The current revocation status of a Certificate Authority (CA) certificate. - `"NOT_REVOKED"` - `"REVOKED"` - `"PARENT_CERT_REVOKED"` - `sha256_fingerprint: str` The SHA-256 fingerprint of the intermediate certificate. - `subject_key_identifier: str` The subjectKeyIdentifier value extracted from the certificate PEM. - `valid_from: str` The start date of the certificate’s validity period (ISO format). - `valid_to: str` The end date of the certificate’s validity period (ISO format). ### Authority List Response - `class AuthorityListResponse: …` - `certificate_authorities: List[CertificateAuthority]` - `certificate_record_type: Literal["ROOT_CERTIFICATE", "INTERMEDIATE_CERTIFICATE"]` Specifies the type of certificate in the trust chain. - `"ROOT_CERTIFICATE"` - `"INTERMEDIATE_CERTIFICATE"` - `country: str` The two-letter ISO country code where the CA organization is based. - `country_name: str` The full country name corresponding to the country code. - `name: str` The full name of the certificate authority (CA). - `owner: str` The organization that owns and operates the CA. - `parent_name: str` The name of the parent/root certificate authority that issued this intermediate certificate. - `parent_sha256_fingerprint: str` The SHA-256 fingerprint of the parent certificate. - `revocation_status: Literal["NOT_REVOKED", "REVOKED", "PARENT_CERT_REVOKED"]` The current revocation status of a Certificate Authority (CA) certificate. - `"NOT_REVOKED"` - `"REVOKED"` - `"PARENT_CERT_REVOKED"` - `sha256_fingerprint: str` The SHA-256 fingerprint of the intermediate certificate. # Logs ## Get certificate log details `radar.ct.logs.get(strlog_slug, LogGetParams**kwargs) -> LogGetResponse` **get** `/radar/ct/logs/{log_slug}` Retrieves the requested certificate log information. ### Parameters - `log_slug: str` Certificate log slug. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` ### Returns - `class LogGetResponse: …` - `certificate_log: CertificateLog` - `api: Literal["RFC6962", "STATIC"]` The API standard that the certificate log follows. - `"RFC6962"` - `"STATIC"` - `avg_throughput: float` The average throughput of the CT log, measured in certificates per hour (certs/hour). - `description: str` A brief description of the certificate log. - `end_exclusive: datetime` The end date and time for when the log will stop accepting certificates. - `last_update: datetime` Timestamp of the most recent update to the CT log. - `operator: str` The organization responsible for operating the certificate log. - `performance: Optional[CertificateLogPerformance]` Log performance metrics, including averages and per-endpoint details. - `endpoints: List[CertificateLogPerformanceEndpoint]` - `endpoint: Literal["add-chain (new)", "add-chain (old)", "add-pre-chain (new)", 4 more]` The certificate log endpoint names used in performance metrics. - `"add-chain (new)"` - `"add-chain (old)"` - `"add-pre-chain (new)"` - `"add-pre-chain (old)"` - `"get-entries"` - `"get-roots"` - `"get-sth"` - `response_time: float` - `uptime: float` - `response_time: float` - `uptime: float` - `related: List[CertificateLogRelated]` Logs from the same operator. - `description: str` A brief description of the certificate log. - `end_exclusive: datetime` The end date and time for when the log will stop accepting certificates. - `slug: str` A URL-friendly, kebab-case identifier for the certificate log. - `start_inclusive: datetime` The start date and time for when the log starts accepting certificates. - `state: Literal["USABLE", "PENDING", "QUALIFIED", 3 more]` The current state of the certificate log. More details about log states can be found here: https://googlechrome.github.io/CertificateTransparency/log_states.html - `"USABLE"` - `"PENDING"` - `"QUALIFIED"` - `"READ_ONLY"` - `"RETIRED"` - `"REJECTED"` - `slug: str` A URL-friendly, kebab-case identifier for the certificate log. - `start_inclusive: datetime` The start date and time for when the log starts accepting certificates. - `state: Literal["USABLE", "PENDING", "QUALIFIED", 3 more]` The current state of the certificate log. More details about log states can be found here: https://googlechrome.github.io/CertificateTransparency/log_states.html - `"USABLE"` - `"PENDING"` - `"QUALIFIED"` - `"READ_ONLY"` - `"RETIRED"` - `"REJECTED"` - `state_timestamp: datetime` Timestamp of when the log state was last updated. - `submittable_cert_count: Optional[str]` Number of certificates that are eligible for inclusion to this log but have not been included yet. Based on certificates signed by trusted root CAs within the log's accepted date range. - `submitted_cert_count: Optional[str]` Number of certificates already included in this CT log. - `url: str` The URL for the certificate log. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) log = client.radar.ct.logs.get( log_slug="argon2024", ) print(log.certificate_log) ``` #### Response ```json { "result": { "certificateLog": { "api": "RFC6962", "avgThroughput": 0, "description": "Google 'Argon2024' log", "endExclusive": "2025-01-01T00:00:00Z", "lastUpdate": "2025-01-01T00:00:00Z", "operator": "Google", "performance": { "endpoints": [ { "endpoint": "add-chain (new)", "responseTime": 0, "uptime": 0 } ], "responseTime": 0, "uptime": 0 }, "related": [ { "description": "Google 'Argon2024' log", "endExclusive": "2025-01-01T00:00:00Z", "slug": "argon2024", "startInclusive": "2024-01-01T00:00:00Z", "state": "USABLE" } ], "slug": "argon2024", "startInclusive": "2024-01-01T00:00:00Z", "state": "USABLE", "stateTimestamp": "2025-02-01T08:53:20Z", "submittableCertCount": "10", "submittedCertCount": "10", "url": "https://ct.googleapis.com/logs/us1/argon2024/" } }, "success": true } ``` ## List certificate logs `radar.ct.logs.list(LogListParams**kwargs) -> LogListResponse` **get** `/radar/ct/logs` Retrieves a list of certificate logs. ### Parameters - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `offset: Optional[int]` Skips the specified number of objects before fetching the results. ### Returns - `class LogListResponse: …` - `certificate_logs: List[CertificateLog]` - `api: Literal["RFC6962", "STATIC"]` The API standard that the certificate log follows. - `"RFC6962"` - `"STATIC"` - `description: str` A brief description of the certificate log. - `end_exclusive: datetime` The end date and time for when the log will stop accepting certificates. - `operator: str` The organization responsible for operating the certificate log. - `slug: str` A URL-friendly, kebab-case identifier for the certificate log. - `start_inclusive: datetime` The start date and time for when the log starts accepting certificates. - `state: Literal["USABLE", "PENDING", "QUALIFIED", 3 more]` The current state of the certificate log. More details about log states can be found here: https://googlechrome.github.io/CertificateTransparency/log_states.html - `"USABLE"` - `"PENDING"` - `"QUALIFIED"` - `"READ_ONLY"` - `"RETIRED"` - `"REJECTED"` - `state_timestamp: datetime` Timestamp of when the log state was last updated. - `url: str` The URL for the certificate log. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) logs = client.radar.ct.logs.list() print(logs.certificate_logs) ``` #### Response ```json { "result": { "certificateLogs": [ { "api": "RFC6962", "description": "Google 'Argon2024' log", "endExclusive": "2025-01-01T00:00:00Z", "operator": "Google", "slug": "argon2024", "startInclusive": "2024-01-01T00:00:00Z", "state": "USABLE", "stateTimestamp": "2025-02-01T08:53:20Z", "url": "https://ct.googleapis.com/logs/us1/argon2024/" } ] }, "success": true } ``` ## Domain Types ### Log Get Response - `class LogGetResponse: …` - `certificate_log: CertificateLog` - `api: Literal["RFC6962", "STATIC"]` The API standard that the certificate log follows. - `"RFC6962"` - `"STATIC"` - `avg_throughput: float` The average throughput of the CT log, measured in certificates per hour (certs/hour). - `description: str` A brief description of the certificate log. - `end_exclusive: datetime` The end date and time for when the log will stop accepting certificates. - `last_update: datetime` Timestamp of the most recent update to the CT log. - `operator: str` The organization responsible for operating the certificate log. - `performance: Optional[CertificateLogPerformance]` Log performance metrics, including averages and per-endpoint details. - `endpoints: List[CertificateLogPerformanceEndpoint]` - `endpoint: Literal["add-chain (new)", "add-chain (old)", "add-pre-chain (new)", 4 more]` The certificate log endpoint names used in performance metrics. - `"add-chain (new)"` - `"add-chain (old)"` - `"add-pre-chain (new)"` - `"add-pre-chain (old)"` - `"get-entries"` - `"get-roots"` - `"get-sth"` - `response_time: float` - `uptime: float` - `response_time: float` - `uptime: float` - `related: List[CertificateLogRelated]` Logs from the same operator. - `description: str` A brief description of the certificate log. - `end_exclusive: datetime` The end date and time for when the log will stop accepting certificates. - `slug: str` A URL-friendly, kebab-case identifier for the certificate log. - `start_inclusive: datetime` The start date and time for when the log starts accepting certificates. - `state: Literal["USABLE", "PENDING", "QUALIFIED", 3 more]` The current state of the certificate log. More details about log states can be found here: https://googlechrome.github.io/CertificateTransparency/log_states.html - `"USABLE"` - `"PENDING"` - `"QUALIFIED"` - `"READ_ONLY"` - `"RETIRED"` - `"REJECTED"` - `slug: str` A URL-friendly, kebab-case identifier for the certificate log. - `start_inclusive: datetime` The start date and time for when the log starts accepting certificates. - `state: Literal["USABLE", "PENDING", "QUALIFIED", 3 more]` The current state of the certificate log. More details about log states can be found here: https://googlechrome.github.io/CertificateTransparency/log_states.html - `"USABLE"` - `"PENDING"` - `"QUALIFIED"` - `"READ_ONLY"` - `"RETIRED"` - `"REJECTED"` - `state_timestamp: datetime` Timestamp of when the log state was last updated. - `submittable_cert_count: Optional[str]` Number of certificates that are eligible for inclusion to this log but have not been included yet. Based on certificates signed by trusted root CAs within the log's accepted date range. - `submitted_cert_count: Optional[str]` Number of certificates already included in this CT log. - `url: str` The URL for the certificate log. ### Log List Response - `class LogListResponse: …` - `certificate_logs: List[CertificateLog]` - `api: Literal["RFC6962", "STATIC"]` The API standard that the certificate log follows. - `"RFC6962"` - `"STATIC"` - `description: str` A brief description of the certificate log. - `end_exclusive: datetime` The end date and time for when the log will stop accepting certificates. - `operator: str` The organization responsible for operating the certificate log. - `slug: str` A URL-friendly, kebab-case identifier for the certificate log. - `start_inclusive: datetime` The start date and time for when the log starts accepting certificates. - `state: Literal["USABLE", "PENDING", "QUALIFIED", 3 more]` The current state of the certificate log. More details about log states can be found here: https://googlechrome.github.io/CertificateTransparency/log_states.html - `"USABLE"` - `"PENDING"` - `"QUALIFIED"` - `"READ_ONLY"` - `"RETIRED"` - `"REJECTED"` - `state_timestamp: datetime` Timestamp of when the log state was last updated. - `url: str` The URL for the certificate log. # Annotations ## Get latest annotations `radar.annotations.list(AnnotationListParams**kwargs) -> AnnotationListResponse` **get** `/radar/annotations` Retrieves the latest annotations. ### Parameters - `asn: Optional[int]` Filters results by Autonomous System. Specify a single Autonomous System Number (ASN) as integer. - `data_source: Optional[Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]]` Filters results by data source. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `date_end: Optional[Union[str, datetime]]` End of the date range (inclusive). - `date_range: Optional[str]` Filters results by date range. - `date_start: Optional[Union[str, datetime]]` Start of the date range (inclusive). - `event_type: Optional[Literal["EVENT", "GENERAL", "OUTAGE", 3 more]]` Filters results by event type. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[str]` Filters results by location. Specify an alpha-2 location code. - `offset: Optional[int]` Skips the specified number of objects before fetching the results. - `origin: Optional[str]` Filters results by origin. ### Returns - `class AnnotationListResponse: …` - `annotations: List[Annotation]` - `id: str` - `asns: List[int]` - `asns_details: List[AnnotationASNsDetail]` - `asn: str` - `name: str` - `locations: Optional[AnnotationASNsDetailLocations]` - `code: str` - `name: str` - `data_source: str` - `event_type: str` - `locations: List[str]` - `locations_details: List[AnnotationLocationsDetail]` - `code: str` - `name: str` - `origins: List[str]` - `origins_details: List[AnnotationOriginsDetail]` - `name: str` - `origin: str` - `outage: AnnotationOutage` - `outage_cause: str` - `outage_type: str` - `start_date: str` - `description: Optional[str]` - `end_date: Optional[str]` - `linked_url: Optional[str]` - `scope: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) annotations = client.radar.annotations.list() print(annotations.annotations) ``` #### Response ```json { "result": { "annotations": [ { "id": "550", "asns": [ 189 ], "asnsDetails": [ { "asn": "189", "name": "LUMEN-LEGACY-L3-PARTITION", "locations": { "code": "US", "name": "United States" } } ], "dataSource": "ALL", "eventType": "OUTAGE", "locations": [ "US" ], "locationsDetails": [ { "code": "US", "name": "United States" } ], "origins": [ "amazon-us-east-1" ], "originsDetails": [ { "name": "us-east-1 Amazon Web Services", "origin": "amazon-us-east-1" } ], "outage": { "outageCause": "CABLE_CUT", "outageType": "NATIONWIDE" }, "startDate": "2022-09-06T10:00:28Z", "description": "example", "endDate": "2022-09-08T10:00:28Z", "linkedUrl": "http://example.com", "scope": "Colima, Michoacán, México" } ] }, "success": true } ``` ## Domain Types ### Annotation List Response - `class AnnotationListResponse: …` - `annotations: List[Annotation]` - `id: str` - `asns: List[int]` - `asns_details: List[AnnotationASNsDetail]` - `asn: str` - `name: str` - `locations: Optional[AnnotationASNsDetailLocations]` - `code: str` - `name: str` - `data_source: str` - `event_type: str` - `locations: List[str]` - `locations_details: List[AnnotationLocationsDetail]` - `code: str` - `name: str` - `origins: List[str]` - `origins_details: List[AnnotationOriginsDetail]` - `name: str` - `origin: str` - `outage: AnnotationOutage` - `outage_cause: str` - `outage_type: str` - `start_date: str` - `description: Optional[str]` - `end_date: Optional[str]` - `linked_url: Optional[str]` - `scope: Optional[str]` # Outages ## Get latest Internet outages and anomalies `radar.annotations.outages.get(OutageGetParams**kwargs) -> OutageGetResponse` **get** `/radar/annotations/outages` Retrieves the latest Internet outages and anomalies. ### Parameters - `asn: Optional[int]` Filters results by Autonomous System. Specify a single Autonomous System Number (ASN) as integer. - `date_end: Optional[Union[str, datetime]]` End of the date range (inclusive). - `date_range: Optional[str]` Filters results by date range. - `date_start: Optional[Union[str, datetime]]` Start of the date range (inclusive). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[str]` Filters results by location. Specify an alpha-2 location code. - `offset: Optional[int]` Skips the specified number of objects before fetching the results. - `origin: Optional[str]` Filters results by origin. ### Returns - `class OutageGetResponse: …` - `annotations: List[Annotation]` - `id: str` - `asns: List[int]` - `asns_details: List[AnnotationASNsDetail]` - `asn: str` - `name: str` - `locations: Optional[AnnotationASNsDetailLocations]` - `code: str` - `name: str` - `data_source: str` - `event_type: str` - `locations: List[str]` - `locations_details: List[AnnotationLocationsDetail]` - `code: str` - `name: str` - `origins: List[str]` - `origins_details: List[AnnotationOriginsDetail]` - `name: str` - `origin: str` - `outage: AnnotationOutage` - `outage_cause: str` - `outage_type: str` - `start_date: datetime` - `description: Optional[str]` - `end_date: Optional[datetime]` - `linked_url: Optional[str]` - `scope: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) outage = client.radar.annotations.outages.get() print(outage.annotations) ``` #### Response ```json { "result": { "annotations": [ { "id": "550", "asns": [ 189 ], "asnsDetails": [ { "asn": "189", "name": "LUMEN-LEGACY-L3-PARTITION", "locations": { "code": "US", "name": "United States" } } ], "dataSource": "ALL", "eventType": "OUTAGE", "locations": [ "US" ], "locationsDetails": [ { "code": "US", "name": "United States" } ], "origins": [ "amazon-us-east-1" ], "originsDetails": [ { "name": "us-east-1 Amazon Web Services", "origin": "amazon-us-east-1" } ], "outage": { "outageCause": "CABLE_CUT", "outageType": "NATIONWIDE" }, "startDate": "2019-12-27T18:11:19.117Z", "description": "example", "endDate": "2019-12-27T18:11:19.117Z", "linkedUrl": "http://example.com", "scope": "Colima, Michoacán, México" } ] }, "success": true } ``` ## Get the number of outages by location `radar.annotations.outages.locations(OutageLocationsParams**kwargs) -> OutageLocationsResponse` **get** `/radar/annotations/outages/locations` Retrieves the number of outages by location. ### Parameters - `date_end: Optional[Union[str, datetime]]` End of the date range (inclusive). - `date_range: Optional[str]` Filters results by date range. - `date_start: Optional[Union[str, datetime]]` Start of the date range (inclusive). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. ### Returns - `class OutageLocationsResponse: …` - `annotations: List[Annotation]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.annotations.outages.locations() print(response.annotations) ``` #### Response ```json { "result": { "annotations": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Outage Get Response - `class OutageGetResponse: …` - `annotations: List[Annotation]` - `id: str` - `asns: List[int]` - `asns_details: List[AnnotationASNsDetail]` - `asn: str` - `name: str` - `locations: Optional[AnnotationASNsDetailLocations]` - `code: str` - `name: str` - `data_source: str` - `event_type: str` - `locations: List[str]` - `locations_details: List[AnnotationLocationsDetail]` - `code: str` - `name: str` - `origins: List[str]` - `origins_details: List[AnnotationOriginsDetail]` - `name: str` - `origin: str` - `outage: AnnotationOutage` - `outage_cause: str` - `outage_type: str` - `start_date: datetime` - `description: Optional[str]` - `end_date: Optional[datetime]` - `linked_url: Optional[str]` - `scope: Optional[str]` ### Outage Locations Response - `class OutageLocationsResponse: …` - `annotations: List[Annotation]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # BGP ## Get BGP time series `radar.bgp.timeseries(BGPTimeseriesParams**kwargs) -> BGPTimeseriesResponse` **get** `/radar/bgp/timeseries` Retrieves BGP updates over time. When requesting updates for an autonomous system, only BGP updates of type announcement are returned. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `prefix: Optional[SequenceNotStr[str]]` Filters results by BGP network prefix. - `update_type: Optional[List[Literal["ANNOUNCEMENT", "WITHDRAWAL"]]]` Filters results by BGP update type. - `"ANNOUNCEMENT"` - `"WITHDRAWAL"` ### Returns - `class BGPTimeseriesResponse: …` - `meta: Meta` - `agg_interval: Literal["15m", "1h", "1d", "1w"]` - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` - `serie_0: Serie0` - `timestamps: List[datetime]` - `values: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "15m", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z" }, "serie_0": { "timestamps": [ "2019-12-27T18:11:19.117Z" ], "values": [ "10" ] } }, "success": true } ``` ## Domain Types ### BGP Timeseries Response - `class BGPTimeseriesResponse: …` - `meta: Meta` - `agg_interval: Literal["15m", "1h", "1d", "1w"]` - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` - `serie_0: Serie0` - `timestamps: List[datetime]` - `values: List[str]` # Leaks # Events ## Get BGP route leak events `radar.bgp.leaks.events.list(EventListParams**kwargs) -> SyncV4PagePagination[EventListResponse]` **get** `/radar/bgp/leaks/events` Retrieves the BGP route leak events. ### Parameters - `date_end: Optional[Union[str, datetime]]` End of the date range (inclusive). - `date_range: Optional[str]` Filters results by date range. - `date_start: Optional[Union[str, datetime]]` Start of the date range (inclusive). - `event_id: Optional[int]` The unique identifier of a event. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `involved_asn: Optional[int]` ASN that is causing or affected by a route leak event. - `involved_country: Optional[str]` Country code of a involved ASN in a route leak event. - `leak_asn: Optional[int]` The leaking AS of a route leak event. - `page: Optional[int]` Current page number, starting from 1. - `per_page: Optional[int]` Number of entries per page. - `sort_by: Optional[Literal["ID", "LEAKS", "PEERS", 3 more]]` Sorts results by the specified field. - `"ID"` - `"LEAKS"` - `"PEERS"` - `"PREFIXES"` - `"ORIGINS"` - `"TIME"` - `sort_order: Optional[Literal["ASC", "DESC"]]` Sort order. - `"ASC"` - `"DESC"` ### Returns - `class EventListResponse: …` - `asn_info: List[ASNInfo]` - `asn: int` - `country_code: str` - `org_name: str` - `events: List[Event]` - `id: int` - `countries: List[str]` - `detected_ts: str` - `finished: bool` - `leak_asn: int` - `leak_count: int` - `leak_seg: List[int]` - `leak_type: int` - `max_ts: str` - `min_ts: str` - `origin_count: int` - `peer_count: int` - `prefix_count: int` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.radar.bgp.leaks.events.list() page = page.result.items[0] print(page.asn_info) ``` #### Response ```json { "result": { "asn_info": [ { "asn": 0, "country_code": "country_code", "org_name": "org_name" } ], "events": [ { "id": 0, "countries": [ "string" ], "detected_ts": "detected_ts", "finished": true, "leak_asn": 0, "leak_count": 0, "leak_seg": [ 0 ], "leak_type": 0, "max_ts": "max_ts", "min_ts": "min_ts", "origin_count": 0, "peer_count": 0, "prefix_count": 0 } ] }, "result_info": { "count": 0, "page": 0, "per_page": 0, "total_count": 0 }, "success": true } ``` ## Domain Types ### Event List Response - `class EventListResponse: …` - `asn_info: List[ASNInfo]` - `asn: int` - `country_code: str` - `org_name: str` - `events: List[Event]` - `id: int` - `countries: List[str]` - `detected_ts: str` - `finished: bool` - `leak_asn: int` - `leak_count: int` - `leak_seg: List[int]` - `leak_type: int` - `max_ts: str` - `min_ts: str` - `origin_count: int` - `peer_count: int` - `prefix_count: int` # Top ## Get top prefixes by BGP updates `radar.bgp.top.prefixes(TopPrefixesParams**kwargs) -> TopPrefixesResponse` **get** `/radar/bgp/top/prefixes` Retrieves the top network prefixes by BGP updates. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `update_type: Optional[List[Literal["ANNOUNCEMENT", "WITHDRAWAL"]]]` Filters results by BGP update type. - `"ANNOUNCEMENT"` - `"WITHDRAWAL"` ### Returns - `class TopPrefixesResponse: …` - `meta: Meta` - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `top_0: List[Top0]` - `prefix: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.top.prefixes() print(response.meta) ``` #### Response ```json { "result": { "meta": { "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ] }, "top_0": [ { "prefix": "2804:77cc:8000::/33", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Top Prefixes Response - `class TopPrefixesResponse: …` - `meta: Meta` - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `top_0: List[Top0]` - `prefix: str` - `value: str` A numeric string. # Ases ## Get top ASes by BGP updates `radar.bgp.top.ases.get(AseGetParams**kwargs) -> AseGetResponse` **get** `/radar/bgp/top/ases` Retrieves the top autonomous systems by BGP updates (announcements only). ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `prefix: Optional[SequenceNotStr[str]]` Filters results by BGP network prefix. - `update_type: Optional[List[Literal["ANNOUNCEMENT", "WITHDRAWAL"]]]` Filters results by BGP update type. - `"ANNOUNCEMENT"` - `"WITHDRAWAL"` ### Returns - `class AseGetResponse: …` - `meta: Meta` - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `top_0: List[Top0]` - `asn: int` - `as_name: str` - `value: str` Percentage of updates by this AS out of the total updates by all autonomous systems. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) ase = client.radar.bgp.top.ases.get() print(ase.meta) ``` #### Response ```json { "result": { "meta": { "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ] }, "top_0": [ { "asn": 714, "ASName": "Apple-Engineering", "value": "0.73996" } ] }, "success": true } ``` ## Get top ASes by prefix count `radar.bgp.top.ases.prefixes(AsePrefixesParams**kwargs) -> AsePrefixesResponse` **get** `/radar/bgp/top/ases/prefixes` Retrieves the full list of autonomous systems on the global routing table ordered by announced prefixes count. The data comes from public BGP MRT data archives and updates every 2 hours. ### Parameters - `country: Optional[str]` Alpha-2 country code. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Maximum number of ASes to return. ### Returns - `class AsePrefixesResponse: …` - `asns: List[ASN]` - `asn: int` - `country: str` - `name: str` - `pfxs_count: int` - `meta: Meta` - `data_time: str` - `query_time: str` - `total_peers: int` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.top.ases.prefixes() print(response.asns) ``` #### Response ```json { "result": { "asns": [ { "asn": 0, "country": "country", "name": "name", "pfxs_count": 0 } ], "meta": { "data_time": "data_time", "query_time": "query_time", "total_peers": 0 } }, "success": true } ``` ## Domain Types ### Ase Get Response - `class AseGetResponse: …` - `meta: Meta` - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `top_0: List[Top0]` - `asn: int` - `as_name: str` - `value: str` Percentage of updates by this AS out of the total updates by all autonomous systems. ### Ase Prefixes Response - `class AsePrefixesResponse: …` - `asns: List[ASN]` - `asn: int` - `country: str` - `name: str` - `pfxs_count: int` - `meta: Meta` - `data_time: str` - `query_time: str` - `total_peers: int` # Hijacks # Events ## Get BGP hijack events `radar.bgp.hijacks.events.list(EventListParams**kwargs) -> SyncV4PagePagination[EventListResponse]` **get** `/radar/bgp/hijacks/events` Retrieves the BGP hijack events. ### Parameters - `date_end: Optional[Union[str, datetime]]` End of the date range (inclusive). - `date_range: Optional[str]` Filters results by date range. - `date_start: Optional[Union[str, datetime]]` Start of the date range (inclusive). - `event_id: Optional[int]` The unique identifier of a event. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `hijacker_asn: Optional[int]` The potential hijacker AS of a BGP hijack event. - `involved_asn: Optional[int]` The potential hijacker or victim AS of a BGP hijack event. - `involved_country: Optional[str]` The country code of the potential hijacker or victim AS of a BGP hijack event. - `max_confidence: Optional[int]` Filters events by maximum confidence score (1-4 low, 5-7 mid, 8+ high). - `min_confidence: Optional[int]` Filters events by minimum confidence score (1-4 low, 5-7 mid, 8+ high). - `page: Optional[int]` Current page number, starting from 1. - `per_page: Optional[int]` Number of entries per page. - `prefix: Optional[str]` - `sort_by: Optional[Literal["ID", "TIME", "CONFIDENCE"]]` Sorts results by the specified field. - `"ID"` - `"TIME"` - `"CONFIDENCE"` - `sort_order: Optional[Literal["ASC", "DESC"]]` Sort order. - `"ASC"` - `"DESC"` - `victim_asn: Optional[int]` The potential victim AS of a BGP hijack event. ### Returns - `class EventListResponse: …` - `asn_info: List[ASNInfo]` - `asn: int` - `country_code: str` - `org_name: str` - `events: List[Event]` - `id: int` - `confidence_score: int` - `duration: int` - `event_type: int` - `hijack_msgs_count: int` - `hijacker_asn: int` - `hijacker_country: str` - `is_stale: bool` - `max_hijack_ts: str` - `max_msg_ts: str` - `min_hijack_ts: str` - `on_going_count: int` - `peer_asns: List[int]` - `peer_ip_count: int` - `prefixes: List[str]` - `tags: List[EventTag]` - `name: str` - `score: int` - `victim_asns: List[int]` - `victim_countries: List[str]` - `total_monitors: int` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.radar.bgp.hijacks.events.list() page = page.result.items[0] print(page.asn_info) ``` #### Response ```json { "result": { "asn_info": [ { "asn": 0, "country_code": "country_code", "org_name": "org_name" } ], "events": [ { "id": 0, "confidence_score": 0, "duration": 0, "event_type": 0, "hijack_msgs_count": 0, "hijacker_asn": 0, "hijacker_country": "hijacker_country", "is_stale": true, "max_hijack_ts": "max_hijack_ts", "max_msg_ts": "max_msg_ts", "min_hijack_ts": "min_hijack_ts", "on_going_count": 0, "peer_asns": [ 0 ], "peer_ip_count": 0, "prefixes": [ "string" ], "tags": [ { "name": "name", "score": 0 } ], "victim_asns": [ 0 ], "victim_countries": [ "string" ] } ], "total_monitors": 0 }, "result_info": { "count": 0, "page": 0, "per_page": 0, "total_count": 0 }, "success": true } ``` ## Domain Types ### Event List Response - `class EventListResponse: …` - `asn_info: List[ASNInfo]` - `asn: int` - `country_code: str` - `org_name: str` - `events: List[Event]` - `id: int` - `confidence_score: int` - `duration: int` - `event_type: int` - `hijack_msgs_count: int` - `hijacker_asn: int` - `hijacker_country: str` - `is_stale: bool` - `max_hijack_ts: str` - `max_msg_ts: str` - `min_hijack_ts: str` - `on_going_count: int` - `peer_asns: List[int]` - `peer_ip_count: int` - `prefixes: List[str]` - `tags: List[EventTag]` - `name: str` - `score: int` - `victim_asns: List[int]` - `victim_countries: List[str]` - `total_monitors: int` # Routes ## Get Multi-Origin AS (MOAS) prefixes `radar.bgp.routes.moas(RouteMoasParams**kwargs) -> RouteMoasResponse` **get** `/radar/bgp/routes/moas` Retrieves all Multi-Origin AS (MOAS) prefixes in the global routing tables. ### Parameters - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `invalid_only: Optional[bool]` Lookup only RPKI invalid MOASes. - `origin: Optional[int]` Lookup MOASes originated by the given ASN. - `prefix: Optional[str]` ### Returns - `class RouteMoasResponse: …` - `meta: Meta` - `data_time: str` - `query_time: str` - `total_peers: int` - `moas: List[Moa]` - `origins: List[MoaOrigin]` - `origin: int` - `peer_count: int` - `rpki_validation: str` - `prefix: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.routes.moas() print(response.meta) ``` #### Response ```json { "result": { "meta": { "data_time": "data_time", "query_time": "query_time", "total_peers": 0 }, "moas": [ { "origins": [ { "origin": 0, "peer_count": 0, "rpki_validation": "rpki_validation" } ], "prefix": "prefix" } ] }, "success": true } ``` ## Get prefix-to-ASN mapping `radar.bgp.routes.pfx2as(RoutePfx2asParams**kwargs) -> RoutePfx2asResponse` **get** `/radar/bgp/routes/pfx2as` Retrieves the prefix-to-ASN mapping from global routing tables. ### Parameters - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `longest_prefix_match: Optional[bool]` Return only results with the longest prefix match for the given prefix. For example, specify a /32 prefix to lookup the origin ASN for an IPv4 address. - `origin: Optional[int]` Lookup prefixes originated by the given ASN. - `prefix: Optional[str]` - `rpki_status: Optional[Literal["VALID", "INVALID", "UNKNOWN"]]` Return only results with matching rpki status: valid, invalid or unknown. - `"VALID"` - `"INVALID"` - `"UNKNOWN"` ### Returns - `class RoutePfx2asResponse: …` - `meta: Meta` - `data_time: str` - `query_time: str` - `total_peers: int` - `prefix_origins: List[PrefixOrigin]` - `origin: int` - `peer_count: int` - `prefix: str` - `rpki_validation: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.routes.pfx2as() print(response.meta) ``` #### Response ```json { "result": { "meta": { "data_time": "data_time", "query_time": "query_time", "total_peers": 0 }, "prefix_origins": [ { "origin": 0, "peer_count": 0, "prefix": "prefix", "rpki_validation": "rpki_validation" } ] }, "success": true } ``` ## Get BGP routing table stats `radar.bgp.routes.stats(RouteStatsParams**kwargs) -> RouteStatsResponse` **get** `/radar/bgp/routes/stats` Retrieves the BGP routing table stats. ### Parameters - `asn: Optional[int]` Filters results by Autonomous System. Specify a single Autonomous System Number (ASN) as integer. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[str]` Filters results by location. Specify an alpha-2 location code. ### Returns - `class RouteStatsResponse: …` - `meta: Meta` - `data_time: str` - `query_time: str` - `total_peers: int` - `stats: Stats` - `distinct_origins: int` - `distinct_origins_ipv4: int` - `distinct_origins_ipv6: int` - `distinct_prefixes: int` - `distinct_prefixes_ipv4: int` - `distinct_prefixes_ipv6: int` - `routes_invalid: int` - `routes_invalid_ipv4: int` - `routes_invalid_ipv6: int` - `routes_total: int` - `routes_total_ipv4: int` - `routes_total_ipv6: int` - `routes_unknown: int` - `routes_unknown_ipv4: int` - `routes_unknown_ipv6: int` - `routes_valid: int` - `routes_valid_ipv4: int` - `routes_valid_ipv6: int` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.routes.stats() print(response.meta) ``` #### Response ```json { "result": { "meta": { "data_time": "data_time", "query_time": "query_time", "total_peers": 0 }, "stats": { "distinct_origins": 0, "distinct_origins_ipv4": 0, "distinct_origins_ipv6": 0, "distinct_prefixes": 0, "distinct_prefixes_ipv4": 0, "distinct_prefixes_ipv6": 0, "routes_invalid": 0, "routes_invalid_ipv4": 0, "routes_invalid_ipv6": 0, "routes_total": 0, "routes_total_ipv4": 0, "routes_total_ipv6": 0, "routes_unknown": 0, "routes_unknown_ipv4": 0, "routes_unknown_ipv6": 0, "routes_valid": 0, "routes_valid_ipv4": 0, "routes_valid_ipv6": 0 } }, "success": true } ``` ## List ASes from global routing tables `radar.bgp.routes.ases(RouteAsesParams**kwargs) -> RouteAsesResponse` **get** `/radar/bgp/routes/ases` Retrieves all ASes in the current global routing tables with routing statistics. ### Parameters - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[str]` Filters results by location. Specify an alpha-2 location code. - `sort_by: Optional[Literal["cone", "pfxs", "ipv4", 4 more]]` Sorts results by the specified field. - `"cone"` - `"pfxs"` - `"ipv4"` - `"ipv6"` - `"rpki_valid"` - `"rpki_invalid"` - `"rpki_unknown"` - `sort_order: Optional[Literal["ASC", "DESC"]]` Sort order. - `"ASC"` - `"DESC"` ### Returns - `class RouteAsesResponse: …` - `asns: List[ASN]` - `asn: int` - `cone_size: int` AS's customer cone size. - `country: str` Alpha-2 code for the AS's registration country. - `ipv4_count: int` Number of IPv4 addresses originated by the AS. - `ipv6_count: str` Number of IPv6 addresses originated by the AS. - `name: str` Name of the AS. - `pfxs_count: int` Number of total IP prefixes originated by the AS. - `rpki_invalid: int` Number of RPKI invalid prefixes originated by the AS. - `rpki_unknown: int` Number of RPKI unknown prefixes originated by the AS. - `rpki_valid: int` Number of RPKI valid prefixes originated by the AS. - `meta: Meta` - `data_time: str` The timestamp of when the data is generated. - `query_time: str` The timestamp of the query. - `total_peers: int` Total number of route collector peers used to generate this data. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.routes.ases() print(response.asns) ``` #### Response ```json { "result": { "asns": [ { "asn": 0, "coneSize": 0, "country": "US", "ipv4Count": 0, "ipv6Count": "1.21e24", "name": "name", "pfxsCount": 0, "rpkiInvalid": 0, "rpkiUnknown": 0, "rpkiValid": 0 } ], "meta": { "dataTime": "2024-06-03T14:00:00", "queryTime": "2024-06-03T14:00:00", "totalPeers": 0 } }, "success": true } ``` ## Get real-time BGP routes for a prefix `radar.bgp.routes.realtime(RouteRealtimeParams**kwargs) -> RouteRealtimeResponse` **get** `/radar/bgp/routes/realtime` Retrieves real-time BGP routes for a prefix, using public real-time data collectors (RouteViews and RIPE RIS). ### Parameters - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `prefix: Optional[str]` ### Returns - `class RouteRealtimeResponse: …` - `meta: Meta` - `asn_info: List[MetaASNInfo]` - `as_name: str` Name of the autonomous system. - `asn: int` AS number. - `country_code: str` Alpha-2 code for the AS's registration country. - `org_id: str` Organization ID. - `org_name: str` Organization name. - `collectors: List[MetaCollector]` - `collector: str` Public route collector ID. - `latest_realtime_ts: str` Latest real-time stream timestamp for this collector. - `latest_rib_ts: str` Latest RIB dump MRT file timestamp for this collector. - `latest_updates_ts: str` Latest BGP updates MRT file timestamp for this collector. - `peers_count: int` Total number of collector peers used from this collector. - `peers_v4_count: int` Total number of collector peers used from this collector for IPv4 prefixes. - `peers_v6_count: int` Total number of collector peers used from this collector for IPv6 prefixes. - `data_time: str` The most recent data timestamp for from the real-time sources. - `prefix_origins: List[MetaPrefixOrigin]` - `origin: int` Origin ASN. - `prefix: str` IP prefix of this query. - `rpki_validation: str` Prefix-origin RPKI validation: valid, invalid, unknown. - `total_peers: int` Total number of peers. - `total_visible: int` Total number of peers seeing this prefix. - `visibility: float` Ratio of peers seeing this prefix to total number of peers. - `query_time: str` The timestamp of this query. - `routes: List[Route]` - `as_path: List[int]` AS-level path for this route, from collector to origin. - `collector: str` Public collector ID for this route. - `communities: List[str]` BGP community values. - `prefix: str` IP prefix of this query. - `timestamp: str` Latest timestamp of change for this route. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.routes.realtime() print(response.meta) ``` #### Response ```json { "result": { "meta": { "asn_info": [ { "as_name": "as_name", "asn": 0, "country_code": "country_code", "org_id": "org_id", "org_name": "org_name" } ], "collectors": [ { "collector": "collector", "latest_realtime_ts": "latest_realtime_ts", "latest_rib_ts": "latest_rib_ts", "latest_updates_ts": "latest_updates_ts", "peers_count": 0, "peers_v4_count": 0, "peers_v6_count": 0 } ], "data_time": "data_time", "prefix_origins": [ { "origin": 0, "prefix": "prefix", "rpki_validation": "rpki_validation", "total_peers": 0, "total_visible": 0, "visibility": 0 } ], "query_time": "query_time" }, "routes": [ { "as_path": [ 0 ], "collector": "collector", "communities": [ "string" ], "prefix": "prefix", "timestamp": "timestamp" } ] }, "success": true } ``` ## Domain Types ### Route Moas Response - `class RouteMoasResponse: …` - `meta: Meta` - `data_time: str` - `query_time: str` - `total_peers: int` - `moas: List[Moa]` - `origins: List[MoaOrigin]` - `origin: int` - `peer_count: int` - `rpki_validation: str` - `prefix: str` ### Route Pfx2as Response - `class RoutePfx2asResponse: …` - `meta: Meta` - `data_time: str` - `query_time: str` - `total_peers: int` - `prefix_origins: List[PrefixOrigin]` - `origin: int` - `peer_count: int` - `prefix: str` - `rpki_validation: str` ### Route Stats Response - `class RouteStatsResponse: …` - `meta: Meta` - `data_time: str` - `query_time: str` - `total_peers: int` - `stats: Stats` - `distinct_origins: int` - `distinct_origins_ipv4: int` - `distinct_origins_ipv6: int` - `distinct_prefixes: int` - `distinct_prefixes_ipv4: int` - `distinct_prefixes_ipv6: int` - `routes_invalid: int` - `routes_invalid_ipv4: int` - `routes_invalid_ipv6: int` - `routes_total: int` - `routes_total_ipv4: int` - `routes_total_ipv6: int` - `routes_unknown: int` - `routes_unknown_ipv4: int` - `routes_unknown_ipv6: int` - `routes_valid: int` - `routes_valid_ipv4: int` - `routes_valid_ipv6: int` ### Route Ases Response - `class RouteAsesResponse: …` - `asns: List[ASN]` - `asn: int` - `cone_size: int` AS's customer cone size. - `country: str` Alpha-2 code for the AS's registration country. - `ipv4_count: int` Number of IPv4 addresses originated by the AS. - `ipv6_count: str` Number of IPv6 addresses originated by the AS. - `name: str` Name of the AS. - `pfxs_count: int` Number of total IP prefixes originated by the AS. - `rpki_invalid: int` Number of RPKI invalid prefixes originated by the AS. - `rpki_unknown: int` Number of RPKI unknown prefixes originated by the AS. - `rpki_valid: int` Number of RPKI valid prefixes originated by the AS. - `meta: Meta` - `data_time: str` The timestamp of when the data is generated. - `query_time: str` The timestamp of the query. - `total_peers: int` Total number of route collector peers used to generate this data. ### Route Realtime Response - `class RouteRealtimeResponse: …` - `meta: Meta` - `asn_info: List[MetaASNInfo]` - `as_name: str` Name of the autonomous system. - `asn: int` AS number. - `country_code: str` Alpha-2 code for the AS's registration country. - `org_id: str` Organization ID. - `org_name: str` Organization name. - `collectors: List[MetaCollector]` - `collector: str` Public route collector ID. - `latest_realtime_ts: str` Latest real-time stream timestamp for this collector. - `latest_rib_ts: str` Latest RIB dump MRT file timestamp for this collector. - `latest_updates_ts: str` Latest BGP updates MRT file timestamp for this collector. - `peers_count: int` Total number of collector peers used from this collector. - `peers_v4_count: int` Total number of collector peers used from this collector for IPv4 prefixes. - `peers_v6_count: int` Total number of collector peers used from this collector for IPv6 prefixes. - `data_time: str` The most recent data timestamp for from the real-time sources. - `prefix_origins: List[MetaPrefixOrigin]` - `origin: int` Origin ASN. - `prefix: str` IP prefix of this query. - `rpki_validation: str` Prefix-origin RPKI validation: valid, invalid, unknown. - `total_peers: int` Total number of peers. - `total_visible: int` Total number of peers seeing this prefix. - `visibility: float` Ratio of peers seeing this prefix to total number of peers. - `query_time: str` The timestamp of this query. - `routes: List[Route]` - `as_path: List[int]` AS-level path for this route, from collector to origin. - `collector: str` Public collector ID for this route. - `communities: List[str]` BGP community values. - `prefix: str` IP prefix of this query. - `timestamp: str` Latest timestamp of change for this route. # IPs ## Get announced IP address space time series `radar.bgp.ips.timeseries(IPTimeseriesParams**kwargs) -> IPTimeseriesResponse` **get** `/radar/bgp/ips/timeseries` Retrieves time series data for the announced IP space count, represented as the number of IPv4 /24s and IPv6 /48s, for a given ASN. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `include_delay: Optional[bool]` Includes data delay meta information. - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 location codes. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class IPTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `delay: Optional[MetaDelay]` - `asn_data: MetaDelayASNData` - `delay_secs: float` - `delay_str: str` - `healthy: bool` - `latest: MetaDelayASNDataLatest` - `entries_count: float` - `path: str` - `timestamp: float` - `country_data: MetaDelayCountryData` - `delay_secs: float` - `delay_str: str` - `healthy: bool` - `latest: MetaDelayCountryDataLatest` - `count: float` - `timestamp: float` - `healthy: bool` - `now_ts: float` - `serie_0: Serie0` - `ipv4: List[str]` - `ipv6: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.ips.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ], "delay": { "asn_data": { "delaySecs": 0, "delayStr": "delayStr", "healthy": true, "latest": { "entries_count": 0, "path": "path", "timestamp": 0 } }, "country_data": { "delaySecs": 0, "delayStr": "delayStr", "healthy": true, "latest": { "count": 0, "timestamp": 0 } }, "healthy": true, "nowTs": 0 } }, "serie_0": { "ipv4": [ "10" ], "ipv6": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Domain Types ### IP Timeseries Response - `class IPTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `delay: Optional[MetaDelay]` - `asn_data: MetaDelayASNData` - `delay_secs: float` - `delay_str: str` - `healthy: bool` - `latest: MetaDelayASNDataLatest` - `entries_count: float` - `path: str` - `timestamp: float` - `country_data: MetaDelayCountryData` - `delay_secs: float` - `delay_str: str` - `healthy: bool` - `latest: MetaDelayCountryDataLatest` - `count: float` - `timestamp: float` - `healthy: bool` - `now_ts: float` - `serie_0: Serie0` - `ipv4: List[str]` - `ipv6: List[str]` - `timestamps: List[datetime]` # RPKI # ASPA ## Get ASPA objects snapshot `radar.bgp.rpki.aspa.snapshot(ASPASnapshotParams**kwargs) -> ASPASnapshotResponse` **get** `/radar/bgp/rpki/aspa/snapshot` Retrieves current or historical ASPA (Autonomous System Provider Authorization) objects. ASPA objects define which ASNs are authorized upstream providers for a customer ASN. ### Parameters - `customer_asn: Optional[int]` Filter by customer ASN (the ASN publishing the ASPA object). - `date: Optional[Union[str, datetime]]` Filters results by the specified datetime (ISO 8601). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `include_asn_info: Optional[bool]` Include ASN metadata (name, country) in response. - `provider_asn: Optional[int]` Filter by provider ASN (an authorized upstream provider in ASPA objects). ### Returns - `class ASPASnapshotResponse: …` - `asn_info: ASNInfo` - `_13335: ASNInfo_13335` - `asn: int` ASN number. - `country: str` Alpha-2 country code. - `name: str` AS name. - `aspa_objects: List[ASPAObject]` - `customer_asn: int` The customer ASN publishing the ASPA object. - `providers: List[int]` - `meta: Meta` - `data_time: datetime` Timestamp of the underlying data. - `query_time: datetime` Timestamp when the query was executed. - `total_count: int` Total number of ASPA objects. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.rpki.aspa.snapshot() print(response.asn_info) ``` #### Response ```json { "result": { "asnInfo": { "13335": { "asn": 0, "country": "country", "name": "name" } }, "aspaObjects": [ { "customerAsn": 0, "providers": [ 0 ] } ], "meta": { "dataTime": "2019-12-27T18:11:19.117Z", "queryTime": "2019-12-27T18:11:19.117Z", "totalCount": 0 } }, "success": true } ``` ## Get ASPA changes over time `radar.bgp.rpki.aspa.changes(ASPAChangesParams**kwargs) -> ASPAChangesResponse` **get** `/radar/bgp/rpki/aspa/changes` Retrieves ASPA (Autonomous System Provider Authorization) changes over time. Returns daily aggregated changes including additions, removals, and modifications of ASPA objects. ### Parameters - `asn: Optional[int]` Filter changes involving this ASN (as customer or provider). - `date_end: Optional[Union[str, datetime]]` End of the date range (inclusive). - `date_start: Optional[Union[str, datetime]]` Start of the date range (inclusive). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `include_asn_info: Optional[bool]` Include ASN metadata (name, country) in response. ### Returns - `class ASPAChangesResponse: …` - `asn_info: ASNInfo` - `_13335: ASNInfo_13335` - `asn: int` ASN number. - `country: str` Alpha-2 country code. - `name: str` AS name. - `changes: List[Change]` - `customers_added: int` Number of new ASPA objects created. - `customers_removed: int` Number of ASPA objects deleted. - `date: datetime` Date of the changes in ISO 8601 format. - `entries: List[ChangeEntry]` - `customer_asn: int` The customer ASN affected. - `providers: List[int]` - `type: Literal["CustomerAdded", "CustomerRemoved", "ProvidersAdded", "ProvidersRemoved"]` - `"CustomerAdded"` - `"CustomerRemoved"` - `"ProvidersAdded"` - `"ProvidersRemoved"` - `providers_added: int` Number of providers added to existing objects. - `providers_removed: int` Number of providers removed from existing objects. - `total_count: int` Running total of active ASPA objects after this day. - `meta: Meta` - `data_time: datetime` Timestamp of the underlying data. - `query_time: datetime` Timestamp when the query was executed. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.rpki.aspa.changes() print(response.asn_info) ``` #### Response ```json { "result": { "asnInfo": { "13335": { "asn": 0, "country": "country", "name": "name" } }, "changes": [ { "customersAdded": 0, "customersRemoved": 0, "date": "2019-12-27T18:11:19.117Z", "entries": [ { "customerAsn": 0, "providers": [ 0 ], "type": "CustomerAdded" } ], "providersAdded": 0, "providersRemoved": 0, "totalCount": 0 } ], "meta": { "dataTime": "2019-12-27T18:11:19.117Z", "queryTime": "2019-12-27T18:11:19.117Z" } }, "success": true } ``` ## Get ASPA count time series `radar.bgp.rpki.aspa.timeseries(ASPATimeseriesParams**kwargs) -> ASPATimeseriesResponse` **get** `/radar/bgp/rpki/aspa/timeseries` Retrieves ASPA (Autonomous System Provider Authorization) object count over time. Supports filtering by RIR or location (country code) to generate multiple named series. If no RIR or location filter is specified, returns total count. ### Parameters - `date_end: Optional[Union[str, datetime]]` End of the date range (inclusive). - `date_start: Optional[Union[str, datetime]]` Start of the date range (inclusive). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 location codes. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `rir: Optional[List[Literal["RIPE_NCC", "ARIN", "APNIC", 2 more]]]` Filter by Regional Internet Registry (RIR). Multiple RIRs generate multiple series. - `"RIPE_NCC"` - `"ARIN"` - `"APNIC"` - `"LACNIC"` - `"AFRINIC"` ### Returns - `class ASPATimeseriesResponse: …` - `meta: Meta` - `data_time: datetime` Timestamp of the underlying data. - `query_time: datetime` Timestamp when the query was executed. - `serie_0: Serie0` - `timestamps: List[datetime]` - `values: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bgp.rpki.aspa.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "dataTime": "2019-12-27T18:11:19.117Z", "queryTime": "2019-12-27T18:11:19.117Z" }, "serie_0": { "timestamps": [ "2019-12-27T18:11:19.117Z" ], "values": [ "10" ] } }, "success": true } ``` ## Domain Types ### ASPA Snapshot Response - `class ASPASnapshotResponse: …` - `asn_info: ASNInfo` - `_13335: ASNInfo_13335` - `asn: int` ASN number. - `country: str` Alpha-2 country code. - `name: str` AS name. - `aspa_objects: List[ASPAObject]` - `customer_asn: int` The customer ASN publishing the ASPA object. - `providers: List[int]` - `meta: Meta` - `data_time: datetime` Timestamp of the underlying data. - `query_time: datetime` Timestamp when the query was executed. - `total_count: int` Total number of ASPA objects. ### ASPA Changes Response - `class ASPAChangesResponse: …` - `asn_info: ASNInfo` - `_13335: ASNInfo_13335` - `asn: int` ASN number. - `country: str` Alpha-2 country code. - `name: str` AS name. - `changes: List[Change]` - `customers_added: int` Number of new ASPA objects created. - `customers_removed: int` Number of ASPA objects deleted. - `date: datetime` Date of the changes in ISO 8601 format. - `entries: List[ChangeEntry]` - `customer_asn: int` The customer ASN affected. - `providers: List[int]` - `type: Literal["CustomerAdded", "CustomerRemoved", "ProvidersAdded", "ProvidersRemoved"]` - `"CustomerAdded"` - `"CustomerRemoved"` - `"ProvidersAdded"` - `"ProvidersRemoved"` - `providers_added: int` Number of providers added to existing objects. - `providers_removed: int` Number of providers removed from existing objects. - `total_count: int` Running total of active ASPA objects after this day. - `meta: Meta` - `data_time: datetime` Timestamp of the underlying data. - `query_time: datetime` Timestamp when the query was executed. ### ASPA Timeseries Response - `class ASPATimeseriesResponse: …` - `meta: Meta` - `data_time: datetime` Timestamp of the underlying data. - `query_time: datetime` Timestamp when the query was executed. - `serie_0: Serie0` - `timestamps: List[datetime]` - `values: List[str]` # Bots ## List bots `radar.bots.list(BotListParams**kwargs) -> BotListResponse` **get** `/radar/bots` Retrieves a list of bots. ### Parameters - `bot_category: Optional[Literal["SEARCH_ENGINE_CRAWLER", "SEARCH_ENGINE_OPTIMIZATION", "MONITORING_AND_ANALYTICS", 13 more]]` Filters results by bot category. - `"SEARCH_ENGINE_CRAWLER"` - `"SEARCH_ENGINE_OPTIMIZATION"` - `"MONITORING_AND_ANALYTICS"` - `"ADVERTISING_AND_MARKETING"` - `"SOCIAL_MEDIA_MARKETING"` - `"PAGE_PREVIEW"` - `"ACADEMIC_RESEARCH"` - `"SECURITY"` - `"ACCESSIBILITY"` - `"WEBHOOKS"` - `"FEED_FETCHER"` - `"AI_CRAWLER"` - `"AGGREGATOR"` - `"AI_ASSISTANT"` - `"AI_SEARCH"` - `"ARCHIVER"` - `bot_operator: Optional[str]` Filters results by bot operator. - `bot_verification_status: Optional[Literal["VERIFIED"]]` Filters results by bot verification status. - `"VERIFIED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `kind: Optional[Literal["AGENT", "BOT"]]` Filters results by bot kind. - `"AGENT"` - `"BOT"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `offset: Optional[int]` Skips the specified number of objects before fetching the results. ### Returns - `class BotListResponse: …` - `bots: List[Bot]` - `category: str` The category of the bot. - `description: str` A summary for the bot (e.g., purpose). - `kind: str` The kind of the bot. - `name: str` The name of the bot. - `operator: str` The organization that owns and operates the bot. - `slug: str` A kebab-case identifier derived from the bot name. - `user_agent_patterns: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) bots = client.radar.bots.list() print(bots.bots) ``` #### Response ```json { "result": { "bots": [ { "category": "AI_CRAWLER", "description": "OpenAI/ChatGPT's web crawler", "kind": "AGENT", "name": "GPTBot", "operator": "OpenAI", "slug": "gptbot", "userAgentPatterns": [ "GPTBot" ] } ] }, "success": true } ``` ## Get bot details `radar.bots.get(strbot_slug, BotGetParams**kwargs) -> BotGetResponse` **get** `/radar/bots/{bot_slug}` Retrieves the requested bot information. ### Parameters - `bot_slug: str` Bot slug. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` ### Returns - `class BotGetResponse: …` - `bot: Bot` - `category: str` The category of the bot. - `description: str` A summary for the bot (e.g., purpose). - `kind: str` The kind of the bot. - `name: str` The name of the bot. - `operator: str` The organization that owns and operates the bot. - `operator_url: str` The link to the bot documentation. - `slug: str` A kebab-case identifier derived from the bot name. - `user_agent_patterns: List[str]` - `user_agents: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) bot = client.radar.bots.get( bot_slug="gptbot", ) print(bot.bot) ``` #### Response ```json { "result": { "bot": { "category": "AI_CRAWLER", "description": "OpenAI/ChatGPT's web crawler", "kind": "AGENT", "name": "GPTBot", "operator": "OpenAI", "operatorUrl": "https://platform.openai.com/docs/bots", "slug": "gptbot", "userAgentPatterns": [ "GPTBot" ], "userAgents": [ "GPTBot" ] } }, "success": true } ``` ## Get bots HTTP requests distribution by dimension `radar.bots.summary(Literal["BOT", "BOT_KIND", "BOT_OPERATOR", "BOT_CATEGORY"]dimension, BotSummaryParams**kwargs) -> BotSummaryResponse` **get** `/radar/bots/summary/{dimension}` Retrieves an aggregated summary of bots HTTP requests grouped by the specified dimension. ### Parameters - `dimension: Literal["BOT", "BOT_KIND", "BOT_OPERATOR", "BOT_CATEGORY"]` Specifies the attribute by which to group the results. - `"BOT"` - `"BOT_KIND"` - `"BOT_OPERATOR"` - `"BOT_CATEGORY"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot: Optional[SequenceNotStr[str]]` Filters results by bot name. - `bot_category: Optional[List[Literal["SEARCH_ENGINE_CRAWLER", "SEARCH_ENGINE_OPTIMIZATION", "MONITORING_AND_ANALYTICS", 13 more]]]` Filters results by bot category. - `"SEARCH_ENGINE_CRAWLER"` - `"SEARCH_ENGINE_OPTIMIZATION"` - `"MONITORING_AND_ANALYTICS"` - `"ADVERTISING_AND_MARKETING"` - `"SOCIAL_MEDIA_MARKETING"` - `"PAGE_PREVIEW"` - `"ACADEMIC_RESEARCH"` - `"SECURITY"` - `"ACCESSIBILITY"` - `"WEBHOOKS"` - `"FEED_FETCHER"` - `"AI_CRAWLER"` - `"AGGREGATOR"` - `"AI_ASSISTANT"` - `"AI_SEARCH"` - `"ARCHIVER"` - `bot_kind: Optional[List[Literal["AGENT", "BOT"]]]` Filters results by bot kind. - `"AGENT"` - `"BOT"` - `bot_operator: Optional[SequenceNotStr[str]]` Filters results by bot operator. - `bot_verification_status: Optional[List[Literal["VERIFIED"]]]` Filters results by bot verification status (Verified vs. Unverified). - `"VERIFIED"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class BotSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bots.summary( dimension="BOT", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "Facebook": "10.274394", "GPTBot": "63.40249", "GoogleBot": "8.381743" } }, "success": true } ``` ## Get bots HTTP requests time series `radar.bots.timeseries(BotTimeseriesParams**kwargs) -> BotTimeseriesResponse` **get** `/radar/bots/timeseries` Retrieves bots HTTP request volume over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot: Optional[SequenceNotStr[str]]` Filters results by bot name. - `bot_category: Optional[List[Literal["SEARCH_ENGINE_CRAWLER", "SEARCH_ENGINE_OPTIMIZATION", "MONITORING_AND_ANALYTICS", 13 more]]]` Filters results by bot category. - `"SEARCH_ENGINE_CRAWLER"` - `"SEARCH_ENGINE_OPTIMIZATION"` - `"MONITORING_AND_ANALYTICS"` - `"ADVERTISING_AND_MARKETING"` - `"SOCIAL_MEDIA_MARKETING"` - `"PAGE_PREVIEW"` - `"ACADEMIC_RESEARCH"` - `"SECURITY"` - `"ACCESSIBILITY"` - `"WEBHOOKS"` - `"FEED_FETCHER"` - `"AI_CRAWLER"` - `"AGGREGATOR"` - `"AI_ASSISTANT"` - `"AI_SEARCH"` - `"ARCHIVER"` - `bot_kind: Optional[List[Literal["AGENT", "BOT"]]]` Filters results by bot kind. - `"AGENT"` - `"BOT"` - `bot_operator: Optional[SequenceNotStr[str]]` Filters results by bot operator. - `bot_verification_status: Optional[List[Literal["VERIFIED"]]]` Filters results by bot verification status (Verified vs. Unverified). - `"VERIFIED"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class BotTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bots.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] } }, "success": true } ``` ## Get time series distribution of bots HTTP requests by dimension. `radar.bots.timeseries_groups(Literal["BOT", "BOT_KIND", "BOT_OPERATOR", "BOT_CATEGORY"]dimension, BotTimeseriesGroupsParams**kwargs) -> BotTimeseriesGroupsResponse` **get** `/radar/bots/timeseries_groups/{dimension}` Retrieves the distribution of HTTP requests from bots, grouped by the specified dimension over time. ### Parameters - `dimension: Literal["BOT", "BOT_KIND", "BOT_OPERATOR", "BOT_CATEGORY"]` Specifies the attribute by which to group the results. - `"BOT"` - `"BOT_KIND"` - `"BOT_OPERATOR"` - `"BOT_CATEGORY"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot: Optional[SequenceNotStr[str]]` Filters results by bot name. - `bot_category: Optional[List[Literal["SEARCH_ENGINE_CRAWLER", "SEARCH_ENGINE_OPTIMIZATION", "MONITORING_AND_ANALYTICS", 13 more]]]` Filters results by bot category. - `"SEARCH_ENGINE_CRAWLER"` - `"SEARCH_ENGINE_OPTIMIZATION"` - `"MONITORING_AND_ANALYTICS"` - `"ADVERTISING_AND_MARKETING"` - `"SOCIAL_MEDIA_MARKETING"` - `"PAGE_PREVIEW"` - `"ACADEMIC_RESEARCH"` - `"SECURITY"` - `"ACCESSIBILITY"` - `"WEBHOOKS"` - `"FEED_FETCHER"` - `"AI_CRAWLER"` - `"AGGREGATOR"` - `"AI_ASSISTANT"` - `"AI_SEARCH"` - `"ARCHIVER"` - `bot_kind: Optional[List[Literal["AGENT", "BOT"]]]` Filters results by bot kind. - `"AGENT"` - `"BOT"` - `bot_operator: Optional[SequenceNotStr[str]]` Filters results by bot operator. - `bot_verification_status: Optional[List[Literal["VERIFIED"]]]` Filters results by bot verification status (Verified vs. Unverified). - `"VERIFIED"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class BotTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bots.timeseries_groups( dimension="BOT", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Bot List Response - `class BotListResponse: …` - `bots: List[Bot]` - `category: str` The category of the bot. - `description: str` A summary for the bot (e.g., purpose). - `kind: str` The kind of the bot. - `name: str` The name of the bot. - `operator: str` The organization that owns and operates the bot. - `slug: str` A kebab-case identifier derived from the bot name. - `user_agent_patterns: List[str]` ### Bot Get Response - `class BotGetResponse: …` - `bot: Bot` - `category: str` The category of the bot. - `description: str` A summary for the bot (e.g., purpose). - `kind: str` The kind of the bot. - `name: str` The name of the bot. - `operator: str` The organization that owns and operates the bot. - `operator_url: str` The link to the bot documentation. - `slug: str` A kebab-case identifier derived from the bot name. - `user_agent_patterns: List[str]` - `user_agents: List[str]` ### Bot Summary Response - `class BotSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Bot Timeseries Response - `class BotTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Bot Timeseries Groups Response - `class BotTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Web Crawlers ## Get crawler HTTP request distribution by dimension `radar.bots.web_crawlers.summary(Literal["CLIENT_TYPE", "USER_AGENT", "REFERER", 3 more]dimension, WebCrawlerSummaryParams**kwargs) -> WebCrawlerSummaryResponse` **get** `/radar/bots/crawlers/summary/{dimension}` Retrieves an aggregated summary of HTTP requests from crawlers, grouped by the specified dimension. ### Parameters - `dimension: Literal["CLIENT_TYPE", "USER_AGENT", "REFERER", 3 more]` Specifies the attribute by which to group the results. - `"CLIENT_TYPE"` - `"USER_AGENT"` - `"REFERER"` - `"CRAWL_REFER_RATIO"` - `"VERTICAL"` - `"INDUSTRY"` - `bot_operator: Optional[SequenceNotStr[str]]` Filters results by bot operator. - `client_type: Optional[List[Literal["HUMAN", "NON_AI_BOT", "AI_BOT", "MIXED_PURPOSE"]]]` Filters results by agent type. - `"HUMAN"` - `"NON_AI_BOT"` - `"AI_BOT"` - `"MIXED_PURPOSE"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `industry: Optional[SequenceNotStr[str]]` Filters results by industry. - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `vertical: Optional[SequenceNotStr[str]]` Filters results by vertical. ### Returns - `class WebCrawlerSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bots.web_crawlers.summary( dimension="CLIENT_TYPE", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "Claude": "63.40249", "DuckDuckGo": "10.274394", "Google": "8.381743" } }, "success": true } ``` ## Get time series of crawler HTTP request distribution by dimension `radar.bots.web_crawlers.timeseries_groups(Literal["CLIENT_TYPE", "USER_AGENT", "REFERER", 3 more]dimension, WebCrawlerTimeseriesGroupsParams**kwargs) -> WebCrawlerTimeseriesGroupsResponse` **get** `/radar/bots/crawlers/timeseries_groups/{dimension}` Retrieves the distribution of HTTP requests from crawlers, grouped by the specified dimension over time. ### Parameters - `dimension: Literal["CLIENT_TYPE", "USER_AGENT", "REFERER", 3 more]` Specifies the attribute by which to group the results. - `"CLIENT_TYPE"` - `"USER_AGENT"` - `"REFERER"` - `"CRAWL_REFER_RATIO"` - `"VERTICAL"` - `"INDUSTRY"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `bot_operator: Optional[SequenceNotStr[str]]` Filters results by bot operator. - `client_type: Optional[List[Literal["HUMAN", "NON_AI_BOT", "AI_BOT", "MIXED_PURPOSE"]]]` Filters results by agent type. - `"HUMAN"` - `"NON_AI_BOT"` - `"AI_BOT"` - `"MIXED_PURPOSE"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `industry: Optional[SequenceNotStr[str]]` Filters results by industry. - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `vertical: Optional[SequenceNotStr[str]]` Filters results by vertical. ### Returns - `class WebCrawlerTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.bots.web_crawlers.timeseries_groups( dimension="CLIENT_TYPE", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Web Crawler Summary Response - `class WebCrawlerSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Web Crawler Timeseries Groups Response - `class WebCrawlerTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Datasets ## List datasets `radar.datasets.list(DatasetListParams**kwargs) -> DatasetListResponse` **get** `/radar/datasets` Retrieves a list of datasets. ### Parameters - `dataset_type: Optional[Literal["RANKING_BUCKET", "REPORT"]]` Filters results by dataset type. - `"RANKING_BUCKET"` - `"REPORT"` - `date: Optional[Union[null, null]]` Filters results by the specified date. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `offset: Optional[int]` Skips the specified number of objects before fetching the results. ### Returns - `class DatasetListResponse: …` - `datasets: List[Dataset]` - `id: int` - `description: str` - `meta: object` - `tags: List[str]` - `title: str` - `type: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) datasets = client.radar.datasets.list() print(datasets.datasets) ``` #### Response ```json { "result": { "datasets": [ { "id": 3, "description": "This dataset contains a list of the op 20000 domains globally", "meta": {}, "tags": [ "global" ], "title": "Top bucket 20000 domains", "type": "RANKING_BUCKET" } ] }, "success": true } ``` ## Get dataset CSV stream `radar.datasets.get(stralias) -> DatasetGetResponse` **get** `/radar/datasets/{alias}` Retrieves the CSV content of a given dataset by alias or ID. When getting the content by alias the latest dataset is returned, optionally filtered by the latest available at a given date. ### Parameters - `alias: str` Dataset alias or ID. ### Returns - `str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) dataset = client.radar.datasets.get( "ranking_top_1000", ) print(dataset) ``` ## Get dataset download URL `radar.datasets.download(DatasetDownloadParams**kwargs) -> DatasetDownloadResponse` **post** `/radar/datasets/download` Retrieves an URL to download a single dataset. ### Parameters - `dataset_id: int` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` ### Returns - `class DatasetDownloadResponse: …` - `dataset: Dataset` - `url: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.datasets.download( dataset_id=3, ) print(response.dataset) ``` #### Response ```json { "result": { "dataset": { "url": "https://example.com/download" } } } ``` ## Domain Types ### Dataset List Response - `class DatasetListResponse: …` - `datasets: List[Dataset]` - `id: int` - `description: str` - `meta: object` - `tags: List[str]` - `title: str` - `type: str` ### Dataset Get Response - `str` ### Dataset Download Response - `class DatasetDownloadResponse: …` - `dataset: Dataset` - `url: str` # DNS ## Get DNS summary by dimension `radar.dns.summary_v2(Literal["AS", "CACHE_HIT", "DNSSEC", 11 more]dimension, DNSSummaryV2Params**kwargs) -> DNSSummaryV2Response` **get** `/radar/dns/summary/{dimension}` Retrieves the distribution of DNS queries by the specified dimension. ### Parameters - `dimension: Literal["AS", "CACHE_HIT", "DNSSEC", 11 more]` Specifies the attribute by which to group the results. - `"AS"` - `"CACHE_HIT"` - `"DNSSEC"` - `"DNSSEC_AWARE"` - `"DNSSEC_E2E"` - `"IP_VERSION"` - `"LOCATION"` - `"MATCHING_ANSWER"` - `"PROTOCOL"` - `"QUERY_TYPE"` - `"RESPONSE_CODE"` - `"RESPONSE_TTL"` - `"TLD"` - `"TLD_DNS_MAGNITUDE"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `cache_hit: Optional[Iterable[bool]]` Filters results based on cache status. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dnssec: Optional[List[Literal["INVALID", "INSECURE", "SECURE", "OTHER"]]]` Filters results based on DNSSEC (DNS Security Extensions) support. - `"INVALID"` - `"INSECURE"` - `"SECURE"` - `"OTHER"` - `dnssec_aware: Optional[List[Literal["SUPPORTED", "NOT_SUPPORTED"]]]` Filters results based on DNSSEC (DNS Security Extensions) client awareness. - `"SUPPORTED"` - `"NOT_SUPPORTED"` - `dnssec_e2e: Optional[Iterable[bool]]` Filters results based on DNSSEC-validated answers by end-to-end security status. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `matching_answer: Optional[Iterable[bool]]` Filters results based on whether the queries have a matching answer. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `response_ttl: Optional[List[Literal["LTE_1M", "GT_1M_LTE_5M", "GT_5M_LTE_15M", 4 more]]]` Filters results by DNS response TTL. - `"LTE_1M"` - `"GT_1M_LTE_5M"` - `"GT_5M_LTE_15M"` - `"GT_15M_LTE_1H"` - `"GT_1H_LTE_1D"` - `"GT_1D_LTE_1W"` - `"GT_1W"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class DNSSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.summary_v2( dimension="AS", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "IPv4": "50.168733", "IPv6": "25.084366" } }, "success": true } ``` ## Get DNS queries time series `radar.dns.timeseries(DNSTimeseriesParams**kwargs) -> DNSTimeseriesResponse` **get** `/radar/dns/timeseries` Retrieves normalized query volume to the 1.1.1.1 DNS resolver over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `cache_hit: Optional[Iterable[bool]]` Filters results based on cache status. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dnssec: Optional[List[Literal["INVALID", "INSECURE", "SECURE", "OTHER"]]]` Filters results based on DNSSEC (DNS Security Extensions) support. - `"INVALID"` - `"INSECURE"` - `"SECURE"` - `"OTHER"` - `dnssec_aware: Optional[List[Literal["SUPPORTED", "NOT_SUPPORTED"]]]` Filters results based on DNSSEC (DNS Security Extensions) client awareness. - `"SUPPORTED"` - `"NOT_SUPPORTED"` - `dnssec_e2e: Optional[Iterable[bool]]` Filters results based on DNSSEC-validated answers by end-to-end security status. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `matching_answer: Optional[Iterable[bool]]` Filters results based on whether the queries have a matching answer. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `response_ttl: Optional[List[Literal["LTE_1M", "GT_1M_LTE_5M", "GT_5M_LTE_15M", 4 more]]]` Filters results by DNS response TTL. - `"LTE_1M"` - `"GT_1M_LTE_5M"` - `"GT_5M_LTE_15M"` - `"GT_15M_LTE_1H"` - `"GT_1H_LTE_1D"` - `"GT_1D_LTE_1W"` - `"GT_1W"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class DNSTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] } }, "success": true } ``` ## Get DNS time series grouped by dimension `radar.dns.timeseries_groups_v2(Literal["AS", "CACHE_HIT", "DNSSEC", 10 more]dimension, DNSTimeseriesGroupsV2Params**kwargs) -> DNSTimeseriesGroupsV2Response` **get** `/radar/dns/timeseries_groups/{dimension}` Retrieves the distribution of DNS queries grouped by dimension over time. ### Parameters - `dimension: Literal["AS", "CACHE_HIT", "DNSSEC", 10 more]` Specifies the attribute by which to group the results. - `"AS"` - `"CACHE_HIT"` - `"DNSSEC"` - `"DNSSEC_AWARE"` - `"DNSSEC_E2E"` - `"IP_VERSION"` - `"LOCATION"` - `"MATCHING_ANSWER"` - `"PROTOCOL"` - `"QUERY_TYPE"` - `"RESPONSE_CODE"` - `"RESPONSE_TTL"` - `"TLD"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `cache_hit: Optional[Iterable[bool]]` Filters results based on cache status. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dnssec: Optional[List[Literal["INVALID", "INSECURE", "SECURE", "OTHER"]]]` Filters results based on DNSSEC (DNS Security Extensions) support. - `"INVALID"` - `"INSECURE"` - `"SECURE"` - `"OTHER"` - `dnssec_aware: Optional[List[Literal["SUPPORTED", "NOT_SUPPORTED"]]]` Filters results based on DNSSEC (DNS Security Extensions) client awareness. - `"SUPPORTED"` - `"NOT_SUPPORTED"` - `dnssec_e2e: Optional[Iterable[bool]]` Filters results based on DNSSEC-validated answers by end-to-end security status. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `matching_answer: Optional[Iterable[bool]]` Filters results based on whether the queries have a matching answer. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `response_ttl: Optional[List[Literal["LTE_1M", "GT_1M_LTE_5M", "GT_5M_LTE_15M", 4 more]]]` Filters results by DNS response TTL. - `"LTE_1M"` - `"GT_1M_LTE_5M"` - `"GT_5M_LTE_15M"` - `"GT_15M_LTE_1H"` - `"GT_1H_LTE_1D"` - `"GT_1D_LTE_1W"` - `"GT_1W"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class DNSTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries_groups_v2( dimension="AS", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### DNS Summary V2 Response - `class DNSSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### DNS Timeseries Response - `class DNSTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### DNS Timeseries Groups V2 Response - `class DNSTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Top ## Get top ASes by DNS queries `radar.dns.top.ases(TopAsesParams**kwargs) -> TopAsesResponse` **get** `/radar/dns/top/ases` Retrieves the top autonomous systems by DNS queries made to 1.1.1.1 DNS resolver. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `cache_hit: Optional[Iterable[bool]]` Filters results based on cache status. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dnssec: Optional[List[Literal["INVALID", "INSECURE", "SECURE", "OTHER"]]]` Filters results based on DNSSEC (DNS Security Extensions) support. - `"INVALID"` - `"INSECURE"` - `"SECURE"` - `"OTHER"` - `dnssec_aware: Optional[List[Literal["SUPPORTED", "NOT_SUPPORTED"]]]` Filters results based on DNSSEC (DNS Security Extensions) client awareness. - `"SUPPORTED"` - `"NOT_SUPPORTED"` - `dnssec_e2e: Optional[Iterable[bool]]` Filters results based on DNSSEC-validated answers by end-to-end security status. - `domain: Optional[SequenceNotStr[str]]` Filters results by domain name. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `matching_answer: Optional[Iterable[bool]]` Filters results based on whether the queries have a matching answer. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `response_ttl: Optional[List[Literal["LTE_1M", "GT_1M_LTE_5M", "GT_5M_LTE_15M", 4 more]]]` Filters results by DNS response TTL. - `"LTE_1M"` - `"GT_1M_LTE_5M"` - `"GT_5M_LTE_15M"` - `"GT_15M_LTE_1H"` - `"GT_1H_LTE_1D"` - `"GT_1D_LTE_1W"` - `"GT_1W"` ### Returns - `class TopAsesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.top.ases() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientASN": 3243, "clientASName": "MEO", "value": "10" } ] }, "success": true } ``` ## Get top locations by DNS queries `radar.dns.top.locations(TopLocationsParams**kwargs) -> TopLocationsResponse` **get** `/radar/dns/top/locations` Retrieves the top locations by DNS queries made to 1.1.1.1 DNS resolver. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `cache_hit: Optional[Iterable[bool]]` Filters results based on cache status. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dnssec: Optional[List[Literal["INVALID", "INSECURE", "SECURE", "OTHER"]]]` Filters results based on DNSSEC (DNS Security Extensions) support. - `"INVALID"` - `"INSECURE"` - `"SECURE"` - `"OTHER"` - `dnssec_aware: Optional[List[Literal["SUPPORTED", "NOT_SUPPORTED"]]]` Filters results based on DNSSEC (DNS Security Extensions) client awareness. - `"SUPPORTED"` - `"NOT_SUPPORTED"` - `dnssec_e2e: Optional[Iterable[bool]]` Filters results based on DNSSEC-validated answers by end-to-end security status. - `domain: Optional[SequenceNotStr[str]]` Filters results by domain name. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `matching_answer: Optional[Iterable[bool]]` Filters results based on whether the queries have a matching answer. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `response_ttl: Optional[List[Literal["LTE_1M", "GT_1M_LTE_5M", "GT_5M_LTE_15M", 4 more]]]` Filters results by DNS response TTL. - `"LTE_1M"` - `"GT_1M_LTE_5M"` - `"GT_5M_LTE_15M"` - `"GT_15M_LTE_1H"` - `"GT_1H_LTE_1D"` - `"GT_1D_LTE_1W"` - `"GT_1W"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class TopLocationsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.top.locations() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Top Ases Response - `class TopAsesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. ### Top Locations Response - `class TopLocationsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # Summary ## Get DNS queries by cache status summary `radar.dns.summary.cache_hit(SummaryCacheHitParams**kwargs) -> SummaryCacheHitResponse` **get** `/radar/dns/summary/cache_hit` Retrieves the distribution of DNS queries by cache status. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class SummaryCacheHitResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `negative: str` A numeric string. - `positive: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.summary.cache_hit() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NEGATIVE": "10", "POSITIVE": "10" } }, "success": true } ``` ## Get DNS queries by DNSSEC support summary `radar.dns.summary.dnssec(SummaryDNSSECParams**kwargs) -> SummaryDNSSECResponse` **get** `/radar/dns/summary/dnssec` Retrieves the distribution of DNS responses by DNSSEC (DNS Security Extensions) support. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class SummaryDNSSECResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `insecure: str` A numeric string. - `invalid: str` A numeric string. - `other: str` A numeric string. - `secure: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.summary.dnssec() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "INSECURE": "10", "INVALID": "10", "OTHER": "10", "SECURE": "10" } }, "success": true } ``` ## Get DNS queries by DNSSEC awareness summary `radar.dns.summary.dnssec_aware(SummaryDNSSECAwareParams**kwargs) -> SummaryDNSSECAwareResponse` **get** `/radar/dns/summary/dnssec_aware` Retrieves the distribution of DNS queries by DNSSEC (DNS Security Extensions) client awareness. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class SummaryDNSSECAwareResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_supported: str` A numeric string. - `supported: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.summary.dnssec_aware() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NOT_SUPPORTED": "10", "SUPPORTED": "10" } }, "success": true } ``` ## Get DNS queries by DNSSEC end-to-end summary `radar.dns.summary.dnssec_e2e(SummaryDNSSECE2EParams**kwargs) -> SummaryDNSSECE2EResponse` **get** `/radar/dns/summary/dnssec_e2e` Retrieves the distribution of DNSSEC-validated answers by end-to-end security status. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class SummaryDNSSECE2EResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `negative: str` A numeric string. - `positive: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.summary.dnssec_e2e() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NEGATIVE": "10", "POSITIVE": "10" } }, "success": true } ``` ## Get DNS queries by IP version summary `radar.dns.summary.ip_version(SummaryIPVersionParams**kwargs) -> SummaryIPVersionResponse` **get** `/radar/dns/summary/ip_version` Retrieves the distribution of DNS queries by IP version. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` A numeric string. - `i_pv6: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.summary.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "IPv4": "10", "IPv6": "10" } }, "success": true } ``` ## Get DNS queries by matching answer summary `radar.dns.summary.matching_answer(SummaryMatchingAnswerParams**kwargs) -> SummaryMatchingAnswerResponse` **get** `/radar/dns/summary/matching_answer` Retrieves the distribution of DNS queries by matching answers. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class SummaryMatchingAnswerResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `negative: str` A numeric string. - `positive: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.summary.matching_answer() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NEGATIVE": "10", "POSITIVE": "10" } }, "success": true } ``` ## Get DNS queries by protocol summary `radar.dns.summary.protocol(SummaryProtocolParams**kwargs) -> SummaryProtocolResponse` **get** `/radar/dns/summary/protocol` Retrieves the distribution of DNS queries by DNS transport protocol. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class SummaryProtocolResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `https: str` A numeric string. - `tcp: str` A numeric string. - `tls: str` A numeric string. - `udp: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.summary.protocol() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "HTTPS": "10", "TCP": "10", "TLS": "10", "UDP": "10" } }, "success": true } ``` ## Get DNS queries by type summary `radar.dns.summary.query_type(SummaryQueryTypeParams**kwargs) -> SummaryQueryTypeResponse` **get** `/radar/dns/summary/query_type` Retrieves the distribution of DNS queries by type. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class SummaryQueryTypeResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.summary.query_type() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "A": "20", "AAAA": "20", "HTTPS": "20", "NS": "20", "PTR": "20" } }, "success": true } ``` ## Get DNS queries by response code summary `radar.dns.summary.response_code(SummaryResponseCodeParams**kwargs) -> SummaryResponseCodeResponse` **get** `/radar/dns/summary/response_code` Retrieves the distribution of DNS queries by response code. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class SummaryResponseCodeResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.summary.response_code() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NOERROR": "70", "NOTIMP": "5", "NXDOMAIN": "10", "REFUSED": "5", "SERVFAIL": "5" } }, "success": true } ``` ## Get DNS queries by response TTL summary `radar.dns.summary.response_ttl(SummaryResponseTTLParams**kwargs) -> SummaryResponseTTLResponse` **get** `/radar/dns/summary/response_ttl` Retrieves the distribution of DNS queries by minimum response TTL. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class SummaryResponseTTLResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `gt_15m_lte_1h: str` A numeric string. - `gt_1d_lte_1w: str` A numeric string. - `gt_1h_lte_1d: str` A numeric string. - `gt_1m_lte_5m: str` A numeric string. - `gt_1w: str` A numeric string. - `gt_5m_lte_15m: str` A numeric string. - `lte_1m: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.summary.response_ttl() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "gt_15m_lte_1h": "10", "gt_1d_lte_1w": "10", "gt_1h_lte_1d": "10", "gt_1m_lte_5m": "10", "gt_1w": "10", "gt_5m_lte_15m": "10", "lte_1m": "10" } }, "success": true } ``` ## Domain Types ### Summary Cache Hit Response - `class SummaryCacheHitResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `negative: str` A numeric string. - `positive: str` A numeric string. ### Summary DNSSEC Response - `class SummaryDNSSECResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `insecure: str` A numeric string. - `invalid: str` A numeric string. - `other: str` A numeric string. - `secure: str` A numeric string. ### Summary DNSSEC Aware Response - `class SummaryDNSSECAwareResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_supported: str` A numeric string. - `supported: str` A numeric string. ### Summary DNSSEC E2E Response - `class SummaryDNSSECE2EResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `negative: str` A numeric string. - `positive: str` A numeric string. ### Summary IP Version Response - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` A numeric string. - `i_pv6: str` A numeric string. ### Summary Matching Answer Response - `class SummaryMatchingAnswerResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `negative: str` A numeric string. - `positive: str` A numeric string. ### Summary Protocol Response - `class SummaryProtocolResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `https: str` A numeric string. - `tcp: str` A numeric string. - `tls: str` A numeric string. - `udp: str` A numeric string. ### Summary Query Type Response - `class SummaryQueryTypeResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Summary Response Code Response - `class SummaryResponseCodeResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Summary Response TTL Response - `class SummaryResponseTTLResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `gt_15m_lte_1h: str` A numeric string. - `gt_1d_lte_1w: str` A numeric string. - `gt_1h_lte_1d: str` A numeric string. - `gt_1m_lte_5m: str` A numeric string. - `gt_1w: str` A numeric string. - `gt_5m_lte_15m: str` A numeric string. - `lte_1m: str` A numeric string. # Timeseries Groups ## Get DNS queries by cache status time series `radar.dns.timeseries_groups.cache_hit(TimeseriesGroupCacheHitParams**kwargs) -> TimeseriesGroupCacheHitResponse` **get** `/radar/dns/timeseries_groups/cache_hit` Retrieves the distribution of DNS queries by cache status over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class TimeseriesGroupCacheHitResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `negative: List[str]` - `positive: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries_groups.cache_hit() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "NEGATIVE": [ "10" ], "POSITIVE": [ "10" ] } }, "success": true } ``` ## Get DNS queries by DNSSEC support time series `radar.dns.timeseries_groups.dnssec(TimeseriesGroupDNSSECParams**kwargs) -> TimeseriesGroupDNSSECResponse` **get** `/radar/dns/timeseries_groups/dnssec` Retrieves the distribution of DNS responses by DNSSEC (DNS Security Extensions) support over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class TimeseriesGroupDNSSECResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `insecure: List[str]` - `invalid: List[str]` - `other: List[str]` - `secure: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries_groups.dnssec() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "INSECURE": [ "10" ], "INVALID": [ "10" ], "OTHER": [ "10" ], "SECURE": [ "10" ] } }, "success": true } ``` ## Get DNS queries by DNSSEC awareness time series `radar.dns.timeseries_groups.dnssec_aware(TimeseriesGroupDNSSECAwareParams**kwargs) -> TimeseriesGroupDNSSECAwareResponse` **get** `/radar/dns/timeseries_groups/dnssec_aware` Retrieves the distribution of DNS queries by DNSSEC (DNS Security Extensions) client awareness over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class TimeseriesGroupDNSSECAwareResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_supported: List[str]` - `supported: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries_groups.dnssec_aware() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "NOT_SUPPORTED": [ "10" ], "SUPPORTED": [ "10" ] } }, "success": true } ``` ## Get DNS queries by DNSSEC end-to-end time series `radar.dns.timeseries_groups.dnssec_e2e(TimeseriesGroupDNSSECE2EParams**kwargs) -> TimeseriesGroupDNSSECE2EResponse` **get** `/radar/dns/timeseries_groups/dnssec_e2e` Retrieves the distribution of DNSSEC-validated answers by end-to-end security status over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class TimeseriesGroupDNSSECE2EResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `negative: List[str]` - `positive: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries_groups.dnssec_e2e() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "NEGATIVE": [ "10" ], "POSITIVE": [ "10" ] } }, "success": true } ``` ## Get DNS queries by IP version time series `radar.dns.timeseries_groups.ip_version(TimeseriesGroupIPVersionParams**kwargs) -> TimeseriesGroupIPVersionResponse` **get** `/radar/dns/timeseries_groups/ip_version` Retrieves the distribution of DNS queries by IP version over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries_groups.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "IPv4": [ "10" ], "IPv6": [ "10" ] } }, "success": true } ``` ## Get DNS queries by matching answer time series `radar.dns.timeseries_groups.matching_answer(TimeseriesGroupMatchingAnswerParams**kwargs) -> TimeseriesGroupMatchingAnswerResponse` **get** `/radar/dns/timeseries_groups/matching_answer` Retrieves the distribution of DNS queries by matching answers over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class TimeseriesGroupMatchingAnswerResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `negative: List[str]` - `positive: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries_groups.matching_answer() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "NEGATIVE": [ "10" ], "POSITIVE": [ "10" ] } }, "success": true } ``` ## Get DNS queries by protocol time series `radar.dns.timeseries_groups.protocol(TimeseriesGroupProtocolParams**kwargs) -> TimeseriesGroupProtocolResponse` **get** `/radar/dns/timeseries_groups/protocol` Retrieves the distribution of DNS queries by DNS transport protocol over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class TimeseriesGroupProtocolResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `https: List[str]` - `tcp: List[str]` - `tls: List[str]` - `udp: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries_groups.protocol() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "HTTPS": [ "10" ], "TCP": [ "10" ], "TLS": [ "10" ], "UDP": [ "10" ] } }, "success": true } ``` ## Get DNS queries by type time series `radar.dns.timeseries_groups.query_type(TimeseriesGroupQueryTypeParams**kwargs) -> TimeseriesGroupQueryTypeResponse` **get** `/radar/dns/timeseries_groups/query_type` Retrieves the distribution of DNS queries by type over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class TimeseriesGroupQueryTypeResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries_groups.query_type() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get DNS queries by response code time series `radar.dns.timeseries_groups.response_code(TimeseriesGroupResponseCodeParams**kwargs) -> TimeseriesGroupResponseCodeResponse` **get** `/radar/dns/timeseries_groups/response_code` Retrieves the distribution of DNS queries by response code over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class TimeseriesGroupResponseCodeResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries_groups.response_code() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get DNS queries by response TTL time series `radar.dns.timeseries_groups.response_ttl(TimeseriesGroupResponseTTLParams**kwargs) -> TimeseriesGroupResponseTTLResponse` **get** `/radar/dns/timeseries_groups/response_ttl` Retrieves the distribution of DNS queries by minimum answer TTL over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `nodata: Optional[Iterable[bool]]` Specifies whether the response includes empty DNS responses (NODATA). - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` - `tld: Optional[SequenceNotStr[str]]` Filters results by top-level domain. ### Returns - `class TimeseriesGroupResponseTTLResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `gt_15m_lte_1h: List[str]` - `gt_1d_lte_1w: List[str]` - `gt_1h_lte_1d: List[str]` - `gt_1m_lte_5m: List[str]` - `gt_1w: List[str]` - `gt_5m_lte_15m: List[str]` - `lte_1m: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.dns.timeseries_groups.response_ttl() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "gt_15m_lte_1h": [ "10" ], "gt_1d_lte_1w": [ "10" ], "gt_1h_lte_1d": [ "10" ], "gt_1m_lte_5m": [ "10" ], "gt_1w": [ "10" ], "gt_5m_lte_15m": [ "10" ], "lte_1m": [ "10" ] } }, "success": true } ``` ## Domain Types ### Timeseries Group Cache Hit Response - `class TimeseriesGroupCacheHitResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `negative: List[str]` - `positive: List[str]` ### Timeseries Group DNSSEC Response - `class TimeseriesGroupDNSSECResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `insecure: List[str]` - `invalid: List[str]` - `other: List[str]` - `secure: List[str]` ### Timeseries Group DNSSEC Aware Response - `class TimeseriesGroupDNSSECAwareResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_supported: List[str]` - `supported: List[str]` ### Timeseries Group DNSSEC E2E Response - `class TimeseriesGroupDNSSECE2EResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `negative: List[str]` - `positive: List[str]` ### Timeseries Group IP Version Response - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` ### Timeseries Group Matching Answer Response - `class TimeseriesGroupMatchingAnswerResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `negative: List[str]` - `positive: List[str]` ### Timeseries Group Protocol Response - `class TimeseriesGroupProtocolResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `https: List[str]` - `tcp: List[str]` - `tls: List[str]` - `udp: List[str]` ### Timeseries Group Query Type Response - `class TimeseriesGroupQueryTypeResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group Response Code Response - `class TimeseriesGroupResponseCodeResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group Response TTL Response - `class TimeseriesGroupResponseTTLResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `gt_15m_lte_1h: List[str]` - `gt_1d_lte_1w: List[str]` - `gt_1h_lte_1d: List[str]` - `gt_1m_lte_5m: List[str]` - `gt_1w: List[str]` - `gt_5m_lte_15m: List[str]` - `lte_1m: List[str]` # NetFlows ## Get network traffic time series `radar.netflows.timeseries(NetFlowsTimeseriesParams**kwargs) -> NetFlowsTimeseriesResponse` **get** `/radar/netflows/timeseries` Retrieves network traffic (NetFlows) over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE_CHANGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE_CHANGE"` - `"MIN0_MAX"` - `product: Optional[List[Literal["HTTP", "ALL"]]]` Filters the results by network traffic product types. - `"HTTP"` - `"ALL"` ### Returns - `class NetFlowsTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` - `values: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.netflows.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2019-12-27T18:11:19.117Z" ], "values": [ "10" ] } }, "success": true } ``` ## Get network traffic summary `radar.netflows.summary(NetFlowsSummaryParams**kwargs) -> NetFlowsSummaryResponse` **get** `/radar/netflows/summary` Retrieves the distribution of network traffic (NetFlows) by HTTP vs other protocols. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class NetFlowsSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `http: str` A numeric string. - `other: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.netflows.summary() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "HTTP": "10", "OTHER": "10" } }, "success": true } ``` ## Get network traffic distribution by dimension `radar.netflows.summary_v2(Literal["ADM1", "AS", "LOCATION", "PRODUCT"]dimension, NetFlowsSummaryV2Params**kwargs) -> NetFlowsSummaryV2Response` **get** `/radar/netflows/summary/{dimension}` Retrieves the distribution of network traffic (NetFlows) by the specified dimension. ### Parameters - `dimension: Literal["ADM1", "AS", "LOCATION", "PRODUCT"]` Specifies the NetFlows attribute by which to group the results. - `"ADM1"` - `"AS"` - `"LOCATION"` - `"PRODUCT"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `product: Optional[List[Literal["HTTP", "ALL"]]]` Filters the results by network traffic product types. - `"HTTP"` - `"ALL"` ### Returns - `class NetFlowsSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.netflows.summary_v2( dimension="ADM1", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "Germany": "25.084366", "United States": "50.168733" } }, "success": true } ``` ## Get time series distribution of network traffic by dimension `radar.netflows.timeseries_groups(Literal["ADM1", "AS", "LOCATION", "PRODUCT"]dimension, NetFlowsTimeseriesGroupsParams**kwargs) -> NetFlowsTimeseriesGroupsResponse` **get** `/radar/netflows/timeseries_groups/{dimension}` Retrieves the distribution of NetFlows traffic, grouped by the specified dimension over time. ### Parameters - `dimension: Literal["ADM1", "AS", "LOCATION", "PRODUCT"]` Specifies the NetFlows attribute by which to group the results. - `"ADM1"` - `"AS"` - `"LOCATION"` - `"PRODUCT"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `product: Optional[List[Literal["HTTP", "ALL"]]]` Filters the results by network traffic product types. - `"HTTP"` - `"ALL"` ### Returns - `class NetFlowsTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.netflows.timeseries_groups( dimension="ADM1", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### NetFlows Timeseries Response - `class NetFlowsTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` - `values: List[str]` ### NetFlows Summary Response - `class NetFlowsSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `http: str` A numeric string. - `other: str` A numeric string. ### NetFlows Summary V2 Response - `class NetFlowsSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### NetFlows Timeseries Groups Response - `class NetFlowsTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Top ## Get top ASes by network traffic `radar.netflows.top.ases(TopAsesParams**kwargs) -> TopAsesResponse` **get** `/radar/netflows/top/ases` Retrieves the top autonomous systems by network traffic (NetFlows). ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TopAsesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: float` - `client_as_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.netflows.top.ases() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientASN": 16509, "clientASName": "AMAZON-02", "value": "10" } ] }, "success": true } ``` ## Get top locations by network traffic `radar.netflows.top.locations(TopLocationsParams**kwargs) -> TopLocationsResponse` **get** `/radar/netflows/top/locations` Retrieves the top locations by network traffic (NetFlows). ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TopLocationsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.netflows.top.locations() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "US", "clientCountryName": "United States", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Top Ases Response - `class TopAsesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: float` - `client_as_name: str` - `value: str` A numeric string. ### Top Locations Response - `class TopLocationsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # Post Quantum # Origin ## Get Origin Post-Quantum Data Summary `radar.post_quantum.origin.summary(Literal["KEY_AGREEMENT"]dimension, OriginSummaryParams**kwargs) -> OriginSummaryResponse` **get** `/radar/post_quantum/origin/summary/{dimension}` Returns a summary of origin post-quantum data grouped by the specified dimension. ### Parameters - `dimension: Literal["KEY_AGREEMENT"]` Specifies the origin post-quantum data dimension by which to group the results. - `"KEY_AGREEMENT"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class OriginSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.post_quantum.origin.summary( dimension="KEY_AGREEMENT", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "CurveP256": "99.1234", "CurveP384": "85.5678", "CurveP521": "45.9012", "X25519": "98.3456", "X25519MLKEM768": "12.7890" } }, "success": true } ``` ## Get Origin Post-Quantum Data Over Time `radar.post_quantum.origin.timeseries_groups(Literal["KEY_AGREEMENT"]dimension, OriginTimeseriesGroupsParams**kwargs) -> OriginTimeseriesGroupsResponse` **get** `/radar/post_quantum/origin/timeseries_groups/{dimension}` Returns a timeseries of origin post-quantum data grouped by the specified dimension. ### Parameters - `dimension: Literal["KEY_AGREEMENT"]` Specifies the origin post-quantum data dimension by which to group the results. - `"KEY_AGREEMENT"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class OriginTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.post_quantum.origin.timeseries_groups( dimension="KEY_AGREEMENT", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Origin Summary Response - `class OriginSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Origin Timeseries Groups Response - `class OriginTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # TLS ## Check Post-Quantum TLS support `radar.post_quantum.tls.support(TLSSupportParams**kwargs) -> TLSSupportResponse` **get** `/radar/post_quantum/tls/support` Tests whether a hostname or IP address supports Post-Quantum (PQ) TLS key exchange. Returns information about the negotiated key exchange algorithm and whether it uses PQ cryptography. ### Parameters - `host: str` Hostname or IP address to test for Post-Quantum TLS support, optionally with port (defaults to 443). ### Returns - `class TLSSupportResponse: …` - `host: str` The host that was tested - `kex: float` TLS CurveID of the negotiated key exchange - `kex_name: str` Human-readable name of the key exchange algorithm - `pq: bool` Whether the negotiated key exchange uses Post-Quantum cryptography ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.post_quantum.tls.support( host="cloudflare.com", ) print(response.host) ``` #### Response ```json { "result": { "host": "host", "kex": 0, "kexName": "kexName", "pq": true }, "success": true } ``` ## Domain Types ### TLS Support Response - `class TLSSupportResponse: …` - `host: str` The host that was tested - `kex: float` TLS CurveID of the negotiated key exchange - `kex_name: str` Human-readable name of the key exchange algorithm - `pq: bool` Whether the negotiated key exchange uses Post-Quantum cryptography # Search ## Search for locations, ASes, reports, and more `radar.search.global_(SearchGlobalParams**kwargs) -> SearchGlobalResponse` **get** `/radar/search/global` Searches for locations, autonomous systems, reports, bots, certificate logs, certificate authorities, industries and verticals. Location names can be localized by sending an `Accept-Language` HTTP header with a BCP 47 language tag (e.g., `Accept-Language: pt-PT`). The full quality-value chain is supported (e.g., `pt-PT,pt;q=0.9,en;q=0.8`). ### Parameters - `query: str` String used to perform the search operation. - `exclude: Optional[List[Literal["ADM1S", "ASNS", "BOTS", 9 more]]]` Search types excluded from results. - `"ADM1S"` - `"ASNS"` - `"BOTS"` - `"CERTIFICATE_AUTHORITIES"` - `"CERTIFICATE_LOGS"` - `"ORIGINS"` - `"ORIGIN_REGIONS"` - `"INDUSTRIES"` - `"LOCATIONS"` - `"NOTEBOOKS"` - `"TLDS"` - `"VERTICALS"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `include: Optional[List[Literal["ADM1S", "ASNS", "BOTS", 9 more]]]` Search types included in results. - `"ADM1S"` - `"ASNS"` - `"BOTS"` - `"CERTIFICATE_AUTHORITIES"` - `"CERTIFICATE_LOGS"` - `"ORIGINS"` - `"ORIGIN_REGIONS"` - `"INDUSTRIES"` - `"LOCATIONS"` - `"NOTEBOOKS"` - `"TLDS"` - `"VERTICALS"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `limit_per_group: Optional[float]` Limits the number of objects per search category. ### Returns - `class SearchGlobalResponse: …` - `search: List[Search]` - `code: str` - `name: str` - `type: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.search.global_( query="United", ) print(response.search) ``` #### Response ```json { "result": { "search": [ { "code": "13335", "name": "Cloudflare", "type": "asn" } ] }, "success": true } ``` ## Domain Types ### Search Global Response - `class SearchGlobalResponse: …` - `search: List[Search]` - `code: str` - `name: str` - `type: str` # Verified Bots # Top ## Get top verified bots by HTTP requests `radar.verified_bots.top.bots(TopBotsParams**kwargs) -> TopBotsResponse` **get** `/radar/verified_bots/top/bots` Retrieves the top verified bots by HTTP requests, with owner and category. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TopBotsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `bot_category: str` - `bot_name: str` - `bot_owner: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.verified_bots.top.bots() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "botCategory": "Search Engine Crawler", "botName": "GoogleBot", "botOwner": "Google", "value": "10" } ] }, "success": true } ``` ## Get top verified bot categories by HTTP requests `radar.verified_bots.top.categories(TopCategoriesParams**kwargs) -> TopCategoriesResponse` **get** `/radar/verified_bots/top/categories` Retrieves the top verified bot categories by HTTP requests, along with their corresponding percentage, over the total verified bot HTTP requests. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TopCategoriesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `bot_category: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.verified_bots.top.categories() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "botCategory": "Search", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Top Bots Response - `class TopBotsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `bot_category: str` - `bot_name: str` - `bot_owner: str` - `value: str` A numeric string. ### Top Categories Response - `class TopCategoriesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `bot_category: str` - `value: str` A numeric string. # AS112 ## Get AS112 DNS queries time series `radar.as112.timeseries(AS112TimeseriesParams**kwargs) -> AS112TimeseriesResponse` **get** `/radar/as112/timeseries` Retrieves the AS112 DNS queries over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class AS112TimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] } }, "success": true } ``` ## Get AS112 summary by dimension `radar.as112.summary_v2(Literal["DNSSEC", "EDNS", "IP_VERSION", 3 more]dimension, AS112SummaryV2Params**kwargs) -> AS112SummaryV2Response` **get** `/radar/as112/summary/{dimension}` Retrieves the distribution of AS112 queries by the specified dimension. ### Parameters - `dimension: Literal["DNSSEC", "EDNS", "IP_VERSION", 3 more]` Specifies the attribute by which to group the results. - `"DNSSEC"` - `"EDNS"` - `"IP_VERSION"` - `"PROTOCOL"` - `"QUERY_TYPE"` - `"RESPONSE_CODE"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class AS112SummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.summary_v2( dimension="DNSSEC", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "IPv4": "50.168733", "IPv6": "25.084366" } }, "success": true } ``` ## Get AS112 time series grouped by dimension `radar.as112.timeseries_groups_v2(Literal["DNSSEC", "EDNS", "IP_VERSION", 3 more]dimension, AS112TimeseriesGroupsV2Params**kwargs) -> AS112TimeseriesGroupsV2Response` **get** `/radar/as112/timeseries_groups/{dimension}` Retrieves the distribution of AS112 queries grouped by dimension over time. ### Parameters - `dimension: Literal["DNSSEC", "EDNS", "IP_VERSION", 3 more]` Specifies the attribute by which to group the results. - `"DNSSEC"` - `"EDNS"` - `"IP_VERSION"` - `"PROTOCOL"` - `"QUERY_TYPE"` - `"RESPONSE_CODE"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class AS112TimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.timeseries_groups_v2( dimension="DNSSEC", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### AS112 Timeseries Response - `class AS112TimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### AS112 Summary V2 Response - `class AS112SummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### AS112 Timeseries Groups V2 Response - `class AS112TimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Summary ## Get AS112 DNS queries by DNSSEC summary `radar.as112.summary.dnssec(SummaryDNSSECParams**kwargs) -> SummaryDNSSECResponse` **get** `/radar/as112/summary/dnssec` Retrieves the distribution of DNS queries to AS112 by DNSSEC (DNS Security Extensions) support. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class SummaryDNSSECResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_supported: str` A numeric string. - `supported: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.summary.dnssec() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NOT_SUPPORTED": "10", "SUPPORTED": "10" } }, "success": true } ``` ## Get AS112 DNS queries by EDNS summary `radar.as112.summary.edns(SummaryEdnsParams**kwargs) -> SummaryEdnsResponse` **get** `/radar/as112/summary/edns` Retrieves the distribution of DNS queries to AS112 by EDNS (Extension Mechanisms for DNS) support. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class SummaryEdnsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_supported: str` A numeric string. - `supported: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.summary.edns() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NOT_SUPPORTED": "10", "SUPPORTED": "10" } }, "success": true } ``` ## Get AS112 DNS queries by IP version summary `radar.as112.summary.ip_version(SummaryIPVersionParams**kwargs) -> SummaryIPVersionResponse` **get** `/radar/as112/summary/ip_version` Retrieves the distribution of DNS queries to AS112 by IP version. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` A numeric string. - `i_pv6: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.summary.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "IPv4": "10", "IPv6": "10" } }, "success": true } ``` ## Get AS112 DNS queries by DNS protocol summary `radar.as112.summary.protocol(SummaryProtocolParams**kwargs) -> SummaryProtocolResponse` **get** `/radar/as112/summary/protocol` Retrieves the distribution of DNS queries to AS112 by protocol. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class SummaryProtocolResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `https: str` A numeric string. - `tcp: str` A numeric string. - `tls: str` A numeric string. - `udp: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.summary.protocol() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "HTTPS": "10", "TCP": "10", "TLS": "10", "UDP": "10" } }, "success": true } ``` ## Get AS112 DNS queries by type summary `radar.as112.summary.query_type(SummaryQueryTypeParams**kwargs) -> SummaryQueryTypeResponse` **get** `/radar/as112/summary/query_type` Retrieves the distribution of DNS queries to AS112 by type. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class SummaryQueryTypeResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.summary.query_type() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "A": "19", "AAAA": "1", "PTR": "74", "SOA": "5", "SRV": "1" } }, "success": true } ``` ## Get AS112 DNS queries by response code summary `radar.as112.summary.response_codes(SummaryResponseCodesParams**kwargs) -> SummaryResponseCodesResponse` **get** `/radar/as112/summary/response_codes` Retrieves the distribution of AS112 DNS requests classified by response code. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` ### Returns - `class SummaryResponseCodesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.summary.response_codes() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NOERROR": "70", "NOTIMP": "5", "NXDOMAIN": "10", "REFUSED": "5", "SERVFAIL": "5" } }, "success": true } ``` ## Domain Types ### Summary DNSSEC Response - `class SummaryDNSSECResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_supported: str` A numeric string. - `supported: str` A numeric string. ### Summary Edns Response - `class SummaryEdnsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_supported: str` A numeric string. - `supported: str` A numeric string. ### Summary IP Version Response - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` A numeric string. - `i_pv6: str` A numeric string. ### Summary Protocol Response - `class SummaryProtocolResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `https: str` A numeric string. - `tcp: str` A numeric string. - `tls: str` A numeric string. - `udp: str` A numeric string. ### Summary Query Type Response - `class SummaryQueryTypeResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Summary Response Codes Response - `class SummaryResponseCodesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` # Timeseries Groups ## Get AS112 DNS queries by DNS protocol time series `radar.as112.timeseries_groups.protocol(TimeseriesGroupProtocolParams**kwargs) -> TimeseriesGroupProtocolResponse` **get** `/radar/as112/timeseries_groups/protocol` Retrieves the distribution of AS112 DNS requests classified by protocol over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class TimeseriesGroupProtocolResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `https: List[str]` - `tcp: List[str]` - `tls: List[str]` - `udp: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.timeseries_groups.protocol() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "HTTPS": [ "10" ], "TCP": [ "10" ], "TLS": [ "10" ], "UDP": [ "10" ] } }, "success": true } ``` ## Get AS112 DNS queries by type time series `radar.as112.timeseries_groups.query_type(TimeseriesGroupQueryTypeParams**kwargs) -> TimeseriesGroupQueryTypeResponse` **get** `/radar/as112/timeseries_groups/query_type` Retrieves the distribution of AS112 DNS queries by type over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class TimeseriesGroupQueryTypeResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.timeseries_groups.query_type() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get AS112 DNS queries by response code time series `radar.as112.timeseries_groups.response_codes(TimeseriesGroupResponseCodesParams**kwargs) -> TimeseriesGroupResponseCodesResponse` **get** `/radar/as112/timeseries_groups/response_codes` Retrieves the distribution of AS112 DNS requests classified by response code over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` ### Returns - `class TimeseriesGroupResponseCodesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.timeseries_groups.response_codes() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get AS112 DNS queries by DNSSEC support time series `radar.as112.timeseries_groups.dnssec(TimeseriesGroupDNSSECParams**kwargs) -> TimeseriesGroupDNSSECResponse` **get** `/radar/as112/timeseries_groups/dnssec` Retrieves the distribution of AS112 DNS queries by DNSSEC (DNS Security Extensions) support over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class TimeseriesGroupDNSSECResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_supported: List[str]` - `supported: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.timeseries_groups.dnssec() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "NOT_SUPPORTED": [ "10" ], "SUPPORTED": [ "10" ] } }, "success": true } ``` ## Get AS112 DNS queries by EDNS support summary `radar.as112.timeseries_groups.edns(TimeseriesGroupEdnsParams**kwargs) -> TimeseriesGroupEdnsResponse` **get** `/radar/as112/timeseries_groups/edns` Retrieves the distribution of AS112 DNS queries by EDNS (Extension Mechanisms for DNS) support over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class TimeseriesGroupEdnsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_supported: List[str]` - `supported: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.timeseries_groups.edns() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "NOT_SUPPORTED": [ "10" ], "SUPPORTED": [ "10" ] } }, "success": true } ``` ## Get AS112 DNS queries by IP version time series `radar.as112.timeseries_groups.ip_version(TimeseriesGroupIPVersionParams**kwargs) -> TimeseriesGroupIPVersionResponse` **get** `/radar/as112/timeseries_groups/ip_version` Retrieves the distribution of AS112 DNS queries by IP version over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "HTTPS", "TLS"]]]` Filters results by DNS transport protocol. - `"UDP"` - `"TCP"` - `"HTTPS"` - `"TLS"` - `query_type: Optional[List[Optional[Literal["A", "AAAA", "A6", 85 more]]]]` Filters results by DNS query type. - `"A"` - `"AAAA"` - `"A6"` - `"AFSDB"` - `"ANY"` - `"APL"` - `"ATMA"` - `"AXFR"` - `"CAA"` - `"CDNSKEY"` - `"CDS"` - `"CERT"` - `"CNAME"` - `"CSYNC"` - `"DHCID"` - `"DLV"` - `"DNAME"` - `"DNSKEY"` - `"DOA"` - `"DS"` - `"EID"` - `"EUI48"` - `"EUI64"` - `"GPOS"` - `"GID"` - `"HINFO"` - `"HIP"` - `"HTTPS"` - `"IPSECKEY"` - `"ISDN"` - `"IXFR"` - `"KEY"` - `"KX"` - `"L32"` - `"L64"` - `"LOC"` - `"LP"` - `"MAILA"` - `"MAILB"` - `"MB"` - `"MD"` - `"MF"` - `"MG"` - `"MINFO"` - `"MR"` - `"MX"` - `"NAPTR"` - `"NB"` - `"NBSTAT"` - `"NID"` - `"NIMLOC"` - `"NINFO"` - `"NS"` - `"NSAP"` - `"NSEC"` - `"NSEC3"` - `"NSEC3PARAM"` - `"NULL"` - `"NXT"` - `"OPENPGPKEY"` - `"OPT"` - `"PTR"` - `"PX"` - `"RKEY"` - `"RP"` - `"RRSIG"` - `"RT"` - `"SIG"` - `"SINK"` - `"SMIMEA"` - `"SOA"` - `"SPF"` - `"SRV"` - `"SSHFP"` - `"SVCB"` - `"TA"` - `"TALINK"` - `"TKEY"` - `"TLSA"` - `"TSIG"` - `"TXT"` - `"UINFO"` - `"UID"` - `"UNSPEC"` - `"URI"` - `"WKS"` - `"X25"` - `"ZONEMD"` - `response_code: Optional[List[Literal["NOERROR", "FORMERR", "SERVFAIL", 16 more]]]` Filters results by DNS response code. - `"NOERROR"` - `"FORMERR"` - `"SERVFAIL"` - `"NXDOMAIN"` - `"NOTIMP"` - `"REFUSED"` - `"YXDOMAIN"` - `"YXRRSET"` - `"NXRRSET"` - `"NOTAUTH"` - `"NOTZONE"` - `"BADSIG"` - `"BADKEY"` - `"BADTIME"` - `"BADMODE"` - `"BADNAME"` - `"BADALG"` - `"BADTRUNC"` - `"BADCOOKIE"` ### Returns - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.timeseries_groups.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "IPv4": [ "10" ], "IPv6": [ "10" ] } }, "success": true } ``` ## Domain Types ### Timeseries Group Protocol Response - `class TimeseriesGroupProtocolResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `https: List[str]` - `tcp: List[str]` - `tls: List[str]` - `udp: List[str]` ### Timeseries Group Query Type Response - `class TimeseriesGroupQueryTypeResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group Response Codes Response - `class TimeseriesGroupResponseCodesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group DNSSEC Response - `class TimeseriesGroupDNSSECResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_supported: List[str]` - `supported: List[str]` ### Timeseries Group Edns Response - `class TimeseriesGroupEdnsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_supported: List[str]` - `supported: List[str]` ### Timeseries Group IP Version Response - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` # Top ## Get top locations by AS112 DNS queries `radar.as112.top.locations(TopLocationsParams**kwargs) -> TopLocationsResponse` **get** `/radar/as112/top/locations` Retrieves the top locations by AS112 DNS queries. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TopLocationsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.top.locations() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Get top locations by AS112 DNS queries with DNSSEC support `radar.as112.top.dnssec(Literal["SUPPORTED", "NOT_SUPPORTED"]dnssec, TopDNSSECParams**kwargs) -> TopDNSSECResponse` **get** `/radar/as112/top/locations/dnssec/{dnssec}` Retrieves the top locations of DNS queries to AS112 with DNSSEC (DNS Security Extensions) support. ### Parameters - `dnssec: Literal["SUPPORTED", "NOT_SUPPORTED"]` DNSSEC (DNS Security Extensions) status. - `"SUPPORTED"` - `"NOT_SUPPORTED"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TopDNSSECResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.top.dnssec( dnssec="SUPPORTED", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Get top locations by AS112 DNS queries with EDNS support `radar.as112.top.edns(Literal["SUPPORTED", "NOT_SUPPORTED"]edns, TopEdnsParams**kwargs) -> TopEdnsResponse` **get** `/radar/as112/top/locations/edns/{edns}` Retrieves the top locations of DNS queries to AS112 with EDNS (Extension Mechanisms for DNS) support. ### Parameters - `edns: Literal["SUPPORTED", "NOT_SUPPORTED"]` EDNS (Extension Mechanisms for DNS) status. - `"SUPPORTED"` - `"NOT_SUPPORTED"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TopEdnsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.top.edns( edns="SUPPORTED", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Get top locations by AS112 DNS queries for an IP version `radar.as112.top.ip_version(Literal["IPv4", "IPv6"]ip_version, TopIPVersionParams**kwargs) -> TopIPVersionResponse` **get** `/radar/as112/top/locations/ip_version/{ip_version}` Retrieves the top locations of DNS queries to AS112 for an IP version. ### Parameters - `ip_version: Literal["IPv4", "IPv6"]` IP version. - `"IPv4"` - `"IPv6"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TopIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.as112.top.ip_version( ip_version="IPv4", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Top Locations Response - `class TopLocationsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Top DNSSEC Response - `class TopDNSSECResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Top Edns Response - `class TopEdnsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Top IP Version Response - `class TopIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # Email ## Domain Types ### Radar Email Series - `class RadarEmailSeries: …` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Radar Email Summary - `class RadarEmailSummary: …` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. # Routing ## Get email routing summary by dimension `radar.email.routing.summary_v2(Literal["IP_VERSION", "ENCRYPTED", "ARC", 3 more]dimension, RoutingSummaryV2Params**kwargs) -> RoutingSummaryV2Response` **get** `/radar/email/routing/summary/{dimension}` Retrieves the distribution of email routing metrics by the specified dimension. ### Parameters - `dimension: Literal["IP_VERSION", "ENCRYPTED", "ARC", 3 more]` Specifies the attribute by which to group the results. - `"IP_VERSION"` - `"ENCRYPTED"` - `"ARC"` - `"DKIM"` - `"DMARC"` - `"SPF"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class RoutingSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.summary_v2( dimension="IP_VERSION", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "25.084366", "PASS": "50.168733" } }, "success": true } ``` ## Get email routing time series grouped by dimension `radar.email.routing.timeseries_groups_v2(Literal["IP_VERSION", "ENCRYPTED", "ARC", 3 more]dimension, RoutingTimeseriesGroupsV2Params**kwargs) -> RoutingTimeseriesGroupsV2Response` **get** `/radar/email/routing/timeseries_groups/{dimension}` Retrieves the distribution of email routing metrics grouped by dimension over time. ### Parameters - `dimension: Literal["IP_VERSION", "ENCRYPTED", "ARC", 3 more]` Specifies the attribute by which to group the results. - `"IP_VERSION"` - `"ENCRYPTED"` - `"ARC"` - `"DKIM"` - `"DMARC"` - `"SPF"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class RoutingTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.timeseries_groups_v2( dimension="IP_VERSION", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Routing Summary V2 Response - `class RoutingSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Routing Timeseries Groups V2 Response - `class RoutingTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Summary ## Get email ARC validation summary `radar.email.routing.summary.arc(SummaryARCParams**kwargs) -> SummaryARCResponse` **get** `/radar/email/routing/summary/arc` Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation. ### Parameters - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class SummaryARCResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.summary.arc() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email DKIM validation summary `radar.email.routing.summary.dkim(SummaryDKIMParams**kwargs) -> SummaryDKIMResponse` **get** `/radar/email/routing/summary/dkim` Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation. ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class SummaryDKIMResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.summary.dkim() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email DMARC validation summary `radar.email.routing.summary.dmarc(SummaryDMARCParams**kwargs) -> SummaryDMARCResponse` **get** `/radar/email/routing/summary/dmarc` Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation. ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class SummaryDMARCResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.summary.dmarc() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email encryption status summary `radar.email.routing.summary.encrypted(SummaryEncryptedParams**kwargs) -> SummaryEncryptedResponse` **get** `/radar/email/routing/summary/encrypted` Retrieves the distribution of emails by encryption status (encrypted vs. not-encrypted). ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class SummaryEncryptedResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `encrypted: str` A numeric string. - `not_encrypted: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.summary.encrypted() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "ENCRYPTED": "10", "NOT_ENCRYPTED": "10" } }, "success": true } ``` ## Get email IP version summary `radar.email.routing.summary.ip_version(SummaryIPVersionParams**kwargs) -> SummaryIPVersionResponse` **get** `/radar/email/routing/summary/ip_version` Retrieves the distribution of emails by IP version. ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` A numeric string. - `i_pv6: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.summary.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "IPv4": "10", "IPv6": "10" } }, "success": true } ``` ## Get email SPF validation summary `radar.email.routing.summary.spf(SummarySPFParams**kwargs) -> SummarySPFResponse` **get** `/radar/email/routing/summary/spf` Retrieves the distribution of emails by SPF (Sender Policy Framework) validation. ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummarySPFResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.summary.spf() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Domain Types ### Summary ARC Response - `class SummaryARCResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Summary DKIM Response - `class SummaryDKIMResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Summary DMARC Response - `class SummaryDMARCResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Summary Encrypted Response - `class SummaryEncryptedResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `encrypted: str` A numeric string. - `not_encrypted: str` A numeric string. ### Summary IP Version Response - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` A numeric string. - `i_pv6: str` A numeric string. ### Summary SPF Response - `class SummarySPFResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. # Timeseries Groups ## Get email ARC validation time series `radar.email.routing.timeseries_groups.arc(TimeseriesGroupARCParams**kwargs) -> TimeseriesGroupARCResponse` **get** `/radar/email/routing/timeseries_groups/arc` Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class TimeseriesGroupARCResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.timeseries_groups.arc() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email DKIM validation time series `radar.email.routing.timeseries_groups.dkim(TimeseriesGroupDKIMParams**kwargs) -> TimeseriesGroupDKIMResponse` **get** `/radar/email/routing/timeseries_groups/dkim` Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class TimeseriesGroupDKIMResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.timeseries_groups.dkim() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email DMARC validation time series `radar.email.routing.timeseries_groups.dmarc(TimeseriesGroupDMARCParams**kwargs) -> TimeseriesGroupDMARCResponse` **get** `/radar/email/routing/timeseries_groups/dmarc` Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class TimeseriesGroupDMARCResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.timeseries_groups.dmarc() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email encryption status time series `radar.email.routing.timeseries_groups.encrypted(TimeseriesGroupEncryptedParams**kwargs) -> TimeseriesGroupEncryptedResponse` **get** `/radar/email/routing/timeseries_groups/encrypted` Retrieves the distribution of emails by encryption status (encrypted vs. not-encrypted) over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class TimeseriesGroupEncryptedResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `encrypted: List[str]` - `not_encrypted: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.timeseries_groups.encrypted() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "ENCRYPTED": [ "10" ], "NOT_ENCRYPTED": [ "10" ] } }, "success": true } ``` ## Get email IP version time series `radar.email.routing.timeseries_groups.ip_version(TimeseriesGroupIPVersionParams**kwargs) -> TimeseriesGroupIPVersionResponse` **get** `/radar/email/routing/timeseries_groups/ip_version` Retrieves the distribution of emails by IP version over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.timeseries_groups.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "IPv4": [ "10" ], "IPv6": [ "10" ] } }, "success": true } ``` ## Get email SPF validation time series `radar.email.routing.timeseries_groups.spf(TimeseriesGroupSPFParams**kwargs) -> TimeseriesGroupSPFResponse` **get** `/radar/email/routing/timeseries_groups/spf` Retrieves the distribution of emails by SPF (Sender Policy Framework) validation over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `encrypted: Optional[List[Literal["ENCRYPTED", "NOT_ENCRYPTED"]]]` Filters results by encryption status (encrypted vs. not-encrypted). - `"ENCRYPTED"` - `"NOT_ENCRYPTED"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TimeseriesGroupSPFResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.routing.timeseries_groups.spf() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Domain Types ### Timeseries Group ARC Response - `class TimeseriesGroupARCResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Timeseries Group DKIM Response - `class TimeseriesGroupDKIMResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Timeseries Group DMARC Response - `class TimeseriesGroupDMARCResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Timeseries Group Encrypted Response - `class TimeseriesGroupEncryptedResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `encrypted: List[str]` - `not_encrypted: List[str]` ### Timeseries Group IP Version Response - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` ### Timeseries Group SPF Response - `class TimeseriesGroupSPFResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` # Security ## Get email security summary by dimension `radar.email.security.summary_v2(Literal["SPAM", "MALICIOUS", "SPOOF", 6 more]dimension, SecuritySummaryV2Params**kwargs) -> SecuritySummaryV2Response` **get** `/radar/email/security/summary/{dimension}` Retrieves the distribution of email security metrics by the specified dimension. ### Parameters - `dimension: Literal["SPAM", "MALICIOUS", "SPOOF", 6 more]` Specifies the attribute by which to group the results. - `"SPAM"` - `"MALICIOUS"` - `"SPOOF"` - `"THREAT_CATEGORY"` - `"ARC"` - `"DKIM"` - `"DMARC"` - `"SPF"` - `"TLS_VERSION"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SecuritySummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.summary_v2( dimension="SPAM", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "25.084366", "PASS": "50.168733" } }, "success": true } ``` ## Get email security time series grouped by dimension `radar.email.security.timeseries_groups_v2(Literal["SPAM", "MALICIOUS", "SPOOF", 6 more]dimension, SecurityTimeseriesGroupsV2Params**kwargs) -> SecurityTimeseriesGroupsV2Response` **get** `/radar/email/security/timeseries_groups/{dimension}` Retrieves the distribution of email security metrics grouped by dimension over time. ### Parameters - `dimension: Literal["SPAM", "MALICIOUS", "SPOOF", 6 more]` Specifies the attribute by which to group the results. - `"SPAM"` - `"MALICIOUS"` - `"SPOOF"` - `"THREAT_CATEGORY"` - `"ARC"` - `"DKIM"` - `"DMARC"` - `"SPF"` - `"TLS_VERSION"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SecurityTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.timeseries_groups_v2( dimension="SPAM", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Security Summary V2 Response - `class SecuritySummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Security Timeseries Groups V2 Response - `class SecurityTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Top # TLDs ## Get top TLDs by email message volume `radar.email.security.top.tlds.get(TLDGetParams**kwargs) -> TLDGetResponse` **get** `/radar/email/security/top/tlds` Retrieves the top TLDs by number of email messages. ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tld_category: Optional[Literal["CLASSIC", "COUNTRY"]]` Filters results by TLD category. - `"CLASSIC"` - `"COUNTRY"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class TLDGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) tld = client.radar.email.security.top.tlds.get() print(tld.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "com.", "value": "10" } ] }, "success": true } ``` ## Domain Types ### TLD Get Response - `class TLDGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` A numeric string. # Malicious ## Get top TLDs by email malicious classification `radar.email.security.top.tlds.malicious.get(Literal["MALICIOUS", "NOT_MALICIOUS"]malicious, MaliciousGetParams**kwargs) -> MaliciousGetResponse` **get** `/radar/email/security/top/tlds/malicious/{malicious}` Retrieves the top TLDs by emails classified as malicious or not. ### Parameters - `malicious: Literal["MALICIOUS", "NOT_MALICIOUS"]` Malicious classification. - `"MALICIOUS"` - `"NOT_MALICIOUS"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tld_category: Optional[Literal["CLASSIC", "COUNTRY"]]` Filters results by TLD category. - `"CLASSIC"` - `"COUNTRY"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class MaliciousGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) malicious = client.radar.email.security.top.tlds.malicious.get( malicious="MALICIOUS", ) print(malicious.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "com.", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Malicious Get Response - `class MaliciousGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` A numeric string. # Spam ## Get top TLDs by email spam classification `radar.email.security.top.tlds.spam.get(Literal["SPAM", "NOT_SPAM"]spam, SpamGetParams**kwargs) -> SpamGetResponse` **get** `/radar/email/security/top/tlds/spam/{spam}` Retrieves the top TLDs by emails classified as spam or not. ### Parameters - `spam: Literal["SPAM", "NOT_SPAM"]` Spam classification. - `"SPAM"` - `"NOT_SPAM"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tld_category: Optional[Literal["CLASSIC", "COUNTRY"]]` Filters results by TLD category. - `"CLASSIC"` - `"COUNTRY"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SpamGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) spam = client.radar.email.security.top.tlds.spam.get( spam="SPAM", ) print(spam.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "com.", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Spam Get Response - `class SpamGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` A numeric string. # Spoof ## Get top TLDs by email spoof classification `radar.email.security.top.tlds.spoof.get(Literal["SPOOF", "NOT_SPOOF"]spoof, SpoofGetParams**kwargs) -> SpoofGetResponse` **get** `/radar/email/security/top/tlds/spoof/{spoof}` Retrieves the top TLDs by emails classified as spoof or not. ### Parameters - `spoof: Literal["SPOOF", "NOT_SPOOF"]` Spoof classification. - `"SPOOF"` - `"NOT_SPOOF"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tld_category: Optional[Literal["CLASSIC", "COUNTRY"]]` Filters results by TLD category. - `"CLASSIC"` - `"COUNTRY"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SpoofGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) spoof = client.radar.email.security.top.tlds.spoof.get( spoof="SPOOF", ) print(spoof.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "com.", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Spoof Get Response - `class SpoofGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` A numeric string. # Summary ## Get email ARC validation summary `radar.email.security.summary.arc(SummaryARCParams**kwargs) -> SummaryARCResponse` **get** `/radar/email/security/summary/arc` Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation. ### Parameters - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SummaryARCResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.summary.arc() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email DKIM validation summary `radar.email.security.summary.dkim(SummaryDKIMParams**kwargs) -> SummaryDKIMResponse` **get** `/radar/email/security/summary/dkim` Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation. ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SummaryDKIMResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.summary.dkim() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email DMARC validation summary `radar.email.security.summary.dmarc(SummaryDMARCParams**kwargs) -> SummaryDMARCResponse` **get** `/radar/email/security/summary/dmarc` Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation. ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SummaryDMARCResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.summary.dmarc() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email malicious classification summary `radar.email.security.summary.malicious(SummaryMaliciousParams**kwargs) -> SummaryMaliciousResponse` **get** `/radar/email/security/summary/malicious` Retrieves the distribution of emails by malicious classification. ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SummaryMaliciousResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `malicious: str` A numeric string. - `not_malicious: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.summary.malicious() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "MALICIOUS": "10", "NOT_MALICIOUS": "10" } }, "success": true } ``` ## Get email spam classification summary `radar.email.security.summary.spam(SummarySpamParams**kwargs) -> SummarySpamResponse` **get** `/radar/email/security/summary/spam` Retrieves the proportion of emails by spam classification (spam vs. non-spam). ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SummarySpamResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_spam: str` A numeric string. - `spam: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.summary.spam() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NOT_SPAM": "10", "SPAM": "10" } }, "success": true } ``` ## Get email SPF validation summary `radar.email.security.summary.spf(SummarySPFParams**kwargs) -> SummarySPFResponse` **get** `/radar/email/security/summary/spf` Retrieves the distribution of emails by SPF (Sender Policy Framework) validation. ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SummarySPFResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.summary.spf() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email threat category summary `radar.email.security.summary.threat_category(SummaryThreatCategoryParams**kwargs) -> SummaryThreatCategoryResponse` **get** `/radar/email/security/summary/threat_category` Retrieves the distribution of emails by threat categories. ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SummaryThreatCategoryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `brand_impersonation: str` A numeric string. - `credential_harvester: str` A numeric string. - `identity_deception: str` A numeric string. - `link: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.summary.threat_category() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "BrandImpersonation": "10", "CredentialHarvester": "10", "IdentityDeception": "10", "Link": "10" } }, "success": true } ``` ## Get email spoof classification summary `radar.email.security.summary.spoof(SummarySpoofParams**kwargs) -> SummarySpoofResponse` **get** `/radar/email/security/summary/spoof` Retrieves the proportion of emails by spoof classification (spoof vs. non-spoof). ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class SummarySpoofResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_spoof: str` A numeric string. - `spoof: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.summary.spoof() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NOT_SPOOF": "10", "SPOOF": "10" } }, "success": true } ``` ## Get email TLS version summary `radar.email.security.summary.tls_version(SummaryTLSVersionParams**kwargs) -> SummaryTLSVersionResponse` **get** `/radar/email/security/summary/tls_version` Retrieves the distribution of emails by TLS version. ### Parameters - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class SummaryTLSVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `tls_1_0: str` A numeric string. - `tls_1_1: str` A numeric string. - `tls_1_2: str` A numeric string. - `tls_1_3: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.summary.tls_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "TLS 1.0": "10", "TLS 1.1": "10", "TLS 1.2": "10", "TLS 1.3": "10" } }, "success": true } ``` ## Domain Types ### Summary ARC Response - `class SummaryARCResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Summary DKIM Response - `class SummaryDKIMResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Summary DMARC Response - `class SummaryDMARCResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Summary Malicious Response - `class SummaryMaliciousResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `malicious: str` A numeric string. - `not_malicious: str` A numeric string. ### Summary Spam Response - `class SummarySpamResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_spam: str` A numeric string. - `spam: str` A numeric string. ### Summary SPF Response - `class SummarySPFResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: RadarEmailSummary` - `fail: str` A numeric string. - `none: str` A numeric string. - `pass_: str` A numeric string. ### Summary Threat Category Response - `class SummaryThreatCategoryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `brand_impersonation: str` A numeric string. - `credential_harvester: str` A numeric string. - `identity_deception: str` A numeric string. - `link: str` A numeric string. ### Summary Spoof Response - `class SummarySpoofResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_spoof: str` A numeric string. - `spoof: str` A numeric string. ### Summary TLS Version Response - `class SummaryTLSVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `tls_1_0: str` A numeric string. - `tls_1_1: str` A numeric string. - `tls_1_2: str` A numeric string. - `tls_1_3: str` A numeric string. # Timeseries Groups ## Get email ARC validation time series `radar.email.security.timeseries_groups.arc(TimeseriesGroupARCParams**kwargs) -> TimeseriesGroupARCResponse` **get** `/radar/email/security/timeseries_groups/arc` Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class TimeseriesGroupARCResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.timeseries_groups.arc() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email DKIM validation time series `radar.email.security.timeseries_groups.dkim(TimeseriesGroupDKIMParams**kwargs) -> TimeseriesGroupDKIMResponse` **get** `/radar/email/security/timeseries_groups/dkim` Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class TimeseriesGroupDKIMResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.timeseries_groups.dkim() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email DMARC validation time series `radar.email.security.timeseries_groups.dmarc(TimeseriesGroupDMARCParams**kwargs) -> TimeseriesGroupDMARCResponse` **get** `/radar/email/security/timeseries_groups/dmarc` Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class TimeseriesGroupDMARCResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.timeseries_groups.dmarc() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email malicious classification time series `radar.email.security.timeseries_groups.malicious(TimeseriesGroupMaliciousParams**kwargs) -> TimeseriesGroupMaliciousResponse` **get** `/radar/email/security/timeseries_groups/malicious` Retrieves the distribution of emails by malicious classification over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class TimeseriesGroupMaliciousResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `malicious: List[str]` - `not_malicious: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.timeseries_groups.malicious() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "MALICIOUS": [ "10" ], "NOT_MALICIOUS": [ "10" ] } }, "success": true } ``` ## Get email spam classification time series `radar.email.security.timeseries_groups.spam(TimeseriesGroupSpamParams**kwargs) -> TimeseriesGroupSpamResponse` **get** `/radar/email/security/timeseries_groups/spam` Retrieves the distribution of emails by spam classification (spam vs. non-spam) over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class TimeseriesGroupSpamResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_spam: List[str]` - `spam: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.timeseries_groups.spam() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "NOT_SPAM": [ "10" ], "SPAM": [ "10" ] } }, "success": true } ``` ## Get email SPF validation time series `radar.email.security.timeseries_groups.spf(TimeseriesGroupSPFParams**kwargs) -> TimeseriesGroupSPFResponse` **get** `/radar/email/security/timeseries_groups/spf` Retrieves the distribution of emails by SPF (Sender Policy Framework) validation over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class TimeseriesGroupSPFResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.timeseries_groups.spf() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email threat category time series `radar.email.security.timeseries_groups.threat_category(TimeseriesGroupThreatCategoryParams**kwargs) -> TimeseriesGroupThreatCategoryResponse` **get** `/radar/email/security/timeseries_groups/threat_category` Retrieves the distribution of emails by threat category over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class TimeseriesGroupThreatCategoryResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `brand_impersonation: List[str]` - `credential_harvester: List[str]` - `identity_deception: List[str]` - `link: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.timeseries_groups.threat_category() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "BrandImpersonation": [ "10" ], "CredentialHarvester": [ "10" ], "IdentityDeception": [ "10" ], "Link": [ "10" ] } }, "success": true } ``` ## Get email spoof classification time series `radar.email.security.timeseries_groups.spoof(TimeseriesGroupSpoofParams**kwargs) -> TimeseriesGroupSpoofResponse` **get** `/radar/email/security/timeseries_groups/spoof` Retrieves the distribution of emails by spoof classification (spoof vs. non-spoof) over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", "TLSv1_3"]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` ### Returns - `class TimeseriesGroupSpoofResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_spoof: List[str]` - `spoof: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.timeseries_groups.spoof() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "NOT_SPOOF": [ "10" ], "SPOOF": [ "10" ] } }, "success": true } ``` ## Get email TLS version time series `radar.email.security.timeseries_groups.tls_version(TimeseriesGroupTLSVersionParams**kwargs) -> TimeseriesGroupTLSVersionResponse` **get** `/radar/email/security/timeseries_groups/tls_version` Retrieves the distribution of emails by TLS version over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `arc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by ARC (Authenticated Received Chain) validation. - `"PASS"` - `"NONE"` - `"FAIL"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `dkim: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `dmarc: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `spf: Optional[List[Literal["PASS", "NONE", "FAIL"]]]` Filters results by SPF (Sender Policy Framework) validation status. - `"PASS"` - `"NONE"` - `"FAIL"` ### Returns - `class TimeseriesGroupTLSVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `tls_1_0: List[str]` - `tls_1_1: List[str]` - `tls_1_2: List[str]` - `tls_1_3: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.email.security.timeseries_groups.tls_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "TLS 1.0": [ "10" ], "TLS 1.1": [ "10" ], "TLS 1.2": [ "10" ], "TLS 1.3": [ "10" ] } }, "success": true } ``` ## Domain Types ### Timeseries Group ARC Response - `class TimeseriesGroupARCResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Timeseries Group DKIM Response - `class TimeseriesGroupDKIMResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Timeseries Group DMARC Response - `class TimeseriesGroupDMARCResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Timeseries Group Malicious Response - `class TimeseriesGroupMaliciousResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `malicious: List[str]` - `not_malicious: List[str]` ### Timeseries Group Spam Response - `class TimeseriesGroupSpamResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_spam: List[str]` - `spam: List[str]` ### Timeseries Group SPF Response - `class TimeseriesGroupSPFResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: RadarEmailSeries` - `fail: List[str]` - `none: List[str]` - `pass_: List[str]` ### Timeseries Group Threat Category Response - `class TimeseriesGroupThreatCategoryResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `brand_impersonation: List[str]` - `credential_harvester: List[str]` - `identity_deception: List[str]` - `link: List[str]` ### Timeseries Group Spoof Response - `class TimeseriesGroupSpoofResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_spoof: List[str]` - `spoof: List[str]` ### Timeseries Group TLS Version Response - `class TimeseriesGroupTLSVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `tls_1_0: List[str]` - `tls_1_1: List[str]` - `tls_1_2: List[str]` - `tls_1_3: List[str]` # Attacks # Layer3 ## Get layer 3 attacks summary by dimension `radar.attacks.layer3.summary_v2(Literal["PROTOCOL", "IP_VERSION", "VECTOR", 4 more]dimension, Layer3SummaryV2Params**kwargs) -> Layer3SummaryV2Response` **get** `/radar/attacks/layer3/summary/{dimension}` Retrieves the distribution of layer 3 attacks by the specified dimension. ### Parameters - `dimension: Literal["PROTOCOL", "IP_VERSION", "VECTOR", 4 more]` Specifies the attribute by which to group the results. - `"PROTOCOL"` - `"IP_VERSION"` - `"VECTOR"` - `"DURATION"` - `"BITRATE"` - `"VERTICAL"` - `"INDUSTRY"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class Layer3SummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.summary_v2( dimension="PROTOCOL", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "TCP": "50.168733", "UDP": "25.084366" } }, "success": true } ``` ## Get layer 3 attacks by bytes time series `radar.attacks.layer3.timeseries(Layer3TimeseriesParams**kwargs) -> Layer3TimeseriesResponse` **get** `/radar/attacks/layer3/timeseries` Retrieves layer 3 attacks over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `metric: Optional[Literal["BYTES", "BYTES_OLD"]]` Measurement units, eg. bytes. - `"BYTES"` - `"BYTES_OLD"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE_CHANGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE_CHANGE"` - `"MIN0_MAX"` - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class Layer3TimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] } }, "success": true } ``` ## Get layer 3 attacks time series grouped by dimension `radar.attacks.layer3.timeseries_groups_v2(Literal["PROTOCOL", "IP_VERSION", "VECTOR", 4 more]dimension, Layer3TimeseriesGroupsV2Params**kwargs) -> Layer3TimeseriesGroupsV2Response` **get** `/radar/attacks/layer3/timeseries_groups/{dimension}` Retrieves the distribution of layer 3 attacks grouped by dimension over time. ### Parameters - `dimension: Literal["PROTOCOL", "IP_VERSION", "VECTOR", 4 more]` Specifies the attribute by which to group the results. - `"PROTOCOL"` - `"IP_VERSION"` - `"VECTOR"` - `"DURATION"` - `"BITRATE"` - `"VERTICAL"` - `"INDUSTRY"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class Layer3TimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.timeseries_groups_v2( dimension="PROTOCOL", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Layer3 Summary V2 Response - `class Layer3SummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Layer3 Timeseries Response - `class Layer3TimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Layer3 Timeseries Groups V2 Response - `class Layer3TimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Summary ## Get layer 3 attacks by bitrate summary `radar.attacks.layer3.summary.bitrate(SummaryBitrateParams**kwargs) -> SummaryBitrateResponse` **get** `/radar/attacks/layer3/summary/bitrate` Retrieves the distribution of layer 3 attacks by bitrate. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class SummaryBitrateResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `_1_gbps_to_10_gbps: str` A numeric string. - `_10_gbps_to_100_gbps: str` A numeric string. - `_500_mbps_to_1_gbps: str` A numeric string. - `over_100_gbps: str` A numeric string. - `under_500_mbps: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.summary.bitrate() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "_1_GBPS_TO_10_GBPS": "10", "_10_GBPS_TO_100_GBPS": "10", "_500_MBPS_TO_1_GBPS": "10", "OVER_100_GBPS": "10", "UNDER_500_MBPS": "10" } }, "success": true } ``` ## Get layer 3 attacks by duration summary `radar.attacks.layer3.summary.duration(SummaryDurationParams**kwargs) -> SummaryDurationResponse` **get** `/radar/attacks/layer3/summary/duration` Retrieves the distribution of layer 3 attacks by duration. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class SummaryDurationResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `_1_hour_to_3_hours: str` A numeric string. - `_10_mins_to_20_mins: str` A numeric string. - `_20_mins_to_40_mins: str` A numeric string. - `_40_mins_to_1_hour: str` A numeric string. - `over_3_hours: str` A numeric string. - `under_10_mins: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.summary.duration() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "_1_HOUR_TO_3_HOURS": "10", "_10_MINS_TO_20_MINS": "10", "_20_MINS_TO_40_MINS": "10", "_40_MINS_TO_1_HOUR": "10", "OVER_3_HOURS": "10", "UNDER_10_MINS": "10" } }, "success": true } ``` ## Get layer 3 attacks by IP version summary `radar.attacks.layer3.summary.ip_version(SummaryIPVersionParams**kwargs) -> SummaryIPVersionResponse` **get** `/radar/attacks/layer3/summary/ip_version` Retrieves the distribution of layer 3 attacks by IP version. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` A numeric string. - `i_pv6: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.summary.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "IPv4": "10", "IPv6": "10" } }, "success": true } ``` ## Get layer 3 attacks by protocol summary `radar.attacks.layer3.summary.protocol(SummaryProtocolParams**kwargs) -> SummaryProtocolResponse` **get** `/radar/attacks/layer3/summary/protocol` Retrieves the distribution of layer 3 attacks by protocol. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryProtocolResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `gre: str` A numeric string. - `icmp: str` A numeric string. - `tcp: str` A numeric string. - `udp: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.summary.protocol() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "GRE": "10", "ICMP": "10", "TCP": "10", "UDP": "10" } }, "success": true } ``` ## Get layer 3 attacks by vector summary `radar.attacks.layer3.summary.vector(SummaryVectorParams**kwargs) -> SummaryVectorResponse` **get** `/radar/attacks/layer3/summary/vector` Retrieves the distribution of layer 3 attacks by vector. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class SummaryVectorResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.summary.vector() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "ACK Flood": "65.662148", "SYN Flood": "16.86401" } }, "success": true } ``` ## Get layer 3 attacks by targeted industry summary `radar.attacks.layer3.summary.industry(SummaryIndustryParams**kwargs) -> SummaryIndustryResponse` **get** `/radar/attacks/layer3/summary/industry` Retrieves the distribution of layer 3 attacks by targeted industry. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class SummaryIndustryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.summary.industry() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "Computer Software": "65" } }, "success": true } ``` ## Get layer 3 attacks by targeted vertical summary `radar.attacks.layer3.summary.vertical(SummaryVerticalParams**kwargs) -> SummaryVerticalResponse` **get** `/radar/attacks/layer3/summary/vertical` Retrieves the distribution of layer 3 attacks by targeted vertical. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class SummaryVerticalResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.summary.vertical() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "Internet and Telecom": "5.519081" } }, "success": true } ``` ## Domain Types ### Summary Bitrate Response - `class SummaryBitrateResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `_1_gbps_to_10_gbps: str` A numeric string. - `_10_gbps_to_100_gbps: str` A numeric string. - `_500_mbps_to_1_gbps: str` A numeric string. - `over_100_gbps: str` A numeric string. - `under_500_mbps: str` A numeric string. ### Summary Duration Response - `class SummaryDurationResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `_1_hour_to_3_hours: str` A numeric string. - `_10_mins_to_20_mins: str` A numeric string. - `_20_mins_to_40_mins: str` A numeric string. - `_40_mins_to_1_hour: str` A numeric string. - `over_3_hours: str` A numeric string. - `under_10_mins: str` A numeric string. ### Summary IP Version Response - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` A numeric string. - `i_pv6: str` A numeric string. ### Summary Protocol Response - `class SummaryProtocolResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `gre: str` A numeric string. - `icmp: str` A numeric string. - `tcp: str` A numeric string. - `udp: str` A numeric string. ### Summary Vector Response - `class SummaryVectorResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Summary Industry Response - `class SummaryIndustryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Summary Vertical Response - `class SummaryVerticalResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` # Timeseries Groups ## Get layer 3 attacks by target industries time series `radar.attacks.layer3.timeseries_groups.industry(TimeseriesGroupIndustryParams**kwargs) -> TimeseriesGroupIndustryResponse` **get** `/radar/attacks/layer3/timeseries_groups/industry` Retrieves the distribution of layer 3 attacks by targeted industry over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class TimeseriesGroupIndustryResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.timeseries_groups.industry() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get layer 3 attacks by IP version time series `radar.attacks.layer3.timeseries_groups.ip_version(TimeseriesGroupIPVersionParams**kwargs) -> TimeseriesGroupIPVersionResponse` **get** `/radar/attacks/layer3/timeseries_groups/ip_version` Retrieves the distribution of layer 3 attacks by IP version over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.timeseries_groups.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "IPv4": [ "10" ], "IPv6": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Get layer 3 attacks by protocol time series `radar.attacks.layer3.timeseries_groups.protocol(TimeseriesGroupProtocolParams**kwargs) -> TimeseriesGroupProtocolResponse` **get** `/radar/attacks/layer3/timeseries_groups/protocol` Retrieves the distribution of layer 3 attacks by protocol over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` ### Returns - `class TimeseriesGroupProtocolResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `gre: List[str]` - `icmp: List[str]` - `tcp: List[str]` - `timestamps: List[datetime]` - `udp: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.timeseries_groups.protocol() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "GRE": [ "10" ], "ICMP": [ "10" ], "TCP": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ], "UDP": [ "10" ] } }, "success": true } ``` ## Get layer 3 attacks by vector time series `radar.attacks.layer3.timeseries_groups.vector(TimeseriesGroupVectorParams**kwargs) -> TimeseriesGroupVectorResponse` **get** `/radar/attacks/layer3/timeseries_groups/vector` Retrieves the distribution of layer 3 attacks by vector over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class TimeseriesGroupVectorResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.timeseries_groups.vector() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get layer 3 attacks by vertical time series `radar.attacks.layer3.timeseries_groups.vertical(TimeseriesGroupVerticalParams**kwargs) -> TimeseriesGroupVerticalResponse` **get** `/radar/attacks/layer3/timeseries_groups/vertical` Retrieves the distribution of layer 3 attacks by targeted vertical over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class TimeseriesGroupVerticalResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.timeseries_groups.vertical() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get layer 3 attacks by bitrate time series `radar.attacks.layer3.timeseries_groups.bitrate(TimeseriesGroupBitrateParams**kwargs) -> TimeseriesGroupBitrateResponse` **get** `/radar/attacks/layer3/timeseries_groups/bitrate` Retrieves the distribution of layer 3 attacks by bitrate over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class TimeseriesGroupBitrateResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `_1_gbps_to_10_gbps: List[str]` - `_10_gbps_to_100_gbps: List[str]` - `_500_mbps_to_1_gbps: List[str]` - `over_100_gbps: List[str]` - `timestamps: List[datetime]` - `under_500_mbps: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.timeseries_groups.bitrate() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "_1_GBPS_TO_10_GBPS": [ "10" ], "_10_GBPS_TO_100_GBPS": [ "10" ], "_500_MBPS_TO_1_GBPS": [ "10" ], "OVER_100_GBPS": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ], "UNDER_500_MBPS": [ "10" ] } }, "success": true } ``` ## Get layer 3 attacks by duration time series `radar.attacks.layer3.timeseries_groups.duration(TimeseriesGroupDurationParams**kwargs) -> TimeseriesGroupDurationResponse` **get** `/radar/attacks/layer3/timeseries_groups/duration` Retrieves the distribution of layer 3 attacks by duration over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `location` filter applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class TimeseriesGroupDurationResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `_1_hour_to_3_hours: List[str]` - `_10_mins_to_20_mins: List[str]` - `_20_mins_to_40_mins: List[str]` - `_40_mins_to_1_hour: List[str]` - `over_3_hours: List[str]` - `timestamps: List[datetime]` - `under_10_mins: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.timeseries_groups.duration() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "_1_HOUR_TO_3_HOURS": [ "10" ], "_10_MINS_TO_20_MINS": [ "10" ], "_20_MINS_TO_40_MINS": [ "10" ], "_40_MINS_TO_1_HOUR": [ "10" ], "OVER_3_HOURS": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ], "UNDER_10_MINS": [ "10" ] } }, "success": true } ``` ## Domain Types ### Timeseries Group Industry Response - `class TimeseriesGroupIndustryResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group IP Version Response - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` - `timestamps: List[datetime]` ### Timeseries Group Protocol Response - `class TimeseriesGroupProtocolResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `gre: List[str]` - `icmp: List[str]` - `tcp: List[str]` - `timestamps: List[datetime]` - `udp: List[str]` ### Timeseries Group Vector Response - `class TimeseriesGroupVectorResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group Vertical Response - `class TimeseriesGroupVerticalResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group Bitrate Response - `class TimeseriesGroupBitrateResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `_1_gbps_to_10_gbps: List[str]` - `_10_gbps_to_100_gbps: List[str]` - `_500_mbps_to_1_gbps: List[str]` - `over_100_gbps: List[str]` - `timestamps: List[datetime]` - `under_500_mbps: List[str]` ### Timeseries Group Duration Response - `class TimeseriesGroupDurationResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `_1_hour_to_3_hours: List[str]` - `_10_mins_to_20_mins: List[str]` - `_20_mins_to_40_mins: List[str]` - `_40_mins_to_1_hour: List[str]` - `over_3_hours: List[str]` - `timestamps: List[datetime]` - `under_10_mins: List[str]` # Top ## Get top layer 3 attack pairs (origin and target locations) `radar.attacks.layer3.top.attacks(TopAttacksParams**kwargs) -> TopAttacksResponse` **get** `/radar/attacks/layer3/top/attacks` Retrieves the top layer 3 attacks from origin to target location. Values are a percentage out of the total layer 3 attacks (with billing country). You can optionally limit the number of attacks by origin/target location (useful if all the top attacks are from or to the same location). ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `limit_direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `limitPerLocation` applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `limit_per_location: Optional[int]` Limits the number of attacks per origin/target (refer to `limitDirection` parameter) location. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `magnitude: Optional[Literal["MITIGATED_BYTES", "MITIGATED_ATTACKS"]]` Orders results based on attack magnitude, defined by total mitigated bytes or total mitigated attacks. - `"MITIGATED_BYTES"` - `"MITIGATED_ATTACKS"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN_MAX"` - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class TopAttacksResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `origin_country_alpha2: str` - `origin_country_name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.top.attacks() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "originCountryAlpha2": "FR", "originCountryName": "France", "value": "4.323214" } ] }, "success": true } ``` ## Get top industries targeted by layer 3 attacks `radar.attacks.layer3.top.industry(TopIndustryParams**kwargs) -> TopIndustryResponse` **get** `/radar/attacks/layer3/top/industry` This endpoint is deprecated. To continue getting this data, switch to the summary by industry endpoint. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class TopIndustryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.top.industry() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "Computer Software", "value": "65" } ] }, "success": true } ``` ## Get top verticals targeted by layer 3 attacks `radar.attacks.layer3.top.vertical(TopVerticalParams**kwargs) -> TopVerticalResponse` **get** `/radar/attacks/layer3/top/vertical` This endpoint is deprecated. To continue getting this data, switch to the summary by vertical endpoint. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class TopVerticalResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.top.vertical() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "Internet and Telecom", "value": "65" } ] }, "success": true } ``` ## Domain Types ### Top Attacks Response - `class TopAttacksResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `origin_country_alpha2: str` - `origin_country_name: str` - `value: str` ### Top Industry Response - `class TopIndustryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` ### Top Vertical Response - `class TopVerticalResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` # Locations ## Get top origin locations of layer 3 attacks `radar.attacks.layer3.top.locations.origin(LocationOriginParams**kwargs) -> LocationOriginResponse` **get** `/radar/attacks/layer3/top/locations/origin` Retrieves the origin locations of layer 3 attacks. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class LocationOriginResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `origin_country_alpha2: str` - `origin_country_name: str` - `rank: float` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.top.locations.origin() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "originCountryAlpha2": "FR", "originCountryName": "France", "rank": 1, "value": "4.323214" } ] }, "success": true } ``` ## Get top target locations of layer 3 attacks `radar.attacks.layer3.top.locations.target(LocationTargetParams**kwargs) -> LocationTargetResponse` **get** `/radar/attacks/layer3/top/locations/target` Retrieves the target locations of layer 3 attacks. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `protocol: Optional[List[Literal["UDP", "TCP", "ICMP", "GRE"]]]` Filters the results by layer 3/4 protocol. - `"UDP"` - `"TCP"` - `"ICMP"` - `"GRE"` ### Returns - `class LocationTargetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `rank: float` - `target_country_alpha2: str` - `target_country_name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer3.top.locations.target() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "rank": 1, "targetCountryAlpha2": "FR", "targetCountryName": "France", "value": "4.323214" } ] }, "success": true } ``` ## Domain Types ### Location Origin Response - `class LocationOriginResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `origin_country_alpha2: str` - `origin_country_name: str` - `rank: float` - `value: str` ### Location Target Response - `class LocationTargetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `rank: float` - `target_country_alpha2: str` - `target_country_name: str` - `value: str` # Layer7 ## Get layer 7 attacks summary by dimension `radar.attacks.layer7.summary_v2(Literal["HTTP_METHOD", "HTTP_VERSION", "IP_VERSION", 4 more]dimension, Layer7SummaryV2Params**kwargs) -> Layer7SummaryV2Response` **get** `/radar/attacks/layer7/summary/{dimension}` Retrieves the distribution of layer 7 attacks by the specified dimension. ### Parameters - `dimension: Literal["HTTP_METHOD", "HTTP_VERSION", "IP_VERSION", 4 more]` Specifies the attribute by which to group the results. - `"HTTP_METHOD"` - `"HTTP_VERSION"` - `"IP_VERSION"` - `"MANAGED_RULES"` - `"MITIGATION_PRODUCT"` - `"VERTICAL"` - `"INDUSTRY"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class Layer7SummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.summary_v2( dimension="HTTP_METHOD", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "GET": "50.168733", "POST": "25.084366" } }, "success": true } ``` ## Get layer 7 attacks time series `radar.attacks.layer7.timeseries(Layer7TimeseriesParams**kwargs) -> Layer7TimeseriesResponse` **get** `/radar/attacks/layer7/timeseries` Retrieves layer 7 attacks over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE_CHANGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE_CHANGE"` - `"MIN0_MAX"` ### Returns - `class Layer7TimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` - `values: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2019-12-27T18:11:19.117Z" ], "values": [ "10" ] } }, "success": true } ``` ## Get layer 7 attacks time series grouped by dimension `radar.attacks.layer7.timeseries_groups_v2(Literal["HTTP_METHOD", "HTTP_VERSION", "IP_VERSION", 4 more]dimension, Layer7TimeseriesGroupsV2Params**kwargs) -> Layer7TimeseriesGroupsV2Response` **get** `/radar/attacks/layer7/timeseries_groups/{dimension}` Retrieves the distribution of layer 7 attacks grouped by dimension over time. ### Parameters - `dimension: Literal["HTTP_METHOD", "HTTP_VERSION", "IP_VERSION", 4 more]` Specifies the attribute by which to group the results. - `"HTTP_METHOD"` - `"HTTP_VERSION"` - `"IP_VERSION"` - `"MANAGED_RULES"` - `"MITIGATION_PRODUCT"` - `"VERTICAL"` - `"INDUSTRY"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` ### Returns - `class Layer7TimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.timeseries_groups_v2( dimension="HTTP_METHOD", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Layer7 Summary V2 Response - `class Layer7SummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Layer7 Timeseries Response - `class Layer7TimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` - `values: List[str]` ### Layer7 Timeseries Groups V2 Response - `class Layer7TimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Summary ## Get layer 7 attacks by IP version summary `radar.attacks.layer7.summary.ip_version(SummaryIPVersionParams**kwargs) -> SummaryIPVersionResponse` **get** `/radar/attacks/layer7/summary/ip_version` Retrieves the distribution of layer 7 attacks by IP version. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` - `i_pv6: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.summary.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "IPv4": "99.935733", "IPv6": "0.064267" } }, "success": true } ``` ## Get layer 7 attacks by HTTP method summary `radar.attacks.layer7.summary.http_method(SummaryHTTPMethodParams**kwargs) -> SummaryHTTPMethodResponse` **get** `/radar/attacks/layer7/summary/http_method` Retrieves the distribution of layer 7 attacks by HTTP method. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryHTTPMethodResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.summary.http_method() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "GET": "99.100257", "POST": "0.899743" } }, "success": true } ``` ## Get layer 7 attacks by HTTP version summary `radar.attacks.layer7.summary.http_version(SummaryHTTPVersionParams**kwargs) -> SummaryHTTPVersionResponse` **get** `/radar/attacks/layer7/summary/http_version` Retrieves the distribution of layer 7 attacks by HTTP version. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryHTTPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `http_1_x: str` - `http_2: str` - `http_3: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.summary.http_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "HTTP/1.x": "21.722365", "HTTP/2": "77.056555", "HTTP/3": "1.22108" } }, "success": true } ``` ## Get layer 7 attacks by managed rules summary `radar.attacks.layer7.summary.managed_rules(SummaryManagedRulesParams**kwargs) -> SummaryManagedRulesResponse` **get** `/radar/attacks/layer7/summary/managed_rules` Retrieves the distribution of layer 7 attacks by managed rules. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryManagedRulesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.summary.managed_rules() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "HTTP Anomaly": "85.714286", "XSS": "10.274394" } }, "success": true } ``` ## Get layer 7 attacks by mitigation product summary `radar.attacks.layer7.summary.mitigation_product(SummaryMitigationProductParams**kwargs) -> SummaryMitigationProductResponse` **get** `/radar/attacks/layer7/summary/mitigation_product` Retrieves the distribution of layer 7 attacks by mitigation product. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryMitigationProductResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.summary.mitigation_product() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "DDOS": "24.421594", "WAF": "53.213368" } }, "success": true } ``` ## Get layer 7 attacks by targeted industry summary `radar.attacks.layer7.summary.industry(SummaryIndustryParams**kwargs) -> SummaryIndustryResponse` **get** `/radar/attacks/layer7/summary/industry` Retrieves the distribution of layer 7 attacks by targeted industry. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryIndustryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.summary.industry() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "Computer Software": "65" } }, "success": true } ``` ## Get layer 7 attacks by targeted vertical summary `radar.attacks.layer7.summary.vertical(SummaryVerticalParams**kwargs) -> SummaryVerticalResponse` **get** `/radar/attacks/layer7/summary/vertical` Retrieves the distribution of layer 7 attacks by targeted vertical. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryVerticalResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.summary.vertical() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "Internet and Telecom": "5.519081" } }, "success": true } ``` ## Domain Types ### Summary IP Version Response - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` - `i_pv6: str` ### Summary HTTP Method Response - `class SummaryHTTPMethodResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Summary HTTP Version Response - `class SummaryHTTPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `http_1_x: str` - `http_2: str` - `http_3: str` ### Summary Managed Rules Response - `class SummaryManagedRulesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Summary Mitigation Product Response - `class SummaryMitigationProductResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Summary Industry Response - `class SummaryIndustryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Summary Vertical Response - `class SummaryVerticalResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` # Timeseries Groups ## Get layer 7 attacks by target industries time series `radar.attacks.layer7.timeseries_groups.industry(TimeseriesGroupIndustryParams**kwargs) -> TimeseriesGroupIndustryResponse` **get** `/radar/attacks/layer7/timeseries_groups/industry` Retrieves the distribution of layer 7 attacks by targeted industry over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` ### Returns - `class TimeseriesGroupIndustryResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.timeseries_groups.industry() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get layer 7 attacks by IP version time series `radar.attacks.layer7.timeseries_groups.ip_version(TimeseriesGroupIPVersionParams**kwargs) -> TimeseriesGroupIPVersionResponse` **get** `/radar/attacks/layer7/timeseries_groups/ip_version` Retrieves the distribution of layer 7 attacks by IP version used over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` ### Returns - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.timeseries_groups.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "IPv4": [ "10" ], "IPv6": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Get layer 7 attacks by vertical time series `radar.attacks.layer7.timeseries_groups.vertical(TimeseriesGroupVerticalParams**kwargs) -> TimeseriesGroupVerticalResponse` **get** `/radar/attacks/layer7/timeseries_groups/vertical` Retrieves the distribution of layer 7 attacks by targeted vertical over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` ### Returns - `class TimeseriesGroupVerticalResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.timeseries_groups.vertical() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get layer 7 attacks by HTTP method time series `radar.attacks.layer7.timeseries_groups.http_method(TimeseriesGroupHTTPMethodParams**kwargs) -> TimeseriesGroupHTTPMethodResponse` **get** `/radar/attacks/layer7/timeseries_groups/http_method` Retrieves the distribution of layer 7 attacks by HTTP method over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` ### Returns - `class TimeseriesGroupHTTPMethodResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.timeseries_groups.http_method() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get layer 7 attacks by HTTP version time series `radar.attacks.layer7.timeseries_groups.http_version(TimeseriesGroupHTTPVersionParams**kwargs) -> TimeseriesGroupHTTPVersionResponse` **get** `/radar/attacks/layer7/timeseries_groups/http_version` Retrieves the distribution of layer 7 attacks by HTTP version over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` ### Returns - `class TimeseriesGroupHTTPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `http_1_x: List[str]` - `http_2: List[str]` - `http_3: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.timeseries_groups.http_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "HTTP/1.x": [ "50.338734" ], "HTTP/2": [ "48.661266" ], "HTTP/3": [ "1.22108" ], "timestamps": [ "2023-10-01T00:00:00Z" ] } }, "success": true } ``` ## Get layer 7 attacks by managed rules time series `radar.attacks.layer7.timeseries_groups.managed_rules(TimeseriesGroupManagedRulesParams**kwargs) -> TimeseriesGroupManagedRulesResponse` **get** `/radar/attacks/layer7/timeseries_groups/managed_rules` Retrieves the distribution of layer 7 attacks by managed rules over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` ### Returns - `class TimeseriesGroupManagedRulesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.timeseries_groups.managed_rules() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get layer 7 attacks by mitigation product time series `radar.attacks.layer7.timeseries_groups.mitigation_product(TimeseriesGroupMitigationProductParams**kwargs) -> TimeseriesGroupMitigationProductResponse` **get** `/radar/attacks/layer7/timeseries_groups/mitigation_product` Retrieves the distribution of layer 7 attacks by mitigation product over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` ### Returns - `class TimeseriesGroupMitigationProductResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.timeseries_groups.mitigation_product() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Timeseries Group Industry Response - `class TimeseriesGroupIndustryResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group IP Version Response - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` - `timestamps: List[datetime]` ### Timeseries Group Vertical Response - `class TimeseriesGroupVerticalResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group HTTP Method Response - `class TimeseriesGroupHTTPMethodResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group HTTP Version Response - `class TimeseriesGroupHTTPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `http_1_x: List[str]` - `http_2: List[str]` - `http_3: List[str]` - `timestamps: List[datetime]` ### Timeseries Group Managed Rules Response - `class TimeseriesGroupManagedRulesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group Mitigation Product Response - `class TimeseriesGroupMitigationProductResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Top ## Get top layer 7 attack pairs (origin and target locations) `radar.attacks.layer7.top.attacks(TopAttacksParams**kwargs) -> TopAttacksResponse` **get** `/radar/attacks/layer7/top/attacks` Retrieves the top attacks from origin to target location. Values are percentages of the total layer 7 attacks (with billing country). The attack magnitude can be defined by the number of mitigated requests or by the number of zones affected. You can optionally limit the number of attacks by origin/target location (useful if all the top attacks are from or to the same location). ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `limit_direction: Optional[Literal["ORIGIN", "TARGET"]]` Specifies whether the `limitPerLocation` applies to the source or target location. - `"ORIGIN"` - `"TARGET"` - `limit_per_location: Optional[int]` Limits the number of attacks per origin/target (refer to `limitDirection` parameter) location. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN_MAX"` ### Returns - `class TopAttacksResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `origin_country_alpha2: str` - `origin_country_name: str` - `target_country_alpha2: str` - `target_country_name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.top.attacks() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "originCountryAlpha2": "US", "originCountryName": "United States", "targetCountryAlpha2": "FR", "targetCountryName": "France", "value": "4.323214" } ] }, "success": true } ``` ## Get top industries targeted by layer 7 attacks `radar.attacks.layer7.top.industry(TopIndustryParams**kwargs) -> TopIndustryResponse` **get** `/radar/attacks/layer7/top/industry` This endpoint is deprecated. To continue getting this data, switch to the summary by industry endpoint. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TopIndustryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.top.industry() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "Computer Software", "value": "65" } ] }, "success": true } ``` ## Get top verticals targeted by layer 7 attacks `radar.attacks.layer7.top.vertical(TopVerticalParams**kwargs) -> TopVerticalResponse` **get** `/radar/attacks/layer7/top/vertical` This endpoint is deprecated. To continue getting this data, switch to the summary by vertical endpoint. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TopVerticalResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.top.vertical() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "Internet and Telecom", "value": "65" } ] }, "success": true } ``` ## Domain Types ### Top Attacks Response - `class TopAttacksResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `origin_country_alpha2: str` - `origin_country_name: str` - `target_country_alpha2: str` - `target_country_name: str` - `value: str` ### Top Industry Response - `class TopIndustryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` ### Top Vertical Response - `class TopVerticalResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` # Locations ## Get top origin locations of layer 7 attacks `radar.attacks.layer7.top.locations.origin(LocationOriginParams**kwargs) -> LocationOriginResponse` **get** `/radar/attacks/layer7/top/locations/origin` Retrieves the top origin locations of layer 7 attacks. Values are percentages of the total layer 7 attacks, with the origin location determined by the client IP address. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class LocationOriginResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `origin_country_alpha2: str` - `origin_country_name: str` - `rank: float` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.top.locations.origin() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "originCountryAlpha2": "FR", "originCountryName": "France", "rank": 1, "value": "4.323214" } ] }, "success": true } ``` ## Get top target locations of layer 7 attacks `radar.attacks.layer7.top.locations.target(LocationTargetParams**kwargs) -> LocationTargetResponse` **get** `/radar/attacks/layer7/top/locations/target` Retrieves the top target locations of and by layer 7 attacks. Values are a percentage out of the total layer 7 attacks. The target location is determined by the attacked zone's billing country, when available. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class LocationTargetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `rank: float` - `target_country_alpha2: str` - `target_country_name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.top.locations.target() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "rank": 1, "targetCountryAlpha2": "FR", "targetCountryName": "France", "value": "4.323214" } ] }, "success": true } ``` ## Domain Types ### Location Origin Response - `class LocationOriginResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `origin_country_alpha2: str` - `origin_country_name: str` - `rank: float` - `value: str` ### Location Target Response - `class LocationTargetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `rank: float` - `target_country_alpha2: str` - `target_country_name: str` - `value: str` # Ases ## Get top origin ASes of layer 7 attacks `radar.attacks.layer7.top.ases.origin(AseOriginParams**kwargs) -> AseOriginResponse` **get** `/radar/attacks/layer7/top/ases/origin` Retrieves the top origin autonomous systems of layer 7 attacks. Values are percentages of the total layer 7 attacks, with the origin autonomous systems determined by the client IP address. ### Parameters - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `http_method: Optional[List[Literal["GET", "POST", "DELETE", 43 more]]]` Filters results by HTTP method. - `"GET"` - `"POST"` - `"DELETE"` - `"PUT"` - `"HEAD"` - `"PURGE"` - `"OPTIONS"` - `"PROPFIND"` - `"MKCOL"` - `"PATCH"` - `"ACL"` - `"BCOPY"` - `"BDELETE"` - `"BMOVE"` - `"BPROPFIND"` - `"BPROPPATCH"` - `"CHECKIN"` - `"CHECKOUT"` - `"CONNECT"` - `"COPY"` - `"LABEL"` - `"LOCK"` - `"MERGE"` - `"MKACTIVITY"` - `"MKWORKSPACE"` - `"MOVE"` - `"NOTIFY"` - `"ORDERPATCH"` - `"POLL"` - `"PROPPATCH"` - `"REPORT"` - `"SEARCH"` - `"SUBSCRIBE"` - `"TRACE"` - `"UNCHECKOUT"` - `"UNLOCK"` - `"UNSUBSCRIBE"` - `"UPDATE"` - `"VERSIONCONTROL"` - `"BASELINECONTROL"` - `"XMSENUMATTS"` - `"RPC_OUT_DATA"` - `"RPC_IN_DATA"` - `"JSON"` - `"COOK"` - `"TRACK"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `mitigation_product: Optional[List[Literal["DDOS", "WAF", "BOT_MANAGEMENT", 4 more]]]` Filters the results by layer 7 mitigation product. - `"DDOS"` - `"WAF"` - `"BOT_MANAGEMENT"` - `"ACCESS_RULES"` - `"IP_REPUTATION"` - `"API_SHIELD"` - `"DATA_LOSS_PREVENTION"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class AseOriginResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `origin_asn: str` - `origin_asn_name: str` - `rank: float` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.attacks.layer7.top.ases.origin() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "originAsn": "55836", "originAsnName": "RELIANCEJIO-IN Reliance Jio Infocomm Limited", "rank": 1, "value": "4.323214" } ] }, "success": true } ``` ## Domain Types ### Ase Origin Response - `class AseOriginResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `origin_asn: str` - `origin_asn_name: str` - `rank: float` - `value: str` # Entities ## Get IP address details `radar.entities.get(EntityGetParams**kwargs) -> EntityGetResponse` **get** `/radar/entities/ip` Retrieves IP address information. ### Parameters - `ip: str` IP address. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` ### Returns - `class EntityGetResponse: …` - `ip: IP` - `asn: str` - `asn_location: str` - `asn_name: str` - `asn_org_name: str` - `ip: str` - `ip_version: str` - `location: str` - `location_name: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) entity = client.radar.entities.get( ip="8.8.8.8", ) print(entity.ip) ``` #### Response ```json { "result": { "ip": { "asn": "15169", "asnLocation": "US", "asnName": "GOOGLE", "asnOrgName": "Google LLC", "ip": "8.8.8.8", "ipVersion": "IPv4", "location": "GB", "locationName": "United Kingdom" } }, "success": true } ``` ## Domain Types ### Entity Get Response - `class EntityGetResponse: …` - `ip: IP` - `asn: str` - `asn_location: str` - `asn_name: str` - `asn_org_name: str` - `ip: str` - `ip_version: str` - `location: str` - `location_name: str` # ASNs ## List autonomous systems `radar.entities.asns.list(ASNListParams**kwargs) -> ASNListResponse` **get** `/radar/entities/asns` Retrieves a list of autonomous systems. ### Parameters - `asn: Optional[str]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[str]` Filters results by location. Specify an alpha-2 location code. - `offset: Optional[int]` Skips the specified number of objects before fetching the results. - `order_by: Optional[Literal["ASN", "POPULATION"]]` Specifies the metric to order the ASNs by. - `"ASN"` - `"POPULATION"` ### Returns - `class ASNListResponse: …` - `asns: List[ASN]` - `asn: int` - `country: str` - `country_name: str` - `name: str` - `aka: Optional[str]` - `org_name: Optional[str]` - `website: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) asns = client.radar.entities.asns.list() print(asns.asns) ``` #### Response ```json { "result": { "asns": [ { "asn": 714, "country": "GB", "countryName": "United Kingdom", "name": "Apple Inc.", "aka": "aka", "orgName": "orgName", "website": "https://www.apple.com/support/systemstatus/" } ] }, "success": true } ``` ## Get AS details by ASN `radar.entities.asns.get(intasn, ASNGetParams**kwargs) -> ASNGetResponse` **get** `/radar/entities/asns/{asn}` Retrieves the requested autonomous system information. (A confidence level below `5` indicates a low level of confidence in the traffic data - normally this happens because Cloudflare has a small amount of traffic from/to this AS). Population estimates come from APNIC (refer to https://labs.apnic.net/?p=526). ### Parameters - `asn: int` Single Autonomous System Number (ASN) as integer. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` ### Returns - `class ASNGetResponse: …` - `asn: ASN` - `asn: int` - `confidence_level: int` - `country: str` - `country_name: str` - `estimated_users: ASNEstimatedUsers` - `locations: List[ASNEstimatedUsersLocation]` - `location_alpha2: str` - `location_name: str` - `estimated_users: Optional[int]` Estimated users per location. - `estimated_users: Optional[int]` Total estimated users. - `name: str` - `org_name: str` - `related: List[ASNRelated]` - `asn: int` - `name: str` - `aka: Optional[str]` - `estimated_users: Optional[int]` Total estimated users. - `source: str` Regional Internet Registry. - `website: str` - `aka: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) asn = client.radar.entities.asns.get( asn=174, ) print(asn.asn) ``` #### Response ```json { "result": { "asn": { "asn": 714, "confidenceLevel": 5, "country": "GB", "countryName": "United Kingdom", "estimatedUsers": { "locations": [ { "locationAlpha2": "US", "locationName": "United States", "estimatedUsers": 16710 } ], "estimatedUsers": 86099 }, "name": "Apple Inc.", "orgName": "orgName", "related": [ { "asn": 174, "name": "Cogent-174", "aka": "aka", "estimatedUsers": 65345 } ], "source": "RIPE", "website": "https://www.apple.com/support/systemstatus/", "aka": "aka" } }, "success": true } ``` ## Get AS-level relationships by ASN `radar.entities.asns.rel(intasn, ASNRelParams**kwargs) -> ASNRelResponse` **get** `/radar/entities/asns/{asn}/rel` Retrieves AS-level relationship for given networks. ### Parameters - `asn: int` Retrieves all ASNs with provider-customer or peering relationships with the given ASN. - `asn2: Optional[int]` Retrieves the AS relationship of ASN2 with respect to the given ASN. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` ### Returns - `class ASNRelResponse: …` - `meta: Meta` - `data_time: str` - `query_time: str` - `total_peers: int` - `rels: List[Rel]` - `asn1: int` - `asn1_country: str` - `asn1_name: str` - `asn2: int` - `asn2_country: str` - `asn2_name: str` - `rel: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.entities.asns.rel( asn=3, ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "data_time": "data_time", "query_time": "query_time", "total_peers": 0 }, "rels": [ { "asn1": 0, "asn1_country": "asn1_country", "asn1_name": "asn1_name", "asn2": 0, "asn2_country": "asn2_country", "asn2_name": "asn2_name", "rel": "rel" } ] }, "success": true } ``` ## Get IRR AS-SETs that an AS is a member of `radar.entities.asns.as_set(intasn, ASNAsSetParams**kwargs) -> ASNAsSetResponse` **get** `/radar/entities/asns/{asn}/as_set` Retrieves Internet Routing Registry AS-SETs that an AS is a member of. ### Parameters - `asn: int` Retrieves all AS-SETs that the given AS is a member of. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` ### Returns - `class ASNAsSetResponse: …` - `as_sets: List[AsSet]` - `as_members_count: int` The number of AS members in the AS-SET - `as_set_members_count: int` The number of AS-SET members in the AS-SET - `as_set_upstreams_count: int` The number of recursive upstream AS-SETs - `asn_cone_size: int` The number of unique ASNs in the AS-SETs recursive downstream - `irr_sources: List[str]` The IRR sources of the AS-SET - `name: str` The name of the AS-SET - `hierarchical_asn: Optional[int]` The AS number following hierarchical AS-SET name - `inferred_asn: Optional[int]` The inferred AS number of the AS-SET - `peeringdb_asn: Optional[int]` The AS number matching PeeringDB record - `paths: List[List[str]]` Paths from the AS-SET that include the given AS to its upstreams recursively ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.entities.asns.as_set( asn=3, ) print(response.as_sets) ``` #### Response ```json { "result": { "as_sets": [ { "as_members_count": 0, "as_set_members_count": 0, "as_set_upstreams_count": 0, "asn_cone_size": 0, "irr_sources": [ "string" ], "name": "name", "hierarchical_asn": 0, "inferred_asn": 0, "peeringdb_asn": 0 } ], "paths": [ [ "string" ] ] }, "success": true } ``` ## Get AS details by IP address `radar.entities.asns.ip(ASNIPParams**kwargs) -> ASNIPResponse` **get** `/radar/entities/asns/ip` Retrieves the requested autonomous system information based on IP address. Population estimates come from APNIC (refer to https://labs.apnic.net/?p=526). ### Parameters - `ip: str` IP address. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` ### Returns - `class ASNIPResponse: …` - `asn: ASN` - `asn: int` - `country: str` - `country_name: str` - `estimated_users: ASNEstimatedUsers` - `locations: List[ASNEstimatedUsersLocation]` - `location_alpha2: str` - `location_name: str` - `estimated_users: Optional[int]` Estimated users per location. - `estimated_users: Optional[int]` Total estimated users. - `name: str` - `org_name: str` - `related: List[ASNRelated]` - `asn: int` - `name: str` - `aka: Optional[str]` - `estimated_users: Optional[int]` Total estimated users. - `source: str` Regional Internet Registry. - `website: str` - `aka: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.entities.asns.ip( ip="8.8.8.8", ) print(response.asn) ``` #### Response ```json { "result": { "asn": { "asn": 714, "country": "GB", "countryName": "United Kingdom", "estimatedUsers": { "locations": [ { "locationAlpha2": "US", "locationName": "United States", "estimatedUsers": 16710 } ], "estimatedUsers": 86099 }, "name": "Apple Inc.", "orgName": "orgName", "related": [ { "asn": 0, "name": "name", "aka": "aka", "estimatedUsers": 65345 } ], "source": "RIPE", "website": "https://www.apple.com/support/systemstatus/", "aka": "aka" } }, "success": true } ``` ## Get AS rankings by botnet threat feed activity `radar.entities.asns.botnet_threat_feed(ASNBotnetThreatFeedParams**kwargs) -> ASNBotnetThreatFeedResponse` **get** `/radar/entities/asns/botnet_threat_feed` Retrieves a ranked list of Autonomous Systems based on their presence in the Cloudflare Botnet Threat Feed. Rankings can be sorted by offense count or number of bad IPs. Optionally compare to a previous date to see rank changes. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `compare_date_range: Optional[str]` Relative date range for rank change comparison (e.g., "1d", "7d", "30d"). - `date: Optional[Union[null, null]]` The date to retrieve (YYYY-MM-DD format). If not specified, returns the most recent available data. Note: This is the date the report was generated. The report is generated from information collected from the previous day (e.g., the 2026-02-23 entry contains data from 2026-02-22). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[str]` Filters results by location. Specify an alpha-2 location code. - `metric: Optional[Literal["OFFENSE_COUNT", "NUMBER_OF_OFFENDING_IPS"]]` Metric to rank ASNs by. - `"OFFENSE_COUNT"` - `"NUMBER_OF_OFFENDING_IPS"` - `offset: Optional[int]` Skips the specified number of objects before fetching the results. - `sort_order: Optional[Literal["ASC", "DESC"]]` Sort order. - `"ASC"` - `"DESC"` ### Returns - `class ASNBotnetThreatFeedResponse: …` - `ases: List[Ase]` - `asn: int` - `country: str` - `name: str` - `rank: int` - `rank_change: Optional[int]` - `meta: Meta` - `date: str` - `total: int` - `compare_date: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.entities.asns.botnet_threat_feed() print(response.ases) ``` #### Response ```json { "result": { "ases": [ { "asn": 4134, "country": "CN", "name": "CHINANET-BACKBONE", "rank": 1, "rankChange": -2 } ], "meta": { "date": "2026-02-04", "total": 50, "compareDate": "2026-01-28" } }, "success": true } ``` ## Domain Types ### ASN List Response - `class ASNListResponse: …` - `asns: List[ASN]` - `asn: int` - `country: str` - `country_name: str` - `name: str` - `aka: Optional[str]` - `org_name: Optional[str]` - `website: Optional[str]` ### ASN Get Response - `class ASNGetResponse: …` - `asn: ASN` - `asn: int` - `confidence_level: int` - `country: str` - `country_name: str` - `estimated_users: ASNEstimatedUsers` - `locations: List[ASNEstimatedUsersLocation]` - `location_alpha2: str` - `location_name: str` - `estimated_users: Optional[int]` Estimated users per location. - `estimated_users: Optional[int]` Total estimated users. - `name: str` - `org_name: str` - `related: List[ASNRelated]` - `asn: int` - `name: str` - `aka: Optional[str]` - `estimated_users: Optional[int]` Total estimated users. - `source: str` Regional Internet Registry. - `website: str` - `aka: Optional[str]` ### ASN Rel Response - `class ASNRelResponse: …` - `meta: Meta` - `data_time: str` - `query_time: str` - `total_peers: int` - `rels: List[Rel]` - `asn1: int` - `asn1_country: str` - `asn1_name: str` - `asn2: int` - `asn2_country: str` - `asn2_name: str` - `rel: str` ### ASN As Set Response - `class ASNAsSetResponse: …` - `as_sets: List[AsSet]` - `as_members_count: int` The number of AS members in the AS-SET - `as_set_members_count: int` The number of AS-SET members in the AS-SET - `as_set_upstreams_count: int` The number of recursive upstream AS-SETs - `asn_cone_size: int` The number of unique ASNs in the AS-SETs recursive downstream - `irr_sources: List[str]` The IRR sources of the AS-SET - `name: str` The name of the AS-SET - `hierarchical_asn: Optional[int]` The AS number following hierarchical AS-SET name - `inferred_asn: Optional[int]` The inferred AS number of the AS-SET - `peeringdb_asn: Optional[int]` The AS number matching PeeringDB record - `paths: List[List[str]]` Paths from the AS-SET that include the given AS to its upstreams recursively ### ASN IP Response - `class ASNIPResponse: …` - `asn: ASN` - `asn: int` - `country: str` - `country_name: str` - `estimated_users: ASNEstimatedUsers` - `locations: List[ASNEstimatedUsersLocation]` - `location_alpha2: str` - `location_name: str` - `estimated_users: Optional[int]` Estimated users per location. - `estimated_users: Optional[int]` Total estimated users. - `name: str` - `org_name: str` - `related: List[ASNRelated]` - `asn: int` - `name: str` - `aka: Optional[str]` - `estimated_users: Optional[int]` Total estimated users. - `source: str` Regional Internet Registry. - `website: str` - `aka: Optional[str]` ### ASN Botnet Threat Feed Response - `class ASNBotnetThreatFeedResponse: …` - `ases: List[Ase]` - `asn: int` - `country: str` - `name: str` - `rank: int` - `rank_change: Optional[int]` - `meta: Meta` - `date: str` - `total: int` - `compare_date: Optional[str]` # Locations ## List locations `radar.entities.locations.list(LocationListParams**kwargs) -> LocationListResponse` **get** `/radar/entities/locations` Retrieves a list of locations. ### Parameters - `continent: Optional[Literal["AF", "AS", "EU", 3 more]]` Filters results by continent code. - `"AF"` - `"AS"` - `"EU"` - `"NA"` - `"OC"` - `"SA"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[str]` Filters results by location. Specify a comma-separated list of alpha-2 location codes. - `offset: Optional[int]` Skips the specified number of objects before fetching the results. - `region: Optional[str]` Filters results by region. - `subregion: Optional[str]` Filters results by subregion. ### Returns - `class LocationListResponse: …` - `locations: List[Location]` - `alpha2: str` - `continent: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `region: str` - `subregion: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) locations = client.radar.entities.locations.list() print(locations.locations) ``` #### Response ```json { "result": { "locations": [ { "alpha2": "AF", "continent": "AS", "latitude": "10", "longitude": "10", "name": "Afghanistan", "region": "Middle East", "subregion": "Southern Asia" } ] }, "success": true } ``` ## Get location details `radar.entities.locations.get(strlocation, LocationGetParams**kwargs) -> LocationGetResponse` **get** `/radar/entities/locations/{location}` Retrieves the requested location information. (A confidence level below `5` indicates a low level of confidence in the traffic data - normally this happens because Cloudflare has a small amount of traffic from/to this location). ### Parameters - `location: str` Location alpha-2 code. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` ### Returns - `class LocationGetResponse: …` - `location: Location` - `alpha2: str` - `confidence_level: int` - `continent: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `region: str` - `subregion: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) location = client.radar.entities.locations.get( location="US", ) print(location.location) ``` #### Response ```json { "result": { "location": { "alpha2": "AF", "confidenceLevel": 5, "continent": "AS", "latitude": "10", "longitude": "10", "name": "Afghanistan", "region": "Middle East", "subregion": "Southern Asia" } }, "success": true } ``` ## Domain Types ### Location List Response - `class LocationListResponse: …` - `locations: List[Location]` - `alpha2: str` - `continent: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `region: str` - `subregion: str` ### Location Get Response - `class LocationGetResponse: …` - `location: Location` - `alpha2: str` - `confidence_level: int` - `continent: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `region: str` - `subregion: str` # Geolocations ## List Geolocations `radar.geolocations.list(GeolocationListParams**kwargs) -> GeolocationListResponse` **get** `/radar/geolocations` Retrieves a list of geolocations. Geolocation names can be localized by sending an `Accept-Language` HTTP header with a BCP 47 language tag (e.g., `Accept-Language: pt-PT`). The full quality-value chain is supported (e.g., `pt-PT,pt;q=0.9,en;q=0.8`). ### Parameters - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[str]` Filters results by geolocation. Specify a comma-separated list of GeoNames IDs. - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[str]` Filters results by location. Specify a comma-separated list of alpha-2 location codes. - `offset: Optional[int]` Skips the specified number of objects before fetching the results. ### Returns - `class GeolocationListResponse: …` - `geolocations: List[Geolocation]` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `parent: GeolocationParent` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `parent: GeolocationParentParent` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) geolocations = client.radar.geolocations.list() print(geolocations.geolocations) ``` #### Response ```json { "result": { "geolocations": [ { "geoId": "2267056", "latitude": "10", "longitude": "10", "name": "Lisbon", "parent": { "geoId": "2267056", "latitude": "10", "longitude": "10", "name": "Lisbon", "parent": { "geoId": "2267056", "latitude": "10", "longitude": "10", "name": "Lisbon", "type": "CONTINENT", "code": "PT-11", "locale": "pt-PT" }, "type": "CONTINENT", "code": "PT-11", "locale": "pt-PT" }, "type": "CONTINENT", "code": "PT-11", "locale": "pt-PT" } ] }, "success": true } ``` ## Get Geolocation details `radar.geolocations.get(strgeo_id, GeolocationGetParams**kwargs) -> GeolocationGetResponse` **get** `/radar/geolocations/{geo_id}` Retrieves the requested Geolocation information. Geolocation names can be localized by sending an `Accept-Language` HTTP header with a BCP 47 language tag (e.g., `Accept-Language: pt-PT`). The full quality-value chain is supported (e.g., `pt-PT,pt;q=0.9,en;q=0.8`). ### Parameters - `geo_id: str` Geolocation ID. Refer to [GeoNames](https://download.geonames.org/export/dump/readme.txt) - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` ### Returns - `class GeolocationGetResponse: …` - `geolocation: Geolocation` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `parent: GeolocationParent` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `parent: GeolocationParentParent` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) geolocation = client.radar.geolocations.get( geo_id="3190509", ) print(geolocation.geolocation) ``` #### Response ```json { "result": { "geolocation": { "geoId": "2267056", "latitude": "10", "longitude": "10", "name": "Lisbon", "parent": { "geoId": "2267056", "latitude": "10", "longitude": "10", "name": "Lisbon", "parent": { "geoId": "2267056", "latitude": "10", "longitude": "10", "name": "Lisbon", "type": "CONTINENT", "code": "PT-11", "locale": "pt-PT" }, "type": "CONTINENT", "code": "PT-11", "locale": "pt-PT" }, "type": "CONTINENT", "code": "PT-11", "locale": "pt-PT" } }, "success": true } ``` ## Domain Types ### Geolocation List Response - `class GeolocationListResponse: …` - `geolocations: List[Geolocation]` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `parent: GeolocationParent` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `parent: GeolocationParentParent` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation ### Geolocation Get Response - `class GeolocationGetResponse: …` - `geolocation: Geolocation` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `parent: GeolocationParent` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `parent: GeolocationParentParent` - `geo_id: str` - `latitude: str` A numeric string. - `longitude: str` A numeric string. - `name: str` - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation - `type: Literal["CONTINENT", "COUNTRY", "ADM1"]` The type of the geolocation. - `"CONTINENT"` - `"COUNTRY"` - `"ADM1"` - `code: Optional[str]` - `locale: Optional[str]` BCP 47 locale code used for the geolocation name translation # HTTP ## Get HTTP requests summary by dimension `radar.http.summary_v2(Literal["ADM1", "AS", "BOT_CLASS", 10 more]dimension, HTTPSummaryV2Params**kwargs) -> HTTPSummaryV2Response` **get** `/radar/http/summary/{dimension}` Retrieves the distribution of HTTP requests by the specified dimension. ### Parameters - `dimension: Literal["ADM1", "AS", "BOT_CLASS", 10 more]` Specifies the HTTP attribute by which to group the results. - `"ADM1"` - `"AS"` - `"BOT_CLASS"` - `"BROWSER"` - `"BROWSER_FAMILY"` - `"DEVICE_TYPE"` - `"HTTP_PROTOCOL"` - `"HTTP_VERSION"` - `"IP_VERSION"` - `"LOCATION"` - `"OS"` - `"POST_QUANTUM"` - `"TLS_VERSION"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class HTTPSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.summary_v2( dimension="ADM1", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "Chrome": "50.168733", "Firefox": "25.084366" } }, "success": true } ``` ## Get HTTP requests time series `radar.http.timeseries(HTTPTimeseriesParams**kwargs) -> HTTPTimeseriesResponse` **get** `/radar/http/timeseries` Retrieves the HTTP requests over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE_CHANGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE_CHANGE"` - `"MIN0_MAX"` - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class HTTPTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] } }, "success": true } ``` ## Get HTTP requests time series grouped by dimension `radar.http.timeseries_groups_v2(Literal["ADM1", "AS", "BOT_CLASS", 10 more]dimension, HTTPTimeseriesGroupsV2Params**kwargs) -> HTTPTimeseriesGroupsV2Response` **get** `/radar/http/timeseries_groups/{dimension}` Retrieves the distribution of HTTP requests grouped by dimension. ### Parameters - `dimension: Literal["ADM1", "AS", "BOT_CLASS", 10 more]` Specifies the HTTP attribute by which to group the results. - `"ADM1"` - `"AS"` - `"BOT_CLASS"` - `"BROWSER"` - `"BROWSER_FAMILY"` - `"DEVICE_TYPE"` - `"HTTP_PROTOCOL"` - `"HTTP_VERSION"` - `"IP_VERSION"` - `"LOCATION"` - `"OS"` - `"POST_QUANTUM"` - `"TLS_VERSION"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class HTTPTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries_groups_v2( dimension="ADM1", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### HTTP Summary V2 Response - `class HTTPSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### HTTP Timeseries Response - `class HTTPTimeseriesResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### HTTP Timeseries Groups V2 Response - `class HTTPTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Locations ## Get top locations by HTTP requests `radar.http.locations.get(LocationGetParams**kwargs) -> LocationGetResponse` **get** `/radar/http/top/locations` Retrieves the top locations by HTTP requests. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class LocationGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) location = client.radar.http.locations.get() print(location.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Location Get Response - `class LocationGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # Bot Class ## Get top locations by HTTP requests for a bot class `radar.http.locations.bot_class.get(Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]bot_class, BotClassGetParams**kwargs) -> BotClassGetResponse` **get** `/radar/http/top/locations/bot_class/{bot_class}` Retrieves the top locations, by HTTP requests, of the requested bot class. ### Parameters - `bot_class: Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]` Bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class BotClassGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) bot_class = client.radar.http.locations.bot_class.get( bot_class="LIKELY_AUTOMATED", ) print(bot_class.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Bot Class Get Response - `class BotClassGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # Device Type ## Get top locations by HTTP requests for a device type `radar.http.locations.device_type.get(Literal["DESKTOP", "MOBILE", "OTHER"]device_type, DeviceTypeGetParams**kwargs) -> DeviceTypeGetResponse` **get** `/radar/http/top/locations/device_type/{device_type}` Retrieves the top locations, by HTTP requests, of the requested device type. ### Parameters - `device_type: Literal["DESKTOP", "MOBILE", "OTHER"]` Device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class DeviceTypeGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) device_type = client.radar.http.locations.device_type.get( device_type="DESKTOP", ) print(device_type.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Device Type Get Response - `class DeviceTypeGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # HTTP Protocol ## Get top locations by HTTP requests for an HTTP protocol `radar.http.locations.http_protocol.get(Literal["HTTP", "HTTPS"]http_protocol, HTTPProtocolGetParams**kwargs) -> HTTPProtocolGetResponse` **get** `/radar/http/top/locations/http_protocol/{http_protocol}` Retrieves the top locations, by HTTP requests, of the requested HTTP protocol. ### Parameters - `http_protocol: Literal["HTTP", "HTTPS"]` HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class HTTPProtocolGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) http_protocol = client.radar.http.locations.http_protocol.get( http_protocol="HTTP", ) print(http_protocol.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### HTTP Protocol Get Response - `class HTTPProtocolGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # HTTP Method ## Get top locations by HTTP requests for an HTTP version `radar.http.locations.http_method.get(Literal["HTTPv1", "HTTPv2", "HTTPv3"]http_version, HTTPMethodGetParams**kwargs) -> HTTPMethodGetResponse` **get** `/radar/http/top/locations/http_version/{http_version}` Retrieves the top locations, by HTTP requests, of the requested HTTP version. ### Parameters - `http_version: Literal["HTTPv1", "HTTPv2", "HTTPv3"]` HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class HTTPMethodGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) http_method = client.radar.http.locations.http_method.get( http_version="HTTPv1", ) print(http_method.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### HTTP Method Get Response - `class HTTPMethodGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # IP Version ## Get top locations by HTTP requests for an IP version `radar.http.locations.ip_version.get(Literal["IPv4", "IPv6"]ip_version, IPVersionGetParams**kwargs) -> IPVersionGetResponse` **get** `/radar/http/top/locations/ip_version/{ip_version}` Retrieves the top locations, by HTTP requests, of the requested IP version. ### Parameters - `ip_version: Literal["IPv4", "IPv6"]` IP version. - `"IPv4"` - `"IPv6"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class IPVersionGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) ip_version = client.radar.http.locations.ip_version.get( ip_version="IPv4", ) print(ip_version.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### IP Version Get Response - `class IPVersionGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # OS ## Get top locations by HTTP requests for an OS `radar.http.locations.os.get(Literal["WINDOWS", "MACOSX", "IOS", 4 more]os, OSGetParams**kwargs) -> OSGetResponse` **get** `/radar/http/top/locations/os/{os}` Retrieves the top locations, by HTTP requests, of the requested operating system. ### Parameters - `os: Literal["WINDOWS", "MACOSX", "IOS", 4 more]` Operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class OSGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) os = client.radar.http.locations.os.get( os="WINDOWS", ) print(os.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### OS Get Response - `class OSGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # TLS Version ## Get top locations by HTTP requests for a TLS version `radar.http.locations.tls_version.get(Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]tls_version, TLSVersionGetParams**kwargs) -> TLSVersionGetResponse` **get** `/radar/http/top/locations/tls_version/{tls_version}` Retrieves the top locations, by HTTP requests, of the requested TLS protocol version. ### Parameters - `tls_version: Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]` TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` ### Returns - `class TLSVersionGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) tls_version = client.radar.http.locations.tls_version.get( tls_version="TLSv1_0", ) print(tls_version.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### TLS Version Get Response - `class TLSVersionGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # Browser Family ## Get top locations by HTTP requests for a browser family `radar.http.locations.browser_family.get(Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]browser_family, BrowserFamilyGetParams**kwargs) -> BrowserFamilyGetResponse` **get** `/radar/http/top/locations/browser_family/{browser_family}` Retrieves the top locations, by HTTP requests, of the requested browser family. ### Parameters - `browser_family: Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]` Browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class BrowserFamilyGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) browser_family = client.radar.http.locations.browser_family.get( browser_family="CHROME", ) print(browser_family.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Browser Family Get Response - `class BrowserFamilyGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # Ases ## Get top ASes by HTTP requests `radar.http.ases.get(AseGetParams**kwargs) -> AseGetResponse` **get** `/radar/http/top/ases` Retrieves the top autonomous systems by HTTP requests. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class AseGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) ase = client.radar.http.ases.get() print(ase.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientASN": 3243, "clientASName": "MEO", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Ase Get Response - `class AseGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. # Bot Class ## Get top ASes by HTTP requests for a bot class `radar.http.ases.bot_class.get(Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]bot_class, BotClassGetParams**kwargs) -> BotClassGetResponse` **get** `/radar/http/top/ases/bot_class/{bot_class}` Retrieves the top autonomous systems, by HTTP requests, of the requested bot class. ### Parameters - `bot_class: Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]` Bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class BotClassGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) bot_class = client.radar.http.ases.bot_class.get( bot_class="LIKELY_AUTOMATED", ) print(bot_class.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientASN": 3243, "clientASName": "MEO", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Bot Class Get Response - `class BotClassGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. # Device Type ## Get top ASes by HTTP requests for a device type `radar.http.ases.device_type.get(Literal["DESKTOP", "MOBILE", "OTHER"]device_type, DeviceTypeGetParams**kwargs) -> DeviceTypeGetResponse` **get** `/radar/http/top/ases/device_type/{device_type}` Retrieves the top autonomous systems, by HTTP requests, of the requested device type. ### Parameters - `device_type: Literal["DESKTOP", "MOBILE", "OTHER"]` Device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class DeviceTypeGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) device_type = client.radar.http.ases.device_type.get( device_type="DESKTOP", ) print(device_type.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientASN": 3243, "clientASName": "MEO", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Device Type Get Response - `class DeviceTypeGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. # HTTP Protocol ## Get top ASes by HTTP requests for an HTTP protocol `radar.http.ases.http_protocol.get(Literal["HTTP", "HTTPS"]http_protocol, HTTPProtocolGetParams**kwargs) -> HTTPProtocolGetResponse` **get** `/radar/http/top/ases/http_protocol/{http_protocol}` Retrieves the top autonomous systems, by HTTP requests, of the requested HTTP protocol. ### Parameters - `http_protocol: Literal["HTTP", "HTTPS"]` HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class HTTPProtocolGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) http_protocol = client.radar.http.ases.http_protocol.get( http_protocol="HTTP", ) print(http_protocol.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientASN": 3243, "clientASName": "MEO", "value": "10" } ] }, "success": true } ``` ## Domain Types ### HTTP Protocol Get Response - `class HTTPProtocolGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. # HTTP Method ## Get top ASes by HTTP requests for an HTTP version `radar.http.ases.http_method.get(Literal["HTTPv1", "HTTPv2", "HTTPv3"]http_version, HTTPMethodGetParams**kwargs) -> HTTPMethodGetResponse` **get** `/radar/http/top/ases/http_version/{http_version}` Retrieves the top autonomous systems, by HTTP requests, of the requested HTTP version. ### Parameters - `http_version: Literal["HTTPv1", "HTTPv2", "HTTPv3"]` HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class HTTPMethodGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) http_method = client.radar.http.ases.http_method.get( http_version="HTTPv1", ) print(http_method.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientASN": 3243, "clientASName": "MEO", "value": "10" } ] }, "success": true } ``` ## Domain Types ### HTTP Method Get Response - `class HTTPMethodGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. # IP Version ## Get top ASes by HTTP requests for an IP version `radar.http.ases.ip_version.get(Literal["IPv4", "IPv6"]ip_version, IPVersionGetParams**kwargs) -> IPVersionGetResponse` **get** `/radar/http/top/ases/ip_version/{ip_version}` Retrieves the top autonomous systems, by HTTP requests, of the requested IP version. ### Parameters - `ip_version: Literal["IPv4", "IPv6"]` IP version. - `"IPv4"` - `"IPv6"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class IPVersionGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) ip_version = client.radar.http.ases.ip_version.get( ip_version="IPv4", ) print(ip_version.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientASN": 3243, "clientASName": "MEO", "value": "10" } ] }, "success": true } ``` ## Domain Types ### IP Version Get Response - `class IPVersionGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. # OS ## Get top ASes by HTTP requests for an OS `radar.http.ases.os.get(Literal["WINDOWS", "MACOSX", "IOS", 4 more]os, OSGetParams**kwargs) -> OSGetResponse` **get** `/radar/http/top/ases/os/{os}` Retrieves the top autonomous systems, by HTTP requests, of the requested operating system. ### Parameters - `os: Literal["WINDOWS", "MACOSX", "IOS", 4 more]` Operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class OSGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) os = client.radar.http.ases.os.get( os="WINDOWS", ) print(os.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientASN": 3243, "clientASName": "MEO", "value": "10" } ] }, "success": true } ``` ## Domain Types ### OS Get Response - `class OSGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. # TLS Version ## Get top ASes by HTTP requests for a TLS version `radar.http.ases.tls_version.get(Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]tls_version, TLSVersionGetParams**kwargs) -> TLSVersionGetResponse` **get** `/radar/http/top/ases/tls_version/{tls_version}` Retrieves the top autonomous systems, by HTTP requests, of the requested TLS protocol version. ### Parameters - `tls_version: Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]` TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` ### Returns - `class TLSVersionGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) tls_version = client.radar.http.ases.tls_version.get( tls_version="TLSv1_0", ) print(tls_version.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientASN": 3243, "clientASName": "MEO", "value": "10" } ] }, "success": true } ``` ## Domain Types ### TLS Version Get Response - `class TLSVersionGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. # Browser Family ## Get top ASes by HTTP requests for a browser family `radar.http.ases.browser_family.get(Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]browser_family, BrowserFamilyGetParams**kwargs) -> BrowserFamilyGetResponse` **get** `/radar/http/top/ases/browser_family/{browser_family}` Retrieves the top autonomous systems, by HTTP requests, of the requested browser family. ### Parameters - `browser_family: Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]` Browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class BrowserFamilyGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) browser_family = client.radar.http.ases.browser_family.get( browser_family="CHROME", ) print(browser_family.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "clientASN": 3243, "clientASName": "MEO", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Browser Family Get Response - `class BrowserFamilyGetResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `client_asn: int` - `client_as_name: str` - `value: str` A numeric string. # Summary ## Get HTTP requests by bot class summary `radar.http.summary.bot_class(SummaryBotClassParams**kwargs) -> SummaryBotClassResponse` **get** `/radar/http/summary/bot_class` Retrieves the distribution of bot-generated HTTP requests to genuine human traffic, as classified by Cloudflare. Visit https://developers.cloudflare.com/radar/concepts/bot-classes/ for more information. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class SummaryBotClassResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `bot: str` A numeric string. - `human: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.summary.bot_class() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "bot": "10", "human": "10" } }, "success": true } ``` ## Get HTTP requests by device type summary `radar.http.summary.device_type(SummaryDeviceTypeParams**kwargs) -> SummaryDeviceTypeResponse` **get** `/radar/http/summary/device_type` Retrieves the distribution of HTTP requests generated by mobile, desktop, and other types of devices. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class SummaryDeviceTypeResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `desktop: str` A numeric string. - `mobile: str` A numeric string. - `other: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.summary.device_type() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "desktop": "10", "mobile": "10", "other": "10" } }, "success": true } ``` ## Get HTTP requests by HTTP/HTTPS summary `radar.http.summary.http_protocol(SummaryHTTPProtocolParams**kwargs) -> SummaryHTTPProtocolResponse` **get** `/radar/http/summary/http_protocol` Retrieves the distribution of HTTP requests by HTTP protocol (HTTP vs. HTTPS). ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class SummaryHTTPProtocolResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `http: str` A numeric string. - `https: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.summary.http_protocol() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "http": "10", "https": "10" } }, "success": true } ``` ## Get HTTP requests by HTTP version summary `radar.http.summary.http_version(SummaryHTTPVersionParams**kwargs) -> SummaryHTTPVersionResponse` **get** `/radar/http/summary/http_version` Retrieves the distribution of HTTP requests by HTTP version. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class SummaryHTTPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `http_1_x: str` A numeric string. - `http_2: str` A numeric string. - `http_3: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.summary.http_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "HTTP/1.x": "10", "HTTP/2": "10", "HTTP/3": "10" } }, "success": true } ``` ## Get HTTP requests by IP version summary `radar.http.summary.ip_version(SummaryIPVersionParams**kwargs) -> SummaryIPVersionResponse` **get** `/radar/http/summary/ip_version` Retrieves the distribution of HTTP requests by IP version. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` A numeric string. - `i_pv6: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.summary.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "IPv4": "10", "IPv6": "10" } }, "success": true } ``` ## Get HTTP requests by OS summary `radar.http.summary.os(SummaryOSParams**kwargs) -> SummaryOSResponse` **get** `/radar/http/summary/os` Retrieves the distribution of HTTP requests by operating system (Windows, macOS, Android, iOS, and others). ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class SummaryOSResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `android: str` A numeric string. - `ios: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.summary.os() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "ANDROID": "10", "IOS": "10" } }, "success": true } ``` ## Get HTTP requests by TLS version summary `radar.http.summary.tls_version(SummaryTLSVersionParams**kwargs) -> SummaryTLSVersionResponse` **get** `/radar/http/summary/tls_version` Retrieves the distribution of HTTP requests by TLS version. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` ### Returns - `class SummaryTLSVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `tls_1_0: str` A numeric string. - `tls_1_1: str` A numeric string. - `tls_1_2: str` A numeric string. - `tls_1_3: str` A numeric string. - `tls_quic: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.summary.tls_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "TLS 1.0": "10", "TLS 1.1": "10", "TLS 1.2": "10", "TLS 1.3": "10", "TLS QUIC": "10" } }, "success": true } ``` ## Get HTTP requests by post-quantum support summary `radar.http.summary.post_quantum(SummaryPostQuantumParams**kwargs) -> SummaryPostQuantumResponse` **get** `/radar/http/summary/post_quantum` Retrieves the distribution of HTTP requests by post-quantum support. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class SummaryPostQuantumResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_supported: str` A numeric string. - `supported: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.summary.post_quantum() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NOT_SUPPORTED": "10", "SUPPORTED": "10" } }, "success": true } ``` ## Domain Types ### Summary Bot Class Response - `class SummaryBotClassResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `bot: str` A numeric string. - `human: str` A numeric string. ### Summary Device Type Response - `class SummaryDeviceTypeResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `desktop: str` A numeric string. - `mobile: str` A numeric string. - `other: str` A numeric string. ### Summary HTTP Protocol Response - `class SummaryHTTPProtocolResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `http: str` A numeric string. - `https: str` A numeric string. ### Summary HTTP Version Response - `class SummaryHTTPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `http_1_x: str` A numeric string. - `http_2: str` A numeric string. - `http_3: str` A numeric string. ### Summary IP Version Response - `class SummaryIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `i_pv4: str` A numeric string. - `i_pv6: str` A numeric string. ### Summary OS Response - `class SummaryOSResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `android: str` A numeric string. - `ios: str` A numeric string. ### Summary TLS Version Response - `class SummaryTLSVersionResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `tls_1_0: str` A numeric string. - `tls_1_1: str` A numeric string. - `tls_1_2: str` A numeric string. - `tls_1_3: str` A numeric string. - `tls_quic: str` A numeric string. ### Summary Post Quantum Response - `class SummaryPostQuantumResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `not_supported: str` A numeric string. - `supported: str` A numeric string. # Timeseries Groups ## Get HTTP requests by TLS version time series `radar.http.timeseries_groups.tls_version(TimeseriesGroupTLSVersionParams**kwargs) -> TimeseriesGroupTLSVersionResponse` **get** `/radar/http/timeseries_groups/tls_version` Retrieves the distribution of HTTP requests by TLS version over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` ### Returns - `class TimeseriesGroupTLSVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` - `tls_1_0: List[str]` - `tls_1_1: List[str]` - `tls_1_2: List[str]` - `tls_1_3: List[str]` - `tls_quic: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries_groups.tls_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2019-12-27T18:11:19.117Z" ], "TLS 1.0": [ "10" ], "TLS 1.1": [ "10" ], "TLS 1.2": [ "10" ], "TLS 1.3": [ "10" ], "TLS QUIC": [ "10" ] } }, "success": true } ``` ## Get HTTP requests by bot class time series `radar.http.timeseries_groups.bot_class(TimeseriesGroupBotClassParams**kwargs) -> TimeseriesGroupBotClassResponse` **get** `/radar/http/timeseries_groups/bot_class` Retrieves the distribution of HTTP requests classified as automated or human over time. Visit https://developers.cloudflare.com/radar/concepts/bot-classes/ for more information. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class TimeseriesGroupBotClassResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `bot: List[str]` - `human: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries_groups.bot_class() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "bot": [ "10" ], "human": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Get HTTP requests by user agent time series `radar.http.timeseries_groups.browser(TimeseriesGroupBrowserParams**kwargs) -> TimeseriesGroupBrowserResponse` **get** `/radar/http/timeseries_groups/browser` Retrieves the distribution of HTTP requests by user agent over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class TimeseriesGroupBrowserResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries_groups.browser() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get HTTP requests by user agent family time series `radar.http.timeseries_groups.browser_family(TimeseriesGroupBrowserFamilyParams**kwargs) -> TimeseriesGroupBrowserFamilyResponse` **get** `/radar/http/timeseries_groups/browser_family` Retrieves the distribution of HTTP requests by user agent family over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class TimeseriesGroupBrowserFamilyResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries_groups.browser_family() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get HTTP requests by device type time series `radar.http.timeseries_groups.device_type(TimeseriesGroupDeviceTypeParams**kwargs) -> TimeseriesGroupDeviceTypeResponse` **get** `/radar/http/timeseries_groups/device_type` Retrieves the distribution of HTTP requests by device type over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class TimeseriesGroupDeviceTypeResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `desktop: List[str]` - `mobile: List[str]` - `other: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries_groups.device_type() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "desktop": [ "10" ], "mobile": [ "10" ], "other": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Get HTTP requests by HTTP/HTTPS time series `radar.http.timeseries_groups.http_protocol(TimeseriesGroupHTTPProtocolParams**kwargs) -> TimeseriesGroupHTTPProtocolResponse` **get** `/radar/http/timeseries_groups/http_protocol` Retrieves the distribution of HTTP requests by HTTP protocol (HTTP vs. HTTPS) over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class TimeseriesGroupHTTPProtocolResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `http: List[str]` - `https: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries_groups.http_protocol() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "http": [ "10" ], "https": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Get HTTP requests by HTTP version time series `radar.http.timeseries_groups.http_version(TimeseriesGroupHTTPVersionParams**kwargs) -> TimeseriesGroupHTTPVersionResponse` **get** `/radar/http/timeseries_groups/http_version` Retrieves the distribution of HTTP requests by HTTP version over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class TimeseriesGroupHTTPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `http_1_x: List[str]` - `http_2: List[str]` - `http_3: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries_groups.http_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "HTTP/1.x": [ "10" ], "HTTP/2": [ "10" ], "HTTP/3": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Get HTTP requests by IP version time series `radar.http.timeseries_groups.ip_version(TimeseriesGroupIPVersionParams**kwargs) -> TimeseriesGroupIPVersionResponse` **get** `/radar/http/timeseries_groups/ip_version` Retrieves the distribution of HTTP requests by IP version over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries_groups.ip_version() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "IPv4": [ "10" ], "IPv6": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Get HTTP requests by OS time series `radar.http.timeseries_groups.os(TimeseriesGroupOSParams**kwargs) -> TimeseriesGroupOSResponse` **get** `/radar/http/timeseries_groups/os` Retrieves the distribution of HTTP requests by operating system over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class TimeseriesGroupOSResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries_groups.os() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Get HTTP requests by post-quantum support time series `radar.http.timeseries_groups.post_quantum(TimeseriesGroupPostQuantumParams**kwargs) -> TimeseriesGroupPostQuantumResponse` **get** `/radar/http/timeseries_groups/post_quantum` Retrieves the distribution of HTTP requests by post-quantum support over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class TimeseriesGroupPostQuantumResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_supported: List[str]` - `supported: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.timeseries_groups.post_quantum() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "NOT_SUPPORTED": [ "10" ], "SUPPORTED": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Domain Types ### Timeseries Group TLS Version Response - `class TimeseriesGroupTLSVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` - `tls_1_0: List[str]` - `tls_1_1: List[str]` - `tls_1_2: List[str]` - `tls_1_3: List[str]` - `tls_quic: List[str]` ### Timeseries Group Bot Class Response - `class TimeseriesGroupBotClassResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `bot: List[str]` - `human: List[str]` - `timestamps: List[datetime]` ### Timeseries Group Browser Response - `class TimeseriesGroupBrowserResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group Browser Family Response - `class TimeseriesGroupBrowserFamilyResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group Device Type Response - `class TimeseriesGroupDeviceTypeResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `desktop: List[str]` - `mobile: List[str]` - `other: List[str]` - `timestamps: List[datetime]` ### Timeseries Group HTTP Protocol Response - `class TimeseriesGroupHTTPProtocolResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `http: List[str]` - `https: List[str]` - `timestamps: List[datetime]` ### Timeseries Group HTTP Version Response - `class TimeseriesGroupHTTPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `http_1_x: List[str]` - `http_2: List[str]` - `http_3: List[str]` - `timestamps: List[datetime]` ### Timeseries Group IP Version Response - `class TimeseriesGroupIPVersionResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `i_pv4: List[str]` - `i_pv6: List[str]` - `timestamps: List[datetime]` ### Timeseries Group OS Response - `class TimeseriesGroupOSResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Timeseries Group Post Quantum Response - `class TimeseriesGroupPostQuantumResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `not_supported: List[str]` - `supported: List[str]` - `timestamps: List[datetime]` # Top ## Get top user agents by HTTP requests `radar.http.top.browser(TopBrowserParams**kwargs) -> TopBrowserResponse` **get** `/radar/http/top/browser` Retrieves the top user agents by HTTP requests. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `browser_family: Optional[List[Literal["CHROME", "EDGE", "FIREFOX", "SAFARI"]]]` Filters results by browser family. - `"CHROME"` - `"EDGE"` - `"FIREFOX"` - `"SAFARI"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class TopBrowserResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.top.browser() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "chrome", "value": "value" } ] }, "success": true } ``` ## Get top user agent families by HTTP requests `radar.http.top.browser_family(TopBrowserFamilyParams**kwargs) -> TopBrowserFamilyResponse` **get** `/radar/http/top/browser_family` Retrieves the top user agents, aggregated in families, by HTTP requests. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `device_type: Optional[List[Literal["DESKTOP", "MOBILE", "OTHER"]]]` Filters results by device type. - `"DESKTOP"` - `"MOBILE"` - `"OTHER"` - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `geo_id: Optional[SequenceNotStr[str]]` Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York). - `http_protocol: Optional[List[Literal["HTTP", "HTTPS"]]]` Filters results by HTTP protocol (HTTP vs. HTTPS). - `"HTTP"` - `"HTTPS"` - `http_version: Optional[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]]]` Filters results by HTTP version. - `"HTTPv1"` - `"HTTPv2"` - `"HTTPv3"` - `ip_version: Optional[List[Literal["IPv4", "IPv6"]]]` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `os: Optional[List[Literal["WINDOWS", "MACOSX", "IOS", 4 more]]]` Filters results by operating system. - `"WINDOWS"` - `"MACOSX"` - `"IOS"` - `"ANDROID"` - `"CHROMEOS"` - `"LINUX"` - `"SMART_TV"` - `tls_version: Optional[List[Literal["TLSv1_0", "TLSv1_1", "TLSv1_2", 2 more]]]` Filters results by TLS version. - `"TLSv1_0"` - `"TLSv1_1"` - `"TLSv1_2"` - `"TLSv1_3"` - `"TLSvQUIC"` ### Returns - `class TopBrowserFamilyResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.http.top.browser_family() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "chrome", "value": "value" } ] }, "success": true } ``` ## Domain Types ### Top Browser Response - `class TopBrowserResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` ### Top Browser Family Response - `class TopBrowserFamilyResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: str` # Origins # Quality # IQI ## Get Internet Quality Index (IQI) summary `radar.quality.iqi.summary(IQISummaryParams**kwargs) -> IQISummaryResponse` **get** `/radar/quality/iqi/summary` Retrieves a summary (percentiles) of bandwidth, latency, or DNS response time from the Radar Internet Quality Index (IQI). ### Parameters - `metric: Literal["BANDWIDTH", "DNS", "LATENCY"]` Defines which metric to return (bandwidth, latency, or DNS response time). - `"BANDWIDTH"` - `"DNS"` - `"LATENCY"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class IQISummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `p25: str` - `p50: str` - `p75: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.quality.iqi.summary( metric="BANDWIDTH", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "p25": "32.20938", "p50": "61.819881", "p75": "133.813087" } }, "success": true } ``` ## Get Internet Quality Index (IQI) time series `radar.quality.iqi.timeseries_groups(IQITimeseriesGroupsParams**kwargs) -> IQITimeseriesGroupsResponse` **get** `/radar/quality/iqi/timeseries_groups` Retrieves a time series (percentiles) of bandwidth, latency, or DNS response time from the Radar Internet Quality Index (IQI). ### Parameters - `metric: Literal["BANDWIDTH", "DNS", "LATENCY"]` Defines which metric to return (bandwidth, latency, or DNS response time). - `"BANDWIDTH"` - `"DNS"` - `"LATENCY"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `interpolation: Optional[bool]` Enables interpolation for all series (using the average). - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class IQITimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `p25: List[str]` - `p50: List[str]` - `p75: List[str]` - `timestamps: List[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.quality.iqi.timeseries_groups( metric="BANDWIDTH", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "p25": [ "31.253439" ], "p50": [ "60.337738" ], "p75": [ "125.940175" ], "timestamps": [ "2023-04-17T00:00:00Z" ] } }, "success": true } ``` ## Domain Types ### IQI Summary Response - `class IQISummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `p25: str` - `p50: str` - `p75: str` ### IQI Timeseries Groups Response - `class IQITimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `p25: List[str]` - `p50: List[str]` - `p75: List[str]` - `timestamps: List[str]` # Speed ## Get speed tests summary `radar.quality.speed.summary(SpeedSummaryParams**kwargs) -> SpeedSummaryResponse` **get** `/radar/quality/speed/summary` Retrieves a summary of bandwidth, latency, jitter, and packet loss, from the previous 90 days of Cloudflare Speed Test data. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SpeedSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `bandwidth_download: str` - `bandwidth_upload: str` - `jitter_idle: str` - `jitter_loaded: str` - `latency_idle: str` - `latency_loaded: str` - `packet_loss: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.quality.speed.summary() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "bandwidthDownload": "83.765201", "bandwidthUpload": "39.005561", "jitterIdle": "25.648713", "jitterLoaded": "77.462155", "latencyIdle": "83.165385", "latencyLoaded": "270.561124", "packetLoss": "1.23705" } }, "success": true } ``` ## Get speed tests histogram `radar.quality.speed.histogram(SpeedHistogramParams**kwargs) -> SpeedHistogramResponse` **get** `/radar/quality/speed/histogram` Retrieves a histogram from the previous 90 days of Cloudflare Speed Test data, split into fixed bandwidth (Mbps), latency (ms), or jitter (ms) buckets. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bucket_size: Optional[int]` Specifies the width for every bucket in the histogram. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `metric_group: Optional[Literal["BANDWIDTH", "LATENCY", "JITTER"]]` Metrics to be returned. - `"BANDWIDTH"` - `"LATENCY"` - `"JITTER"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SpeedHistogramResponse: …` - `histogram_0: Histogram0` - `bandwidth_download: List[str]` - `bandwidth_upload: List[str]` - `bucket_min: List[str]` - `meta: Meta` Metadata for the results. - `bucket_size: int` The width for every bucket in the histogram. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `total_tests: List[int]` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.quality.speed.histogram() print(response.histogram_0) ``` #### Response ```json { "result": { "histogram_0": { "bandwidthDownload": [ "83681" ], "bandwidthUpload": [ "181079" ], "bucketMin": [ "0" ] }, "meta": { "bucketSize": 0, "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "totalTests": [ 0 ], "units": [ { "name": "*", "value": "requests" } ] } }, "success": true } ``` ## Domain Types ### Speed Summary Response - `class SpeedSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `bandwidth_download: str` - `bandwidth_upload: str` - `jitter_idle: str` - `jitter_loaded: str` - `latency_idle: str` - `latency_loaded: str` - `packet_loss: str` ### Speed Histogram Response - `class SpeedHistogramResponse: …` - `histogram_0: Histogram0` - `bandwidth_download: List[str]` - `bandwidth_upload: List[str]` - `bucket_min: List[str]` - `meta: Meta` Metadata for the results. - `bucket_size: int` The width for every bucket in the histogram. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `total_tests: List[int]` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` # Top ## Get top ASes by speed test results `radar.quality.speed.top.ases(TopAsesParams**kwargs) -> TopAsesResponse` **get** `/radar/quality/speed/top/ases` Retrieves the top autonomous systems by bandwidth, latency, jitter, or packet loss, from the previous 90 days of Cloudflare Speed Test data. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `order_by: Optional[Literal["BANDWIDTH_DOWNLOAD", "BANDWIDTH_UPLOAD", "LATENCY_IDLE", 3 more]]` Specifies the metric to order the results by. - `"BANDWIDTH_DOWNLOAD"` - `"BANDWIDTH_UPLOAD"` - `"LATENCY_IDLE"` - `"LATENCY_LOADED"` - `"JITTER_IDLE"` - `"JITTER_LOADED"` - `reverse: Optional[bool]` Reverses the order of results. ### Returns - `class TopAsesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `bandwidth_download: str` - `bandwidth_upload: str` - `client_asn: float` - `client_as_name: str` - `jitter_idle: str` - `jitter_loaded: str` - `latency_idle: str` - `latency_loaded: str` - `num_tests: float` - `rank_power: float` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.quality.speed.top.ases() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "bandwidthDownload": "642.509004", "bandwidthUpload": "300.672274", "clientASN": 33353, "clientASName": "SIE-CGEI-ASN-1", "jitterIdle": "2.956908", "jitterLoaded": "19.500469", "latencyIdle": "15.925", "latencyLoaded": "65.65", "numTests": 13123, "rankPower": 0.77 } ] }, "success": true } ``` ## Get top locations by speed test results `radar.quality.speed.top.locations(TopLocationsParams**kwargs) -> TopLocationsResponse` **get** `/radar/quality/speed/top/locations` Retrieves the top locations by bandwidth, latency, jitter, or packet loss, from the previous 90 days of Cloudflare Speed Test data. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `order_by: Optional[Literal["BANDWIDTH_DOWNLOAD", "BANDWIDTH_UPLOAD", "LATENCY_IDLE", 3 more]]` Specifies the metric to order the results by. - `"BANDWIDTH_DOWNLOAD"` - `"BANDWIDTH_UPLOAD"` - `"LATENCY_IDLE"` - `"LATENCY_LOADED"` - `"JITTER_IDLE"` - `"JITTER_LOADED"` - `reverse: Optional[bool]` Reverses the order of results. ### Returns - `class TopLocationsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `bandwidth_download: str` - `bandwidth_upload: str` - `client_country_alpha2: str` - `client_country_name: str` - `jitter_idle: str` - `jitter_loaded: str` - `latency_idle: str` - `latency_loaded: str` - `num_tests: float` - `rank_power: float` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.quality.speed.top.locations() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "bandwidthDownload": "295.886073", "bandwidthUpload": "158.85269", "clientCountryAlpha2": "IS", "clientCountryName": "Iceland", "jitterIdle": "9.640685", "jitterLoaded": "46.480023", "latencyIdle": "15.208124", "latencyLoaded": "114.758887", "numTests": 13123, "rankPower": 0.77 } ] }, "success": true } ``` ## Domain Types ### Top Ases Response - `class TopAsesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `bandwidth_download: str` - `bandwidth_upload: str` - `client_asn: float` - `client_as_name: str` - `jitter_idle: str` - `jitter_loaded: str` - `latency_idle: str` - `latency_loaded: str` - `num_tests: float` - `rank_power: float` ### Top Locations Response - `class TopLocationsResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `bandwidth_download: str` - `bandwidth_upload: str` - `client_country_alpha2: str` - `client_country_name: str` - `jitter_idle: str` - `jitter_loaded: str` - `latency_idle: str` - `latency_loaded: str` - `num_tests: float` - `rank_power: float` # Ranking ## Get domains rank time series `radar.ranking.timeseries_groups(RankingTimeseriesGroupsParams**kwargs) -> RankingTimeseriesGroupsResponse` **get** `/radar/ranking/timeseries_groups` Retrieves domains rank over time. ### Parameters - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `domain_category: Optional[SequenceNotStr[str]]` Filters results by domain category. - `domains: Optional[SequenceNotStr[str]]` Filters results by domain name. Specify a comma-separated list of domain names. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 location codes. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `ranking_type: Optional[Literal["POPULAR", "TRENDING_RISE", "TRENDING_STEADY"]]` The ranking type. - `"POPULAR"` - `"TRENDING_RISE"` - `"TRENDING_STEADY"` ### Returns - `class RankingTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ranking.timeseries_groups() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Get top or trending domains `radar.ranking.top(RankingTopParams**kwargs) -> RankingTopResponse` **get** `/radar/ranking/top` Retrieves the top or trending domains based on their rank. Popular domains are domains of broad appeal based on how people use the Internet. Trending domains are domains that are generating a surge in interest. For more information on top domains, see https://blog.cloudflare.com/radar-domain-rankings/. ### Parameters - `date: Optional[SequenceNotStr[Union[null, null]]]` Filters results by the specified array of dates. - `domain_category: Optional[SequenceNotStr[str]]` Filters results by domain category. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 location codes. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `ranking_type: Optional[Literal["POPULAR", "TRENDING_RISE", "TRENDING_STEADY"]]` The ranking type. - `"POPULAR"` - `"TRENDING_RISE"` - `"TRENDING_STEADY"` ### Returns - `class RankingTopResponse: …` - `meta: Meta` - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `categories: List[Top0Category]` - `id: float` - `name: str` - `super_category_id: float` - `domain: str` - `rank: int` - `pct_rank_change: Optional[float]` Only available in TRENDING rankings. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ranking.top() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "categories": [ { "id": 81, "name": "Content Servers", "superCategoryId": 26 } ], "domain": "google.com", "rank": 1, "pctRankChange": 10.8 } ] }, "success": true } ``` ## Domain Types ### Ranking Timeseries Groups Response - `class RankingTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Ranking Top Response - `class RankingTopResponse: …` - `meta: Meta` - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `categories: List[Top0Category]` - `id: float` - `name: str` - `super_category_id: float` - `domain: str` - `rank: int` - `pct_rank_change: Optional[float]` Only available in TRENDING rankings. # Domain ## Get domain rank details `radar.ranking.domain.get(strdomain, DomainGetParams**kwargs) -> DomainGetResponse` **get** `/radar/ranking/domain/{domain}` Retrieves domain rank details. Cloudflare provides an ordered rank for the top 100 domains, but for the remainder it only provides ranking buckets like top 200 thousand, top one million, etc.. These are available through Radar datasets endpoints. ### Parameters - `domain: str` Domain name. - `date: Optional[SequenceNotStr[Union[null, null]]]` Filters results by the specified array of dates. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `include_top_locations: Optional[bool]` Includes top locations in the response. - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `ranking_type: Optional[Literal["POPULAR", "TRENDING_RISE", "TRENDING_STEADY"]]` The ranking type. - `"POPULAR"` - `"TRENDING_RISE"` - `"TRENDING_STEADY"` ### Returns - `class DomainGetResponse: …` - `details_0: Details0` - `categories: List[Details0Category]` - `id: int` - `name: str` - `super_category_id: int` - `bucket: Optional[str]` Only available in POPULAR ranking for the most recent ranking. - `rank: Optional[int]` - `top_locations: Optional[List[Details0TopLocation]]` - `location_code: str` - `location_name: str` - `rank: int` - `meta: Meta` - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) domain = client.radar.ranking.domain.get( domain="google.com", ) print(domain.details_0) ``` #### Response ```json { "result": { "details_0": { "categories": [ { "id": 81, "name": "Content Servers", "superCategoryId": 26 } ], "bucket": "2000", "rank": 3, "top_locations": [ { "locationCode": "US", "locationName": "United States", "rank": 1 } ] }, "meta": { "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ] } }, "success": true } ``` ## Domain Types ### Domain Get Response - `class DomainGetResponse: …` - `details_0: Details0` - `categories: List[Details0Category]` - `id: int` - `name: str` - `super_category_id: int` - `bucket: Optional[str]` Only available in POPULAR ranking for the most recent ranking. - `rank: Optional[int]` - `top_locations: Optional[List[Details0TopLocation]]` - `location_code: str` - `location_name: str` - `rank: int` - `meta: Meta` - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. # Internet Services ## Get Internet services rank time series `radar.ranking.internet_services.timeseries_groups(InternetServiceTimeseriesGroupsParams**kwargs) -> InternetServiceTimeseriesGroupsResponse` **get** `/radar/ranking/internet_services/timeseries_groups` Retrieves Internet Services rank update changes over time. ### Parameters - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `service_category: Optional[SequenceNotStr[str]]` Filters results by Internet service category. ### Returns - `class InternetServiceTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ranking.internet_services.timeseries_groups() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Get top Internet services `radar.ranking.internet_services.top(InternetServiceTopParams**kwargs) -> InternetServiceTopResponse` **get** `/radar/ranking/internet_services/top` Retrieves top Internet services based on their rank. ### Parameters - `date: Optional[SequenceNotStr[Union[null, null]]]` Filters results by the specified array of dates. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `service_category: Optional[SequenceNotStr[str]]` Filters results by Internet service category. ### Returns - `class InternetServiceTopResponse: …` - `meta: Meta` - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `rank: int` - `service: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ranking.internet_services.top() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "rank": 1, "service": "Google" } ] }, "success": true } ``` ## List Internet services categories `radar.ranking.internet_services.categories(InternetServiceCategoriesParams**kwargs) -> InternetServiceCategoriesResponse` **get** `/radar/ranking/internet_services/categories` Retrieves the list of Internet services categories. ### Parameters - `date: Optional[SequenceNotStr[Union[null, null]]]` Filters results by the specified array of dates. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class InternetServiceCategoriesResponse: …` - `categories_0: List[Categories0]` - `name: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.ranking.internet_services.categories() print(response.categories_0) ``` #### Response ```json { "result": { "categories_0": [ { "name": "Generative AI" } ] }, "success": true } ``` ## Domain Types ### Internet Service Timeseries Groups Response - `class InternetServiceTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Internet Service Top Response - `class InternetServiceTopResponse: …` - `meta: Meta` - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `rank: int` - `service: str` ### Internet Service Categories Response - `class InternetServiceCategoriesResponse: …` - `categories_0: List[Categories0]` - `name: str` # Traffic Anomalies ## Get latest Internet traffic anomalies `radar.traffic_anomalies.get(TrafficAnomalyGetParams**kwargs) -> TrafficAnomalyGetResponse` **get** `/radar/traffic_anomalies` Retrieves the latest Internet traffic anomalies, which are signals that might indicate an outage. These alerts are automatically detected by Radar and manually verified by our team. ### Parameters - `asn: Optional[int]` Filters results by Autonomous System. Specify a single Autonomous System Number (ASN) as integer. - `date_end: Optional[Union[str, datetime]]` End of the date range (inclusive). - `date_range: Optional[str]` Filters results by date range. - `date_start: Optional[Union[str, datetime]]` Start of the date range (inclusive). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `location: Optional[str]` Filters results by location. Specify an alpha-2 location code. - `offset: Optional[int]` Skips the specified number of objects before fetching the results. - `origin: Optional[str]` Filters results by origin. - `status: Optional[Literal["VERIFIED", "UNVERIFIED"]]` - `"VERIFIED"` - `"UNVERIFIED"` - `type: Optional[List[Literal["LOCATION", "AS", "ORIGIN"]]]` Filters results by entity type (LOCATION, AS, or ORIGIN). - `"LOCATION"` - `"AS"` - `"ORIGIN"` ### Returns - `class TrafficAnomalyGetResponse: …` - `traffic_anomalies: List[TrafficAnomaly]` - `start_date: str` - `status: str` - `type: str` - `uuid: str` - `asn_details: Optional[TrafficAnomalyASNDetails]` - `asn: str` - `name: str` - `locations: Optional[TrafficAnomalyASNDetailsLocations]` - `code: str` - `name: str` - `end_date: Optional[datetime]` - `location_details: Optional[TrafficAnomalyLocationDetails]` - `code: str` - `name: str` - `origin_details: Optional[TrafficAnomalyOriginDetails]` - `name: str` - `origin: str` - `visible_in_data_sources: Optional[List[str]]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) traffic_anomaly = client.radar.traffic_anomalies.get() print(traffic_anomaly.traffic_anomalies) ``` #### Response ```json { "result": { "trafficAnomalies": [ { "startDate": "2023-08-02T23:15:00Z", "status": "UNVERIFIED", "type": "LOCATION", "uuid": "55a57f33-8bc0-4984-b4df-fdaff72df39d", "asnDetails": { "asn": "189", "name": "LUMEN-LEGACY-L3-PARTITION", "locations": { "code": "US", "name": "United States" } }, "endDate": "2019-12-27T18:11:19.117Z", "locationDetails": { "code": "US", "name": "United States" }, "originDetails": { "name": "us-east-1 Amazon Web Services", "origin": "amazon-us-east-1" }, "visibleInDataSources": [ "string" ] } ] }, "success": true } ``` ## Domain Types ### Traffic Anomaly Get Response - `class TrafficAnomalyGetResponse: …` - `traffic_anomalies: List[TrafficAnomaly]` - `start_date: str` - `status: str` - `type: str` - `uuid: str` - `asn_details: Optional[TrafficAnomalyASNDetails]` - `asn: str` - `name: str` - `locations: Optional[TrafficAnomalyASNDetailsLocations]` - `code: str` - `name: str` - `end_date: Optional[datetime]` - `location_details: Optional[TrafficAnomalyLocationDetails]` - `code: str` - `name: str` - `origin_details: Optional[TrafficAnomalyOriginDetails]` - `name: str` - `origin: str` - `visible_in_data_sources: Optional[List[str]]` # Locations ## Get top locations by total traffic anomalies `radar.traffic_anomalies.locations.get(LocationGetParams**kwargs) -> LocationGetResponse` **get** `/radar/traffic_anomalies/locations` Retrieves the sum of Internet traffic anomalies, grouped by location. These anomalies are signals that might indicate an outage, automatically detected by Radar and manually verified by our team. ### Parameters - `date_end: Optional[Union[str, datetime]]` End of the date range (inclusive). - `date_range: Optional[str]` Filters results by date range. - `date_start: Optional[Union[str, datetime]]` Start of the date range (inclusive). - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `status: Optional[Literal["VERIFIED", "UNVERIFIED"]]` - `"VERIFIED"` - `"UNVERIFIED"` ### Returns - `class LocationGetResponse: …` - `traffic_anomalies: List[TrafficAnomaly]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) location = client.radar.traffic_anomalies.locations.get() print(location.traffic_anomalies) ``` #### Response ```json { "result": { "trafficAnomalies": [ { "clientCountryAlpha2": "PT", "clientCountryName": "Portugal", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Location Get Response - `class LocationGetResponse: …` - `traffic_anomalies: List[TrafficAnomaly]` - `client_country_alpha2: str` - `client_country_name: str` - `value: str` A numeric string. # TCP Resets Timeouts ## Get TCP resets and timeouts summary `radar.tcp_resets_timeouts.summary(TCPResetsTimeoutSummaryParams**kwargs) -> TCPResetsTimeoutSummaryResponse` **get** `/radar/tcp_resets_timeouts/summary` Retrieves the distribution of connection stage by TCP connections terminated within the first 10 packets by a reset or timeout. ### Parameters - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TCPResetsTimeoutSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `later_in_flow: str` Connection resets within the first 10 packets from the client, but after the server has received multiple data packets. - `no_match: str` All other connections. - `post_ack: str` Connection resets or timeouts after the server received both a SYN packet and an ACK packet, meaning the connection was successfully established. - `post_psh: str` Connection resets or timeouts after the server received a packet with PSH flag set, following connection establishment. - `post_syn: str` Connection resets or timeouts after the server received only a single SYN packet. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.tcp_resets_timeouts.summary() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "later_in_flow": "10", "no_match": "65", "post_ack": "5", "post_psh": "10", "post_syn": "10" } }, "success": true } ``` ## Get TCP resets and timeouts time series `radar.tcp_resets_timeouts.timeseries_groups(TCPResetsTimeoutTimeseriesGroupsParams**kwargs) -> TCPResetsTimeoutTimeseriesGroupsResponse` **get** `/radar/tcp_resets_timeouts/timeseries_groups` Retrieves the distribution of connection stage by TCP connections terminated within the first 10 packets by a reset or timeout over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TCPResetsTimeoutTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `later_in_flow: List[str]` - `no_match: List[str]` - `post_ack: List[str]` - `post_psh: List[str]` - `post_syn: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.tcp_resets_timeouts.timeseries_groups() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "later_in_flow": [ "10" ], "no_match": [ "65" ], "post_ack": [ "5" ], "post_psh": [ "10" ], "post_syn": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Domain Types ### TCP Resets Timeout Summary Response - `class TCPResetsTimeoutSummaryResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `later_in_flow: str` Connection resets within the first 10 packets from the client, but after the server has received multiple data packets. - `no_match: str` All other connections. - `post_ack: str` Connection resets or timeouts after the server received both a SYN packet and an ACK packet, meaning the connection was successfully established. - `post_psh: str` Connection resets or timeouts after the server received a packet with PSH flag set, following connection establishment. - `post_syn: str` Connection resets or timeouts after the server received only a single SYN packet. ### TCP Resets Timeout Timeseries Groups Response - `class TCPResetsTimeoutTimeseriesGroupsResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `later_in_flow: List[str]` - `no_match: List[str]` - `post_ack: List[str]` - `post_psh: List[str]` - `post_syn: List[str]` - `timestamps: List[datetime]` # TLDs # Robots TXT # Top ## Get top domain categories by robots.txt files parsed `radar.robots_txt.top.domain_categories(TopDomainCategoriesParams**kwargs) -> TopDomainCategoriesResponse` **get** `/radar/robots_txt/top/domain_categories` Retrieves the top domain categories by the number of robots.txt files parsed. ### Parameters - `date: Optional[SequenceNotStr[Union[null, null]]]` Filters results by the specified array of dates. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `user_agent_category: Optional[Literal["AI"]]` Filters results by user agent category. - `"AI"` ### Returns - `class TopDomainCategoriesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: int` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.robots_txt.top.domain_categories() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "News & Media", "value": 273 } ] }, "success": true } ``` ## Domain Types ### Top Domain Categories Response - `class TopDomainCategoriesResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: int` # User Agents ## Get top user agents on robots.txt files `radar.robots_txt.top.user_agents.directive(UserAgentDirectiveParams**kwargs) -> UserAgentDirectiveResponse` **get** `/radar/robots_txt/top/user_agents/directive` Retrieves the top user agents on robots.txt files. ### Parameters - `date: Optional[SequenceNotStr[Union[null, null]]]` Filters results by the specified array of dates. - `directive: Optional[Literal["ALLOW", "DISALLOW"]]` Filters results by robots.txt directive. - `"ALLOW"` - `"DISALLOW"` - `domain_category: Optional[SequenceNotStr[str]]` Filters results by domain category. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit: Optional[int]` Limits the number of objects returned in the response. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `user_agent_category: Optional[Literal["AI"]]` Filters results by user agent category. - `"AI"` ### Returns - `class UserAgentDirectiveResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: int` - `fully: Optional[int]` - `partially: Optional[int]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.robots_txt.top.user_agents.directive() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "GPTBot", "value": 273, "fully": 235, "partially": 38 } ] }, "success": true } ``` ## Domain Types ### User Agent Directive Response - `class UserAgentDirectiveResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: Optional[MetaConfidenceInfo]` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `top_0: List[Top0]` - `name: str` - `value: int` - `fully: Optional[int]` - `partially: Optional[int]` # Leaked Credentials ## Get HTTP authentication requests distribution by dimension `radar.leaked_credentials.summary_v2(Literal["COMPROMISED", "BOT_CLASS"]dimension, LeakedCredentialSummaryV2Params**kwargs) -> LeakedCredentialSummaryV2Response` **get** `/radar/leaked_credential_checks/summary/{dimension}` Retrieves an aggregated summary of HTTP authentication requests grouped by the specified dimension. ### Parameters - `dimension: Literal["COMPROMISED", "BOT_CLASS"]` Specifies the attribute by which to group the results. - `"COMPROMISED"` - `"BOT_CLASS"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `compromised: Optional[List[Literal["CLEAN", "COMPROMISED"]]]` Filters results by compromised credential status (clean vs. compromised). - `"CLEAN"` - `"COMPROMISED"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class LeakedCredentialSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.leaked_credentials.summary_v2( dimension="COMPROMISED", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "CLEAN": "85.123456", "COMPROMISED": "14.876544" } }, "success": true } ``` ## Get time series distribution of HTTP authentication requests by dimension. `radar.leaked_credentials.timeseries_groups_v2(Literal["COMPROMISED", "BOT_CLASS"]dimension, LeakedCredentialTimeseriesGroupsV2Params**kwargs) -> LeakedCredentialTimeseriesGroupsV2Response` **get** `/radar/leaked_credential_checks/timeseries_groups/{dimension}` Retrieves the distribution of HTTP authentication requests, grouped by the specified dimension over time. ### Parameters - `dimension: Literal["COMPROMISED", "BOT_CLASS"]` Specifies the attribute by which to group the results. - `"COMPROMISED"` - `"BOT_CLASS"` - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn: Optional[SequenceNotStr[str]]` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `check_result: Optional[List[Literal["CLEAN", "USERNAME_LEAKED", "USERNAME_PASSWORD_SIMILAR", 2 more]]]` Filters results by leaked credential check result. - `"CLEAN"` - `"USERNAME_LEAKED"` - `"USERNAME_PASSWORD_SIMILAR"` - `"USERNAME_AND_PASSWORD_LEAKED"` - `"PASSWORD_LEAKED"` - `compromised: Optional[List[Literal["CLEAN", "COMPROMISED"]]]` Filters results by compromised credential status (clean vs. compromised). - `"CLEAN"` - `"COMPROMISED"` - `continent: Optional[SequenceNotStr[str]]` Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA. - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit_per_group: Optional[int]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `location: Optional[SequenceNotStr[str]]` Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. - `normalization: Optional[Literal["PERCENTAGE_CHANGE", "MIN0_MAX"]]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE_CHANGE"` - `"MIN0_MAX"` ### Returns - `class LeakedCredentialTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.leaked_credentials.timeseries_groups_v2( dimension="COMPROMISED", ) print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` ## Domain Types ### Leaked Credential Summary V2 Response - `class LeakedCredentialSummaryV2Response: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Dict[str, str]` ### Leaked Credential Timeseries Groups V2 Response - `class LeakedCredentialTimeseriesGroupsV2Response: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `timestamps: List[datetime]` # Summary ## Get HTTP authentication requests by bot class summary `radar.leaked_credentials.summary.bot_class(SummaryBotClassParams**kwargs) -> SummaryBotClassResponse` **get** `/radar/leaked_credential_checks/summary/bot_class` Retrieves the distribution of HTTP authentication requests by bot class. ### Parameters - `compromised: Optional[List[Literal["CLEAN", "COMPROMISED"]]]` Filters results by compromised credential status (clean vs. compromised). - `"CLEAN"` - `"COMPROMISED"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryBotClassResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `bot: str` A numeric string. - `human: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.leaked_credentials.summary.bot_class() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "bot": "10", "human": "10" } }, "success": true } ``` ## Get HTTP authentication requests by compromised credential status summary `radar.leaked_credentials.summary.compromised(SummaryCompromisedParams**kwargs) -> SummaryCompromisedResponse` **get** `/radar/leaked_credential_checks/summary/compromised` Retrieves the distribution of HTTP authentication requests by compromised credential status. ### Parameters - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class SummaryCompromisedResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `clean: str` A numeric string. - `compromised: str` A numeric string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.leaked_credentials.summary.compromised() print(response.meta) ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "CLEAN": "10", "COMPROMISED": "10" } }, "success": true } ``` ## Domain Types ### Summary Bot Class Response - `class SummaryBotClassResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `bot: str` A numeric string. - `human: str` A numeric string. ### Summary Compromised Response - `class SummaryCompromisedResponse: …` - `meta: Meta` Metadata for the results. - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `summary_0: Summary0` - `clean: str` A numeric string. - `compromised: str` A numeric string. # Timeseries Groups ## Get HTTP authentication requests by bot class time series `radar.leaked_credentials.timeseries_groups.bot_class(TimeseriesGroupBotClassParams**kwargs) -> TimeseriesGroupBotClassResponse` **get** `/radar/leaked_credential_checks/timeseries_groups/bot_class` Retrieves the distribution of HTTP authentication requests by bot class over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `compromised: Optional[List[Literal["CLEAN", "COMPROMISED"]]]` Filters results by compromised credential status (clean vs. compromised). - `"CLEAN"` - `"COMPROMISED"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TimeseriesGroupBotClassResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `bot: List[str]` - `human: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.leaked_credentials.timeseries_groups.bot_class() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "bot": [ "10" ], "human": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Get HTTP authentication requests by compromised credential status time series `radar.leaked_credentials.timeseries_groups.compromised(TimeseriesGroupCompromisedParams**kwargs) -> TimeseriesGroupCompromisedResponse` **get** `/radar/leaked_credential_checks/timeseries_groups/compromised` Retrieves the distribution of HTTP authentication requests by compromised credential status over time. ### Parameters - `agg_interval: Optional[Literal["15m", "1h", "1d", "1w"]]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `bot_class: Optional[List[Literal["LIKELY_AUTOMATED", "LIKELY_HUMAN"]]]` Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/). - `"LIKELY_AUTOMATED"` - `"LIKELY_HUMAN"` - `date_end: Optional[SequenceNotStr[Union[str, datetime]]]` End of the date range (inclusive). - `date_range: Optional[SequenceNotStr[str]]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `date_start: Optional[SequenceNotStr[Union[str, datetime]]]` Start of the date range. - `format: Optional[Literal["JSON", "CSV"]]` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name: Optional[SequenceNotStr[str]]` Array of names used to label the series in the response. ### Returns - `class TimeseriesGroupCompromisedResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `clean: List[str]` - `compromised: List[str]` - `timestamps: List[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.radar.leaked_credentials.timeseries_groups.compromised() print(response.meta) ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "CLEAN": [ "10" ], "COMPROMISED": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Domain Types ### Timeseries Group Bot Class Response - `class TimeseriesGroupBotClassResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `bot: List[str]` - `human: List[str]` - `timestamps: List[datetime]` ### Timeseries Group Compromised Response - `class TimeseriesGroupCompromisedResponse: …` - `meta: Meta` Metadata for the results. - `agg_interval: Literal["FIFTEEN_MINUTES", "ONE_HOUR", "ONE_DAY", 2 more]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidence_info: MetaConfidenceInfo` - `annotations: List[MetaConfidenceInfoAnnotation]` - `data_source: Literal["ALL", "AI_BOTS", "AI_GATEWAY", 22 more]` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: str` - `end_date: datetime` - `event_type: Literal["EVENT", "GENERAL", "OUTAGE", 3 more]` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `is_instantaneous: bool` Whether event is a single point in time or a time range. - `linked_url: str` - `start_date: datetime` - `level: int` Provides an indication of how much confidence Cloudflare has in the data. - `date_range: List[MetaDateRange]` - `end_time: datetime` Adjusted end of date range. - `start_time: datetime` Adjusted start of date range. - `last_updated: datetime` Timestamp of the last dataset update. - `normalization: Literal["PERCENTAGE", "MIN0_MAX", "MIN_MAX", 5 more]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: List[MetaUnit]` Measurement units for the results. - `name: str` - `value: str` - `serie_0: Serie0` - `clean: List[str]` - `compromised: List[str]` - `timestamps: List[datetime]`