---
name: xsolve
description: Use Xsolve to solve Cloudflare Turnstile and Cloudflare challenge/interstitial tasks, check account balance, and migrate clients from Solverify, NSLSolver, CapSolver, 2Captcha, Anti-Captcha, CapMonster, NextCaptcha, EzCaptcha, NopeCHA, or DeathByCaptcha by changing the API base URL and API key.
compatibility: Works with HTTPS clients that can send JSON requests and API-key headers.
metadata:
  docs: https://docs.xsolve.me
  api_base_url: https://api.xsolve.me
---

# Xsolve API Skill

Use this skill when a user wants an AI agent to integrate with Xsolve, migrate an existing CAPTCHA solver client to Xsolve, solve Cloudflare Turnstile, solve Cloudflare challenge/interstitial pages, or check Xsolve account usage.

## Safety

- Ask the user for their Xsolve API key if it is not already provided.
- Treat the API key as secret. Do not print it, commit it, log it, or store it in source code.
- Prefer environment variables such as `XSOLVE_API_KEY`.
- Do not invent sitekeys, proxies, challenge URLs, or API credentials.
- For Cloudflare challenge/interstitial tasks, use a proxy provided by the user.

## Base URL

Use:

```text
https://api.xsolve.me
```

Native Xsolve requests use the `X-Api-Key` header:

```text
X-Api-Key: <xsolve-api-key>
```

## Native Task Endpoint

Send solving tasks to:

```http
POST https://api.xsolve.me/task
```

### Turnstile

Use `mode: "turnstile"` for Cloudflare Turnstile.

Required fields:

- `mode`: `turnstile`
- `url`: page URL containing the Turnstile widget
- `sitekey`: Turnstile sitekey

Optional fields:

- `action`: Turnstile action value, only when present on the target widget
- `cdata`: Turnstile cData value, only when present on the target widget
- `proxy`: HTTP, HTTPS, or SOCKS5 proxy URL

Example:

```bash
curl --request POST \
  --url https://api.xsolve.me/task \
  --header "X-Api-Key: $XSOLVE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "mode": "turnstile",
    "url": "https://example.com",
    "sitekey": "0x4AAAAAAA..."
  }'
```

Successful response:

```json
{
  "token": "0....",
  "elapsed": "1.55s",
  "status": "completed"
}
```

### Cloudflare Challenge / Cloudflare Under attack Mode

Use `mode: "iuam"` for Cloudflare challenge, IUAM, or Cloudflare Under attack Mode pages.

Required fields:

- `mode`: `iuam`
- `url`: challenge page URL
- `proxy`: HTTP, HTTPS, or SOCKS5 proxy URL

Example:

```bash
curl --request POST \
  --url https://api.xsolve.me/task \
  --header "X-Api-Key: $XSOLVE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "mode": "iuam",
    "url": "https://example.com/cdn-cgi/challenge-platform/...",
    "proxy": "socks5://username:password@host:port"
  }'
```

Successful response:

```json
{
  "headers": {
    "Cookie": "cf_clearance=...",
    "User-Agent": "Mozilla/5.0 ..."
  },
  "ip": "127.0.0.1",
  "elapsed": "1.55s",
  "status": "completed"
}
```

## Balance Endpoint

Check balance and thread status with:

```http
GET https://api.xsolve.me/balance
```

Example:

```bash
curl --request GET \
  --url https://api.xsolve.me/balance \
  --header "X-Api-Key: $XSOLVE_API_KEY"
```

Response:

```json
{
  "balance": "12522",
  "threads": "150",
  "active_threads": "0",
  "success": true
}
```

If the user has an active Unlimited plan, stored balance is not deducted per successful solve.

## Migration Compatibility

For existing clients, keep their payload shape and change only:

- API base URL to `https://api.xsolve.me`
- API key value to the user's Xsolve API key

### Solverify-Compatible

Create a task:

```http
POST https://api.xsolve.me/createTask
```

Use `clientKey` with the Xsolve API key.

Supported task types:

- `turnstile`
- `interstitial`

Poll the result:

```http
POST https://api.xsolve.me/getTaskResult
```

Xsolve returns Solverify-style task results with `status: "completed"` when solved.

### CapSolver-Compatible

Create a task:

```http
POST https://api.xsolve.me/createTask
```

Use `clientKey` with the Xsolve API key.

Supported task types:

- `AntiTurnstileTaskProxyLess`
- `AntiTurnstileTask`
- `AntiCloudflareTask`

Poll the result:

```http
POST https://api.xsolve.me/getTaskResult
```

Xsolve returns CapSolver-style task results with `status: "ready"` when solved.

### Anti-Captcha, CapMonster, NextCaptcha, EzCaptcha, and 2Captcha JSON

These clients also use `/createTask` and `/getTaskResult` with `clientKey`.

Supported task types:

- `TurnstileTaskProxyless`
- `TurnstileTaskProxyLess`
- `TurnstileTask`
- `CloudFlareTurnstileTask`
- `CloudFlare5S`

Poll `/getTaskResult` until `status` is `ready`. The first poll can return `processing`.

### 2Captcha Classic

Create a task:

```http
GET/POST https://api.xsolve.me/in.php
```

Poll:

```http
GET/POST https://api.xsolve.me/res.php
```

Use the Xsolve API key as `key`, `method=turnstile`, plus `sitekey` and `pageurl`. Text responses use `OK|<id>` and `CAPCHA_NOT_READY`.

### NopeCHA-Compatible

Create a job with `POST https://api.xsolve.me/token` and poll `GET https://api.xsolve.me/token?key=...&id=...`. Balance is `GET https://api.xsolve.me/status`. `/v1/token` and `/v1/status` are also accepted.

### DeathByCaptcha-Compatible

Create a job with `POST https://api.xsolve.me/api/captcha` using `authtoken` or `password` set to the Xsolve API key and `type=12` with `turnstile_params`. Poll `GET https://api.xsolve.me/api/captcha/<id>`. Balance is `POST https://api.xsolve.me/api/user`.

### NSLSolver-Compatible

Use synchronous solving:

```http
POST https://api.xsolve.me/solve
```

Use the `X-API-Key` header with the Xsolve API key.

Supported task types:

- `turnstile`
- `cloudflare-challenge`
- `challenge`

## Compatibility Balance

For Solverify or CapSolver-style clients, use:

```http
POST https://api.xsolve.me/getBalance
```

Example:

```bash
curl --request POST \
  --url https://api.xsolve.me/getBalance \
  --header "Content-Type: application/json" \
  --data '{
    "clientKey": "'"$XSOLVE_API_KEY"'"
  }'
```

Response:

```json
{
  "errorId": 0,
  "balance": 10.5,
  "requests": 131250
}
```

## Agent Workflow

1. Identify whether the user wants native Xsolve integration or migration compatibility.
2. Ask for the Xsolve API key if missing.
3. Choose the right endpoint:
   - Native solving: `/task`
   - Solverify, CapSolver, Anti-Captcha, CapMonster, NextCaptcha, EzCaptcha, or 2Captcha JSON: `/createTask` and `/getTaskResult`
   - 2Captcha classic: `/in.php` and `/res.php`
   - NopeCHA: `/token` and `/status`
   - DeathByCaptcha: `/api/captcha` and `/api/user`
   - NSLSolver migration: `/solve`
   - Balance: `/balance` or `/getBalance`
4. Build the smallest valid JSON body for the selected task type.
5. Send requests over HTTPS.
6. Return only the useful result: Turnstile token, Cloudflare clearance cookie plus user agent, balance data, or a concise error.

## Docs Index

Read the docs index before exploring further:

Useful pages:

- Native task API: `https://docs.xsolve.me`
- Migration compatibility: `https://docs.xsolve.me/migration`
- Balance API: `https://docs.xsolve.me/balance`
