Skip to main content

GET /getTaskResult/{taskId}

Retrieves the current status and result of a previously created task.

Path Parameters

ParameterTypeDescription
taskIdstring (UUID)The task ID returned by createTask

Response

Processing (202)

The task is still being solved. Continue polling.
{
  "errorId": 0,
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "processing"
}

Solved Successfully (200)

The CAPTCHA has been solved. The solution.token contains the Arkose token.
{
  "errorId": 0,
  "solution": {
    "token": "282d9a2536f.d"
  },
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "ready"
}

Completed with Error (200)

The task completed but failed to solve.
{
  "errorId": 1,
  "errorCode": "ERROR_CAPTCHA_UNSOLVABLE",
  "errorDescription": "Failed to solve the CAPTCHA challenge.",
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "ready"
}

Task Not Found (404)

The task ID doesn’t exist or has expired.
{
  "errorId": 1,
  "errorCode": "ERROR_TASK_NOT_FOUND",
  "errorDescription": "Task not found or has expired.",
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

Task Failed (403)

The task encountered a fatal error.
{
  "errorId": 1,
  "errorCode": "ERROR_TASK_EXCEPTION",
  "errorDescription": "An internal error occurred.",
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "failure"
}

Response Fields

FieldTypeDescription
errorIdinteger0 = success, 1 = error
errorCodestringError code (only when errorId: 1)
errorDescriptionstringHuman-readable error message
taskIdstringThe task UUID
statusstringprocessing, ready, or failure
solutionobjectContains the solved token (only on success)
solution.tokenstringThe Arkose/FunCaptcha token

Polling Strategy

Poll every 0.5 seconds. Results expire 120 seconds after completion.
import time
import requests

def get_result(task_id, interval=0.5, max_attempts=600):
    for _ in range(max_attempts):
        resp = requests.get(f"https://api.funbypass.com/getTaskResult/{task_id}")
        data = resp.json()

        if data["status"] == "ready":
            if data["errorId"] == 0:
                return data["solution"]["token"]
            raise Exception(f"{data['errorCode']}: {data['errorDescription']}")

        if data["status"] == "failure":
            raise Exception(f"{data['errorCode']}: {data['errorDescription']}")

        time.sleep(interval)

    raise TimeoutError("Polling timeout")

Common Errors

Error CodeHTTPDescription
ERROR_TASK_NOT_FOUND404Task expired or doesn’t exist
ERROR_TASK_EXCEPTION403Internal task failure
ERROR_CAPTCHA_UNSOLVABLE403Could not solve the challenge
ERROR_PROXY_CONNECTION503Proxy connection failed
ERROR_SOLVE_TIMEOUT504Solve exceeded 120 seconds
ERROR_TASK_TIMEOUT504Task exceeded 300 seconds