← Catalog

web.extract API

web.extract

live

One page in, dated records out: a leadership page, an official bio, an org chart, a press release or a job listing extracted against a template (or your own JSON schema), each record with the sentence on the page that supports it, the page date and the source URL. Watch-friendly: records key on the person or posting, so a weekly refresh reports who joined, left or changed title.

live coverage

Firecrawl: all inputs ✓

✓ marks a combination proven with a real provider call. Others are wired and unit-tested; their first live run verifies them.

Providers

ProviderStatus
Firecrawl live

Billing

Unit: per_page · unmatched results billed: no
Priced per page at the extraction rate, about five times a plain scrape. A page that yields no records is a miss and releases the hold. Every record carries source_url, source_date (the page date when stated) and evidence_text, the line on the page behind it.

The exact quote is returned by /v1/inspect before every call and held with headroom on execution. The quote is the price floor: if the provider's actual cost overruns it, the run bills the overrun at the same rate, never above the hold. The unused part of every hold is released.

Run it

curl https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{
    "capability": "web.extract",
    "input": { "url": "..." },
    "routing": {"provider": "auto"}
  }'

Input schema

{
  "properties": {
    "prompt": {
      "description": "Extra guidance for the extractor; the template carries a default",
      "type": "string"
    },
    "schema": {
      "description": "Your own JSON schema (type: object) instead of a template; put the list under a `records` array so watches can diff it",
      "type": "object"
    },
    "template": {
      "description": "What kind of page it is; decides the record shape",
      "enum": [
        "leadership_page",
        "official_bio",
        "org_chart",
        "press_release",
        "job_posting"
      ],
      "type": "string"
    },
    "url": {
      "description": "Absolute URL of the page",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "type": "object"
}

Normalized output fields

url · title · template · page_date · records · markdown