Base URL: https://api.agentcaptcha.com
The solve endpoints use API key authentication via the X-API-Key header. Account management endpoints (keys, billing) use JWT Bearer tokens.
API Key authentication (for /v1/* endpoints):
curl -H "X-API-Key: ac-your-key-here" ...
JWT Bearer authentication (for /keys, /auth/me):
curl -H "Authorization: Bearer eyJ..." ...
The fastest way to integrate AgentCaptcha — one command and your AI agent gets CAPTCHA solving superpowers.
claude mcp add agentcaptcha -- npx agentcaptcha-mcp
Then add your API key to Claude Code MCP environment settings:
AGENTCAPTCHA_API_KEY=ac-your-key-here
// .cursor/mcp.json
{
"mcpServers": {
"agentcaptcha": {
"command": "npx",
"args": ["agentcaptcha-mcp"],
"env": {
"AGENTCAPTCHA_API_KEY": "ac-your-key-here"
}
}
}
}Request body:
{ "siteKey": "6Le-abc", "pageUrl": "https://...", "captchaType": "recaptcha_v2" }Response:
{ "taskId": "uuid", "status": "pending" }Response:
{ "status": "solved", "token": "03AGdBq...", "elapsed_ms": 6204 }Request body:
{ "siteKey": "6Le-abc", "pageUrl": "https://...", "captchaType": "recaptcha_v2" }Response:
{ "success": true, "token": "03AGdBq...", "elapsed_ms": 6204 }Response:
{ "plan": "pro", "used_this_month": 423, "plan_limit": 5000, "remaining": 4577 }Response:
{ "types": ["recaptcha_v2", "recaptcha_v3", "turnstile", "funcaptcha", "image_captcha"] }Request body:
{ "email": "you@example.com", "password": "secret", "country": "US" }Response:
{ "token": "eyJ...", "user": { "id": "...", "plan_id": "free" } }Request body:
{ "email": "you@example.com", "password": "secret" }Response:
{ "token": "eyJ..." }Request body:
{ "name": "Production" }Response:
{ "key": "ac-abc123...", "prefix": "ac-abc123" }Response:
{ "keys": [{ "id": "...", "key_prefix": "ac-abc1...", "name": "Production" }] }Response:
{ "success": true }import requests
token = requests.post(
"https://api.agentcaptcha.com/v1/solve/sync",
headers={"X-API-Key": "ac-your-key"},
json={"siteKey": "6Le-abc", "pageUrl": "https://example.com", "captchaType": "recaptcha_v2"},
timeout=130,
).json()["token"]
print(token[:30]) # 03AGdBq...const res = await fetch('https://api.agentcaptcha.com/v1/solve/sync', {
method: 'POST',
headers: { 'X-API-Key': 'ac-your-key', 'Content-Type': 'application/json' },
body: JSON.stringify({ siteKey: '0x4AAA...', pageUrl: 'https://example.com', captchaType: 'turnstile' }),
signal: AbortSignal.timeout(130_000),
});
const { token } = await res.json();