API Documentation

Simple, powerful, and affordable. Only 1¢ per solve.

Authentication

All API requests require your API key in the X-QEX-SOLVER-KEY header.

X-QEX-SOLVER-KEY: QEX-CAP-XXXXXXXXXXXXXXXXXXXX

Get your API key from the Dashboard.

Solve CAPTCHA

Send an image and get the solution. Cost: 1¢ per successful solve.

POST /api/v1/solve
Headers:
  X-QEX-SOLVER-KEY: QEX-CAP-xxxxxxxx
  Content-Type: application/json

Body:
{
  "image_base64": "data:image/png;base64,...",
  "image_format": "png",
  "request_id": "optional_custom_id"
}

Supported formats: PNG, JPG, JPEG, GIF, WEBP.

Success Response

{
  "success": true,
  "request_id": "req_123456",
  "engine_id": "QEX-AI-ENGINE",
  "timestamp": "2024-01-01T00:00:00Z",
  "solution_type": "text",
  "solution_text": "ABC123",
  "coordinates": {"x": 150, "y": 200},
  "confidence": 0.95,
  "processing_time": 1.5,
  "captcha_type": "imagetotext"
}

For image selection CAPTCHAs, coordinates is provided. For text CAPTCHAs, solution_text is provided.

Error Response

{
  "success": false,
  "error": "Insufficient balance",
  "request_id": "req_123456",
  "engine_id": "QEX-AI-ENGINE",
  "timestamp": "2024-01-01T00:00:00Z"
}

Common errors: 401 (missing key), 403 (invalid key), 402 (insufficient balance), 400 (invalid image), 502 (solver unavailable).

Pricing

1¢ (USD) per successful solve – deducted from your balance.

  • Pay only for successful solves
  • No monthly fees
  • Volume discounts available
View Packages

Rate Limits

No hard rate limits. We trust you to be reasonable. For high-volume customers (>10,000 solves/day), please contact us for dedicated support.

Code Examples

Python

import requests
import base64

with open("captcha.png", "rb") as f:
    image_base64 = base64.b64encode(f.read()).decode()

response = requests.post(
    "https://qexsolver.xyz/api/v1/solve",
    headers={
        "X-QEX-SOLVER-KEY": "YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    json={
        "image_base64": image_base64,
        "image_format": "png"
    }
)

result = response.json()
if result["success"]:
    print("Solution:", result.get("solution_text") or result.get("coordinates"))
else:
    print("Error:", result["error"])

JavaScript

const response = await fetch("https://qexsolver.xyz/api/v1/solve", {
  method: "POST",
  headers: {
    "X-QEX-SOLVER-KEY": "YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    image_base64: "data:image/png;base64,...",
    image_format: "png"
  })
});

const data = await response.json();
if (data.success) {
  console.log("Solution:", data.solution_text || data.coordinates);
} else {
  console.error("Error:", data.error);
}

Need help? Our live chat is available 24/7.

Open Chat