POST
/batch/extract
Batch Extract Multiple Pages

Extract structured data from multiple URLs simultaneously using AI.

Use Cases:

  • Scrape product catalogs from multiple pages
  • Extract data from search result pages
  • Batch process listings or directory pages
  • Collect competitive intelligence at scale

How It Works:

  1. Submit up to 50 URLs with a single schema
  2. Get immediate job ID response
  3. All URLs are extracted using the same schema
  4. Poll for status or receive webhook notification
  5. Retrieve all structured results at once

Features:

  • Same schema applied to all URLs
  • Parallel processing for speed
  • Individual error handling per URL
  • Webhook notifications available

Authorization

YOUR_API_KEY
AuthorizationBearer <token>

Enter your API key from the Thunderbit Dashboard. The header format will be: Authorization: Bearer YOUR_API_KEY

In: header

Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

urls*string[]required

List of URLs to extract data from, maximum 50

Example:
[
  "https://example.com/product/1",
  "https://example.com/product/2",
  "https://example.com/product/3"
]
schema*objectrequired

Data structure definition in JSON Schema format

Example:
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "price": {
      "type": "number"
    },
    "rating": {
      "type": "number"
    }
  }
}
timeoutnumberdefault:60000

Timeout per request in milliseconds, default 30000

webhookobject

Webhook callback configuration, notifies when task completes. See the Webhooks guide for the callback payload format, headers, and HMAC-SHA256 signature verification.

Show child attributes
urlstring

Webhook callback URL, must be HTTPS

secretstring

HMAC-SHA256 secret for signature verification. When set, each webhook request includes an X-Webhook-Signature header

Example:whsec_your_secret_key
headersobject

Custom headers (reserved for future use, not yet implemented by the server).

Example:
{
  "X-Custom-Auth": "your-token"
}
renderModestringdefault:"none"

JavaScript rendering mode applied to every URL: none (default, fastest), basic, or full.

Value in"none" | "basic" | "full"

Response

application/json

Success response

successboolean
Example:
true
dataobject
Show child attributes
idstring
Example:batch_ext_xyz789
statusstring
Value in"PENDING" | "PROCESSING" | "COMPLETED" | "FAILED" | "CANCELLED" | "UNKNOWN"
Example:PROCESSING
totalinteger
Example:
3
completedinteger
Example:
0
creditsUsedinteger
Example:
0
createdAtstring

Timestamp when the job was created

completedAtstring

Timestamp when the job completed (null if still processing)