Skip to content

Conventions ​

All solve APIs share one JSON envelope. Vendor differences live in POST /v1/solve/:type inputs and success data.

Base URL ​

text
https://api.hitcaptcha.com

Paths below are relative to that root. For self-hosted setups, substitute your own {BASE}.

Endpoints ​

MethodPathAuthNotes
GET/healthNoLiveness
GET/v1/solversYesAvailable solvers
POST/v1/solve/:typeYesSolve

type is one of akamai / kasada / datadome / reese84 (lowercase). Unknown types → NOT_FOUND.

See Authentication.

Content-Type ​

Body must be a JSON object, max 2MB:

http
Content-Type: application/json

Arrays, empty bodies, or non-objects → INVALID_INPUT.

Success ​

json
{
  "ok": true,
  "type": "kasada",
  "data": {},
  "cost_ms": 123,
  "charged_points": 2,
  "balance_points": 998
}
FieldTypeNotes
okbooleanAlways true
typestringPath vendor
dataobjectVendor result
cost_msnumberServer time in ms
charged_pointsnumberPoints charged (if billed)
balance_pointsnumberBalance after charge (if billed)

Failure ​

HTTP status varies; body shape is fixed:

json
{
  "ok": false,
  "type": "kasada",
  "error": { "code": "TIMEOUT", "message": "kasada timeout after 90000ms" },
  "cost_ms": 90001
}

Unexpected errors never return internal stacks — they become INTERNAL.