Skip to content
../products
Coordinate ClickCoordinatesTask

Coordinate Click Solver, solved in 5.0s.

Send an image + prompt, get back click coordinates. Works for any click-based captcha — Capzy's proprietary classifier handles arbitrary text prompts.

$2.00per 1,000
~5.0savg solve
99%+success
12/mthroughput
body: /9j/4AAQSkZJRgABAQ...…0.00s
POST/createTask type=CoordinatesTask
taskId tsk_3z8tjela
POLL/getTaskResult status=processing
status ready
token 0x9aa22cf803516...
type: CoordinatesTask● running on production solvers

What is Coordinate Click?

A generic task for captchas that require clicking at specific points on an image. Send the image and a text description of what to click, and our AI returns the (x,y) coordinates. Useful for custom captchas ('click all fire hydrants'), Chinese character selection, and icon matching puzzles.

How it works

1

Send Task

POST your CoordinatesTask with the target URL and sitekey to our API. We'll queue it instantly.

2

We Solve

Capzy's proprietary classifier returns the (x, y) coordinates that match your prompt. Useful for accessibility tooling and authorized image-analysis workflows.

3

Get Token

Poll getTaskResult — when status is 'ready', the solution contains the token to inject into the target page.

Quick integration

solve.py
import requests, time

API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"

# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
        "type": "CoordinatesTask",
        "body": "/9j/4AAQSkZJRgABAQ...",
        "comment": "click all traffic lights"
    }
}).json()

task_id = task["taskId"]
print(f"Task created: {task_id}")

# Step 2: Poll for result
while True:
    result = requests.post(f"{API}/getTaskResult", json={
        "clientKey": KEY,
        "taskId": task_id
    }).json()

    if result["status"] == "ready":
        print("Solved!", result["solution"])
        break
    elif result["status"] == "failed":
        print("Failed:", result.get("errorDescription"))
        break

    time.sleep(1)

# Step 3: Coordinates — click each (x,y) point in your browser session
for pt in result["solution"]["coordinates"]:
    # e.g. Selenium: ActionChains(driver).move_by_offset(pt["x"], pt["y"]).click().perform()
    print(pt["x"], pt["y"])

Task parameters

typetypestringreqyesCoordinatesTask
bodytypestringreqyesBase64-encoded image
commenttypestringreqyesText instruction describing what to click (e.g. 'click all traffic lights')

Solution response

coordinatestypearrayArray of `{x, y}` click points in image-pixel coordinates, relative to the top-left of the original image. Apply directly via mouse / touch events.
clickTargetstypearrayAlias of `coordinates` — same data under the legacy field name. Use whichever your downstream code expects; we emit both.

Example response

Full getTaskResult response shape. The fields in the table above describe what's inside solution — the outer envelope (errorId, status) is identical for every captcha type.

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "coordinates": [
      {
        "x": 120,
        "y": 240
      },
      {
        "x": 280,
        "y": 390
      }
    ],
    "clickTargets": [
      {
        "x": 120,
        "y": 240
      },
      {
        "x": 280,
        "y": 390
      }
    ]
  }
}

Error response

Failures use the same envelope with errorId: 1 plus errorCode + errorDescription. See the error-code reference for the full list.

{
  "errorId": 1,
  "errorCode": "ERROR_CAPTCHA_UNSOLVABLE",
  "errorDescription": "Solver gave up — automatically refunded."
}

Pending response

While the solver is still working, getTaskResult returns status: "processing". Poll every 1–2 seconds until ready or failed.

{
  "errorId": 0,
  "status": "processing"
}

Features

Capzy proprietary object detection + classification
Works with any text prompt
Returns multiple coordinates
< 3 second solve time

task types

proxyless: CoordinatesTask

Frequently asked questions

start solving coordinate click.

$0.10 in free credits — no card. ~250 free solves to test before you spend.