> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrape.st/llms.txt
> Use this file to discover all available pages before exploring further.

# Scrape Status

> Poll the result of an async scrape job

Poll an async scrape started via [Scrape URL](/rest-api-reference/web-scrape) with `mode: "async"`. Once the job completes, the full scrape envelope (same shape as a sync response) is returned.

## Path Parameters

<ParamField path="id" type="string" required>
  The `scrape_id` returned by the async scrape request.
</ParamField>

## Response

<ResponseField name="status" type="string">
  `pending`, `completed`, or `failed`. While pending, only the job ID, version,
  and status are returned.
</ResponseField>

<ResponseField name="data" type="object">
  The scrape result, present once `status` is `completed`.
</ResponseField>

<ResponseField name="error" type="object">
  Present when `status` is `failed`: `{ code, message }`.
</ResponseField>

<RequestExample>
  ```bash theme={null}
  curl -X GET https://scrape.st/web/scrape/scr_01HZX... \
    -H "x-api-key: YOUR_API_KEY"
  ```
</RequestExample>

<ResponseExample>
  ```json pending theme={null}
  {
    "scrape_id": "scr_01HZX...",
    "version": "1.0.0",
    "status": "pending"
  }
  ```

  ```json completed theme={null}
  {
    "scrape_id": "scr_01HZX...",
    "version": "1.0.0",
    "status": "completed",
    "url": "https://example.com",
    "data": {
      "markdown": "# Example Domain...",
      "metadata": { "title": "Example Domain", "status_code": 200 }
    }
  }
  ```
</ResponseExample>
