Documentation Menu

API Endpoints

Updated 8/6/2026

Get Task Result API

POST
https://solver.solverify.net/getTaskResult

Retrieve the status and final solution of a Solverify CAPTCHA task with the Get Task Result API. Send the taskId returned by POST /createTask to POST /getTaskResult, then continue polling until the task is completed or an error is returned.

The endpoint immediately returns the task's current state. It does not wait for processing to finish, so your application controls the polling interval.

Request Body

{
  "clientKey": "YOUR_API_KEY",
  "taskId": "TASK_UUID"
}
FieldTypeRequiredDescription
clientKeystringYesYour private Solverify API key.
taskIdstringYesThe task identifier returned by POST /createTask.

The API key used to retrieve a result must have access to the requested task. Keep API keys in server-side environment variables and never expose them in frontend code.

CAPTCHA Task Statuses

StatusMeaningRecommended action
pendingThe task is queued and waiting for available solver capacity.Wait 2 to 3 seconds, then request the result again.
processingA solver has claimed the task and is working on it.Continue polling with the same taskId.
completedThe task finished successfully and includes a solution.Read the task-specific fields from solution.
failedThe task could not be completed and returns an API error.Stop polling and inspect errorCode and errorDescription.

Pending Response

When a CAPTCHA task is still queued, the API returns pending:

{
  "errorId": 0,
  "status": "pending",
  "cost": 0.002,
  "errorCode": null,
  "errorDescription": null
}

Processing Response

When the task has been assigned to a solver, the API returns processing:

{
  "errorId": 0,
  "status": "processing",
  "cost": 0.002,
  "errorCode": null,
  "errorDescription": null
}

Completed Response

A completed task includes the final CAPTCHA solution. The exact fields depend on the task type:

{
  "errorId": 0,
  "status": "completed",
  "cost": 0.002,
  "solution": {
    "value": "",
    "cookies": {},
    "headers": {},
    "useragent": "Mozilla/5.0 ...",
    "html": "<html>...</html>"
  },
  "errorCode": null,
  "errorDescription": null
}

Response Fields

FieldTypeDescription
errorIdnumber0 indicates a successful status request. 1 indicates an API error.
statusstringCurrent task state: pending, processing, or completed.
costnumberExpected charge while processing and resolved task charge after completion or failure.
solutionobjectFinal task result. Present when the status is completed.
errorCodestring or nullMachine-readable error code when the request or task fails.
errorDescriptionstring or nullHuman-readable information about the error.

The cost value is 0 for solves included in a thread plan and failures that are not billable.

CAPTCHA Solution Fields

The contents of solution vary by CAPTCHA type and solver module. Only use fields supported by the task you created.

FieldDescription
valueCAPTCHA token, OCR text, or another task-specific result.
cookiesCookies returned by browser-based and cookie-based task types.
headersRequest headers captured when required by the solver type.
useragentUser-agent used by the solver session.
htmlHTML source returned by task types that support source capture.

Get Task Result Code Examples

The following examples poll every two seconds and stop when the task completes or the API returns an error. Replace TASK_UUID with the ID returned by POST /createTask.

curl --request POST \
  --url https://solver.solverify.net/getTaskResult \
  --header "Content-Type: application/json" \
  --data '{
    "clientKey": "YOUR_API_KEY",
    "taskId": "TASK_UUID"
  }'

Failed Task Response

When solving fails, stop polling and handle the returned error:

{
  "errorId": 1,
  "errorCode": "ERROR_TASK_FAILED",
  "errorDescription": "Task failed to solve",
  "cost": 0
}

Get Task Result Errors

Error codeDescription
ERROR_INVALID_REQUESTRequired JSON fields are missing or invalid.
ERROR_INVALID_KEYThe supplied Solverify API key is invalid.
ERROR_TASK_NOT_FOUNDThe task does not exist or is not accessible with the supplied API key.
ERROR_TASK_FAILEDThe solver could not complete the task.

Always stop polling when errorId is not 0. For every supported API error, see Solverify API Error Codes.

  1. Create a CAPTCHA task with POST /createTask.
  2. Store the returned taskId.
  3. Wait approximately 2 seconds before the first result request.
  4. Call POST /getTaskResult with the same API key and task ID.
  5. Continue polling while the status is pending or processing.
  6. Stop when the status is completed or errorId indicates failure.

Polling more frequently does not make tasks finish faster and creates unnecessary API traffic. Production integrations should also set an overall timeout so they do not poll indefinitely.

Frequently Asked Questions

How often should I poll the Get Task Result API?

Poll every 2 to 3 seconds for most integrations. Use a client-side timeout and stop polling immediately after completion or failure.

Why does the response not include solution?

The solution object is available after the task reaches completed. Continue polling when the status is pending or processing.

What does ERROR_TASK_NOT_FOUND mean?

The task ID may be incorrect or unavailable to the supplied API key. Verify that you are using the exact taskId and API key from the task creation request.

Are all CAPTCHA solution objects identical?

No. Solution fields depend on the task type. Some tasks return a token or OCR text in value, while browser-based tasks may also return cookies, headers, a user-agent, or HTML.