Create a job
curl --request POST \
--url https://api.bapsolver.xyz/v1/jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"kind": "recap_v3",
"url": "https://example.com/login",
"siteKey": "6Lc...",
"action": "login"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
kind: 'recap_v3',
url: 'https://example.com/login',
siteKey: '6Lc...',
action: 'login'
})
};
fetch('https://api.bapsolver.xyz/v1/jobs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.bapsolver.xyz/v1/jobs"
payload = {
"kind": "recap_v3",
"url": "https://example.com/login",
"siteKey": "6Lc...",
"action": "login"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"ok": true,
"requestId": "0f6c1d2e-8a4b-4c3d-9e1f-2a3b4c5d6e7f",
"data": {
"id": "3b1f7c9a-2d4e-4f6a-8b0c-1d2e3f4a5b6c",
"kind": "recap_v3",
"url": "https://www.example.com/login",
"siteKey": "YOUR_SITE_KEY",
"action": "login",
"status": "queued",
"createdAt": "2026-10-25T09:30:00.000Z"
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}Jobs
Create a job
Returns at once with 202 Accepted and the job in the queued state. The Location header holds the job path. Read the job with Get a job until it is done or failed.
POST
/
v1
/
jobs
Create a job
curl --request POST \
--url https://api.bapsolver.xyz/v1/jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"kind": "recap_v3",
"url": "https://example.com/login",
"siteKey": "6Lc...",
"action": "login"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
kind: 'recap_v3',
url: 'https://example.com/login',
siteKey: '6Lc...',
action: 'login'
})
};
fetch('https://api.bapsolver.xyz/v1/jobs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.bapsolver.xyz/v1/jobs"
payload = {
"kind": "recap_v3",
"url": "https://example.com/login",
"siteKey": "6Lc...",
"action": "login"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"ok": true,
"requestId": "0f6c1d2e-8a4b-4c3d-9e1f-2a3b4c5d6e7f",
"data": {
"id": "3b1f7c9a-2d4e-4f6a-8b0c-1d2e3f4a5b6c",
"kind": "recap_v3",
"url": "https://www.example.com/login",
"siteKey": "YOUR_SITE_KEY",
"action": "login",
"status": "queued",
"createdAt": "2026-10-25T09:30:00.000Z"
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}Authorizations
Your API token. Send it on every /v1 request as Authorization: Bearer <API_TOKEN>.
Body
application/json
recap_v3: reCAPTCHA v3. recap_v3_enterprise: reCAPTCHA Enterprise. The _proxy kinds run through the proxy sent with the job; the others take none.
Available options:
recap_v3, recap_v3_enterprise, recap_v3_proxy, recap_v3_enterprise_proxy The page the challenge is on; the token is for its origin.
Maximum string length:
4096Required string length:
1 - 256The reCAPTCHA v3 action.
Required string length:
1 - 100Pattern:
^[A-Za-z0-9/_]+$Proxy for the _proxy kinds: a pool id or IP:PORT:USER:PASS. Credentials are never echoed back.
Required string length:
3 - 512