Scraping API / API reference
List task history Find your recent tasks, newest first, without downloading page content.
Request Response Errors & next steps 01 / Request
Make a request GET /api/v1/scraping/tasks
Returns up to 10 tasks per page, ordered by creation time and ID, plus hasMore. Request offset=0, then 10, then 20 while hasMore is true.
History never includes content. Fetch an individual ready task to download its result. New tasks can shift offset pages, so deduplicate by task ID when collecting history.
Required headers Query parameters offsetinteger Optional Default: 0. Integer from 0 to 100000, using at most 6 decimal digits. No limit parameter is supported. cURL JavaScript Python
curl --fail-with-body -X GET "https://www.scrapingbuddy.com/api/v1/scraping/tasks?offset=0" \
-H "Authorization: Bearer $SCRAPINGBUDDY_API_KEY " const apiKey = process.env. SCRAPINGBUDDY_API_KEY ;
if ( ! apiKey) {
throw new Error ( "Set the required environment variables before running." );
}
const response = await fetch ( `https://www.scrapingbuddy.com/api/v1/scraping/tasks?offset=0` , {
method: "GET" ,
headers: {
Authorization: `Bearer ${ apiKey }`
}
});
const data = await response. json ();
if ( ! response.ok) {
throw new Error ( `${ response . status }: ${ data . error }` );
}
console. log (data); import os
import requests
api_key = os.environ[ "SCRAPINGBUDDY_API_KEY" ]
response = requests.get(
"https://www.scrapingbuddy.com/api/v1/scraping/tasks?offset=0" ,
headers = {
"Authorization" : f "Bearer { api_key } "
},
timeout = 30 ,
)
data = response.json()
if not response.ok:
raise RuntimeError ( f " { response.status_code } : { data.get( 'error' ) } " )
print (data) Base URL https://www.scrapingbuddy.com/api/v1
Set SCRAPINGBUDDY_API_KEY in your server environment. JavaScript uses Node.js 20+; Python requires requests. These examples call the live, billed API.
02 / Response
Understand the response Success returns HTTP 200 with JSON. A successful API response is not proof of successful page collection.
tasksarray Up to 10 task objects, newest first. Never includes content. hasMoreboolean If true, request the next page with offset increased by 10. Task object fields Example response / illustrative values {
"tasks" : [
{
"id" : "f824e030-0e09-4d70-a372-fdfd22e84721" ,
"status" : "ready" ,
"url" : "https://public-domain.example/about" ,
"format" : "markdown" ,
"httpStatus" : 200 ,
"warning" : null ,
"error" : null ,
"billing" : {
"mode" : "usage" ,
"customerChargeUsd" : "0.000450000" ,
"heldUsd" : "0.000000000"
},
"createdAt" : "2026-10-08T10:00:00.000Z" ,
"completedAt" : "2026-10-08T10:00:12.000Z" ,
"contentExpiresAt" : "2026-10-09T10:00:12.000Z"
}
],
"hasMore" : false
} URLs, IDs, costs, content and timestamps are illustrative. Use your own public hostname.
Errors & next steps Request errors return an HTTP error status and a top-level error string. Processing failures appear in task.error even when fetching the result succeeds.
New tasks and batches require $1 available balance; insufficient starting credit returns 402. All customer keys share 60 requests per minute per account. For 429, honor Retry-After; active-task and daily limits may require a longer wait.