Skip to content
capzy
Shopee Captcha
ShopeeSliderTaskProxyLess

Shopee Captcha Solver, solved in 5.0s.

Solve Shopee's custom line-slide and curve-slide puzzles. Send the puzzle + piece images; get back the exact drag to apply in your own session.

Avg Speed~5.0s
Success99%+
Cost / 1k$2.00
Throughput12/m

Shopee uses its own slider captcha (not GeeTest): a background image with a gap and a piece you drag to fill it. It comes in two shapes — a straight line-slide and an arced curve-slide where the piece follows a rotated trajectory.

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": "ShopeeSliderTaskProxyLess",
        "image": "<base64 puzzle background>",
        "pieceImage": "<base64 piece>"
    }
}).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)

Using the result

Shopee validates the drag client-side, so the answer is the geometry — slide the piece slideOffset pixels in your own session.

use_result.py
# Step 3 — drag the piece by slideOffset pixels (or use the 0-1 proportion)
sol = result["solution"]
offset_px = sol["slideOffset"]              # absolute px, e.g. 186
proportion = sol["slideXProportion"]        # same as a 0-1 fraction of the track
# e.g. Playwright: mouse.down(); mouse.move(start_x + offset_px, y); mouse.up()

1. Send Payload

Dispatch your ShopeeSliderTaskProxyLess to our processing cluster via the secure API endpoint.

2. Solving Engine

This is an image-in / answer-out solver. You extract the puzzle background + piece images from the page and send them; our proprietary solving machine locates the gap and returns the exact drag proportion / pixel offset — typically in under 50ms. Your own automation performs the drag, so no proxy or token binding is involved.

3. Get Result

Poll getTaskResult for the validated token, then finalize your automated request.

Using your own proxy

Use ShopeeSliderTask instead of ShopeeSliderTaskProxyLess to route the solve through your own proxy — useful when the target site checks that the solving IP matches the submitting IP.

solve_proxy.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": "ShopeeSliderTask",
        "image": "<base64 puzzle background>",
        "pieceImage": "<base64 piece>",
        "proxyType": "http",
        "proxyAddress": "123.45.67.89",
        "proxyPort": "8080",
        "proxyLogin": "user",
        "proxyPassword": "pass"
    }
}).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)

Additional proxy parameters

proxyTypetypestringreqyesProxy protocol: http, https, socks4, or socks5
proxyAddresstypestringreqyesProxy IP address or hostname
proxyPorttypenumberreqyesProxy port number
proxyLogintypestringreqnoProxy username (if auth required)
proxyPasswordtypestringreqnoProxy password (if auth required)
userAgenttypestringreqnoUser-Agent string to use. Must match the UA you use when submitting the token

Task Parameters

API Spec
typetypestringreqyesShopeeSliderTaskProxyLess (image-only, default) or ShopeeSliderTask
imagetypestringreqyesBase64 of the puzzle background image (the one with the gap). Alias: puzzle_image_b64.
pieceImagetypestringreqyesBase64 of the sliding piece image. Alias: piece_image_b64.
challengeTypetypestringreqno"line" (default) or "curve" for the arced-trajectory variant.

Response Shape

slideXProportiontypenumberHow far to drag as a 0-1 fraction of the puzzle width (primary answer). Multiply by your rendered track width for pixels.
slideOffsettypenumberPixel offset of the gap from the left edge
pixelsFromSliderOrigintypenumberCurve variant: pixels to drag along the arced trajectory
puzzleWidthtypenumberDetected puzzle width in pixels (for scaling)
enginetypestringOpaque solver-engine tag (versioning only)

Example response

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "slideXProportion": 0.4523,
    "slideOffset": 180,
    "puzzleWidth": 400,
    "engine": "cvx-2"
  }
}

Error response

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

Features

Handles both line-slide and curve-slide variants
Image-in / answer-out — you drive the drag in your own session
Proprietary solving machine — sub-50ms gap detection
No proxy required — stateless image solve

Pricing & Stats

Per 1,000 solves$2.00
Avg solve time~5.0s
Success rate99%+
Throughput12/m

Start solving shopee captcha.

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

Frequently asked questions