Developer Reference

API Docs

All endpoints return JSON. No authentication required for public data endpoints.

Base URL

https://captchaflow.com

All responses include Content-Type: application/json. Errors return { error: string } with an appropriate HTTP status code.

GET/api/solvers

List all captcha solvers with metrics.

Example

fetch('/api/solvers').then(r => r.json())
GET/api/solvers/:slug

Get a solver by slug with full details and 7-day trend.

Parameters

slugstringSolver identifier (e.g. 2captcha)

Example

fetch('/api/solvers/capsolver').then(r => r.json())
GET/api/captchas

List all tracked captcha types grouped by provider.

Example

fetch('/api/captchas').then(r => r.json())
GET/api/captchas/:slug

Get a captcha type by slug.

Parameters

slugstringCaptcha identifier (e.g. turnstile)

Example

fetch('/api/captchas/hcaptcha').then(r => r.json())
GET/api/vendors

List all tracked vendors with current captcha deployment.

Example

fetch('/api/vendors').then(r => r.json())
GET/api/vendors/:slug

Get a vendor by slug with captcha history.

Parameters

slugstringVendor identifier (e.g. discord)

Example

fetch('/api/vendors/discord').then(r => r.json())
GET/api/timeline

Get timeline events in reverse chronological order.

Example

fetch('/api/timeline').then(r => r.json())
GET/api/search?q=

Search across solvers, captchas, and vendors.

Parameters

qstringSearch query (min 1 char)

Example

fetch('/api/search?q=turnstile').then(r => r.json())
GET/api/matrix

Get the full solver × captcha compatibility matrix data.

Example

fetch('/api/matrix').then(r => r.json())
GET/api/search

Semantic web search via SerpAPI (requires SERPAPI_API_KEY).

Parameters

qstringSearch query

Example

fetch('/api/search?q=cloudflare+turnstile+bypass').then(r => r.json())
POST/api/ai-chat

Ask the captcha AI assistant a question (requires OPENROUTER_API_KEY).

Parameters

messagestringYour question (max 2000 chars)
modelstringModel ID (default: openai/gpt-4o-mini)

Example

fetch('/api/ai-chat', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ message: 'What is the best captcha solver?' })
}).then(r => r.json())