# 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.