Skip to content
Start here

List zone feedback reports

GET/zones/{zone_id}/bot_management/feedback

Returns all feedback reports previously submitted for the specified zone. Feedback reports help improve detection by sharing samples of traffic that were misclassified as bots or humans.

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)
Bot Management Feedback Report WriteBot Management Feedback Report ReadBot Management WriteBot Management Read
Path ParametersExpand Collapse
zone_id: string

Identifier.

maxLength32
ReturnsExpand Collapse
description: string
expression: string

Wirefilter expression describing the traffic being reported.

first_request_seen_at: string
formatdate-time
last_request_seen_at: string
formatdate-time
requests: number
formatint64
requests_by_attribute: RequestsByAttribute { metric, requests }

Top attributes contributing to the feedback sample. Keys include topASNs, topCountries, topHosts, topIPs, topJA3Hashes, topJA4s, topPaths, topUserAgents.

metric: string
requests: number
formatint64
requests_by_score: RequestsByScore

Map of bot scores (1-99) to request counts. Sum must equal requests.

requests_by_score_src: RequestsByScoreSrc

Map of score source to request counts. Sum must equal requests.

Type of feedback report.

One of the following:
"false_positive"
"false_negative"
created_at: optional string
formatdate-time
subtype: optional string

List zone feedback reports

curl https://api.cloudflare.com/client/v4/zones/$ZONE_ID/bot_management/feedback \
    -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
[
  {
    "created_at": "2025-10-01T12:00:00Z",
    "description": "Legitimate checkout traffic was blocked as bots",
    "expression": "(http.host eq 'shop.example.com' and http.request.uri.path starts_with '/checkout') and cf.bot_management.score lt 5",
    "first_request_seen_at": "2025-09-30T08:00:00Z",
    "last_request_seen_at": "2025-09-30T09:00:00Z",
    "requests": 1200,
    "requests_by_attribute": {
      "topIPs": [
        {
          "metric": "203.0.113.10",
          "requests": 180
        },
        {
          "metric": "203.0.113.11",
          "requests": 150
        }
      ],
      "topPaths": [
        {
          "metric": "/checkout",
          "requests": 1000
        }
      ]
    },
    "requests_by_score": {
      "1": 200,
      "2": 300,
      "3": 400,
      "4": 300
    },
    "requests_by_score_src": {
      "heuristics": 200,
      "machine_learning": 1000
    },
    "subtype": "Spamming",
    "type": "false_positive"
  }
]
Returns Examples
[
  {
    "created_at": "2025-10-01T12:00:00Z",
    "description": "Legitimate checkout traffic was blocked as bots",
    "expression": "(http.host eq 'shop.example.com' and http.request.uri.path starts_with '/checkout') and cf.bot_management.score lt 5",
    "first_request_seen_at": "2025-09-30T08:00:00Z",
    "last_request_seen_at": "2025-09-30T09:00:00Z",
    "requests": 1200,
    "requests_by_attribute": {
      "topIPs": [
        {
          "metric": "203.0.113.10",
          "requests": 180
        },
        {
          "metric": "203.0.113.11",
          "requests": 150
        }
      ],
      "topPaths": [
        {
          "metric": "/checkout",
          "requests": 1000
        }
      ]
    },
    "requests_by_score": {
      "1": 200,
      "2": 300,
      "3": 400,
      "4": 300
    },
    "requests_by_score_src": {
      "heuristics": 200,
      "machine_learning": 1000
    },
    "subtype": "Spamming",
    "type": "false_positive"
  }
]