GET /compat/firecrawl/v1/crawl/{id}
Status and documents of a crawl, 10 MB per page of results; follow `next` for the rest. Opened as a WebSocket instead (firecrawl-js `watcher()`), the same URL streams Firecrawl's watcher protocol: one `catchup` message with this body, a `document` message per page as it finishes, then a close with code 1000 and reason `{"type":"done"}`.

Authentication

Bearer Token (b3os_sk_ API key or b3os_pat_ token)

Path Parameters

id string required path
The job ID B3OS returned (a `crawl_`, `batch_` or `job_` ID; Firecrawl clients treat it as opaque).

Query Parameters

skip integer optional query
Documents to skip; the `next` URL sets it for you.

Responses

200 The crawl status.
application/json
success boolean REQUIRED
Enum: true
status string REQUIRED
Enum: scraping, completed, failed, cancelled
total integer REQUIRED
completed integer REQUIRED
creditsUsed integer REQUIRED
expiresAt string (date-time) REQUIRED
next string | null REQUIRED
Absolute URL of the next page of documents, under `/compat/firecrawl`.
data object[] REQUIRED
Array of:
markdown string
html string | null
rawHtml string | null
links string[]
Array of: string
screenshot string | null
A `data:image/...;base64,` URL.
json unknown
Data from the `json` format.
actions object | null
screenshots string[]
Array of: string
scrapes object[]
Array of:
url string
html string
javascriptReturns object[]
Array of:
type string
value unknown
pdfs string[]
Array of: string
metadata object
Page metadata. Other `<meta>` tags appear under their own names.
title string | string[]
One of:
Option 1string
Option 2
Array of: string
description string | string[]
One of:
Option 1string
Option 2
Array of: string
language string | null | string[]
One of:
Option 1string | null
Option 2
Array of: string
sourceURL string (uri)
The requested URL.
url string (uri)
The final URL after redirects.
keywords string | string[]
One of:
Option 1string
Option 2
Array of: string
ogLocaleAlternate string[]
Array of: string
statusCode integer
contentType string
error string | null
scrapeId string
The B3OS request ID of the scrape.
cacheState string
Enum: hit, miss
cachedAt string (date-time)
creditsUsed integer
proxyUsed string
Enum: basic, stealth
concurrencyLimited boolean
concurrencyQueueDurationMs number
b3os object
B3OS extras (Firecrawl clients ignore them).
tier string
Enum: cache, fetch, browser
request_id string
timing object
Server-side phase durations in milliseconds with microsecond resolution: the same phases as the `Server-Timing` header, keyed `<phase>_ms`. `total_ms` is always present. Phase names are product-specific and documented per operation. Example values in this reference are illustrative, not measurements.
total_ms number REQUIRED
llm_extraction object | null
Deprecated v0 field; always absent.
warning string | null
400 The body failed validation, uses an unsupported option, or a URL is invalid (`invalid_request`, `unsupported_option`, `invalid_url`).
401 Missing or invalid B3OS key (`unauthorized`). Firecrawl `fc-` keys are not accepted.
404 No such job in this project (`crawl_not_found`, `batch_not_found`, `job_not_found`).
429 A rate or concurrency limit applies (`rate_limited`, `concurrency_limited`).
500 Something failed inside B3OS (`internal`).
503 The node or vision is unavailable (`node_unavailable`, `product_unavailable`).
curl -X GET 'https://beta-api.b3os.org/compat/firecrawl/v1/crawl/string' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://beta-api.b3os.org/compat/firecrawl/v1/crawl/string', {  method: 'GET',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN"  }});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://beta-api.b3os.org/compat/firecrawl/v1/crawl/string', headers=headers)print(response.json())
200 Response
{  "success": true,  "status": "scraping",  "total": 37,  "completed": 12,  "creditsUsed": 12,  "expiresAt": "2026-11-01T18:10:41.020Z",  "next": "https://beta-api.b3os.org/compat/firecrawl/v1/crawl/crawl_01m5t4gh4qhgs70zwajezbe5p0?skip=10",  "data": [    {      "markdown": "# Pricing\n\nStart free, then pay per page.",      "metadata": {        "title": "Pricing | Example",        "description": "Plans and prices for Example.",        "language": "en",        "sourceURL": "https://example.com/pricing",        "statusCode": 200,        "b3os": {          "tier": "cache",          "request_id": "req_01m5t4yg394wegr3j4y01qb363"        }      }    }  ]}
Ask a question... ⌘I