Skip to main content
Skip to content
ScrapingBuddyDevelopers
On this page Understand the task states

CAPTCHA API/Guides

Polling & safe retries

Follow a task to completion without creating duplicate work.

Understand the task states

submitting means the task is being submitted; processing means it is waiting for a solution. Continue waiting for these states. ready means the answer is available in solution. failed means solving has ended without an answer.

Treat ready and failed as terminal states: stop polling. Check the task status even if the HTTP response is successful. A provider failure can be returned inside a task with HTTP 201 or 200.

Fetch a task

GET /captcha/tasks/{id} returns the task belonging to your account. Use the saved task ID. A saved task can also be located using the UUID v4 idempotency key supplied when creating it.

Poll at intervals of 5 to 10 seconds. There is a shared limit of 60 requests per minute per account, including all keys, task creation and polling. Schedule parallel workers together rather than letting every worker consume the full allowance.

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

Handle a client timeout

Use a finite waiting window. Our code examples wait approximately 3 minutes, but this is a client decision, not a solving-time guarantee or server cancellation.

If you stop waiting, save the task ID and resume GET polling later. Do not automatically create a replacement task. If creation timed out before returning an ID, check Usage or contact support with your request ID.

Use one request ID per task

Generate a UUID v4 before creating a new task and retain it with the request. Repeated POSTs can return an already saved task for that ID.

The same key and normalized input return the saved task without another submission or charge, including concurrent requests. A different body with the same key returns 409. If provider submission is unconfirmed, contact support with the task ID; do not create a replacement.

Back off after HTTP 429

Read the Retry-After response header and wait before resuming GET polling. The current header value is 60 seconds. Reduce concurrency if rate limiting continues.

The sample clients stop and report HTTP errors rather than automatically retrying creation. Add bounded GET retry handling in your application when you need automatic recovery.

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.