Skip to content

Statistics API

Base URL: https://api-app.eu-captcha.eu

All endpoints require a valid Authorization: Bearer <token> header. See API Authentication.

Get aggregate statistics

Returns aggregated EU CAPTCHA action counts for the authenticated user, across all sitekeys or for a specific sitekey, over a configurable time window.

GET /captcha-stats-user?max_days={n}

Query parameters:

Parameter Type Default Description
max_days integer 30 Number of days of history to return (max 30)
per_day integer Set to 1 to return per-day breakdown instead of aggregate
sitekey string Filter to a specific sitekey
start_date string Start date in YYYY-MM-DD format; if set, the window runs from start_date to start_date + max_days instead of ending today

Response (aggregate):

[
  { "action_type": "ACC", "count": 1520 },
  { "action_type": "BLK", "count": 83 },
  { "action_type": "VFC", "count": 1603 },
  { "action_type": "ASC", "count": 1510 }
]

Response (per_day=1):

[
  { "action_type": "ACC", "count": 52, "date_at": "2026-02-17" },
  { "action_type": "BLK", "count": 3,  "date_at": "2026-02-17" },
  { "action_type": "ACC", "count": 48, "date_at": "2026-02-16" }
]

Action type codes

Code Description
ACC Access accepted — challenge passed
VFC Verification challenge — challenge generated
ASC Automatic challenge solved
VSC Visitor challenge solved
B* Any code starting with B — request blocked

Computing summary metrics

The following metrics can be derived from the action type data:

verified              = sum of count where action_type == "ACC"
blocked               = sum of count where action_type starts with "B"
challenges_generated  = sum of count where action_type == "VFC"
challenges_solved     = sum of count where action_type in ["ASC", "VSC"]
total_verifications   = verified + blocked
block_rate            = round(blocked / total_verifications * 100)

Get challenges per day

Returns the daily count of challenges generated, for graph display.

GET /captcha-challenges-per-user?max_days={n}

Query parameters:

Parameter Type Default Description
max_days integer 14 Number of days to return
sitekey string Filter to a specific sitekey
start_date string Start date in YYYY-MM-DD format; if set, the window runs from start_date to start_date + max_days instead of ending today

Response:

[
  { "date_at": "2026-02-17", "count": 312 },
  { "date_at": "2026-02-16", "count": 289 },
  { "date_at": "2026-02-15", "count": 401 }
]

Results are ordered from newest to oldest.

Notes

  • All timestamps use ISO 8601 date format (YYYY-MM-DD).
  • Statistics reflect the last complete day. The current partial day is not included.
  • Data is retained for a minimum of 30 days.