Send the image in its current orientation. If the challenge rotates by a fixed step, put that step in angle, for example 30. Leaving angle at 0 omits the hint. The step is not the amount by which the solver must rotate the image.
Each task reserves $0.015 from your wallet. Successful tasks cost 1.5 times the provider cost; unused reserved credit is returned. Failed tasks are not charged. Billing details
Use angle when the challenge rotates in fixed steps, such as 15 or 30 degrees.
Describe the intended final orientation when the image is not obvious.
The returned angle is the rotation answer from the solver.
For the complete examples, prepare challenge.png. You can change these filenames in the code.
Degrees per rotation step, 0 to 360. Default: 0 (unknown). This is not the desired final angle.
Decoded file limits use 1 KB = 1,000 bytes. The complete JSON payload must fit within 5,000,000 bytes after Base64 encoding.
03 / Result
Understand the result
Creation returns HTTP 201. Fetching the task returns HTTP 200. Both wrap the task in task; always check its status before reading the solution.
solution.rotate contains the answer in degrees. It is not a count of clicks and it is not an echo of your angle hint. Apply the value using the rotation convention required by your challenge; check that convention before converting degrees into button presses.
Saved instructions and input metadata. Raw files are not returned.
04 / Integrate
Complete examples
These Node.js and Python scripts prepare the input, create one task and poll until it is ready or failed. They stop waiting after approximately 3 minutes. A client timeout does not cancel the task.
Set SCRAPINGBUDDY_API_KEY in your server environment.
Place the input files beside your script, or update the filenames.
For Node.js, use version 20+ and save as solve.mjs. For Python, install requests and save as solve.py.
Run the script and retain the printed request and task IDs.
cURL shows task creation only. Use the GET example to retrieve its result.
When something goes wrong
Check whether you received an HTTP error or a task with status: failed. Fix validation errors before retrying. For HTTP 429, pause for Retry-After; all requests share the account limit of 60 per minute.
If creation times out, do not automatically submit another task. Keep your request ID and check the existing task or Usage first.