POST /compat/firecrawl/v1/extract
Firecrawl's `POST /v1/extract`, served by vision extract (a `job_` job) with the node's model. URL globs and `enableWebSearch` are not supported (`unsupported_option`). Bills `vision.page` per page plus the model's tokens.

Authentication

Bearer Token (b3os_sk_ API key or b3os_pat_ token)

Request Body required

application/json
urls string (uri)[] REQUIRED
Array of: string (uri)
prompt string
schema object
enableWebSearch boolean
Not supported by B3OS: setting it returns `400` with code `unsupported_option`.
ignoreSitemap boolean
includeSubdomains boolean
showSources boolean
scrapeOptions object
formats string[]
`changeTracking` returns `unsupported_option`.
Array of: string
onlyMainContent boolean
includeTags string[]
Array of: string
excludeTags string[]
Array of: string
maxAge integer
Accept a cached copy up to this old, in milliseconds. Default 0 (always fetch).
headers object
waitFor integer
mobile boolean
skipTlsVerification boolean
timeout integer
Milliseconds; values above 60000 are treated as 60000.
parsePDF boolean
PDF parsing is not supported; PDFs return `content_type_unsupported`.
jsonOptions object
schema object
systemPrompt string
prompt string
checkPromptInjection boolean
Not supported by B3OS: setting it returns `400` with code `unsupported_option`.
actions (object | object | object | object | object | object | object | object | object)[]
Array of:
One of:
Option 1
type string REQUIRED
Enum: wait
milliseconds integer
selector string
Option 2
type string REQUIRED
Enum: screenshot
fullPage boolean
quality integer
viewport object
width integer REQUIRED
height integer REQUIRED
Option 3
type string REQUIRED
Enum: click
selector string REQUIRED
all boolean
Option 4
type string REQUIRED
Enum: write
text string REQUIRED
Option 5
type string REQUIRED
Enum: press
key string REQUIRED
Option 6
type string REQUIRED
Enum: scroll
direction string
Enum: up, down
selector string
Option 7
type string REQUIRED
Enum: scrape
Option 8
type string REQUIRED
Enum: executeJavascript
script string REQUIRED
Option 9
type string REQUIRED
Enum: pdf
format string
landscape boolean
scale number
location object
country string
ISO 3166-1 alpha-2 code. B3OS emulates the language and time zone; it has no per-country proxies.
languages string[]
Array of: string
removeBase64Images boolean
blockAds boolean
proxy string
`enhanced` returns `unsupported_option`.
Enum: basic, enhanced, auto
storeInCache boolean
changeTrackingOptions object
Not supported by B3OS: setting it returns `400` with code `unsupported_option`.
zeroDataRetention boolean
Do not cache or store the result.
threatProtection object
Not supported by B3OS: setting it returns `400` with code `unsupported_option`.
integration string
Accepted and ignored (the Firecrawl SDKs send it).
origin string
Accepted and ignored (the Firecrawl SDKs send it).
ignoreInvalidURLs boolean
threatProtection object
Not supported by B3OS: setting it returns `400` with code `unsupported_option`.
integration string
Accepted and ignored (the Firecrawl SDKs send it).
origin string
Accepted and ignored (the Firecrawl SDKs send it).

Responses

200 The extraction was started.
application/json
success boolean REQUIRED
Enum: true
id string REQUIRED
invalidURLs string[] | null
Array of: string
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.
402 No credits left or the key's spend cap is reached (`credits_exhausted`, `spend_cap_exceeded`).
403 The URL is refused by the egress guard or robots.txt, or the key lacks a scope (`egress_denied`, `robots_disallowed`, `forbidden`).
429 A rate or concurrency limit applies (`rate_limited`, `concurrency_limited`).
500 Something failed inside B3OS (`internal`).
501 The endpoint exists in B3OS's contract but this node does not serve it yet (`not_implemented`).
503 The node or vision is unavailable (`node_unavailable`, `product_unavailable`).
curl -X POST 'https://beta-api.b3os.org/compat/firecrawl/v1/extract' \  -H 'Authorization: Bearer YOUR_API_TOKEN' \  -H 'Content-Type: application/json' \  -d '{  "urls": [    "https://example.com/pricing"  ],  "prompt": "The price of each plan per month.",  "schema": {    "type": "object",    "properties": {      "plans": {        "type": "array"      }    }  }}'
const response = await fetch('https://beta-api.b3os.org/compat/firecrawl/v1/extract', {  method: 'POST',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN",      "Content-Type": "application/json"  },  body: JSON.stringify({    "urls": [      "https://example.com/pricing"    ],    "prompt": "The price of each plan per month.",    "schema": {      "type": "object",      "properties": {        "plans": {          "type": "array"        }      }    }  })});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://beta-api.b3os.org/compat/firecrawl/v1/extract', headers=headers, json={  "urls": [    "https://example.com/pricing"  ],  "prompt": "The price of each plan per month.",  "schema": {    "type": "object",    "properties": {      "plans": {        "type": "array"      }    }  }})print(response.json())
200 Response
{  "success": true,  "id": "job_01m5t3vh38hw2qyvr3fx3tx6vm"}
Ask a question... ⌘I