Skip to content
Start here

Get bots HTTP requests distribution by dimension

client.Radar.Bots.Summary(ctx, dimension, query) (*BotSummaryResponse, error)
GET/radar/bots/summary/{dimension}

Retrieves an aggregated summary of bots HTTP requests grouped by the specified dimension.

Security
API Token

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

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

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

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

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

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
User Details WriteUser Details Read
ParametersExpand Collapse

Specifies the attribute by which to group the results.

One of the following:
const BotSummaryParamsDimensionBot BotSummaryParamsDimension = "BOT"
const BotSummaryParamsDimensionBotKind BotSummaryParamsDimension = "BOT_KIND"
const BotSummaryParamsDimensionBotOperator BotSummaryParamsDimension = "BOT_OPERATOR"
const BotSummaryParamsDimensionBotCategory BotSummaryParamsDimension = "BOT_CATEGORY"
query BotSummaryParams
ASN param.Field[[]string]optional

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 param.Field[[]string]optional

Filters results by bot name.

BotCategory param.Field[[]BotSummaryParamsBotCategory]optional

Filters results by bot category.

const BotSummaryParamsBotCategorySearchEngineCrawler BotSummaryParamsBotCategory = "SEARCH_ENGINE_CRAWLER"
const BotSummaryParamsBotCategorySearchEngineOptimization BotSummaryParamsBotCategory = "SEARCH_ENGINE_OPTIMIZATION"
const BotSummaryParamsBotCategoryMonitoringAndAnalytics BotSummaryParamsBotCategory = "MONITORING_AND_ANALYTICS"
const BotSummaryParamsBotCategoryAdvertisingAndMarketing BotSummaryParamsBotCategory = "ADVERTISING_AND_MARKETING"
const BotSummaryParamsBotCategorySocialMediaMarketing BotSummaryParamsBotCategory = "SOCIAL_MEDIA_MARKETING"
const BotSummaryParamsBotCategoryPagePreview BotSummaryParamsBotCategory = "PAGE_PREVIEW"
const BotSummaryParamsBotCategoryAcademicResearch BotSummaryParamsBotCategory = "ACADEMIC_RESEARCH"
const BotSummaryParamsBotCategorySecurity BotSummaryParamsBotCategory = "SECURITY"
const BotSummaryParamsBotCategoryAccessibility BotSummaryParamsBotCategory = "ACCESSIBILITY"
const BotSummaryParamsBotCategoryWebhooks BotSummaryParamsBotCategory = "WEBHOOKS"
const BotSummaryParamsBotCategoryFeedFetcher BotSummaryParamsBotCategory = "FEED_FETCHER"
const BotSummaryParamsBotCategoryAICrawler BotSummaryParamsBotCategory = "AI_CRAWLER"
const BotSummaryParamsBotCategoryAggregator BotSummaryParamsBotCategory = "AGGREGATOR"
const BotSummaryParamsBotCategoryAIAssistant BotSummaryParamsBotCategory = "AI_ASSISTANT"
const BotSummaryParamsBotCategoryAISearch BotSummaryParamsBotCategory = "AI_SEARCH"
const BotSummaryParamsBotCategoryArchiver BotSummaryParamsBotCategory = "ARCHIVER"
BotKind param.Field[[]BotSummaryParamsBotKind]optional

Filters results by bot kind.

const BotSummaryParamsBotKindAgent BotSummaryParamsBotKind = "AGENT"
const BotSummaryParamsBotKindBot BotSummaryParamsBotKind = "BOT"
BotOperator param.Field[[]string]optional

Filters results by bot operator.

BotVerificationStatus param.Field[[]BotSummaryParamsBotVerificationStatus]optional

Filters results by bot verification status (Verified vs. Unverified).

const BotSummaryParamsBotVerificationStatusVerified BotSummaryParamsBotVerificationStatus = "VERIFIED"
Continent param.Field[[]string]optional

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]optional

End of the date range (inclusive).

DateRange param.Field[[]string]optional

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]optional

Start of the date range.

Format param.Field[BotSummaryParamsFormat]optional

Format in which results will be returned.

const BotSummaryParamsFormatJson BotSummaryParamsFormat = "JSON"
const BotSummaryParamsFormatCsv BotSummaryParamsFormat = "CSV"
LimitPerGroup param.Field[int64]optional

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 param.Field[[]string]optional

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]optional

Array of names used to label the series in the response.

ReturnsExpand Collapse
type BotSummaryResponse struct{…}
Meta BotSummaryResponseMeta

Metadata for the results.

ConfidenceInfo BotSummaryResponseMetaConfidenceInfo
Annotations []BotSummaryResponseMetaConfidenceInfoAnnotation
DataSource BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource

Data source for annotations.

One of the following:
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceAll BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceAIBots BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceBGP BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceBots BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceCT BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "CT"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNS BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDos BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceFw BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "FW"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceFwPg BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTP BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceIQI BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceNet BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "NET"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceSpeed BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"
const BotSummaryResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI BotSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"
Description string
EndDate Time
formatdate-time
EventType BotSummaryResponseMetaConfidenceInfoAnnotationsEventType

Event type for annotations.

One of the following:
const BotSummaryResponseMetaConfidenceInfoAnnotationsEventTypeEvent BotSummaryResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"
const BotSummaryResponseMetaConfidenceInfoAnnotationsEventTypeGeneral BotSummaryResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"
const BotSummaryResponseMetaConfidenceInfoAnnotationsEventTypeOutage BotSummaryResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"
const BotSummaryResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection BotSummaryResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"
const BotSummaryResponseMetaConfidenceInfoAnnotationsEventTypePipeline BotSummaryResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"
const BotSummaryResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly BotSummaryResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"
IsInstantaneous bool

Whether event is a single point in time or a time range.

LinkedURL string
formaturi
StartDate Time
formatdate-time
Level int64

Provides an indication of how much confidence Cloudflare has in the data.

DateRange []BotSummaryResponseMetaDateRange
EndTime Time

Adjusted end of date range.

formatdate-time
StartTime Time

Adjusted start of date range.

formatdate-time
LastUpdated Time

Timestamp of the last dataset update.

formatdate-time
Normalization BotSummaryResponseMetaNormalization

Normalization method applied to the results. Refer to Normalization methods.

One of the following:
const BotSummaryResponseMetaNormalizationPercentage BotSummaryResponseMetaNormalization = "PERCENTAGE"
const BotSummaryResponseMetaNormalizationMin0Max BotSummaryResponseMetaNormalization = "MIN0_MAX"
const BotSummaryResponseMetaNormalizationMinMax BotSummaryResponseMetaNormalization = "MIN_MAX"
const BotSummaryResponseMetaNormalizationRawValues BotSummaryResponseMetaNormalization = "RAW_VALUES"
const BotSummaryResponseMetaNormalizationPercentageChange BotSummaryResponseMetaNormalization = "PERCENTAGE_CHANGE"
const BotSummaryResponseMetaNormalizationRollingAverage BotSummaryResponseMetaNormalization = "ROLLING_AVERAGE"
const BotSummaryResponseMetaNormalizationOverlappedPercentage BotSummaryResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"
const BotSummaryResponseMetaNormalizationRatio BotSummaryResponseMetaNormalization = "RATIO"
Units []BotSummaryResponseMetaUnit

Measurement units for the results.

Name string
Value string
Summary0 map[string, string]

Get bots HTTP requests distribution by dimension

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.Bots.Summary(
    context.TODO(),
    radar.BotSummaryParamsDimensionBot,
    radar.BotSummaryParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.Meta)
}
{
  "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
}
Returns Examples
{
  "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
}