Skip to main content
Skip to content
ScrapingBuddyDevelopers
On this page Collection, research and analysis

Scraping API/Guides

Task lifecycle & retention

Know when to poll, when to save content and when to stop.

Collection, research and analysis

queued means accepted and waiting to start. submitting means the task is being handed off. processing means the starting page is not ready yet. researching means linked pages are being collected for deep analysis. analyzing means the collected sources are being analyzed. Poll the same task at intervals of at least 6 seconds.

These statuses count toward your limit of 3 active tasks. review also counts toward that limit. A starting page exceeding the 30-minute processing window can fail with RESULT_TIMEOUT; it is not automatically resubmitted.

Ready: save your content

ready means content is available in the individual task response. Check warning and httpStatus, then save content before contentExpiresAt. Content and analysis are retained for 24 hours after page collection. If analysis was requested, also inspect analysis.status; a failed analysis does not discard the page.

expired means content is no longer available. Metadata can still appear in history. Fetching or replaying the original task does not renew retention or run it again.

Failed or review: stop polling

failed includes a task.error with a code and message explaining the failure. Correct the underlying cause before deliberately creating a new task with a new key.

review means submission could not be confirmed. Do not automatically submit a replacement; contact support with the existing task ID. Reusing that ID reads or returns the existing task, without clearing review.

Find previous tasks

GET /scraping/tasks?offset=0 returns up to 10 of your tasks, newest first, and hasMore. Increase offset by 10 while hasMore is true. Content is omitted from every history item; retrieve individual tasks to read it.

GET /scraping/tasks
curl --fail-with-body -X GET "https://www.scrapingbuddy.com/api/v1/scraping/tasks?offset=0" \
  -H "Authorization: Bearer $SCRAPINGBUDDY_API_KEY"

Examples use Bash, Node.js 20+, or Python with requests. View request and response fields.

Scraping API v1
Getting startedIntroductionYour first scrapeAuthentication & access
GuidesBulk classificationAI analysis & company contextFormats & page readinessTask lifecycle & retentionSafe retriesErrors, limits & billing

Explore the documentation

Scraping APIIntroduction

Public pages, HTML, Markdown, deep research, bulk classification, wallet billing and first integration.

GuidesBulk classification

One question, your own answer labels, and a separate machine-readable result for each website.

GuidesYour first scrape

Go from a public URL to saved page content in four steps.

GuidesAuthentication & access

Connect your server with your customer API key and understand public-page access.

GuidesAI analysis & company context

Extract information, summarize a page or assess relevance with optional OpenAI analysis.

GuidesFormats & page readiness

Choose the content format and when the page is ready to collect.

GuidesTask lifecycle & retention

Know when to poll, when to save content and when to stop.

GuidesSafe retries

Recover a lost response without accidentally creating another task.

GuidesErrors, limits & billing

Understand request failures, task failures and usage-based billing.

POST /scraping/tasksCreate a task

Collect a public page, with optional single-page or deep analysis. During the current testing stage, a valid customer API key is enough to create a public-page task; separate accou

GET /scraping/tasks/{id}Get a task & result

Read task progress and retrieve content when it is ready. Fetch the saved task ID with the same account that created it. Wait at least 6 seconds between progress checks. This reque

GET /scraping/tasksList task history

Find your recent tasks, newest first, without downloading page content. Returns up to 10 tasks per page, ordered by creation time and ID, plus hasMore. Request offset=0, then 10, t

POST /scraping/classificationsCreate a classification batch

Ask one question across up to 100 URLs and constrain answers to your own labels. Send a saved UUID v4 Idempotency-Key and JSON body of at most 256 KiB. The key becomes batch.id. An

GET /scraping/classifications/{id}Get classification results

Retrieve batch progress and all per-URL decisions. Use the batch ID and a key belonging to the same account. Poll at least 10 seconds apart. Returns 202 while queued or running, an

GET /scraping/classificationsList classification batches

Read paginated batch summaries and current classification availability. Returns up to 10 batches, newest first, without items. Use offset=0, then 10, then 20 while hasMore is true.

POST /scraping/classifications/{id}/cancelStop queued classification URLs

Stop batch items that have not started; let in-flight work finish. Send Authorization only; no request body or new Idempotency-Key is required. Repeating cancellation is safe. Only