# Quality # IQI ## Get Internet Quality Index (IQI) summary `client.Radar.Quality.IQI.Summary(ctx, query) (*QualityIQISummaryResponse, error)` **get** `/radar/quality/iqi/summary` Retrieves a summary (percentiles) of bandwidth, latency, or DNS response time from the Radar Internet Quality Index (IQI). ### Parameters - `query QualityIQISummaryParams` - `Metric param.Field[QualityIQISummaryParamsMetric]` Defines which metric to return (bandwidth, latency, or DNS response time). - `const QualityIQISummaryParamsMetricBandwidth QualityIQISummaryParamsMetric = "BANDWIDTH"` - `const QualityIQISummaryParamsMetricDNS QualityIQISummaryParamsMetric = "DNS"` - `const QualityIQISummaryParamsMetricLatency QualityIQISummaryParamsMetric = "LATENCY"` - `ASN param.Field[[]string]` 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 param.Field[[]string]` 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. - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` 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). - `DateStart param.Field[[]Time]` Start of the date range. - `Format param.Field[QualityIQISummaryParamsFormat]` Format in which results will be returned. - `const QualityIQISummaryParamsFormatJson QualityIQISummaryParamsFormat = "JSON"` - `const QualityIQISummaryParamsFormatCsv QualityIQISummaryParamsFormat = "CSV"` - `Location param.Field[[]string]` 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 param.Field[[]string]` Array of names used to label the series in the response. ### Returns - `type QualityIQISummaryResponse struct{…}` - `Meta QualityIQISummaryResponseMeta` Metadata for the results. - `ConfidenceInfo QualityIQISummaryResponseMetaConfidenceInfo` - `Annotations []QualityIQISummaryResponseMetaConfidenceInfoAnnotation` - `DataSource QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceAll QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceAIBots QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceBGP QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceBots QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceCT QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNS QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceDos QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceFw QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceFwPg QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTP QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceIQI QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceNet QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceSpeed QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI QualityIQISummaryResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventTypeEvent QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventTypeGeneral QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventTypeOutage QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventTypePipeline QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly QualityIQISummaryResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []QualityIQISummaryResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization QualityIQISummaryResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const QualityIQISummaryResponseMetaNormalizationPercentage QualityIQISummaryResponseMetaNormalization = "PERCENTAGE"` - `const QualityIQISummaryResponseMetaNormalizationMin0Max QualityIQISummaryResponseMetaNormalization = "MIN0_MAX"` - `const QualityIQISummaryResponseMetaNormalizationMinMax QualityIQISummaryResponseMetaNormalization = "MIN_MAX"` - `const QualityIQISummaryResponseMetaNormalizationRawValues QualityIQISummaryResponseMetaNormalization = "RAW_VALUES"` - `const QualityIQISummaryResponseMetaNormalizationPercentageChange QualityIQISummaryResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const QualityIQISummaryResponseMetaNormalizationRollingAverage QualityIQISummaryResponseMetaNormalization = "ROLLING_AVERAGE"` - `const QualityIQISummaryResponseMetaNormalizationOverlappedPercentage QualityIQISummaryResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const QualityIQISummaryResponseMetaNormalizationRatio QualityIQISummaryResponseMetaNormalization = "RATIO"` - `Units []QualityIQISummaryResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 QualityIQISummaryResponseSummary0` - `P25 string` - `P50 string` - `P75 string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Quality.IQI.Summary(context.TODO(), radar.QualityIQISummaryParams{ Metric: cloudflare.F(radar.QualityIQISummaryParamsMetricBandwidth), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", 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 `client.Radar.Quality.IQI.TimeseriesGroups(ctx, query) (*QualityIQITimeseriesGroupsResponse, error)` **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 - `query QualityIQITimeseriesGroupsParams` - `Metric param.Field[QualityIQITimeseriesGroupsParamsMetric]` Defines which metric to return (bandwidth, latency, or DNS response time). - `const QualityIQITimeseriesGroupsParamsMetricBandwidth QualityIQITimeseriesGroupsParamsMetric = "BANDWIDTH"` - `const QualityIQITimeseriesGroupsParamsMetricDNS QualityIQITimeseriesGroupsParamsMetric = "DNS"` - `const QualityIQITimeseriesGroupsParamsMetricLatency QualityIQITimeseriesGroupsParamsMetric = "LATENCY"` - `AggInterval param.Field[QualityIQITimeseriesGroupsParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const QualityIQITimeseriesGroupsParamsAggInterval15m QualityIQITimeseriesGroupsParamsAggInterval = "15m"` - `const QualityIQITimeseriesGroupsParamsAggInterval1h QualityIQITimeseriesGroupsParamsAggInterval = "1h"` - `const QualityIQITimeseriesGroupsParamsAggInterval1d QualityIQITimeseriesGroupsParamsAggInterval = "1d"` - `const QualityIQITimeseriesGroupsParamsAggInterval1w QualityIQITimeseriesGroupsParamsAggInterval = "1w"` - `ASN param.Field[[]string]` 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 param.Field[[]string]` 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. - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` 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). - `DateStart param.Field[[]Time]` Start of the date range. - `Format param.Field[QualityIQITimeseriesGroupsParamsFormat]` Format in which results will be returned. - `const QualityIQITimeseriesGroupsParamsFormatJson QualityIQITimeseriesGroupsParamsFormat = "JSON"` - `const QualityIQITimeseriesGroupsParamsFormatCsv QualityIQITimeseriesGroupsParamsFormat = "CSV"` - `Interpolation param.Field[bool]` Enables interpolation for all series (using the average). - `Location param.Field[[]string]` 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 param.Field[[]string]` Array of names used to label the series in the response. ### Returns - `type QualityIQITimeseriesGroupsResponse struct{…}` - `Meta QualityIQITimeseriesGroupsResponseMeta` Metadata for the results. - `AggInterval QualityIQITimeseriesGroupsResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const QualityIQITimeseriesGroupsResponseMetaAggIntervalFifteenMinutes QualityIQITimeseriesGroupsResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const QualityIQITimeseriesGroupsResponseMetaAggIntervalOneHour QualityIQITimeseriesGroupsResponseMetaAggInterval = "ONE_HOUR"` - `const QualityIQITimeseriesGroupsResponseMetaAggIntervalOneDay QualityIQITimeseriesGroupsResponseMetaAggInterval = "ONE_DAY"` - `const QualityIQITimeseriesGroupsResponseMetaAggIntervalOneWeek QualityIQITimeseriesGroupsResponseMetaAggInterval = "ONE_WEEK"` - `const QualityIQITimeseriesGroupsResponseMetaAggIntervalOneMonth QualityIQITimeseriesGroupsResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo QualityIQITimeseriesGroupsResponseMetaConfidenceInfo` - `Annotations []QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotation` - `DataSource QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceAll QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceAIBots QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceBGP QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceBots QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceCT QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceDNS QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceDos QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceFw QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceFwPg QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceHTTP QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceIQI QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceNet QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceSpeed QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypeEvent QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypeGeneral QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypeOutage QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypePipeline QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly QualityIQITimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []QualityIQITimeseriesGroupsResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization QualityIQITimeseriesGroupsResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const QualityIQITimeseriesGroupsResponseMetaNormalizationPercentage QualityIQITimeseriesGroupsResponseMetaNormalization = "PERCENTAGE"` - `const QualityIQITimeseriesGroupsResponseMetaNormalizationMin0Max QualityIQITimeseriesGroupsResponseMetaNormalization = "MIN0_MAX"` - `const QualityIQITimeseriesGroupsResponseMetaNormalizationMinMax QualityIQITimeseriesGroupsResponseMetaNormalization = "MIN_MAX"` - `const QualityIQITimeseriesGroupsResponseMetaNormalizationRawValues QualityIQITimeseriesGroupsResponseMetaNormalization = "RAW_VALUES"` - `const QualityIQITimeseriesGroupsResponseMetaNormalizationPercentageChange QualityIQITimeseriesGroupsResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const QualityIQITimeseriesGroupsResponseMetaNormalizationRollingAverage QualityIQITimeseriesGroupsResponseMetaNormalization = "ROLLING_AVERAGE"` - `const QualityIQITimeseriesGroupsResponseMetaNormalizationOverlappedPercentage QualityIQITimeseriesGroupsResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const QualityIQITimeseriesGroupsResponseMetaNormalizationRatio QualityIQITimeseriesGroupsResponseMetaNormalization = "RATIO"` - `Units []QualityIQITimeseriesGroupsResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 QualityIQITimeseriesGroupsResponseSerie0` - `P25 []string` - `P50 []string` - `P75 []string` - `Timestamps []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Quality.IQI.TimeseriesGroups(context.TODO(), radar.QualityIQITimeseriesGroupsParams{ Metric: cloudflare.F(radar.QualityIQITimeseriesGroupsParamsMetricBandwidth), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", 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 } ``` # Speed ## Get speed tests summary `client.Radar.Quality.Speed.Summary(ctx, query) (*QualitySpeedSummaryResponse, error)` **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 - `query QualitySpeedSummaryParams` - `ASN param.Field[[]string]` 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 param.Field[[]string]` 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. - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `Format param.Field[QualitySpeedSummaryParamsFormat]` Format in which results will be returned. - `const QualitySpeedSummaryParamsFormatJson QualitySpeedSummaryParamsFormat = "JSON"` - `const QualitySpeedSummaryParamsFormatCsv QualitySpeedSummaryParamsFormat = "CSV"` - `Location param.Field[[]string]` 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 param.Field[[]string]` Array of names used to label the series in the response. ### Returns - `type QualitySpeedSummaryResponse struct{…}` - `Meta QualitySpeedSummaryResponseMeta` Metadata for the results. - `ConfidenceInfo QualitySpeedSummaryResponseMetaConfidenceInfo` - `Annotations []QualitySpeedSummaryResponseMetaConfidenceInfoAnnotation` - `DataSource QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceAll QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceAIBots QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceBGP QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceBots QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceCT QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNS QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDos QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceFw QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceFwPg QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTP QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceIQI QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceNet QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceSpeed QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventTypeEvent QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventTypeGeneral QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventTypeOutage QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventTypePipeline QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly QualitySpeedSummaryResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []QualitySpeedSummaryResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization QualitySpeedSummaryResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const QualitySpeedSummaryResponseMetaNormalizationPercentage QualitySpeedSummaryResponseMetaNormalization = "PERCENTAGE"` - `const QualitySpeedSummaryResponseMetaNormalizationMin0Max QualitySpeedSummaryResponseMetaNormalization = "MIN0_MAX"` - `const QualitySpeedSummaryResponseMetaNormalizationMinMax QualitySpeedSummaryResponseMetaNormalization = "MIN_MAX"` - `const QualitySpeedSummaryResponseMetaNormalizationRawValues QualitySpeedSummaryResponseMetaNormalization = "RAW_VALUES"` - `const QualitySpeedSummaryResponseMetaNormalizationPercentageChange QualitySpeedSummaryResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const QualitySpeedSummaryResponseMetaNormalizationRollingAverage QualitySpeedSummaryResponseMetaNormalization = "ROLLING_AVERAGE"` - `const QualitySpeedSummaryResponseMetaNormalizationOverlappedPercentage QualitySpeedSummaryResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const QualitySpeedSummaryResponseMetaNormalizationRatio QualitySpeedSummaryResponseMetaNormalization = "RATIO"` - `Units []QualitySpeedSummaryResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 QualitySpeedSummaryResponseSummary0` - `BandwidthDownload string` - `BandwidthUpload string` - `JitterIdle string` - `JitterLoaded string` - `LatencyIdle string` - `LatencyLoaded string` - `PacketLoss string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Quality.Speed.Summary(context.TODO(), radar.QualitySpeedSummaryParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", 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 `client.Radar.Quality.Speed.Histogram(ctx, query) (*QualitySpeedHistogramResponse, error)` **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 - `query QualitySpeedHistogramParams` - `ASN param.Field[[]string]` 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. - `BucketSize param.Field[int64]` Specifies the width for every bucket in the histogram. - `Continent param.Field[[]string]` 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. - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `Format param.Field[QualitySpeedHistogramParamsFormat]` Format in which results will be returned. - `const QualitySpeedHistogramParamsFormatJson QualitySpeedHistogramParamsFormat = "JSON"` - `const QualitySpeedHistogramParamsFormatCsv QualitySpeedHistogramParamsFormat = "CSV"` - `Location param.Field[[]string]` 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. - `MetricGroup param.Field[QualitySpeedHistogramParamsMetricGroup]` Metrics to be returned. - `const QualitySpeedHistogramParamsMetricGroupBandwidth QualitySpeedHistogramParamsMetricGroup = "BANDWIDTH"` - `const QualitySpeedHistogramParamsMetricGroupLatency QualitySpeedHistogramParamsMetricGroup = "LATENCY"` - `const QualitySpeedHistogramParamsMetricGroupJitter QualitySpeedHistogramParamsMetricGroup = "JITTER"` - `Name param.Field[[]string]` Array of names used to label the series in the response. ### Returns - `type QualitySpeedHistogramResponse struct{…}` - `Histogram0 QualitySpeedHistogramResponseHistogram0` - `BandwidthDownload []string` - `BandwidthUpload []string` - `BucketMin []string` - `Meta QualitySpeedHistogramResponseMeta` Metadata for the results. - `BucketSize int64` The width for every bucket in the histogram. - `ConfidenceInfo QualitySpeedHistogramResponseMetaConfidenceInfo` - `Annotations []QualitySpeedHistogramResponseMetaConfidenceInfoAnnotation` - `DataSource QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceAll QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceAIBots QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceBGP QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceBots QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceCT QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceDNS QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceDos QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceFw QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceFwPg QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceHTTP QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceIQI QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceNet QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceSpeed QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventTypeEvent QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventTypeGeneral QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventTypeOutage QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventTypePipeline QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly QualitySpeedHistogramResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []QualitySpeedHistogramResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization QualitySpeedHistogramResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const QualitySpeedHistogramResponseMetaNormalizationPercentage QualitySpeedHistogramResponseMetaNormalization = "PERCENTAGE"` - `const QualitySpeedHistogramResponseMetaNormalizationMin0Max QualitySpeedHistogramResponseMetaNormalization = "MIN0_MAX"` - `const QualitySpeedHistogramResponseMetaNormalizationMinMax QualitySpeedHistogramResponseMetaNormalization = "MIN_MAX"` - `const QualitySpeedHistogramResponseMetaNormalizationRawValues QualitySpeedHistogramResponseMetaNormalization = "RAW_VALUES"` - `const QualitySpeedHistogramResponseMetaNormalizationPercentageChange QualitySpeedHistogramResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const QualitySpeedHistogramResponseMetaNormalizationRollingAverage QualitySpeedHistogramResponseMetaNormalization = "ROLLING_AVERAGE"` - `const QualitySpeedHistogramResponseMetaNormalizationOverlappedPercentage QualitySpeedHistogramResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const QualitySpeedHistogramResponseMetaNormalizationRatio QualitySpeedHistogramResponseMetaNormalization = "RATIO"` - `TotalTests []int64` - `Units []QualitySpeedHistogramResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Quality.Speed.Histogram(context.TODO(), radar.QualitySpeedHistogramParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Histogram0) } ``` #### 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 } ``` # Top ## Get top ASes by speed test results `client.Radar.Quality.Speed.Top.Ases(ctx, query) (*QualitySpeedTopAsesResponse, error)` **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 - `query QualitySpeedTopAsesParams` - `ASN param.Field[[]string]` 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 param.Field[[]string]` 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. - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `Format param.Field[QualitySpeedTopAsesParamsFormat]` Format in which results will be returned. - `const QualitySpeedTopAsesParamsFormatJson QualitySpeedTopAsesParamsFormat = "JSON"` - `const QualitySpeedTopAsesParamsFormatCsv QualitySpeedTopAsesParamsFormat = "CSV"` - `Limit param.Field[int64]` Limits the number of objects returned in the response. - `Location param.Field[[]string]` 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 param.Field[[]string]` Array of names used to label the series in the response. - `OrderBy param.Field[QualitySpeedTopAsesParamsOrderBy]` Specifies the metric to order the results by. - `const QualitySpeedTopAsesParamsOrderByBandwidthDownload QualitySpeedTopAsesParamsOrderBy = "BANDWIDTH_DOWNLOAD"` - `const QualitySpeedTopAsesParamsOrderByBandwidthUpload QualitySpeedTopAsesParamsOrderBy = "BANDWIDTH_UPLOAD"` - `const QualitySpeedTopAsesParamsOrderByLatencyIdle QualitySpeedTopAsesParamsOrderBy = "LATENCY_IDLE"` - `const QualitySpeedTopAsesParamsOrderByLatencyLoaded QualitySpeedTopAsesParamsOrderBy = "LATENCY_LOADED"` - `const QualitySpeedTopAsesParamsOrderByJitterIdle QualitySpeedTopAsesParamsOrderBy = "JITTER_IDLE"` - `const QualitySpeedTopAsesParamsOrderByJitterLoaded QualitySpeedTopAsesParamsOrderBy = "JITTER_LOADED"` - `Reverse param.Field[bool]` Reverses the order of results. ### Returns - `type QualitySpeedTopAsesResponse struct{…}` - `Meta QualitySpeedTopAsesResponseMeta` Metadata for the results. - `ConfidenceInfo QualitySpeedTopAsesResponseMetaConfidenceInfo` - `Annotations []QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotation` - `DataSource QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceAll QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceAIBots QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceBGP QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceBots QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceCT QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceDNS QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceDos QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceFw QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceFwPg QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceHTTP QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceIQI QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceNet QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceSpeed QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventTypeEvent QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventTypeGeneral QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventTypeOutage QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventTypePipeline QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly QualitySpeedTopAsesResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []QualitySpeedTopAsesResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization QualitySpeedTopAsesResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const QualitySpeedTopAsesResponseMetaNormalizationPercentage QualitySpeedTopAsesResponseMetaNormalization = "PERCENTAGE"` - `const QualitySpeedTopAsesResponseMetaNormalizationMin0Max QualitySpeedTopAsesResponseMetaNormalization = "MIN0_MAX"` - `const QualitySpeedTopAsesResponseMetaNormalizationMinMax QualitySpeedTopAsesResponseMetaNormalization = "MIN_MAX"` - `const QualitySpeedTopAsesResponseMetaNormalizationRawValues QualitySpeedTopAsesResponseMetaNormalization = "RAW_VALUES"` - `const QualitySpeedTopAsesResponseMetaNormalizationPercentageChange QualitySpeedTopAsesResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const QualitySpeedTopAsesResponseMetaNormalizationRollingAverage QualitySpeedTopAsesResponseMetaNormalization = "ROLLING_AVERAGE"` - `const QualitySpeedTopAsesResponseMetaNormalizationOverlappedPercentage QualitySpeedTopAsesResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const QualitySpeedTopAsesResponseMetaNormalizationRatio QualitySpeedTopAsesResponseMetaNormalization = "RATIO"` - `Units []QualitySpeedTopAsesResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Top0 []QualitySpeedTopAsesResponseTop0` - `BandwidthDownload string` - `BandwidthUpload string` - `ClientASN float64` - `ClientAsName string` - `JitterIdle string` - `JitterLoaded string` - `LatencyIdle string` - `LatencyLoaded string` - `NumTests float64` - `RankPower float64` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Quality.Speed.Top.Ases(context.TODO(), radar.QualitySpeedTopAsesParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", 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 `client.Radar.Quality.Speed.Top.Locations(ctx, query) (*QualitySpeedTopLocationsResponse, error)` **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 - `query QualitySpeedTopLocationsParams` - `ASN param.Field[[]string]` 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 param.Field[[]string]` 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. - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `Format param.Field[QualitySpeedTopLocationsParamsFormat]` Format in which results will be returned. - `const QualitySpeedTopLocationsParamsFormatJson QualitySpeedTopLocationsParamsFormat = "JSON"` - `const QualitySpeedTopLocationsParamsFormatCsv QualitySpeedTopLocationsParamsFormat = "CSV"` - `Limit param.Field[int64]` Limits the number of objects returned in the response. - `Location param.Field[[]string]` 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 param.Field[[]string]` Array of names used to label the series in the response. - `OrderBy param.Field[QualitySpeedTopLocationsParamsOrderBy]` Specifies the metric to order the results by. - `const QualitySpeedTopLocationsParamsOrderByBandwidthDownload QualitySpeedTopLocationsParamsOrderBy = "BANDWIDTH_DOWNLOAD"` - `const QualitySpeedTopLocationsParamsOrderByBandwidthUpload QualitySpeedTopLocationsParamsOrderBy = "BANDWIDTH_UPLOAD"` - `const QualitySpeedTopLocationsParamsOrderByLatencyIdle QualitySpeedTopLocationsParamsOrderBy = "LATENCY_IDLE"` - `const QualitySpeedTopLocationsParamsOrderByLatencyLoaded QualitySpeedTopLocationsParamsOrderBy = "LATENCY_LOADED"` - `const QualitySpeedTopLocationsParamsOrderByJitterIdle QualitySpeedTopLocationsParamsOrderBy = "JITTER_IDLE"` - `const QualitySpeedTopLocationsParamsOrderByJitterLoaded QualitySpeedTopLocationsParamsOrderBy = "JITTER_LOADED"` - `Reverse param.Field[bool]` Reverses the order of results. ### Returns - `type QualitySpeedTopLocationsResponse struct{…}` - `Meta QualitySpeedTopLocationsResponseMeta` Metadata for the results. - `ConfidenceInfo QualitySpeedTopLocationsResponseMetaConfidenceInfo` - `Annotations []QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotation` - `DataSource QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceAll QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceAIBots QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceBGP QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceBots QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceCT QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceDNS QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceDos QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceFw QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceFwPg QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceHTTP QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceIQI QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceNet QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceSpeed QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventTypeEvent QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventTypeGeneral QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventTypeOutage QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventTypePipeline QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly QualitySpeedTopLocationsResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []QualitySpeedTopLocationsResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization QualitySpeedTopLocationsResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const QualitySpeedTopLocationsResponseMetaNormalizationPercentage QualitySpeedTopLocationsResponseMetaNormalization = "PERCENTAGE"` - `const QualitySpeedTopLocationsResponseMetaNormalizationMin0Max QualitySpeedTopLocationsResponseMetaNormalization = "MIN0_MAX"` - `const QualitySpeedTopLocationsResponseMetaNormalizationMinMax QualitySpeedTopLocationsResponseMetaNormalization = "MIN_MAX"` - `const QualitySpeedTopLocationsResponseMetaNormalizationRawValues QualitySpeedTopLocationsResponseMetaNormalization = "RAW_VALUES"` - `const QualitySpeedTopLocationsResponseMetaNormalizationPercentageChange QualitySpeedTopLocationsResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const QualitySpeedTopLocationsResponseMetaNormalizationRollingAverage QualitySpeedTopLocationsResponseMetaNormalization = "ROLLING_AVERAGE"` - `const QualitySpeedTopLocationsResponseMetaNormalizationOverlappedPercentage QualitySpeedTopLocationsResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const QualitySpeedTopLocationsResponseMetaNormalizationRatio QualitySpeedTopLocationsResponseMetaNormalization = "RATIO"` - `Units []QualitySpeedTopLocationsResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Top0 []QualitySpeedTopLocationsResponseTop0` - `BandwidthDownload string` - `BandwidthUpload string` - `ClientCountryAlpha2 string` - `ClientCountryName string` - `JitterIdle string` - `JitterLoaded string` - `LatencyIdle string` - `LatencyLoaded string` - `NumTests float64` - `RankPower float64` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Quality.Speed.Top.Locations(context.TODO(), radar.QualitySpeedTopLocationsParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", 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 } ```