Guides
Task API
Besides the /v1 API, the service offers task-style endpoints (createTask, getTaskResult, getBalance, reportIncorrect), the request shape many captcha integrations already use. Point an existing integration at https://captchaocr.allvoraz.com and send your API key as clientKey.
Endpoints and fields
| Task API | Behaviour here |
|---|---|
POST /createTask with ImageToTextTask | Returns a taskId at once; the captcha is solved in the background. |
POST /getTaskResult | status: "processing", then "ready", usually within 0.1 s (results kept 48 h). |
POST /getBalance | balance is in credits (1 credit = 1 answer). |
POST /reportIncorrect, /reportCorrect | Incorrect reports return the credit. |
numeric: 1 / 2 | Digits only / letters only (0, 3, 4: anything). |
minLength = maxLength | Exact length, enforced by the decoder. |
math: true | Arithmetic; text is the answer. Add "languagePool": "hi" (or task.hindi: true) for Hindi number words. |
phrase, case, comment, imgInstructions | Accepted and ignored. Case is kept as read. |
Good to know
- Fast. Tasks finish in about 0.1 s, so the first
getTaskResultafter your client's usual short delay is almost always ready. - Prefer the /v1 API for new code: /v1/solve answers in one call, and /v1/submit +
/v1/result?wait=does submit-and-fetch with SDKs in 11 languages. - Low-confidence reads are free. They come back as
ERROR_CAPTCHA_UNSOLVABLE(not charged). Refresh the captcha and submit the new one. - Same pricing as the /v1 API. See pricing.
Example
curl -s https://captchaocr.allvoraz.com/createTask -H 'Content-Type: application/json' -d '{
"clientKey": "'$CAPTCHA_API_KEY'",
"task": {"type": "ImageToTextTask", "body": "'$(base64 < captcha.png | tr -d '\n')'",
"numeric": 1, "minLength": 6, "maxLength": 6}
}'
# {"errorId": 0, "taskId": 184467} <- returns at once; solved in the background
curl -s https://captchaocr.allvoraz.com/getTaskResult -H 'Content-Type: application/json' \
-d '{"clientKey": "'$CAPTCHA_API_KEY'", "taskId": 184467}'
# {"errorId": 0, "status": "processing"} (ask again shortly), then:
# {"errorId": 0, "status": "ready", "solution": {"text": "482915"}, "cost": "0.025", ...}