Skip to main content
Skip to content
ScrapingBuddyDevelopers
On this page Pricing & wallet credit

CAPTCHA API/Guides

Your first task

Make one request, wait for the answer, and read your first result. Start with a text question so you do not need to prepare a file.

Pricing & wallet credit

Dashboard tests and API tasks use the same paid service. Each new task reserves $0.015 from your shared wallet before submission. You need at least this much available credit. The reserve is not a fixed price: a successful task costs 1.5 times the actual provider cost. For example, $0.0012 becomes $0.0018; $0.01 becomes $0.015.

When the task finishes, the reservation is released and the exact final charge is recorded once. Confirmed failed tasks return the reservation in full. A provider timeout does not prove failure: credit remains reserved until the result is confirmed. If billingStatus is review, contact support with the task ID. If it is awaiting_credit, top up to receive the saved answer without creating another task.

GET /api/v1/balance returns balanceUsd as an exact USD decimal string. Store money as decimal values, not binary floating-point. balanceCents remains available, rounded down to whole cents. New billing does not apply retroactively to legacy tasks.

1. Prepare your API key

Sign in to ScrapingBuddy and create an API key in Profile > API access. Keep it on your server. This is your ScrapingBuddy key, not a key from a solver provider.

These examples use Bash and cURL. Replace YOUR_API_KEY with your own key in your local environment. Never commit the key to Git or paste it into public logs. Requests create real tasks; these examples are not a free sandbox.

Example
export SCRAPINGBUDDY_API_KEY="YOUR_API_KEY"

2. Create a task

A task is one question or challenge that you want solved. Send a JSON body to the create endpoint. The kind field tells the API which solution to use.

Generate a UUID v4 for Idempotency-Key and keep it with your request. Use a new UUID for a genuinely new task. The example question goes in comment; do not wrap the body inside a task property.

Example
TASK_IDEMPOTENCY_KEY="$(uuidgen)"
curl -X POST "https://www.scrapingbuddy.com/api/v1/captcha/tasks" \
  -H "Authorization: Bearer $SCRAPINGBUDDY_API_KEY" \
  -H "Idempotency-Key: $TASK_IDEMPOTENCY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"kind":"text","comment":"What is seven plus two?"}'

3. Save the ID and check the status

The response contains a task object. Save task.id. If task.status is processing, the request was accepted but the answer is not ready yet. Wait about 6 seconds, then fetch the same task.

Replace TASK_ID below with the returned ID. Repeat the GET request every 5 to 10 seconds while the task is processing. Do not send another POST just to check progress.

Example
curl "https://www.scrapingbuddy.com/api/v1/captcha/tasks/TASK_ID" \
  -H "Authorization: Bearer $SCRAPINGBUDDY_API_KEY"

4. Read the answer

When task.status is ready, read task.solution. For this text question, solution.text is the answer. Keep it as a string.

If the status is failed, stop polling and inspect errorCode and errorDescription. An HTTP 200 or 201 alone does not mean the challenge was solved. The example below shows selected fields, not every field in the response.

Example response
{
  "task": {
    "id": "11111111-1111-4111-8111-111111111111",
    "kind": "text",
    "status": "ready",
    "solution": { "text": "9" }
  }
}

Choose your CAPTCHA type

You now know the shared create-and-poll flow. Choose a solution in API reference to see its inputs and answer format. Image, audio and puzzle tasks use the same endpoints, but their request bodies are different.

Each solution includes complete Node.js and Python examples that prepare the input, create one task and poll with a finite timeout.

CAPTCHA API v1
Getting startedIntroductionYour first taskAuthenticationPrepare image & audio inputs
Integration guidesPolling & safe retriesErrors & troubleshootingList tasks & usage

Explore the documentation

CAPTCHA APIIntroduction

Choose a CAPTCHA solution, create a task and retrieve its answer.

Integration guidesYour first task

Make one request, wait for the answer, and read your first result. Start with a text question so you do not need to prepare a file.

Integration guidesAuthentication

Connect your backend securely with a ScrapingBuddy API key.

Integration guidesPrepare image & audio inputs

Encode the original file correctly and stay within the limits for your solution.

Integration guidesPolling & safe retries

Follow a task to completion without creating duplicate work.

Integration guidesErrors & troubleshooting

Find out whether a request was rejected, a task failed, or you simply need to wait.

Integration guidesList tasks & usage

Retrieve your recent tasks and account-level usage summary.

CAPTCHA referenceCoordinates CAPTCHA

Send one image and get back the x/y click points requested by your instruction. Use this for image challenges where the answer is one or more points, such as “click the apple” or “

CAPTCHA referenceGrid CAPTCHA

Send separate tile images or one complete grid and get back the selected tile numbers. Use this for challenges that ask the user to select matching squares from a tiled image.

CAPTCHA referenceDrag & Drop CAPTCHA

Send a background image plus puzzle pieces and get destination coordinates for each piece. Use this for visual puzzles where one or more draggable pieces must be placed into matchi

CAPTCHA referenceBounding Box CAPTCHA

Send one image and get object boundaries as xMin, xMax, yMin, and yMax. Use this for challenges that ask the user to draw a box around an object or region.

CAPTCHA referenceNormal CAPTCHA

Send a CAPTCHA image and get back the text that should be typed. Use this for distorted image text challenges where the expected answer is a string.

CAPTCHA referenceText CAPTCHA

Send a plain text question and get back the answer text. Use this for human-readable questions, riddles, or text-only challenges that do not require an image upload.

CAPTCHA referenceRotate CAPTCHA

Send an image and get back the angle needed to rotate it into the correct position. Use this for challenges where an image must be turned until it is upright or aligned.

CAPTCHA referenceAudio CAPTCHA

Send an MP3 audio CAPTCHA and get back the transcribed text. Use this for audio challenges where the answer is the words or numbers spoken in the file.