Skip to main content
Skip to content
ScrapingBuddyDevelopers
On this page HTML or Markdown

Scraping API/Guides

Formats & page readiness

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

HTML or Markdown

format defaults to html. Choose html when your own parser needs markup, or markdown when you need readable text for research, indexing or another processing step. Deep analysis requires markdown.

Submit one starting URL per task. Normal analysis uses that page only; analysis.depth: deep can collect a bounded set of linked website pages and, when webSearch is enabled, relevant public sources from other websites. For bulk classification, use the separate /scraping/classifications endpoint. Single-task requests do not accept URL arrays, cookies, credentials or custom browser controls.

JavaScript content and timeout boundaries

Do not assume HTML is a serialized copy of the final rendered DOM: it can contain the original page source. Markdown is preferable for text research, but neither format guarantees that every dynamic section was loaded. Pick an appropriate text or element wait condition and verify the returned content.

The provider wait condition is capped at 30 seconds. Reaching that cap can return content with a warning instead of a task failure. ScrapingBuddy accepts waitFor, not a timeout or renderJavaScript field. An SDK or HTTP-client timeout only controls how long your client waits for a response; it does not cancel a server task. Use the saved task ID to check progress after an interrupted request.

Choose one wait condition

waitFor is optional. Choose one of the following shapes, not a combination. text waits for text; element waits for a selector, with optional checkVisible; state accepts load or domcontentloaded.

text and element must be non-empty strings no longer than 300 characters. checkVisible defaults to false. There is no custom timeout field.

Alternative waitFor values / choose one
[
  { "text": "About us" },
  { "element": "main", "checkVisible": true },
  { "state": "domcontentloaded" }
]

Request a visible element

Replace the URL with a public page. Choose a selector that exists on that page.

Example JSON request
{
  "url": "https://YOUR_PUBLIC_HOST/about",
  "format": "markdown",
  "waitFor": { "element": "main", "checkVisible": true }
}

Check warnings and source responses

A ready task can contain a warning if the wait condition was not met. Check the content for completeness before using it. HTTP 200 from the API is not proof that the source page was collected successfully; inspect task.status and task.httpStatus.

Login pages, access challenges and unsuccessful source responses can fail the task. This integration does not offer login or CAPTCHA bypass.

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