---
title: "Scrape many URLs asynchronously"
method: POST
path: "/v1/batch/scrape"
tags: ["Scrape"]
---

# Scrape many URLs asynchronously

`POST /v1/batch/scrape`

## Request

- Base URL: `https://search.elixpo.com`
- URL: `https://search.elixpo.com/v1/batch/scrape`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`
  - API key in query parameter `key`
- TypeScript: <https://skmtc.dev/elixpo/apis/lixsearch-api/docs/v1/batch/scrape/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- object
  - `urls` string[], required
  - `formats` ScrapeFormat[]
    - union
      - 'markdown' | 'html' | 'rawHtml' | 'links' | 'screenshot' | 'screenshot@fullPage' | 'json'
      - object
        - `type` 'json', required
        - `schema` object: JSON Schema the extracted object should follow
        - `prompt` string
  - `onlyMainContent` boolean
  - `waitFor` integer: Milliseconds to wait after load (forces browser rendering)
  - `timeout` integer

## Response `200`

Batch started

- ScrapeJobStarted
  - `success` boolean
  - `id` string
  - `url` string: Status URL

## Other responses

- `400`: Invalid request or URL rejected by the SSRF guard
- `401`: API key required

## Changes

- **2026-10-27** `dee7777b8958`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/elixpo/apis/lixsearch-api/changes/v1/batch/scrape/post.md)

---

[API](https://skmtc.dev/elixpo/apis/lixsearch-api.md) - [All operations](https://skmtc.dev/elixpo/apis/lixsearch-api/llms.txt) - [OpenAPI document](https://skmtc.dev/elixpo/apis/lixsearch-api/revisions/dee7777b8958?raw)
