Prefer the product-specific (native) CAPTCHA integration over generic GRID. Identify the actual product/version and read its schema/guide before choosing. Use HTTP_SUBMIT when the target supports it, otherwise BROWSER_RESULT when the browser can apply the native result. Image grids on screen do not by themselves mean the product is GRID. Collect real inputs; missing inputs are a blocker, not permission to guess.
Apply a native result through the matching target integration: fill the expected token response field/callback, or use the returned challenge identifier and proof/answer fields together where that product requires them. Preserve the target session and bindings. Do not mix old and new challenge fields, replace only a picture, or assume the solver issues an unrelated transferable challenge/answer pair.
GRID is a fallback only when no usable matching native product/integration exists, or diagnosis confirms that the native route cannot be used for this challenge. First inspect parameters, session bindings and expiry. HTTP 403, timeout or invalid input alone is not a fallback decision. GRID still requires a real current grid image, its original instructions and browser interaction capability; if those are unavailable, stop and report the blocker.
GRID has variable end-to-end latency from image capture, solver queue/recognition, polling and browser clicks; dynamic tiles and further rounds add work. It may exceed a short-lived target challenge deadline, so it is not the default for time-sensitive flows. No fixed solve time or target acceptance is guaranteed. Capture just before solving, check freshness again before applying, and discard answers after challenge expiry or image changes. Do not reuse expired answers or automatically create another paid task.
Use the challenge and integration parameters issued by the target. A solver does not issue a freely transferable challenge/answer pair. Replacing a widget or image does not replace the server challenge.
For MCP creation, retry with the same requestId and identical parameters. A changed challenge is a new task with a new requestId and another charge. Follow nextPollAfterSeconds; do not create tasks to poll. The REST creation body does not have a requestId field.
Examples are placeholders, not runnable challenges. Documented result fields are not proof of target acceptance or a live availability test. Do not send unsupported fields.
SUCCEEDED means a solver result is available. Separately confirm that the target accepts the challenge and that the requested business operation completes. The solver cannot observe those two outcomes.
For hCaptcha use enabled native HCAPTCHA, then get its schema. If absent from the current catalogue, report unavailable. Do not substitute RECAPTCHA_V2, IMPERVA, CUSTOM or GRID based on a checkbox or image grid. Check the native contract for the required target context before paying.
HTTP_SUBMIT
HTTP submission
The target operation and challenge submission can be completed over HTTP with the same required session context. A solver HTTP API alone does not establish this.
Obtain the target challenge and parameters; create and poll the matching solver task; submit the result with the target request; inspect target validation and business outcome.
BROWSER_RESULT
Apply a result in the browser
Your browser tool can read the required current integration parameters and apply this product result through the target integration. Browser capability is separate from solver capability.
Read current native product parameters; solve; fill the expected token field/callback, or apply matching challenge identifier and proof/answer fields together as required; submit normally; inspect target validation and business outcome. Replacing an image alone is not integration.
BROWSER_INTERACTION
Browser image interaction
The current challenge matches the selected image product. Your browser tool can capture the correct image and execute the required clicks, rotation or drag actions.
Capture the current challenge and original instructions; solve; map the answer to the current image; interact; inspect for replacement images or another round; verify the target outcome.
Solver success → target acceptance → business completion
Failure handling
Failure code
Next action
INVALID_INPUT
READ_PRODUCT_SCHEMA
Collect missing/correct inputs; do not retry unchanged invalid input or switch to GRID.
TRANSPORT_OR_WAF
INSPECT_REQUEST_CHAIN
Inspect the HTTP/network/WAF response. A 403 is not a solver result; if delivery is uncertain, retry identical creation with the same requestId.
TASK_EXPIRED
RECAPTURE_CHALLENGE
Check the current challenge and expiry. Only create a new paid task if still needed.
PROVIDER_INPUT_INVALID
READ_PRODUCT_SCHEMA
The provider rejected input. Check the product, current parameters and instructions.
PROVIDER_UNSOLVABLE
INSPECT_CHALLENGE
Inspect image quality/instructions and whether the challenge is current before deciding on another paid attempt.
PROVIDER_UNAVAILABLE
RETRY_LATER
Service availability issue; do not change the CAPTCHA product solely for this reason.
TASK_FAILED
INSPECT_CHALLENGE
No specific public cause is known. Report the task ID and inspect context; do not claim target rejection or infer an unsupported product.
TARGET_REJECTED
CHECK_BINDING_AND_EXPIRY
Observed by the caller, not inferred from solver state. Check target response, challenge binding and expiry.
BROWSER_APPLICATION_UNSUPPORTED
CHANGE_EXECUTION_ENVIRONMENT
The browser cannot apply the result. Report that capability limit instead of calling the solver product unavailable.
01 / AUTHENTICATION
API Key
For task creation and queries, send the API key in the apiKey HTTP header. JSON request bodies contain business parameters only.
Request headers
Type
Required
Description
apiKey
string
Yes
Required for task creation and queries; the public product catalogue needs no authentication. Do not place it in JSON bodies or URLs.
Content-Type
string
Yes
application/json
Accept-Language
string
No
zh-CN, zh-TW or en-US; q weights are supported. When absent, use the header API key owner's language preference.
Success and error messages use Accept-Language first. When absent or blank, use the header API key owner's configured language. Unknown users or unsupported languages default to en-US. X-Language, URL lang and X-I18n-Cache do not override OpenAPI responses. States, product codes and solution values are unchanged.
PRODUCT SCHEMA / DISCOVERY
Product schema
GET/api/product/schema.cgi?productCode=GRID
Free public endpoint sharing the MCP get_product_schema definition. Discover enabled products, then retrieve their input schema, example, result contract and workflows. This query never creates or charges a task.
Request example
HTTP
GET /api/product/schema.cgi?productCode=GRID
Accept-Language: en-US
Response example
JSON
{
"code" : 0,
"msg" : "Success",
"data" : {
"productCode" : "GRID",
"schema" : {
"type" : "object",
"description" : "GRID input parameters. Read x-integration before creating a paid task. Fallback only when the matching native route is confirmed unavailable; latency and multiple rounds may exceed the target challenge deadline.",
"required" : [ "body" ],
"properties" : {
"body" : {
"type" : "string",
"description" : "Base64-encoded image or audio content.",
"minLength" : 1
},
"comment" : {
"type" : "string",
"description" : "Question or instructions for solving the challenge.",
"minLength" : 1,
"examples" : [ "Select all images containing stairs." ]
},
"rows" : {
"type" : "integer",
"description" : "Actual number of rows in the submitted current grid.",
"minimum" : 1,
"examples" : [ 3 ]
},
"columns" : {
"type" : "integer",
"description" : "Actual number of columns in the submitted current grid.",
"minimum" : 1,
"examples" : [ 3 ]
},
"imgInstructions" : {
"type" : "string",
"description" : "Optional Base64 instruction image, at most 100 kB. Supply comment or imgInstructions; imgType requires the original English comment and original image files.",
"minLength" : 1,
"examples" : [ "BASE64_INSTRUCTION_IMAGE" ]
},
"imgType" : {
"type" : "string",
"description" : "Optional upstream Computer Vision mode: recaptcha or funcaptcha. Do not label a generic/custom image as one of these types; original English comment and original image files are required.",
"enum" : [ "recaptcha", "funcaptcha" ],
"minLength" : 1,
"examples" : [ "recaptcha" ]
},
"previousId" : {
"type" : "string",
"description" : "Optional upstream task ID for the same continuing challenge, only if known. This is not a Nex Captcha platform UUID; omit when no upstream ID is available. Never use a different or expired challenge.",
"minLength" : 1,
"pattern" : "^[0-9]+$",
"examples" : [ "123456789" ]
},
"minClicks" : {
"type" : "integer",
"description" : "Optional minClicks bound; cannot exceed rows*columns when dimensions are supplied. minClicks cannot exceed maxClicks.",
"minimum" : 0,
"examples" : [ 1 ]
},
"maxClicks" : {
"type" : "integer",
"description" : "Optional maxClicks bound; cannot exceed rows*columns when dimensions are supplied. minClicks cannot exceed maxClicks.",
"minimum" : 0,
"examples" : [ 9 ]
},
"canNoAnswer" : {
"type" : "integer",
"description" : "0 or 1. Set 1 only when the actual task permits no matching images; do not use it to hide recognition failures.",
"enum" : [ 0, 1 ],
"examples" : [ 0 ]
}
},
"additionalProperties" : false,
"anyOf" : [ {
"required" : [ "comment" ]
}, {
"required" : [ "imgInstructions" ]
} ],
"allOf" : [ {
"if" : {
"required" : [ "imgType" ]
},
"then" : {
"required" : [ "comment" ]
}
} ]
},
"example" : {
"body" : "BASE64_CONTENT",
"comment" : "Select all images containing stairs."
},
"integration" : {
"workflows" : [ "BROWSER_INTERACTION" ],
"readiness" : "CONDITIONAL",
"resultKind" : "GRID_CELLS",
"resultGuide" : "Fallback only after confirming the matching native route unavailable. solution.click contains 1-based row-major tile numbers. Use current unchanged image/instructions and verify each subsequent round. Optional dimensions, instruction image and recognition settings do not make the result a native hCaptcha/reCAPTCHA token. previousId, when available, is an upstream ID, never a platform UUID. No fixed latency or target acceptance is guaranteed.",
"requirements" : [ "GRID is a fallback only when no usable matching native product/integration exists, or diagnosis confirms that the native route cannot be used for this challenge. First inspect parameters, session bindings and expiry. HTTP 403, timeout or invalid input alone is not a fallback decision. GRID still requires a real current grid image, its original instructions and browser interaction capability; if those are unavailable, stop and report the blocker.", "GRID has variable end-to-end latency from image capture, solver queue/recognition, polling and browser clicks; dynamic tiles and further rounds add work. It may exceed a short-lived target challenge deadline, so it is not the default for time-sensitive flows. No fixed solve time or target acceptance is guaranteed. Capture just before solving, check freshness again before applying, and discard answers after challenge expiry or image changes. Do not reuse expired answers or automatically create another paid task.", "Collect fresh values from the same target/challenge. Respect product-specific hostname, action, challenge/session, IP, User-Agent and expiry requirements; these are not universally interchangeable. Apply returned cookies only to their matching domains.", "Examples are placeholders, not runnable challenges. Documented result fields are not proof of target acceptance or a live availability test. Do not send unsupported fields." ],
"inputSources" : {
"body" : "Obtain the current challenge media from the target in the field format. For images, preserve original dimensions/order and crop to the challenge, not unrelated page content. For AUDIO, use the actual audio content.",
"comment" : "Use the actual question/instructions from the current challenge. Do not append agent commands such as Return coordinates. This field is semantically necessary for instruction-dependent tasks.",
"rows" : "Actual number of rows in the submitted current grid.",
"columns" : "Actual number of columns in the submitted current grid.",
"imgInstructions" : "Optional Base64 instruction image, at most 100 kB. Supply comment or imgInstructions; imgType requires the original English comment and original image files.",
"imgType" : "Optional upstream Computer Vision mode: recaptcha or funcaptcha. Do not label a generic/custom image as one of these types; original English comment and original image files are required.",
"previousId" : "Optional upstream task ID for the same continuing challenge, only if known. This is not a Nex Captcha platform UUID; omit when no upstream ID is available. Never use a different or expired challenge.",
"minClicks" : "Optional minClicks bound; cannot exceed rows*columns when dimensions are supplied. minClicks cannot exceed maxClicks.",
"maxClicks" : "Optional maxClicks bound; cannot exceed rows*columns when dimensions are supplied. minClicks cannot exceed maxClicks.",
"canNoAnswer" : "0 or 1. Set 1 only when the actual task permits no matching images; do not use it to hide recognition failures."
},
"resultContract" : "DOCUMENTED_FIELDS",
"targetAcceptanceVerified" : false,
"indexBase" : 1,
"order" : "ROW_MAJOR",
"resultSchema" : {
"type" : "object",
"properties" : {
"click" : {
"type" : "array",
"items" : {
"type" : "integer"
}
}
},
"additionalProperties" : true
}
},
"workflowGuide" : {
"title" : "Choose an integration workflow",
"rules" : [ "Prefer the product-specific (native) CAPTCHA integration over generic GRID. Identify the actual product/version and read its schema/guide before choosing. Use HTTP_SUBMIT when the target supports it, otherwise BROWSER_RESULT when the browser can apply the native result. Image grids on screen do not by themselves mean the product is GRID. Collect real inputs; missing inputs are a blocker, not permission to guess.", "Apply a native result through the matching target integration: fill the expected token response field/callback, or use the returned challenge identifier and proof/answer fields together where that product requires them. Preserve the target session and bindings. Do not mix old and new challenge fields, replace only a picture, or assume the solver issues an unrelated transferable challenge/answer pair.", "GRID is a fallback only when no usable matching native product/integration exists, or diagnosis confirms that the native route cannot be used for this challenge. First inspect parameters, session bindings and expiry. HTTP 403, timeout or invalid input alone is not a fallback decision. GRID still requires a real current grid image, its original instructions and browser interaction capability; if those are unavailable, stop and report the blocker.", "GRID has variable end-to-end latency from image capture, solver queue/recognition, polling and browser clicks; dynamic tiles and further rounds add work. It may exceed a short-lived target challenge deadline, so it is not the default for time-sensitive flows. No fixed solve time or target acceptance is guaranteed. Capture just before solving, check freshness again before applying, and discard answers after challenge expiry or image changes. Do not reuse expired answers or automatically create another paid task.", "Use the challenge and integration parameters issued by the target. A solver does not issue a freely transferable challenge/answer pair. Replacing a widget or image does not replace the server challenge.", "For MCP creation, retry with the same requestId and identical parameters. A changed challenge is a new task with a new requestId and another charge. Follow nextPollAfterSeconds; do not create tasks to poll. The REST creation body does not have a requestId field.", "Examples are placeholders, not runnable challenges. Documented result fields are not proof of target acceptance or a live availability test. Do not send unsupported fields.", "SUCCEEDED means a solver result is available. Separately confirm that the target accepts the challenge and that the requested business operation completes. The solver cannot observe those two outcomes.", "For hCaptcha use enabled native HCAPTCHA, then get its schema. If absent from the current catalogue, report unavailable. Do not substitute RECAPTCHA_V2, IMPERVA, CUSTOM or GRID based on a checkbox or image grid. Check the native contract for the required target context before paying." ],
"workflows" : [ {
"id" : "HTTP_SUBMIT",
"title" : "HTTP submission",
"precondition" : "The target operation and challenge submission can be completed over HTTP with the same required session context. A solver HTTP API alone does not establish this.",
"steps" : "Obtain the target challenge and parameters; create and poll the matching solver task; submit the result with the target request; inspect target validation and business outcome."
}, {
"id" : "BROWSER_RESULT",
"title" : "Apply a result in the browser",
"precondition" : "Your browser tool can read the required current integration parameters and apply this product result through the target integration. Browser capability is separate from solver capability.",
"steps" : "Read current native product parameters; solve; fill the expected token field/callback, or apply matching challenge identifier and proof/answer fields together as required; submit normally; inspect target validation and business outcome. Replacing an image alone is not integration."
}, {
"id" : "BROWSER_INTERACTION",
"title" : "Browser image interaction",
"precondition" : "The current challenge matches the selected image product. Your browser tool can capture the correct image and execute the required clicks, rotation or drag actions.",
"steps" : "Capture the current challenge and original instructions; solve; map the answer to the current image; interact; inspect for replacement images or another round; verify the target outcome."
} ],
"completionStages" : [ "SOLVER_SUCCEEDED", "CHALLENGE_ACCEPTED", "BUSINESS_COMPLETED" ],
"stageNote" : "SUCCEEDED means a solver result is available. Separately confirm that the target accepts the challenge and that the requested business operation completes. The solver cannot observe those two outcomes.",
"failures" : [ {
"code" : "INVALID_INPUT",
"nextAction" : "READ_PRODUCT_SCHEMA",
"description" : "Collect missing/correct inputs; do not retry unchanged invalid input or switch to GRID."
}, {
"code" : "TRANSPORT_OR_WAF",
"nextAction" : "INSPECT_REQUEST_CHAIN",
"description" : "Inspect the HTTP/network/WAF response. A 403 is not a solver result; if delivery is uncertain, retry identical creation with the same requestId."
}, {
"code" : "TASK_EXPIRED",
"nextAction" : "RECAPTURE_CHALLENGE",
"description" : "Check the current challenge and expiry. Only create a new paid task if still needed."
}, {
"code" : "PROVIDER_INPUT_INVALID",
"nextAction" : "READ_PRODUCT_SCHEMA",
"description" : "The provider rejected input. Check the product, current parameters and instructions."
}, {
"code" : "PROVIDER_UNSOLVABLE",
"nextAction" : "INSPECT_CHALLENGE",
"description" : "Inspect image quality/instructions and whether the challenge is current before deciding on another paid attempt."
}, {
"code" : "PROVIDER_UNAVAILABLE",
"nextAction" : "RETRY_LATER",
"description" : "Service availability issue; do not change the CAPTCHA product solely for this reason."
}, {
"code" : "TASK_FAILED",
"nextAction" : "INSPECT_CHALLENGE",
"description" : "No specific public cause is known. Report the task ID and inspect context; do not claim target rejection or infer an unsupported product."
}, {
"code" : "TARGET_REJECTED",
"nextAction" : "CHECK_BINDING_AND_EXPIRY",
"description" : "Observed by the caller, not inferred from solver state. Check target response, challenge binding and expiry."
}, {
"code" : "BROWSER_APPLICATION_UNSUPPORTED",
"nextAction" : "CHANGE_EXECUTION_ENVIRONMENT",
"description" : "The browser cannot apply the result. Report that capability limit instead of calling the solver product unavailable."
} ],
"labels" : {
"result" : "Result and application",
"requirements" : "Requirements",
"sources" : "Input sources",
"workflow" : "Conditional workflows",
"unknown" : "Contract not yet documented",
"failure" : "Failure handling",
"stages" : "Solver success → target acceptance → business completion",
"field" : "Field",
"failureCode" : "Failure code",
"failureObject" : "Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.",
"action" : "Next action"
}
}
}
}
Required exact, case-sensitive product code from the catalogue. No request body. API keys belong only in headers and are optional here for account language preferences.
Response parameters
Field
Type
Description
data.productCode
string
Product code matching the adapter parameters.
data.schema
object
JSON Schema for adapter only, including required fields, conditional branches, types and value bounds.
data.example
object
Minimal placeholder parameters; replace with actual values from the current challenge.
data.integration
object
Product input sources, conditional workflows, result schema, application guide and limitations.
data.workflowGuide
object
Shared integration workflows, completion stages and failure handling.
HTTP business responses contain code, msg and data; code 0 means success. WebSocket uses a separate message structure.
Messages and integration text use Accept-Language, then the header key owner language, then en-US. Parameter names, enums, original schema descriptions and example values remain canonical. Honor full JSON Schema constraints such as required and oneOf, not just required fields.
Check business code: 0 success, -1101 missing code, -1100 invalid code, -1008 missing/disabled product. data is null on errors. DOCUMENTATION_REQUIRED means obtain further documentation before automatically creating paid tasks.
Choose a product with productCode and provide its product-specific fields in adapter.
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "RECAPTCHA_V2", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"websiteKey": "YOUR_WEBSITEKEY", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"pageAction": "YOUR_PAGEACTION", // Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
"apiDomain": "YOUR_APIDOMAIN", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"isEnterprise": false, // For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
"minScore": 0.3, // Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
"isInvisible": false, // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"cookies": "challenge_cookie=CURRENT_VALUE", // Optional current challenge cookie-header string for v2/v2 Enterprise, formatted key=value; key2=value2. Collect from the relevant target context; omit when not needed. This field is not exposed for v3.
"proxyType": "http", // Optional v2/v2 Enterprise proxy protocol: http, socks4 or socks5. Any proxy field requires proxyType, proxyAddress and proxyPort together; omit all to retain proxyless mode. v3 has no documented proxy task here.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP, without scheme, port or credentials. When target IP binding is required, the solver and target browser must use the same actual egress; setting a browser proxy alone is insufficient.
"proxyPort": 8080, // Proxy TCP port, integer 1 to 65535; required only when any proxy parameter is supplied.
"proxyLogin": "YOUR_PROXYLOGIN", // Optional proxy authentication username from the caller configured proxy; never invent credentials.
"proxyPassword": "YOUR_PROXYPASSWORD", // Optional proxy authentication password from the same configured proxy.
"recaptchaDataSValue": "CURRENT_DATA_S_VALUE" // Optional fresh data-s value for ordinary reCAPTCHA v2 from the same current widget. Preserve it exactly; pageAction is not a substitute. Enterprise v2 uses enterprisePayload.s instead.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/create.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"uuid": null, // Business UUID in the creation response; null if unset.
"productCode": "RECAPTCHA_V2", // Product code matching the adapter parameters.
"state": "CREATED" // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
}
}
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.websiteKey
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.pageAction
string
No
Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
adapter.apiDomain
string
No
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.isEnterprise
boolean
No
For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
adapter.minScore
number
No
Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
adapter.userAgent
string
No
Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
adapter.isInvisible
boolean
No
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.cookies
string
No
Optional current challenge cookie-header string for v2/v2 Enterprise, formatted key=value; key2=value2. Collect from the relevant target context; omit when not needed. This field is not exposed for v3.
adapter.proxyType
string
No
Optional v2/v2 Enterprise proxy protocol: http, socks4 or socks5. Any proxy field requires proxyType, proxyAddress and proxyPort together; omit all to retain proxyless mode. v3 has no documented proxy task here.
adapter.proxyAddress
string
No
Reachable proxy hostname or IP, without scheme, port or credentials. When target IP binding is required, the solver and target browser must use the same actual egress; setting a browser proxy alone is insufficient.
adapter.proxyPort
integer
No
Proxy TCP port, integer 1 to 65535; required only when any proxy parameter is supplied.
adapter.proxyLogin
string
No
Optional proxy authentication username from the caller configured proxy; never invent credentials.
adapter.proxyPassword
string
No
Optional proxy authentication password from the same configured proxy.
adapter.recaptchaDataSValue
string
No
Optional fresh data-s value for ordinary reCAPTCHA v2 from the same current widget. Preserve it exactly; pageAction is not a substitute. Enterprise v2 uses enterprisePayload.s instead.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.uuid
string | null
Business UUID in the creation response; null if unset.
Replace YOUR_API_HOST with your deployed service address.
03 / QUERY RESULT
Query result
POST/api/validator/query.cgi
Query a task with taskId, including after a WebSocket disconnect or a missed update.
Request example
POST /api/validator/query.cgi · JSONC
{
"taskId": "11111111-1111-4111-8111-111111111111" // Task ID returned by task creation.
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "RECAPTCHA_V2", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // Verification token to submit to the target website.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Request parameters
Field
Type
Required
Description
taskId
string
Yes
Task ID returned by task creation.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.gRecaptchaResponse
string
Verification token to submit to the target website.
data.solution.token
string
Verification token to submit to the target website.
Read the provider answer from data.solution when successful.
WebSocket result delivery
WSwss://app.nexcaptcha.net/socket/task.cgi
Prefer WebSocket whenever your client or MCP host supports it: connect first, wait for socket.ready, then create tasks. Consume task.updated immediately; use REST query.cgi or MCP get_task only when WebSocket is unavailable, disconnected, or an update is missing.
Connect to /socket/task.cgi on the same service port. Send heartbeats to receive task updates and final results.
WebSocket API keys belong in handshake HTTP headers, never URL parameters. Standalone clients use the apiKey header; browsers use the login cookie or REST queries with the apiKey header because native WebSocket cannot set custom headers. Updates belong to the authenticated user.
Use WSS on HTTPS. Reconnect with backoff after disconnect; the latest 20 terminal tasks are replayed, not a durable event history. Recover missing taskIds through query.cgi or get_task. Missing, invalid, revoked or expired credentials close with 4003; idle or unreliable connections close with 4500.
All committed state changes are pushed to this authenticated account, including tasks created through API and MCP. SUCCEEDED carries result; failures carry failure.code and nextAction. Send a heartbeat every 20 seconds and expect heartbeat.ack. After 35 seconds without heartbeat, a check running every 10 seconds closes the connection. Reconnect with backoff; never recreate a task merely because its socket disconnected. Process taskId idempotently and do not replace a terminal result with an older or replayed frame.
The container maps each user ID to one current connection per instance. A new connection replaces the previous one with close code 4009. Clients sharing an account should share one subscription through their host. A replaced client should stop reconnecting automatically. Instance capacity is at most 256 connections; 1013 means retry with backoff. Slow clients exceeding 64 queued messages or 256 KiB of queued UTF-8 data are disconnected with 4500 and should recover missing taskIds by query. A single frame is limited to 256 KiB.
Insufficient balance. Add funds before creating a task.
-1400 / -1001
System or task creation error.
05 / PRODUCT REFERENCE
Products
The fields below come from the current product adapter and provider task type.
GET/api/product/list.cgi
NORMAL_CAPTCHA
Normal Captcha
Enabled
Timeout144 s
· Provider task typeImageToTextTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "NORMAL_CAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"phrase": false, // Whether the answer contains multiple words.
"caseSensitive": false, // Whether the answer is case-sensitive.
"numeric": false, // Character recognition mode.
"math": false, // Whether to calculate the expression shown in the image.
"minLength": 1, // Minimum answer length.
"maxLength": 1, // Maximum answer length.
"comment": "YOUR_COMMENT", // Question or instructions for solving the challenge.
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // Base64-encoded image instructions.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "NORMAL_CAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"text": "EXAMPLE_ANSWER" // Recognized text or text answer.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.phrase
boolean
No
Whether the answer contains multiple words.
adapter.caseSensitive
boolean
No
Whether the answer is case-sensitive.
adapter.numeric
boolean
No
Character recognition mode.
adapter.math
boolean
No
Whether to calculate the expression shown in the image.
adapter.minLength
integer
No
Minimum answer length.
adapter.maxLength
integer
No
Maximum answer length.
adapter.comment
string
No
Question or instructions for solving the challenge.
adapter.imgInstructions
string
No
Base64-encoded image instructions.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.text
string
Recognized text or text answer.
RECAPTCHA_V2
reCAPTCHA v2
Enabled
Timeout720 s
· Provider task typeRecaptchaV2TaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "RECAPTCHA_V2", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"websiteKey": "YOUR_WEBSITEKEY", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"pageAction": "YOUR_PAGEACTION", // Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
"apiDomain": "YOUR_APIDOMAIN", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"isEnterprise": false, // For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
"minScore": 0.3, // Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
"isInvisible": false, // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"cookies": "challenge_cookie=CURRENT_VALUE", // Optional current challenge cookie-header string for v2/v2 Enterprise, formatted key=value; key2=value2. Collect from the relevant target context; omit when not needed. This field is not exposed for v3.
"proxyType": "http", // Optional v2/v2 Enterprise proxy protocol: http, socks4 or socks5. Any proxy field requires proxyType, proxyAddress and proxyPort together; omit all to retain proxyless mode. v3 has no documented proxy task here.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP, without scheme, port or credentials. When target IP binding is required, the solver and target browser must use the same actual egress; setting a browser proxy alone is insufficient.
"proxyPort": 8080, // Proxy TCP port, integer 1 to 65535; required only when any proxy parameter is supplied.
"proxyLogin": "YOUR_PROXYLOGIN", // Optional proxy authentication username from the caller configured proxy; never invent credentials.
"proxyPassword": "YOUR_PROXYPASSWORD", // Optional proxy authentication password from the same configured proxy.
"recaptchaDataSValue": "CURRENT_DATA_S_VALUE" // Optional fresh data-s value for ordinary reCAPTCHA v2 from the same current widget. Preserve it exactly; pageAction is not a substitute. Enterprise v2 uses enterprisePayload.s instead.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "RECAPTCHA_V2", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // Verification token to submit to the target website.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.websiteKey
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.pageAction
string
No
Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
adapter.apiDomain
string
No
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.isEnterprise
boolean
No
For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
adapter.minScore
number
No
Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
adapter.userAgent
string
No
Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
adapter.isInvisible
boolean
No
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.cookies
string
No
Optional current challenge cookie-header string for v2/v2 Enterprise, formatted key=value; key2=value2. Collect from the relevant target context; omit when not needed. This field is not exposed for v3.
adapter.proxyType
string
No
Optional v2/v2 Enterprise proxy protocol: http, socks4 or socks5. Any proxy field requires proxyType, proxyAddress and proxyPort together; omit all to retain proxyless mode. v3 has no documented proxy task here.
adapter.proxyAddress
string
No
Reachable proxy hostname or IP, without scheme, port or credentials. When target IP binding is required, the solver and target browser must use the same actual egress; setting a browser proxy alone is insufficient.
adapter.proxyPort
integer
No
Proxy TCP port, integer 1 to 65535; required only when any proxy parameter is supplied.
adapter.proxyLogin
string
No
Optional proxy authentication username from the caller configured proxy; never invent credentials.
adapter.proxyPassword
string
No
Optional proxy authentication password from the same configured proxy.
adapter.recaptchaDataSValue
string
No
Optional fresh data-s value for ordinary reCAPTCHA v2 from the same current widget. Preserve it exactly; pageAction is not a substitute. Enterprise v2 uses enterprisePayload.s instead.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.gRecaptchaResponse
string
Verification token to submit to the target website.
data.solution.token
string
Verification token to submit to the target website.
RECAPTCHA_V3
reCAPTCHA v3
Enabled
Timeout720 s
· Provider task typeRecaptchaV3TaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "RECAPTCHA_V3", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"websiteKey": "YOUR_WEBSITEKEY", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"pageAction": "YOUR_PAGEACTION", // Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
"apiDomain": "YOUR_APIDOMAIN", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"isEnterprise": false, // For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
"minScore": 0.3, // Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
"userAgent": "YOUR_BROWSER_USER_AGENT" // Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "RECAPTCHA_V3", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // Verification token to submit to the target website.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.websiteKey
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.pageAction
string
No
Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
adapter.apiDomain
string
No
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.isEnterprise
boolean
No
For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
adapter.minScore
number
Yes
Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
adapter.userAgent
string
No
Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.gRecaptchaResponse
string
Verification token to submit to the target website.
data.solution.token
string
Verification token to submit to the target website.
RECAPTCHA_V2_ENTERPRISE
reCAPTCHA v2 Enterprise
Enabled
Timeout720 s
· Provider task typeRecaptchaV2EnterpriseTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "RECAPTCHA_V2_ENTERPRISE", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"websiteKey": "YOUR_WEBSITEKEY", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"pageAction": "YOUR_PAGEACTION", // Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
"apiDomain": "YOUR_APIDOMAIN", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"isEnterprise": false, // For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
"minScore": 0.3, // Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
"isInvisible": false, // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"cookies": "challenge_cookie=CURRENT_VALUE", // Optional current challenge cookie-header string for v2/v2 Enterprise, formatted key=value; key2=value2. Collect from the relevant target context; omit when not needed. This field is not exposed for v3.
"proxyType": "http", // Optional v2/v2 Enterprise proxy protocol: http, socks4 or socks5. Any proxy field requires proxyType, proxyAddress and proxyPort together; omit all to retain proxyless mode. v3 has no documented proxy task here.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP, without scheme, port or credentials. When target IP binding is required, the solver and target browser must use the same actual egress; setting a browser proxy alone is insufficient.
"proxyPort": 8080, // Proxy TCP port, integer 1 to 65535; required only when any proxy parameter is supplied.
"proxyLogin": "YOUR_PROXYLOGIN", // Optional proxy authentication username from the caller configured proxy; never invent credentials.
"proxyPassword": "YOUR_PROXYPASSWORD", // Optional proxy authentication password from the same configured proxy.
"enterprisePayload": { // Optional JSON object of additional parameters from the current grecaptcha.enterprise.render configuration, including its s string when present. Preserve this object with the matching challenge; do not send recaptchaDataSValue for Enterprise v2. Not a documented v3 field.
"s": "CURRENT_ENTERPRISE_S_VALUE"
}
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "RECAPTCHA_V2_ENTERPRISE", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // Verification token to submit to the target website.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.websiteKey
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.pageAction
string
No
Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
adapter.apiDomain
string
No
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.isEnterprise
boolean
No
For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
adapter.minScore
number
No
Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
adapter.userAgent
string
No
Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
adapter.isInvisible
boolean
No
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.cookies
string
No
Optional current challenge cookie-header string for v2/v2 Enterprise, formatted key=value; key2=value2. Collect from the relevant target context; omit when not needed. This field is not exposed for v3.
adapter.proxyType
string
No
Optional v2/v2 Enterprise proxy protocol: http, socks4 or socks5. Any proxy field requires proxyType, proxyAddress and proxyPort together; omit all to retain proxyless mode. v3 has no documented proxy task here.
adapter.proxyAddress
string
No
Reachable proxy hostname or IP, without scheme, port or credentials. When target IP binding is required, the solver and target browser must use the same actual egress; setting a browser proxy alone is insufficient.
adapter.proxyPort
integer
No
Proxy TCP port, integer 1 to 65535; required only when any proxy parameter is supplied.
adapter.proxyLogin
string
No
Optional proxy authentication username from the caller configured proxy; never invent credentials.
adapter.proxyPassword
string
No
Optional proxy authentication password from the same configured proxy.
adapter.enterprisePayload
object
No
Optional JSON object of additional parameters from the current grecaptcha.enterprise.render configuration, including its s string when present. Preserve this object with the matching challenge; do not send recaptchaDataSValue for Enterprise v2. Not a documented v3 field.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.gRecaptchaResponse
string
Verification token to submit to the target website.
data.solution.token
string
Verification token to submit to the target website.
RECAPTCHA_V3_ENTERPRISE
reCAPTCHA v3 Enterprise
Enabled
Timeout720 s
· Provider task typeRecaptchaV3TaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "RECAPTCHA_V3_ENTERPRISE", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"websiteKey": "YOUR_WEBSITEKEY", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"pageAction": "YOUR_PAGEACTION", // Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
"apiDomain": "YOUR_APIDOMAIN", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"isEnterprise": true, // For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
"minScore": 0.3, // Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
"userAgent": "YOUR_BROWSER_USER_AGENT" // Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "RECAPTCHA_V3_ENTERPRISE", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // Verification token to submit to the target website.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.websiteKey
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.pageAction
string
No
Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
adapter.apiDomain
string
No
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.isEnterprise
boolean
No
For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
adapter.minScore
number
Yes
Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
adapter.userAgent
string
No
Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.gRecaptchaResponse
string
Verification token to submit to the target website.
data.solution.token
string
Verification token to submit to the target website.
RECAPTCHA_ENTERPRISE
reCAPTCHA Enterprise
Enabled
Timeout720 s
· Provider task typeRecaptchaV2EnterpriseTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "RECAPTCHA_ENTERPRISE", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"websiteKey": "YOUR_WEBSITEKEY", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"pageAction": "YOUR_PAGEACTION", // Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
"apiDomain": "YOUR_APIDOMAIN", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"isEnterprise": false, // For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
"minScore": 0.3, // Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
"appId": "YOUR_APPID", // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"isInvisible": false, // Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
"cookies": "challenge_cookie=CURRENT_VALUE", // Optional current challenge cookie-header string for v2/v2 Enterprise, formatted key=value; key2=value2. Collect from the relevant target context; omit when not needed. This field is not exposed for v3.
"proxyType": "http", // Optional v2/v2 Enterprise proxy protocol: http, socks4 or socks5. Any proxy field requires proxyType, proxyAddress and proxyPort together; omit all to retain proxyless mode. v3 has no documented proxy task here.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP, without scheme, port or credentials. When target IP binding is required, the solver and target browser must use the same actual egress; setting a browser proxy alone is insufficient.
"proxyPort": 8080, // Proxy TCP port, integer 1 to 65535; required only when any proxy parameter is supplied.
"proxyLogin": "YOUR_PROXYLOGIN", // Optional proxy authentication username from the caller configured proxy; never invent credentials.
"proxyPassword": "YOUR_PROXYPASSWORD", // Optional proxy authentication password from the same configured proxy.
"enterprisePayload": { // Optional JSON object of additional parameters from the current grecaptcha.enterprise.render configuration, including its s string when present. Preserve this object with the matching challenge; do not send recaptchaDataSValue for Enterprise v2. Not a documented v3 field.
"s": "CURRENT_ENTERPRISE_S_VALUE"
}
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "RECAPTCHA_ENTERPRISE", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // Verification token to submit to the target website.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.websiteKey
string
Yes
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.pageAction
string
No
Actual v3 action from the target execute options. This legacy field remains accepted for v2 compatibility, but it does not replace data-s or enterprisePayload.s and does not select the product version.
adapter.apiDomain
string
No
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.isEnterprise
boolean
No
For RECAPTCHA_V3_ENTERPRISE the upstream flag is always true, including legacy requests that send false. RECAPTCHA_V3 keeps its existing optional flag behavior. Select the explicit v2 Enterprise product for Enterprise widgets; this flag cannot supply missing session parameters.
adapter.minScore
number
No
Set according to the actual challenge and product field meaning. These are solving options, not values to invent to repair a failed request.
adapter.userAgent
string
No
Read the actual User-Agent used to obtain this challenge; preserve it when the product requires matching.
adapter.appId
string
No
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.isInvisible
boolean
No
Read from the actual target page, widget configuration or documented integration. Identify the precise product/version; placeholders and keys from another site cannot be substituted.
adapter.cookies
string
No
Optional current challenge cookie-header string for v2/v2 Enterprise, formatted key=value; key2=value2. Collect from the relevant target context; omit when not needed. This field is not exposed for v3.
adapter.proxyType
string
No
Optional v2/v2 Enterprise proxy protocol: http, socks4 or socks5. Any proxy field requires proxyType, proxyAddress and proxyPort together; omit all to retain proxyless mode. v3 has no documented proxy task here.
adapter.proxyAddress
string
No
Reachable proxy hostname or IP, without scheme, port or credentials. When target IP binding is required, the solver and target browser must use the same actual egress; setting a browser proxy alone is insufficient.
adapter.proxyPort
integer
No
Proxy TCP port, integer 1 to 65535; required only when any proxy parameter is supplied.
adapter.proxyLogin
string
No
Optional proxy authentication username from the caller configured proxy; never invent credentials.
adapter.proxyPassword
string
No
Optional proxy authentication password from the same configured proxy.
adapter.enterprisePayload
object
No
Optional JSON object of additional parameters from the current grecaptcha.enterprise.render configuration, including its s string when present. Preserve this object with the matching challenge; do not send recaptchaDataSValue for Enterprise v2. Not a documented v3 field.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.gRecaptchaResponse
string
Verification token to submit to the target website.
data.solution.token
string
Verification token to submit to the target website.
CLOUDFLARE_TURNSTILE
Cloudflare Turnstile
Enabled
Timeout144 s
· Provider task typeTurnstileTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "CLOUDFLARE_TURNSTILE", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page hosting this widget, from the same target session.
"websiteKey": "YOUR_WEBSITEKEY", // Actual sitekey of this Turnstile widget. Do not use a key from another site.
"action": "YOUR_ACTION", // Actual render action. Required with challenge-page pagedata; standalone widgets may also set action without pagedata.
"data": "CURRENT_CDATA", // Actual render cData, sent upstream as data. cData is accepted as an alias; conflicting values are rejected before billing.
"pagedata": "CURRENT_CHL_PAGE_DATA", // Fresh render chlPageData for a Cloudflare challenge page, sent upstream as pagedata. When supplied, action and data must also be present. Not universally required for standalone widgets.
"cData": "CURRENT_CDATA", // Compatibility alias of data. Prefer data; omit the alias when data is supplied.
"chlPageData": "CURRENT_CHL_PAGE_DATA", // Compatibility alias of pagedata. Prefer pagedata; omit the alias when pagedata is supplied.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Actual browser User-Agent, when available. Preserve the returned solution.userAgent; do not assume the upstream will return the supplied value.
"proxyType": "http", // Optional proxy protocol: http, socks4 or socks5. Supplying any proxy field requires proxyType, proxyAddress and proxyPort together. Omit all proxy fields to retain proxyless mode.
"proxyAddress": "YOUR_PROXY_HOST", // Proxy host or IP without scheme, port or credentials. Use the appropriate target-session egress.
"proxyPort": 8080, // Proxy TCP port: integer from 1 to 65535. Required only when using a proxy.
"proxyLogin": "YOUR_PROXYLOGIN", // Proxy username only if this proxy requires authentication.
"proxyPassword": "YOUR_PROXYPASSWORD" // Proxy password only if this proxy requires authentication.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "CLOUDFLARE_TURNSTILE", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN", // Verification token to submit to the target website.
"userAgent": "EXAMPLE_USERAGENT" // Browser User-Agent used to obtain the answer.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page hosting this widget, from the same target session.
adapter.websiteKey
string
Yes
Actual sitekey of this Turnstile widget. Do not use a key from another site.
adapter.action
string
No
Actual render action. Required with challenge-page pagedata; standalone widgets may also set action without pagedata.
adapter.data
string
No
Actual render cData, sent upstream as data. cData is accepted as an alias; conflicting values are rejected before billing.
adapter.pagedata
string
No
Fresh render chlPageData for a Cloudflare challenge page, sent upstream as pagedata. When supplied, action and data must also be present. Not universally required for standalone widgets.
adapter.cData
string
No
Compatibility alias of data. Prefer data; omit the alias when data is supplied.
adapter.chlPageData
string
No
Compatibility alias of pagedata. Prefer pagedata; omit the alias when pagedata is supplied.
adapter.userAgent
string
No
Actual browser User-Agent, when available. Preserve the returned solution.userAgent; do not assume the upstream will return the supplied value.
adapter.proxyType
string
No
Optional proxy protocol: http, socks4 or socks5. Supplying any proxy field requires proxyType, proxyAddress and proxyPort together. Omit all proxy fields to retain proxyless mode.
adapter.proxyAddress
string
No
Proxy host or IP without scheme, port or credentials. Use the appropriate target-session egress.
adapter.proxyPort
integer
No
Proxy TCP port: integer from 1 to 65535. Required only when using a proxy.
adapter.proxyLogin
string
No
Proxy username only if this proxy requires authentication.
adapter.proxyPassword
string
No
Proxy password only if this proxy requires authentication.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
data.solution.userAgent
string
Browser User-Agent used to obtain the answer.
ARKOSE
Arkose Captcha
Enabled
Timeout144 s
· Provider task typeFunCaptchaTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "ARKOSE", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websitePublicKey": "YOUR_WEBSITEPUBLICKEY", // Public key from the target page.
"funcaptchaApiJSSubdomain": "YOUR_FUNCAPTCHAAPIJSSUBDOMAIN", // FunCaptcha API hostname used by the target page.
"data": "YOUR_DATA", // Challenge data from the target integration.
"userAgent": "YOUR_BROWSER_USER_AGENT" // User-Agent of the browser that obtained the challenge.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "ARKOSE", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websitePublicKey
string
Yes
Public key from the target page.
adapter.funcaptchaApiJSSubdomain
string
No
FunCaptcha API hostname used by the target page.
adapter.data
string
No
Challenge data from the target integration.
adapter.userAgent
string
No
User-Agent of the browser that obtained the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
GEETEST
GeeTest
Enabled
Timeout144 s
· Provider task typeGeeTestTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "GEETEST", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"gt": "YOUR_GT", // The gt issued by the target initGeetest v3 integration; not a v4 captcha_id. Do not substitute a demo or another integration identifier.
"challenge": "YOUR_CHALLENGE" // Obtain a new, unused v3 challenge from the target initialization endpoint for every new task. Once loaded by the page it is no longer valid for the solver. Keep its target session; do not reuse it or infer freshness from length.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "GEETEST", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"challenge": "EXAMPLE_CHALLENGE", // Product-specific answer field; use it according to the target website verification protocol.
"validate": "EXAMPLE_VALIDATE", // Product-specific answer field; use it according to the target website verification protocol.
"seccode": "EXAMPLE_SECCODE" // Product-specific answer field; use it according to the target website verification protocol.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.gt
string
Yes
The gt issued by the target initGeetest v3 integration; not a v4 captcha_id. Do not substitute a demo or another integration identifier.
adapter.challenge
string
Yes
Obtain a new, unused v3 challenge from the target initialization endpoint for every new task. Once loaded by the page it is no longer valid for the solver. Keep its target session; do not reuse it or infer freshness from length.
adapter.apiServerSubdomain
string
No
Optional v3 GeeTest API hostname from the target configuration, for example api-na.geetest.com. Omit if not configured or unknown; never submit YOUR_* placeholders. The existing public field name remains unchanged.
adapter.userAgent
string
No
User-Agent of the browser that obtained the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.challenge
string
Product-specific answer field; use it according to the target website verification protocol.
data.solution.validate
string
Product-specific answer field; use it according to the target website verification protocol.
data.solution.seccode
string
Product-specific answer field; use it according to the target website verification protocol.
GEETEST_V4
GeeTest v4
Enabled
Timeout144 s
· Provider task typeGeeTestTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "GEETEST_V4", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"captchaId": "YOUR_CAPTCHAID" // Use the captcha_id from the target initGeetest4 configuration. It is not the gt or challenge of a v3 integration.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "GEETEST_V4", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"captcha_id": "EXAMPLE_CAPTCHA_ID", // Product-specific answer field; use it according to the target website verification protocol.
"lot_number": "EXAMPLE_LOT_NUMBER", // Product-specific answer field; use it according to the target website verification protocol.
"pass_token": "EXAMPLE_PASS_TOKEN", // Verification token to submit to the target website.
"gen_time": "EXAMPLE_GEN_TIME", // Product-specific answer field; use it according to the target website verification protocol.
"captcha_output": "EXAMPLE_CAPTCHA_OUTPUT" // Product-specific answer field; use it according to the target website verification protocol.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.captchaId
string
Yes
Use the captcha_id from the target initGeetest4 configuration. It is not the gt or challenge of a v3 integration.
adapter.userAgent
string
No
User-Agent of the browser that obtained the challenge.
adapter.riskType
string
No
Optional actual GeeTest v4 risk_type. Sent inside upstream initParameters with captcha_id; it does not change the product version.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.captcha_id
string
Product-specific answer field; use it according to the target website verification protocol.
data.solution.lot_number
string
Product-specific answer field; use it according to the target website verification protocol.
data.solution.pass_token
string
Verification token to submit to the target website.
data.solution.gen_time
string
Product-specific answer field; use it according to the target website verification protocol.
data.solution.captcha_output
string
Product-specific answer field; use it according to the target website verification protocol.
CAPY_PUZZLE
Capy Puzzle
Enabled
Timeout144 s
· Provider task typeCapyTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "CAPY_PUZZLE", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY", // Public site key from the target page.
"userAgent": "YOUR_BROWSER_USER_AGENT", // User-Agent of the browser that obtained the challenge.
"proxyType": "http", // Proxy protocol, for example http.
"proxyAddress": "YOUR_PROXY_HOST", // Proxy hostname or IP address.
"proxyPort": 8080, // Proxy port.
"proxyLogin": "YOUR_PROXYLOGIN", // Proxy username, when authentication is required.
"proxyPassword": "YOUR_PROXYPASSWORD" // Proxy password, when authentication is required.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "CAPY_PUZZLE", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"captchakey": "EXAMPLE_CAPTCHAKEY", // Verification token to submit to the target website.
"challengekey": "EXAMPLE_CHALLENGEKEY", // Product-specific answer field; use it according to the target website verification protocol.
"answer": "EXAMPLE_ANSWER", // Recognized text or text answer.
"respKey": "EXAMPLE_RESPKEY" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
Yes
Public site key from the target page.
adapter.userAgent
string
No
User-Agent of the browser that obtained the challenge.
adapter.proxyType
string
No
Proxy protocol, for example http.
adapter.proxyAddress
string
No
Proxy hostname or IP address.
adapter.proxyPort
integer
No
Proxy port.
adapter.proxyLogin
string
No
Proxy username, when authentication is required.
adapter.proxyPassword
string
No
Proxy password, when authentication is required.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.captchakey
string
Verification token to submit to the target website.
data.solution.challengekey
string
Product-specific answer field; use it according to the target website verification protocol.
data.solution.answer
string
Recognized text or text answer.
data.solution.respKey
string
Verification token to submit to the target website.
KEYCAPTCHA
KeyCAPTCHA
Enabled
Timeout144 s
· Provider task typeKeyCaptchaTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "KEYCAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"s_s_c_user_id": 184015, // KeyCaptcha user identifier from the page.
"s_s_c_session_id": "YOUR_S_S_C_SESSION_ID", // KeyCaptcha session identifier.
"s_s_c_web_server_sign": "YOUR_S_S_C_WEB_SERVER_SIGN", // KeyCaptcha server signature.
"s_s_c_web_server_sign2": "YOUR_S_S_C_WEB_SERVER_SIGN2" // Second KeyCaptcha server signature.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "KEYCAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.s_s_c_user_id
integer
Yes
KeyCaptcha user identifier from the page.
adapter.s_s_c_session_id
string
Yes
KeyCaptcha session identifier.
adapter.s_s_c_web_server_sign
string
Yes
KeyCaptcha server signature.
adapter.s_s_c_web_server_sign2
string
Yes
Second KeyCaptcha server signature.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
LEMIN
Lemin Captcha
Enabled
Timeout144 s
· Provider task typeLeminTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "LEMIN", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"captchaId": "YOUR_CAPTCHAID", // Captcha integration identifier.
"divId": "lemin-cropped-captcha", // ID of the Lemin widget container.
"leminApiServerSubdomain": "api.leminnow.com" // Lemin API hostname used by the target page.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "LEMIN", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"answer": "EXAMPLE_ANSWER", // Recognized text or text answer.
"challenge_id": "EXAMPLE_CHALLENGE_ID" // Product-specific answer field; use it according to the target website verification protocol.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.captchaId
string
Yes
Captcha integration identifier.
adapter.divId
string
Yes
ID of the Lemin widget container.
adapter.leminApiServerSubdomain
string
No
Lemin API hostname used by the target page.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.answer
string
Recognized text or text answer.
data.solution.challenge_id
string
Product-specific answer field; use it according to the target website verification protocol.
AMAZON
Amazon Captcha
Enabled
Timeout144 s
· Provider task typeAmazonTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "AMAZON", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY", // Public site key from the target page.
"iv": "YOUR_IV", // Fresh AWS challenge initialization vector.
"context": "YOUR_CONTEXT", // Fresh AWS challenge context.
"challengeScript": "https://aws-waf.example.com/challengeScript.js", // Actual challengeScript URL from the current AWS WAF challenge, not an example URL.
"captchaScript": "https://aws-waf.example.com/captchaScript.js", // Actual captchaScript URL from the current AWS WAF challenge, not an example URL.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Actual browser User-Agent from the matching target session.
"proxyType": "http", // Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP without scheme, credentials or port.
"proxyLogin": "YOUR_PROXYLOGIN", // Optional proxy authentication username. Provide username and password together.
"proxyPassword": "YOUR_PROXYPASSWORD", // Optional password for that same proxy, paired with proxyLogin.
"proxyPort": 8080 // Proxy TCP port, integer 1 to 65535.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "AMAZON", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"captcha_voucher": "EXAMPLE_CAPTCHA_VOUCHER", // Product-specific answer field; use it according to the target website verification protocol.
"existing_token": "EXAMPLE_EXISTING_TOKEN" // Product-specific answer field; use it according to the target website verification protocol.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
Conditional
Public site key from the target page.
adapter.iv
string
Conditional
Fresh AWS challenge initialization vector.
adapter.context
string
Conditional
Fresh AWS challenge context.
adapter.challengeScript
string
No
Actual challengeScript URL from the current AWS WAF challenge, not an example URL.
adapter.captchaScript
string
No
Actual captchaScript URL from the current AWS WAF challenge, not an example URL.
adapter.jsapiScript
string
Conditional
Actual jsapiScript URL from the current AWS WAF challenge, not an example URL.
adapter.userAgent
string
No
Actual browser User-Agent from the matching target session.
adapter.proxyType
string
No
Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
adapter.proxyAddress
string
No
Reachable proxy hostname or IP without scheme, credentials or port.
adapter.proxyLogin
string
No
Optional proxy authentication username. Provide username and password together.
adapter.proxyPassword
string
No
Optional password for that same proxy, paired with proxyLogin.
adapter.proxyPort
integer
No
Proxy TCP port, integer 1 to 65535.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.captcha_voucher
string
Product-specific answer field; use it according to the target website verification protocol.
data.solution.existing_token
string
Product-specific answer field; use it according to the target website verification protocol.
IMAGE_CAPTCHA
Image Captcha
Enabled
Timeout144 s
· Provider task typeImageToTextTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "IMAGE_CAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"phrase": false, // Whether the answer contains multiple words.
"caseSensitive": false, // Whether the answer is case-sensitive.
"numeric": false, // Character recognition mode.
"math": false, // Whether to calculate the expression shown in the image.
"minLength": 1, // Minimum answer length.
"maxLength": 1, // Maximum answer length.
"comment": "YOUR_COMMENT", // Question or instructions for solving the challenge.
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // Base64-encoded image instructions.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "IMAGE_CAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"text": "EXAMPLE_ANSWER" // Recognized text or text answer.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.phrase
boolean
No
Whether the answer contains multiple words.
adapter.caseSensitive
boolean
No
Whether the answer is case-sensitive.
adapter.numeric
boolean
No
Character recognition mode.
adapter.math
boolean
No
Whether to calculate the expression shown in the image.
adapter.minLength
integer
No
Minimum answer length.
adapter.maxLength
integer
No
Maximum answer length.
adapter.comment
string
No
Question or instructions for solving the challenge.
adapter.imgInstructions
string
No
Base64-encoded image instructions.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.text
string
Recognized text or text answer.
TEXT
Text Captcha
Enabled
Timeout144 s
· Provider task typeTextCaptchaTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "TEXT", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"comment": "YOUR_COMMENT" // Question or instructions for solving the challenge.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "TEXT", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"text": "EXAMPLE_ANSWER" // Recognized text or text answer.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.comment
string
Yes
Question or instructions for solving the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.text
string
Recognized text or text answer.
AUDIO
Audio Captcha
Enabled
Timeout144 s
· Provider task typeAudioTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "AUDIO", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"lang": "en" // Speech language of the submitted MP3: en, fr, de, el, pt or ru. Omitted requests keep the existing en default. This is source language, not API response language or a translation option.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "AUDIO", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TRANSCRIPT" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.lang
string
No
Speech language of the submitted MP3: en, fr, de, el, pt or ru. Omitted requests keep the existing en default. This is source language, not API response language or a translation option.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
ROTATE
Rotate Captcha
Enabled
Timeout144 s
· Provider task typeRotateTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "ROTATE", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"comment": "YOUR_COMMENT" // Question or instructions for solving the challenge.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "ROTATE", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"rotate": 180 // Rotation angle.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.comment
string
No
Question or instructions for solving the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.rotate
integer
Rotation angle.
GRID
Grid Captcha
Enabled
Timeout144 s
· Provider task typeGridTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "GRID", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"comment": "Select all images containing stairs.", // Question or instructions for solving the challenge.
"rows": 3, // Actual number of rows in the submitted current grid.
"columns": 3, // Actual number of columns in the submitted current grid.
"imgType": "recaptcha", // Optional upstream Computer Vision mode: recaptcha or funcaptcha. Do not label a generic/custom image as one of these types; original English comment and original image files are required.
"previousId": "123456789", // Optional upstream task ID for the same continuing challenge, only if known. This is not a Nex Captcha platform UUID; omit when no upstream ID is available. Never use a different or expired challenge.
"minClicks": 1, // Optional minClicks bound; cannot exceed rows*columns when dimensions are supplied. minClicks cannot exceed maxClicks.
"maxClicks": 9, // Optional maxClicks bound; cannot exceed rows*columns when dimensions are supplied. minClicks cannot exceed maxClicks.
"canNoAnswer": 0 // 0 or 1. Set 1 only when the actual task permits no matching images; do not use it to hide recognition failures.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "GRID", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"click": [ // Grid cell numbers to click.
1, // Product-specific answer field; use it according to the target website verification protocol.
5, // Product-specific answer field; use it according to the target website verification protocol.
9 // Product-specific answer field; use it according to the target website verification protocol.
]
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.comment
string
Conditional
Question or instructions for solving the challenge.
adapter.rows
integer
No
Actual number of rows in the submitted current grid.
adapter.columns
integer
No
Actual number of columns in the submitted current grid.
adapter.imgInstructions
string
Conditional
Optional Base64 instruction image, at most 100 kB. Supply comment or imgInstructions; imgType requires the original English comment and original image files.
adapter.imgType
string
No
Optional upstream Computer Vision mode: recaptcha or funcaptcha. Do not label a generic/custom image as one of these types; original English comment and original image files are required.
adapter.previousId
string
No
Optional upstream task ID for the same continuing challenge, only if known. This is not a Nex Captcha platform UUID; omit when no upstream ID is available. Never use a different or expired challenge.
adapter.minClicks
integer
No
Optional minClicks bound; cannot exceed rows*columns when dimensions are supplied. minClicks cannot exceed maxClicks.
adapter.maxClicks
integer
No
Optional maxClicks bound; cannot exceed rows*columns when dimensions are supplied. minClicks cannot exceed maxClicks.
adapter.canNoAnswer
integer
No
0 or 1. Set 1 only when the actual task permits no matching images; do not use it to hide recognition failures.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.click
array
Grid cell numbers to click.
data.solution.click[]
integer
Product-specific answer field; use it according to the target website verification protocol.
CLICK
Click Captcha
Enabled
Timeout144 s
· Provider task typeCoordinatesTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "CLICK", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"comment": "YOUR_COMMENT" // Question or instructions for solving the challenge.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "CLICK", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"coordinates": [ // Click coordinates, with the origin at the top left of the image.
{ // Product-specific answer field; use it according to the target website verification protocol.
"x": 358, // Horizontal coordinate in pixels.
"y": 268 // Vertical coordinate in pixels.
}
]
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.comment
string
No
Question or instructions for solving the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.coordinates
array
Click coordinates, with the origin at the top left of the image.
data.solution.coordinates[]
object
Product-specific answer field; use it according to the target website verification protocol.
data.solution.coordinates[].x
integer
Horizontal coordinate in pixels.
data.solution.coordinates[].y
integer
Vertical coordinate in pixels.
COORDINATES
Coordinates Captcha
Enabled
Timeout144 s
· Provider task typeCoordinatesTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "COORDINATES", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"comment": "YOUR_COMMENT" // Question or instructions for solving the challenge.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "COORDINATES", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"coordinates": [ // Click coordinates, with the origin at the top left of the image.
{ // Product-specific answer field; use it according to the target website verification protocol.
"x": 358, // Horizontal coordinate in pixels.
"y": 268 // Vertical coordinate in pixels.
}
]
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.comment
string
No
Question or instructions for solving the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.coordinates
array
Click coordinates, with the origin at the top left of the image.
data.solution.coordinates[]
object
Product-specific answer field; use it according to the target website verification protocol.
data.solution.coordinates[].x
integer
Horizontal coordinate in pixels.
data.solution.coordinates[].y
integer
Vertical coordinate in pixels.
DRAW_AROUND
Draw Around Captcha
Enabled
Timeout144 s
· Provider task typeDrawAroundTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "DRAW_AROUND", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"comment": "YOUR_COMMENT" // Question or instructions for solving the challenge.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "DRAW_AROUND", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"canvas": [ // Drawing path coordinates.
[ // Product-specific answer field; use it according to the target website verification protocol.
{ // Product-specific answer field; use it according to the target website verification protocol.
"x": 20, // Horizontal coordinate in pixels.
"y": 30 // Vertical coordinate in pixels.
},
{ // Product-specific answer field; use it according to the target website verification protocol.
"x": 40, // Horizontal coordinate in pixels.
"y": 60 // Vertical coordinate in pixels.
}
]
]
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.comment
string
No
Question or instructions for solving the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.canvas
array
Drawing path coordinates.
data.solution.canvas[]
array
Product-specific answer field; use it according to the target website verification protocol.
data.solution.canvas[][]
object
Product-specific answer field; use it according to the target website verification protocol.
data.solution.canvas[][].x
integer
Horizontal coordinate in pixels.
data.solution.canvas[][].y
integer
Vertical coordinate in pixels.
DRAG_AND_DROP
Drag and Drop Captcha
Enabled
Timeout144 s
· Provider task typeDragAndDropTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "DRAG_AND_DROP", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"comment": "YOUR_COMMENT", // Question or instructions for solving the challenge.
"background": "BASE64_IMAGE", // Base64-encoded background image.
"images": [ // Array of Base64-encoded draggable images in the original order.
"BASE64_IMAGE"
]
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "DRAG_AND_DROP", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"coordinates": [ // Click coordinates, with the origin at the top left of the image.
{ // Product-specific answer field; use it according to the target website verification protocol.
"x": 100, // Horizontal coordinate in pixels.
"y": 80 // Vertical coordinate in pixels.
}
]
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.comment
string
No
Question or instructions for solving the challenge.
adapter.background
string
Yes
Base64-encoded background image.
adapter.images
array
Yes
Array of Base64-encoded draggable images in the original order.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.coordinates
array
Click coordinates, with the origin at the top left of the image.
data.solution.coordinates[]
object
Product-specific answer field; use it according to the target website verification protocol.
data.solution.coordinates[].x
integer
Horizontal coordinate in pixels.
data.solution.coordinates[].y
integer
Vertical coordinate in pixels.
BOUNDING_BOX
Bounding Box Captcha
Enabled
Timeout144 s
· Provider task typeBoundingBoxTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "BOUNDING_BOX", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"comment": "YOUR_COMMENT" // Question or instructions for solving the challenge.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "BOUNDING_BOX", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"bounding_boxes": [ // Bounding boxes of target objects.
{ // Product-specific answer field; use it according to the target website verification protocol.
"xMin": 310, // Horizontal coordinate in pixels.
"xMax": 385, // Horizontal coordinate in pixels.
"yMin": 231, // Vertical coordinate in pixels.
"yMax": 308 // Vertical coordinate in pixels.
}
]
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.comment
string
No
Question or instructions for solving the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.bounding_boxes
array
Bounding boxes of target objects.
data.solution.bounding_boxes[]
object
Product-specific answer field; use it according to the target website verification protocol.
data.solution.bounding_boxes[].xMin
integer
Horizontal coordinate in pixels.
data.solution.bounding_boxes[].xMax
integer
Horizontal coordinate in pixels.
data.solution.bounding_boxes[].yMin
integer
Vertical coordinate in pixels.
data.solution.bounding_boxes[].yMax
integer
Vertical coordinate in pixels.
SLIDER_CAPTCHA
Slider Captcha
Enabled
Timeout144 s
· Provider task typeCoordinatesTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "SLIDER_CAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64 JPEG, PNG or GIF of the current custom slider challenge; a data URI is accepted upstream. Preserve original pixels. Upstream limits: 600 kB decoded, at most 1000 pixels on either side. This is not a GeeTest, DataDome or other vendor token-solving contract.
"comment": "YOUR_COMMENT" // Optional worker instruction describing the exact point to click, for example the center of the matching target slot. If omitted, the image must contain sufficient instructions. For a custom test, provide explicit English instructions and a known point. Returned coordinates are relative to this image.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "SLIDER_CAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"coordinates": [ // Click coordinates, with the origin at the top left of the image.
{ // Product-specific answer field; use it according to the target website verification protocol.
"x": 240, // Horizontal coordinate in pixels.
"y": 100 // Vertical coordinate in pixels.
}
]
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Solution fields are not documented yet. This example shows the response envelope only.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64 JPEG, PNG or GIF of the current custom slider challenge; a data URI is accepted upstream. Preserve original pixels. Upstream limits: 600 kB decoded, at most 1000 pixels on either side. This is not a GeeTest, DataDome or other vendor token-solving contract.
adapter.comment
string
No
Optional worker instruction describing the exact point to click, for example the center of the matching target slot. If omitted, the image must contain sufficient instructions. For a custom test, provide explicit English instructions and a known point. Returned coordinates are relative to this image.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.coordinates
array
Click coordinates, with the origin at the top left of the image.
data.solution.coordinates[]
object
Product-specific answer field; use it according to the target website verification protocol.
data.solution.coordinates[].x
integer
Horizontal coordinate in pixels.
data.solution.coordinates[].y
integer
Vertical coordinate in pixels.
CYBERSIARA
CyberSiARA
Enabled
Timeout144 s
· Provider task typeCyberSiAraTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "CYBERSIARA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"userAgent": "YOUR_BROWSER_USER_AGENT", // User-Agent of the browser that obtained the challenge.
"SlideMasterUrlId": "YOUR_SLIDEMASTERURLID" // CyberSiARA integration identifier from the page.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "CYBERSIARA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.userAgent
string
Yes
User-Agent of the browser that obtained the challenge.
adapter.SlideMasterUrlId
string
Yes
CyberSiARA integration identifier from the page.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
MTCAPTCHA
MTCaptcha
Enabled
Timeout144 s
· Provider task typeMtCaptchaTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "MTCAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY" // Public site key from the target page.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "MTCAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
Yes
Public site key from the target page.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
DATADOME
DataDome
Enabled
Timeout144 s
· Provider task typeDataDomeSliderTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "DATADOME", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"captchaUrl": "https://example.com/captcha", // Fresh challenge URL from the current session.
"userAgent": "YOUR_BROWSER_USER_AGENT", // User-Agent of the browser that obtained the challenge.
"proxyType": "http", // Proxy protocol, for example http.
"proxyAddress": "YOUR_PROXY_HOST", // Proxy hostname or IP address.
"proxyPort": 8080, // Proxy port.
"proxyLogin": "YOUR_PROXYLOGIN", // Proxy username, when authentication is required.
"proxyPassword": "YOUR_PROXYPASSWORD" // Proxy password, when authentication is required.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "DATADOME", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"cookie": "EXAMPLE_COOKIE" // Verification cookies for the target domain.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.captchaUrl
string
Yes
Fresh challenge URL from the current session.
adapter.userAgent
string
Yes
User-Agent of the browser that obtained the challenge.
adapter.proxyType
string
Yes
Proxy protocol, for example http.
adapter.proxyAddress
string
Yes
Proxy hostname or IP address.
adapter.proxyPort
integer
Yes
Proxy port.
adapter.proxyLogin
string
No
Proxy username, when authentication is required.
adapter.proxyPassword
string
No
Proxy password, when authentication is required.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.cookie
string
Verification cookies for the target domain.
FRIENDLY_CAPTCHA
Friendly Captcha
Enabled
Timeout144 s
· Provider task typeFriendlyCaptchaTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "FRIENDLY_CAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY", // Public site key from the target page.
"version": "YOUR_VERSION", // Captcha protocol version used by the page.
"moduleScript": "YOUR_MODULESCRIPT", // Module script from the challenge page.
"nomoduleScript": "YOUR_NOMODULESCRIPT" // Non-module script from the challenge page.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "FRIENDLY_CAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
Yes
Public site key from the target page.
adapter.version
string
No
Captcha protocol version used by the page.
adapter.moduleScript
string
No
Module script from the challenge page.
adapter.nomoduleScript
string
No
Non-module script from the challenge page.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
CUTCAPTCHA
Cutcaptcha
Enabled
Timeout144 s
· Provider task typeCutCaptchaTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "CUTCAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY", // Legacy field retained for request compatibility; ignored upstream. It cannot replace the newly documented required product parameters.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Actual browser User-Agent from the matching target session.
"miseryKey": "CURRENT_MISERY_KEY", // Value of CUTCAPTCHA_MISERY_KEY from the current target page.
"siteApiKey": "CURRENT_PUBLIC_SITE_API_KEY", // Public target data-apikey value from the Cutcaptcha iframe or script. Sent upstream as apiKey. This is NOT your Nex Captcha authentication key, which remains in the HTTP header.
"proxyType": "http", // Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP without scheme, credentials or port.
"proxyLogin": "YOUR_PROXYLOGIN", // Optional proxy authentication username. Provide username and password together.
"proxyPassword": "YOUR_PROXYPASSWORD", // Optional password for that same proxy, paired with proxyLogin.
"proxyPort": 8080 // Proxy TCP port, integer 1 to 65535.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "CUTCAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
No
Legacy field retained for request compatibility; ignored upstream. It cannot replace the newly documented required product parameters.
adapter.userAgent
string
No
Actual browser User-Agent from the matching target session.
adapter.miseryKey
string
Yes
Value of CUTCAPTCHA_MISERY_KEY from the current target page.
adapter.siteApiKey
string
Yes
Public target data-apikey value from the Cutcaptcha iframe or script. Sent upstream as apiKey. This is NOT your Nex Captcha authentication key, which remains in the HTTP header.
adapter.proxyType
string
No
Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
adapter.proxyAddress
string
No
Reachable proxy hostname or IP without scheme, credentials or port.
adapter.proxyLogin
string
No
Optional proxy authentication username. Provide username and password together.
adapter.proxyPassword
string
No
Optional password for that same proxy, paired with proxyLogin.
adapter.proxyPort
integer
No
Proxy TCP port, integer 1 to 65535.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
ATBCAPTCHA
atbCAPTCHA
Enabled
Timeout144 s
· Provider task typeAtbCaptchaTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "ATBCAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY", // Legacy field retained for request compatibility; ignored upstream. It cannot replace the newly documented required product parameters.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Actual browser User-Agent from the matching target session.
"appId": "CURRENT_APP_ID", // Actual appId from the target atbCAPTCHA initialization.
"apiServer": "https://captcha-api.example.com", // Actual apiServer from the same target widget configuration; supply it explicitly for API v2.
"proxyType": "http", // Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP without scheme, credentials or port.
"proxyLogin": "YOUR_PROXYLOGIN", // Optional proxy authentication username. Provide username and password together.
"proxyPassword": "YOUR_PROXYPASSWORD", // Optional password for that same proxy, paired with proxyLogin.
"proxyPort": 8080 // Proxy TCP port, integer 1 to 65535.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "ATBCAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
No
Legacy field retained for request compatibility; ignored upstream. It cannot replace the newly documented required product parameters.
adapter.userAgent
string
No
Actual browser User-Agent from the matching target session.
adapter.appId
string
Yes
Actual appId from the target atbCAPTCHA initialization.
adapter.apiServer
string
Yes
Actual apiServer from the same target widget configuration; supply it explicitly for API v2.
adapter.proxyType
string
No
Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
adapter.proxyAddress
string
No
Reachable proxy hostname or IP without scheme, credentials or port.
adapter.proxyLogin
string
No
Optional proxy authentication username. Provide username and password together.
adapter.proxyPassword
string
No
Optional password for that same proxy, paired with proxyLogin.
adapter.proxyPort
integer
No
Proxy TCP port, integer 1 to 65535.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
TENCENT
Tencent Captcha
Enabled
Timeout144 s
· Provider task typeTencentTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "TENCENT", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"appId": "YOUR_APPID", // Application identifier from the target integration.
"captchaScript": "YOUR_CAPTCHASCRIPT", // Challenge script from the current page.
"proxyType": "http", // Proxy protocol, for example http.
"proxyAddress": "YOUR_PROXY_HOST", // Proxy hostname or IP address.
"proxyPort": 8080, // Proxy port.
"proxyLogin": "YOUR_PROXYLOGIN", // Proxy username, when authentication is required.
"proxyPassword": "YOUR_PROXYPASSWORD" // Proxy password, when authentication is required.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "TENCENT", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"appid": "EXAMPLE_APPID", // Product-specific answer field; use it according to the target website verification protocol.
"ret": 0, // Product-specific answer field; use it according to the target website verification protocol.
"ticket": "EXAMPLE_TICKET", // Verification token to submit to the target website.
"randstr": "EXAMPLE_RANDSTR" // Product-specific answer field; use it according to the target website verification protocol.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.appId
string
Yes
Application identifier from the target integration.
adapter.captchaScript
string
No
Challenge script from the current page.
adapter.proxyType
string
No
Proxy protocol, for example http.
adapter.proxyAddress
string
No
Proxy hostname or IP address.
adapter.proxyPort
integer
No
Proxy port.
adapter.proxyLogin
string
No
Proxy username, when authentication is required.
adapter.proxyPassword
string
No
Proxy password, when authentication is required.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.appid
string
Product-specific answer field; use it according to the target website verification protocol.
data.solution.ret
integer
Product-specific answer field; use it according to the target website verification protocol.
data.solution.ticket
string
Verification token to submit to the target website.
data.solution.randstr
string
Product-specific answer field; use it according to the target website verification protocol.
PROSOPO
Prosopo Captcha
Enabled
Timeout144 s
· Provider task typeProsopoTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "PROSOPO", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY", // Public site key from the target page.
"userAgent": "YOUR_BROWSER_USER_AGENT" // User-Agent of the browser that obtained the challenge.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "PROSOPO", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
Yes
Public site key from the target page.
adapter.userAgent
string
No
User-Agent of the browser that obtained the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
CAPTCHAFOX
CaptchaFox
Enabled
Timeout144 s
· Provider task typeCaptchaFoxTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "CAPTCHAFOX", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY", // Public site key from the target page.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Actual browser User-Agent from the matching target session.
"proxyType": "http", // Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP without scheme, credentials or port.
"proxyLogin": "YOUR_PROXYLOGIN", // Optional proxy authentication username. Provide username and password together.
"proxyPassword": "YOUR_PROXYPASSWORD", // Optional password for that same proxy, paired with proxyLogin.
"proxyPort": 8080, // Proxy TCP port, integer 1 to 65535.
"apiServer": "https://cdn.captchafox.com/" // Optional SDK resource prefix from the script actually loaded by the target. Standard SDK: https://cdn.captchafox.com/ ; MAM SDK: https://s.uicdn.com/mampkg/@mamdev/core.frontend.libs.captchafox/ . This is not the api.captchafox.com challenge/config HTTP API origin. MAM and standard tokens are not interchangeable.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "CAPTCHAFOX", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
Yes
Public site key from the target page.
adapter.userAgent
string
Yes
Actual browser User-Agent from the matching target session.
adapter.proxyType
string
Yes
Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
adapter.proxyAddress
string
Yes
Reachable proxy hostname or IP without scheme, credentials or port.
adapter.proxyLogin
string
No
Optional proxy authentication username. Provide username and password together.
adapter.proxyPassword
string
No
Optional password for that same proxy, paired with proxyLogin.
adapter.proxyPort
integer
Yes
Proxy TCP port, integer 1 to 65535.
adapter.apiServer
string
No
Optional SDK resource prefix from the script actually loaded by the target. Standard SDK: https://cdn.captchafox.com/ ; MAM SDK: https://s.uicdn.com/mampkg/@mamdev/core.frontend.libs.captchafox/ . This is not the api.captchafox.com challenge/config HTTP API origin. MAM and standard tokens are not interchangeable.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
VK_CAPTCHA
VK Captcha
Enabled
Timeout144 s
· Provider task typeVKCaptchaTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "VK_CAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"image": "BASE64_IMAGE", // Base64-encoded challenge image.
"steps": [ // Ordered non-empty array of non-negative integers from the same VK captchaNotRobot.getContent response as image. This is not a maximum rotation count or degrees. Preserve the sequence exactly. Legacy strings containing a JSON integer array are accepted and normalized; a scalar such as "3" is invalid.
5,
19,
14,
0
],
"proxyLogin": "YOUR_PROXYLOGIN", // Proxy username, when authentication is required.
"proxyPassword": "YOUR_PROXYPASSWORD" // Proxy password, when authentication is required.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "VK_CAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"best_step": 2, // Steps or actions required to complete the verification.
"solution": [ // Steps or actions required to complete the verification.
5, // Product-specific answer field; use it according to the target website verification protocol.
19 // Product-specific answer field; use it according to the target website verification protocol.
],
"answer": "EXAMPLE_VK_FORMATTED_ANSWER", // Recognized text or text answer.
"preview": "BASE64_PREVIEW" // Product-specific answer field; use it according to the target website verification protocol.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Solution fields are not documented yet. This example shows the response envelope only.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.image
string
Conditional
Base64-encoded challenge image.
adapter.steps
string
Conditional
Ordered non-empty array of non-negative integers from the same VK captchaNotRobot.getContent response as image. This is not a maximum rotation count or degrees. Preserve the sequence exactly. Legacy strings containing a JSON integer array are accepted and normalized; a scalar such as "3" is invalid.
adapter.redirectUri
string
Conditional
Fresh VK token challenge redirect URL; use instead of image/steps.
adapter.userAgent
string
Conditional
User-Agent of the browser that obtained the challenge.
adapter.proxyType
string
Conditional
Proxy protocol, for example http.
adapter.proxyAddress
string
Conditional
Proxy hostname or IP address.
adapter.proxyPort
integer
Conditional
Proxy port.
adapter.proxyLogin
string
No
Proxy username, when authentication is required.
adapter.proxyPassword
string
No
Proxy password, when authentication is required.
Choose one field group below and supply every field in that group:image + steps / redirectUri + userAgent + proxyType + proxyAddress + proxyPort
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.best_step
integer
Steps or actions required to complete the verification.
data.solution.solution
array
Steps or actions required to complete the verification.
data.solution.solution[]
integer
Product-specific answer field; use it according to the target website verification protocol.
data.solution.answer
string
Recognized text or text answer.
data.solution.preview
string
Product-specific answer field; use it according to the target website verification protocol.
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "TEMU", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"coordinates": [ // Click coordinates, with the origin at the top left of the image.
{ // Product-specific answer field; use it according to the target website verification protocol.
"x": 20, // Horizontal coordinate in pixels.
"y": 30 // Vertical coordinate in pixels.
},
{ // Product-specific answer field; use it according to the target website verification protocol.
"x": 50, // Horizontal coordinate in pixels.
"y": 60 // Vertical coordinate in pixels.
},
{ // Product-specific answer field; use it according to the target website verification protocol.
"x": 80, // Horizontal coordinate in pixels.
"y": 90 // Vertical coordinate in pixels.
}
]
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.image
string
Yes
Base64-encoded challenge image.
adapter.parts
array
Yes
Array of Base64-encoded movable pieces, in response coordinate order.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.coordinates
array
Click coordinates, with the origin at the top left of the image.
data.solution.coordinates[]
object
Product-specific answer field; use it according to the target website verification protocol.
data.solution.coordinates[].x
integer
Horizontal coordinate in pixels.
data.solution.coordinates[].y
integer
Vertical coordinate in pixels.
ALTCHA
Altcha Captcha
Enabled
Timeout144 s
· Provider task typeAltchaTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "ALTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"challengeURL": "https://example.com/altcha/challenge", // URL returning the current ALTCHA challenge.
"proxyType": "http", // Proxy protocol, for example http.
"proxyAddress": "YOUR_PROXY_HOST", // Proxy hostname or IP address.
"proxyPort": 8080, // Proxy port.
"proxyLogin": "YOUR_PROXYLOGIN", // Proxy username, when authentication is required.
"proxyPassword": "YOUR_PROXYPASSWORD" // Proxy password, when authentication is required.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "ALTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.challengeURL
string
Conditional
URL returning the current ALTCHA challenge.
adapter.challengeJSON
string
Conditional
Serialized ALTCHA challenge JSON; use instead of challengeURL.
adapter.proxyType
string
No
Proxy protocol, for example http.
adapter.proxyAddress
string
No
Proxy hostname or IP address.
adapter.proxyPort
integer
No
Proxy port.
adapter.proxyLogin
string
No
Proxy username, when authentication is required.
adapter.proxyPassword
string
No
Proxy password, when authentication is required.
Choose one field group below and supply every field in that group:challengeURL / challengeJSON
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
YIDUN_NE_CAPTCHA
Yidun Captcha
Enabled
Timeout144 s
· Provider task typeYidunTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "YIDUN_NE_CAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY", // Public site key from the target page.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Actual browser User-Agent from the matching target session.
"yidunGetLib": "YOUR_YIDUNGETLIB", // Actual yidunGetLib from the matching current Yidun initialization/network context; omit when unused by that target.
"yidunApiServerSubdomain": "YOUR_YIDUNAPISERVERSUBDOMAIN", // Actual yidunApiServerSubdomain from the matching current Yidun initialization/network context; omit when unused by that target.
"challenge": "YOUR_CHALLENGE", // Actual challenge from the matching current Yidun initialization/network context; omit when unused by that target.
"hcg": "YOUR_HCG", // Actual hcg from the matching current Yidun initialization/network context; omit when unused by that target.
"hct": 1779358333191, // Numeric Enterprise timestamp identifier from the same target request; not a string or your local clock.
"proxyType": "http", // Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP without scheme, credentials or port.
"proxyLogin": "YOUR_PROXYLOGIN", // Optional proxy authentication username. Provide username and password together.
"proxyPassword": "YOUR_PROXYPASSWORD", // Optional password for that same proxy, paired with proxyLogin.
"proxyPort": 8080 // Proxy TCP port, integer 1 to 65535.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "YIDUN_NE_CAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
Yes
Public site key from the target page.
adapter.userAgent
string
No
Actual browser User-Agent from the matching target session.
adapter.yidunGetLib
string
No
Actual yidunGetLib from the matching current Yidun initialization/network context; omit when unused by that target.
adapter.yidunApiServerSubdomain
string
No
Actual yidunApiServerSubdomain from the matching current Yidun initialization/network context; omit when unused by that target.
adapter.challenge
string
No
Actual challenge from the matching current Yidun initialization/network context; omit when unused by that target.
adapter.hcg
string
No
Actual hcg from the matching current Yidun initialization/network context; omit when unused by that target.
adapter.hct
integer
No
Numeric Enterprise timestamp identifier from the same target request; not a string or your local clock.
adapter.proxyType
string
No
Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
adapter.proxyAddress
string
No
Reachable proxy hostname or IP without scheme, credentials or port.
adapter.proxyLogin
string
No
Optional proxy authentication username. Provide username and password together.
adapter.proxyPassword
string
No
Optional password for that same proxy, paired with proxyLogin.
adapter.proxyPort
integer
No
Proxy TCP port, integer 1 to 65535.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
BINANCE
Binance Captcha
Enabled
Timeout144 s
· Provider task typeBinanceTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "BINANCE", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "login", // The current native Binance captcha bizId/bizType/bizCode (for example login), paired with the same validateId. It is not a Google reCAPTCHA or hCaptcha public key. Check the actual precheck captchaType before selecting this product; a Binance page may present another provider.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Actual browser User-Agent from the matching target session.
"validateId": "CURRENT_VALIDATE_ID", // Fresh validateId/securityId/securityCheckResponseValidateId from the same current target precheck or captcha response. Do not reuse another session or a stale value.
"proxyType": "http", // Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP without scheme, credentials or port.
"proxyLogin": "YOUR_PROXYLOGIN", // Optional proxy authentication username. Provide username and password together.
"proxyPassword": "YOUR_PROXYPASSWORD", // Optional password for that same proxy, paired with proxyLogin.
"proxyPort": 8080 // Proxy TCP port, integer 1 to 65535.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "BINANCE", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN", // Verification token to submit to the target website.
"userAgent": "EXAMPLE_USERAGENT" // Browser User-Agent used to obtain the answer.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
Yes
The current native Binance captcha bizId/bizType/bizCode (for example login), paired with the same validateId. It is not a Google reCAPTCHA or hCaptcha public key. Check the actual precheck captchaType before selecting this product; a Binance page may present another provider.
adapter.userAgent
string
No
Actual browser User-Agent from the matching target session.
adapter.validateId
string
Yes
Fresh validateId/securityId/securityCheckResponseValidateId from the same current target precheck or captcha response. Do not reuse another session or a stale value.
adapter.proxyType
string
No
Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
adapter.proxyAddress
string
No
Reachable proxy hostname or IP without scheme, credentials or port.
adapter.proxyLogin
string
No
Optional proxy authentication username. Provide username and password together.
adapter.proxyPassword
string
No
Optional password for that same proxy, paired with proxyLogin.
adapter.proxyPort
integer
No
Proxy TCP port, integer 1 to 65535.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
data.solution.userAgent
string
Browser User-Agent used to obtain the answer.
HUNT
Hunt Captcha
Enabled
Timeout144 s
· Provider task typeHuntTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "HUNT", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY", // Legacy field retained for request compatibility; ignored upstream. It cannot replace the newly documented required product parameters.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Actual browser User-Agent from the matching target session.
"apiGetLib": "https://example.com/hd-api/external/apps/APP_ID/api.js", // Full fresh URL of the Hunt api.js loaded by the current target page.
"data": "CURRENT_META_TOKEN", // Second-stage meta.token returned by the target after the request with X-HD; omit for the first-stage fingerprint task.
"proxyType": "http", // Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP without scheme, credentials or port.
"proxyLogin": "YOUR_PROXYLOGIN", // Optional proxy authentication username. Provide username and password together.
"proxyPassword": "YOUR_PROXYPASSWORD", // Optional password for that same proxy, paired with proxyLogin.
"proxyPort": 8080 // Proxy TCP port, integer 1 to 65535.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "HUNT", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
No
Legacy field retained for request compatibility; ignored upstream. It cannot replace the newly documented required product parameters.
adapter.userAgent
string
No
Actual browser User-Agent from the matching target session.
adapter.apiGetLib
string
Yes
Full fresh URL of the Hunt api.js loaded by the current target page.
adapter.data
string
No
Second-stage meta.token returned by the target after the request with X-HD; omit for the first-stage fingerprint task.
adapter.proxyType
string
Yes
Proxy protocol: http, socks4 or socks5; use the same actual egress as the target session when bound.
adapter.proxyAddress
string
Yes
Reachable proxy hostname or IP without scheme, credentials or port.
adapter.proxyLogin
string
No
Optional proxy authentication username. Provide username and password together.
adapter.proxyPassword
string
No
Optional password for that same proxy, paired with proxyLogin.
adapter.proxyPort
integer
Yes
Proxy TCP port, integer 1 to 65535.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
TSPD
TSPD Captcha
Enabled
Timeout144 s
· Provider task typeTspdTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "TSPD", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"userAgent": "YOUR_BROWSER_USER_AGENT", // User-Agent of the browser that obtained the challenge.
"tspdCookie": "YOUR_FRESH_TSPD_COOKIE", // TSPD cookie from the challenge session.
"htmlPageBase64": "YOUR_FRESH_CHALLENGE_HTML_BASE64", // Base64-encoded full HTML of the current challenge page.
"proxyType": "http", // Proxy protocol, for example http.
"proxyAddress": "YOUR_PROXY_HOST", // Proxy hostname or IP address.
"proxyPort": 8080, // Proxy port.
"proxyLogin": "YOUR_PROXY_LOGIN", // Proxy username, when authentication is required.
"proxyPassword": "YOUR_PROXY_PASSWORD" // Proxy password, when authentication is required.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "TSPD", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"Domains": { // Verification results grouped by target domain.
"example.com": { // Product-specific answer field; use it according to the target website verification protocol.
"Cookies": { // Verification cookies for the target domain.
"TS386a400d029": "EXAMPLE_TS386A400D029", // Product-specific answer field; use it according to the target website verification protocol.
"TS386a400d078": "EXAMPLE_TS386A400D078", // Product-specific answer field; use it according to the target website verification protocol.
"tspd_101_DID": "EXAMPLE_TSPD_101_DID" // Product-specific answer field; use it according to the target website verification protocol.
}
}
}
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.userAgent
string
No
User-Agent of the browser that obtained the challenge.
adapter.tspdCookie
string
Yes
TSPD cookie from the challenge session.
adapter.htmlPageBase64
string
Yes
Base64-encoded full HTML of the current challenge page.
adapter.proxyType
string
Yes
Proxy protocol, for example http.
adapter.proxyAddress
string
Yes
Proxy hostname or IP address.
adapter.proxyPort
integer
Yes
Proxy port.
adapter.proxyLogin
string
No
Proxy username, when authentication is required.
adapter.proxyPassword
string
No
Proxy password, when authentication is required.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.Domains
object
Verification results grouped by target domain.
data.solution.Domains.example.com
object
Product-specific answer field; use it according to the target website verification protocol.
Product-specific answer field; use it according to the target website verification protocol.
BASILISK
Basilisk Captcha
Enabled
Timeout144 s
· Provider task typeBasiliskTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "BASILISK", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY", // Public site key from the target page.
"userAgent": "YOUR_BROWSER_USER_AGENT" // User-Agent of the browser that obtained the challenge.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "BASILISK", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"data": { // Product-specific answer field; use it according to the target website verification protocol.
"captcha_response": "EXAMPLE_CAPTCHA_RESPONSE" // Verification token to submit to the target website.
},
"headers": { // HTTP headers used with the verification result.
"User-Agent": "EXAMPLE_USER_AGENT" // Browser User-Agent used to obtain the answer.
}
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
Yes
Public site key from the target page.
adapter.userAgent
string
No
User-Agent of the browser that obtained the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.data
object
Product-specific answer field; use it according to the target website verification protocol.
data.solution.data.captcha_response
string
Verification token to submit to the target website.
data.solution.headers
object
HTTP headers used with the verification result.
data.solution.headers.User-Agent
string
Browser User-Agent used to obtain the answer.
IMPERVA
Imperva Captcha
Enabled
Timeout144 s
· Provider task typeImpervaTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "IMPERVA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the actual Imperva-protected page. Collect the script and cookies from this same target session.
"websiteKey": "YOUR_WEBSITEKEY", // Deprecated compatibility field, ignored for Imperva. A site key cannot replace the required script, cookies or proxy.
"incapsulaScriptUrl": "/_Incapsula_Resource?SWJIYLWA=YOUR_CURRENT_SCRIPT_ID", // Fresh Incapsula script URL or path from the target page/network, including its query string; for example /_Incapsula_Resource?SWJIYLWA=... . Do not substitute a site key.
"incapsulaCookies": "incap_ses_YOUR_ID=YOUR_SESSION_VALUE; visid_incap_YOUR_ID=YOUR_VISITOR_VALUE", // Cookie-header string from the same fresh target session, including its actual incap_ses_* and visid_incap_* values where issued. Preserve values; do not copy example cookies.
"reese84UrlEndpoint": "YOUR_REESE84URLENDPOINT", // Optional actual Reese84 endpoint observed in target network requests, commonly ending in ?d=the-target-host. Omit when not present; do not invent it.
"userAgent": "YOUR_BROWSER_USER_AGENT", // Actual User-Agent used to collect this session. Keep it consistent when applying the returned cookies, or use the returned User-Agent when supplied.
"proxyType": "http", // Required upstream proxy protocol: http, socks4 or socks5. This Imperva integration has no documented proxyless mode.
"proxyAddress": "YOUR_PROXY_HOST", // Reachable proxy hostname or IP, separate from its port and credentials. Use the same proxy egress for challenge collection, solving and subsequent target requests.
"proxyPort": 8080, // Proxy TCP port, an integer from 1 to 65535; not a URL or a host:port string.
"proxyLogin": "YOUR_PROXYLOGIN", // Username for the supplied proxy when authentication is required; not your Nex Captcha API key.
"proxyPassword": "YOUR_PROXYPASSWORD" // Password for the supplied proxy when authentication is required. Preserve the original credential.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "IMPERVA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"domains": { // Verification results grouped by target domain.
"https://site-example.com": { // Product-specific answer field; use it according to the target website verification protocol.
"cookies": { // Verification cookies for the target domain.
"___utmvc": "EXAMPLE____UTMVC" // Product-specific answer field; use it according to the target website verification protocol.
}
}
}
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the actual Imperva-protected page. Collect the script and cookies from this same target session.
adapter.websiteKey
string
No
Deprecated compatibility field, ignored for Imperva. A site key cannot replace the required script, cookies or proxy.
adapter.incapsulaScriptUrl
string
Yes
Fresh Incapsula script URL or path from the target page/network, including its query string; for example /_Incapsula_Resource?SWJIYLWA=... . Do not substitute a site key.
adapter.incapsulaCookies
string
Yes
Cookie-header string from the same fresh target session, including its actual incap_ses_* and visid_incap_* values where issued. Preserve values; do not copy example cookies.
adapter.reese84UrlEndpoint
string
No
Optional actual Reese84 endpoint observed in target network requests, commonly ending in ?d=the-target-host. Omit when not present; do not invent it.
adapter.userAgent
string
No
Actual User-Agent used to collect this session. Keep it consistent when applying the returned cookies, or use the returned User-Agent when supplied.
adapter.proxyType
string
Yes
Required upstream proxy protocol: http, socks4 or socks5. This Imperva integration has no documented proxyless mode.
adapter.proxyAddress
string
Yes
Reachable proxy hostname or IP, separate from its port and credentials. Use the same proxy egress for challenge collection, solving and subsequent target requests.
adapter.proxyPort
integer
Yes
Proxy TCP port, an integer from 1 to 65535; not a URL or a host:port string.
adapter.proxyLogin
string
No
Username for the supplied proxy when authentication is required; not your Nex Captcha API key.
adapter.proxyPassword
string
No
Password for the supplied proxy when authentication is required. Preserve the original credential.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.domains
object
Verification results grouped by target domain.
data.solution.domains.https://site-example.com
object
Product-specific answer field; use it according to the target website verification protocol.
Product-specific answer field; use it according to the target website verification protocol.
ALIBABA
Alibaba Captcha
Enabled
Timeout144 s
· Provider task typeAlibabaTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "ALIBABA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"sceneId": "YOUR_SCENEID", // Alibaba scene identifier.
"prefix": "YOUR_PREFIX", // Alibaba challenge prefix.
"userId": "YOUR_USERID", // User identifier supplied by the target integration.
"userUserId": "YOUR_USERUSERID", // User identifier supplied by the target integration.
"verifyType": "YOUR_VERIFYTYPE", // Target verification mode.
"region": "YOUR_REGION", // Target verification region.
"userCertifyId": "YOUR_USERCERTIFYID", // Target verification identifier.
"apiGetLib": "YOUR_APIGETLIB", // Target API library URL.
"userAgent": "YOUR_BROWSER_USER_AGENT" // User-Agent of the browser that obtained the challenge.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "ALIBABA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"data": { // Product-specific answer field; use it according to the target website verification protocol.
"tokens": "{\"sceneId\":\"EXAMPLE_SCENE_ID\",\"certifyId\":\"EXAMPLE_CERTIFY_ID\",\"deviceToken\":\"EXAMPLE_DEVICE_TOKEN\",\"data\":\"EXAMPLE_DATA\"}" // Verification token to submit to the target website.
}
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.sceneId
string
Yes
Alibaba scene identifier.
adapter.prefix
string
Yes
Alibaba challenge prefix.
adapter.userId
string
No
User identifier supplied by the target integration.
adapter.userUserId
string
No
User identifier supplied by the target integration.
adapter.verifyType
string
No
Target verification mode.
adapter.region
string
No
Target verification region.
adapter.userCertifyId
string
No
Target verification identifier.
adapter.apiGetLib
string
No
Target API library URL.
adapter.userAgent
string
No
User-Agent of the browser that obtained the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.data
object
Product-specific answer field; use it according to the target website verification protocol.
data.solution.data.tokens
string
Verification token to submit to the target website.
YANDEX_SMARTCAPTCHA
Yandex SmartCaptcha
Enabled
Timeout144 s
· Provider task typeYandexSmartCaptchaTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "YANDEX_SMARTCAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the page containing the challenge.
"websiteKey": "YOUR_WEBSITEKEY", // Public site key from the target page.
"userAgent": "YOUR_BROWSER_USER_AGENT", // User-Agent of the browser that obtained the challenge.
"cookies": "YOUR_COOKIES", // Cookies from the browser session that obtained the challenge.
"proxyType": "http", // Proxy protocol, for example http.
"proxyAddress": "YOUR_PROXY_HOST", // Proxy hostname or IP address.
"proxyPort": 8080, // Proxy port.
"proxyLogin": "YOUR_PROXYLOGIN", // Proxy username, when authentication is required.
"proxyPassword": "YOUR_PROXYPASSWORD" // Proxy password, when authentication is required.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "YANDEX_SMARTCAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"token": "EXAMPLE_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the page containing the challenge.
adapter.websiteKey
string
Yes
Public site key from the target page.
adapter.userAgent
string
No
User-Agent of the browser that obtained the challenge.
adapter.cookies
string
No
Cookies from the browser session that obtained the challenge.
adapter.proxyType
string
No
Proxy protocol, for example http.
adapter.proxyAddress
string
No
Proxy hostname or IP address.
adapter.proxyPort
integer
No
Proxy port.
adapter.proxyLogin
string
No
Proxy username, when authentication is required.
adapter.proxyPassword
string
No
Proxy password, when authentication is required.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.token
string
Verification token to submit to the target website.
RUSSIAN_CAPTCHA
Russian Captcha
Enabled
Timeout144 s
· Provider task typeImageToTextTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "RUSSIAN_CAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"phrase": false, // Whether the answer contains multiple words.
"caseSensitive": false, // Whether the answer is case-sensitive.
"numeric": false, // Character recognition mode.
"math": false, // Whether to calculate the expression shown in the image.
"minLength": 1, // Minimum answer length.
"maxLength": 1, // Maximum answer length.
"comment": "YOUR_COMMENT", // Question or instructions for solving the challenge.
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // Base64-encoded image instructions.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "RUSSIAN_CAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"text": "EXAMPLE_ANSWER" // Recognized text or text answer.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.phrase
boolean
No
Whether the answer contains multiple words.
adapter.caseSensitive
boolean
No
Whether the answer is case-sensitive.
adapter.numeric
boolean
No
Character recognition mode.
adapter.math
boolean
No
Whether to calculate the expression shown in the image.
adapter.minLength
integer
No
Minimum answer length.
adapter.maxLength
integer
No
Maximum answer length.
adapter.comment
string
No
Question or instructions for solving the challenge.
adapter.imgInstructions
string
No
Base64-encoded image instructions.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.text
string
Recognized text or text answer.
CHINESE_CAPTCHA
Chinese Captcha
Enabled
Timeout144 s
· Provider task typeImageToTextTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "CHINESE_CAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"phrase": false, // Whether the answer contains multiple words.
"caseSensitive": false, // Whether the answer is case-sensitive.
"numeric": false, // Character recognition mode.
"math": false, // Whether to calculate the expression shown in the image.
"minLength": 1, // Minimum answer length.
"maxLength": 1, // Maximum answer length.
"comment": "YOUR_COMMENT", // Question or instructions for solving the challenge.
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // Base64-encoded image instructions.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "CHINESE_CAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"text": "EXAMPLE_ANSWER" // Recognized text or text answer.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.phrase
boolean
No
Whether the answer contains multiple words.
adapter.caseSensitive
boolean
No
Whether the answer is case-sensitive.
adapter.numeric
boolean
No
Character recognition mode.
adapter.math
boolean
No
Whether to calculate the expression shown in the image.
adapter.minLength
integer
No
Minimum answer length.
adapter.maxLength
integer
No
Maximum answer length.
adapter.comment
string
No
Question or instructions for solving the challenge.
adapter.imgInstructions
string
No
Base64-encoded image instructions.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.text
string
Recognized text or text answer.
NUMBER_CAPTCHA
Number Captcha
Enabled
Timeout144 s
· Provider task typeImageToTextTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "NUMBER_CAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"phrase": false, // Whether the answer contains multiple words.
"caseSensitive": false, // Whether the answer is case-sensitive.
"numeric": false, // Character recognition mode.
"math": false, // Whether to calculate the expression shown in the image.
"minLength": 1, // Minimum answer length.
"maxLength": 1, // Maximum answer length.
"comment": "YOUR_COMMENT", // Question or instructions for solving the challenge.
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // Base64-encoded image instructions.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "NUMBER_CAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"text": "EXAMPLE_ANSWER" // Recognized text or text answer.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.phrase
boolean
No
Whether the answer contains multiple words.
adapter.caseSensitive
boolean
No
Whether the answer is case-sensitive.
adapter.numeric
boolean
No
Character recognition mode.
adapter.math
boolean
No
Whether to calculate the expression shown in the image.
adapter.minLength
integer
No
Minimum answer length.
adapter.maxLength
integer
No
Maximum answer length.
adapter.comment
string
No
Question or instructions for solving the challenge.
adapter.imgInstructions
string
No
Base64-encoded image instructions.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.text
string
Recognized text or text answer.
MATH_CAPTCHA
Math Captcha
Enabled
Timeout144 s
· Provider task typeImageToTextTask
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "MATH_CAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"phrase": false, // Whether the answer contains multiple words.
"caseSensitive": false, // Whether the answer is case-sensitive.
"numeric": false, // Character recognition mode.
"math": false, // Whether to calculate the expression shown in the image.
"minLength": 1, // Minimum answer length.
"maxLength": 1, // Maximum answer length.
"comment": "YOUR_COMMENT", // Question or instructions for solving the challenge.
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // Base64-encoded image instructions.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "MATH_CAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"text": "EXAMPLE_ANSWER" // Recognized text or text answer.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
Yes
Base64-encoded image or audio content.
adapter.phrase
boolean
No
Whether the answer contains multiple words.
adapter.caseSensitive
boolean
No
Whether the answer is case-sensitive.
adapter.numeric
boolean
No
Character recognition mode.
adapter.math
boolean
No
Whether to calculate the expression shown in the image.
adapter.minLength
integer
No
Minimum answer length.
adapter.maxLength
integer
No
Maximum answer length.
adapter.comment
string
No
Question or instructions for solving the challenge.
adapter.imgInstructions
string
No
Base64-encoded image instructions.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.text
string
Recognized text or text answer.
CUSTOM
Custom Captcha
Enabled
Timeout144 s
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "CUSTOM", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"body": "BASE64_CONTENT", // Base64-encoded image or audio content.
"comment": "YOUR_COMMENT" // Question or instructions for solving the challenge.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "CUSTOM", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": {} // Product answer when SUCCEEDED; empty while processing or on failure.
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Solution fields are not documented yet. This example shows the response envelope only.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.body
string
No
Base64-encoded image or audio content.
adapter.comment
string
No
Question or instructions for solving the challenge.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
HCAPTCHA
hCaptcha
Enabled
Timeout600 s
· Provider task typeHCaptchaTaskProxyless
Request example
POST /api/validator/create.cgi · JSONC
{
"productCode": "HCAPTCHA", // Product code matching the adapter parameters.
"adapter": { // Product-specific parameter object.
"websiteURL": "https://example.com/register", // Full URL of the target page containing the current hCaptcha widget; not the hcaptcha.com iframe URL.
"websiteKey": "YOUR_WEBSITEKEY" // Public hCaptcha sitekey from the current target widget data-sitekey or hcaptcha.render configuration. Never use a reCAPTCHA key or the account secret.
}
}
Request headers: apiKey: YOUR_API_KEY
Comments explain the fields. Copy produces valid JSON without comments.
Response example
POST /api/validator/query.cgi · JSONC
{
"code": 0, // Business result code: 0 means success; other values indicate an error.
"msg": "Success", // Result message; may be empty on success.
"data": { // Response data; may be null on an error.
"taskId": "11111111-1111-4111-8111-111111111111", // Task ID returned by task creation.
"productCode": "HCAPTCHA", // Product code matching the adapter parameters.
"state": "SUCCEEDED", // Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
"solution": { // Product answer when SUCCEEDED; empty while processing or on failure.
"gRecaptchaResponse": "EXAMPLE_HCAPTCHA_TOKEN" // Verification token to submit to the target website.
}
}
}
Creating a task returns its ID and initial state. Query the result or use WebSocket to receive the completed answer shown below.
Solution fields are not documented yet. This example shows the response envelope only.
Request parameters
Field
Type
Required
Description
productCode
string
Yes
Product code matching the adapter parameters.
adapter
object
Yes
Product-specific parameter object.
adapter.websiteURL
string
Yes
Full URL of the target page containing the current hCaptcha widget; not the hcaptcha.com iframe URL.
adapter.websiteKey
string
Yes
Public hCaptcha sitekey from the current target widget data-sitekey or hcaptcha.render configuration. Never use a reCAPTCHA key or the account secret.
Response parameters
Field
Type
Description
code
integer
Business result code: 0 means success; other values indicate an error.
msg
string
Result message; may be empty on success.
data
object | null
Response data; may be null on an error.
data.taskId
string
Task ID returned by task creation.
data.productCode
string
Product code matching the adapter parameters.
data.state
string
Task state: CREATED, SUBMITTING, PROCESSING, SUCCEEDED, FAILED or EXPIRED.
data.solution
object
Product answer when SUCCEEDED; empty while processing or on failure.
data.failure
object | omitted
Public diagnosis for FAILED/EXPIRED only; no raw provider messages. Follow the failure handling guide.
data.failure.code
string
Failure code
data.failure.nextAction
string
Next action
data.solution.gRecaptchaResponse
string
Verification token to submit to the target website.