API reference · Context.dev
context-dev/extract-structured-data
Integrate this model through SandBase's unified API, with production-ready schemas and examples.
Production endpoint
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
POST
https://api.sandbase.ai/v1/runModel ID
context-dev/extract-structured-data01
Input Schema
13 parameters · 2 required · 11 optional
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Required | Starting website URL to crawl and extract from. |
schema | object | Required | JSON Schema describing the object to return. Generate it from a Zod or Pydantic model, or hand-write it — Context.dev fills exactly this shape. |
maxAgeMs | integer | Optional | Reuse a cached result younger than this many milliseconds. Default 86400000 (1 day), max 2592000000 (30 days). Set 0 to always fetch fresh. · Min: 0 · Max: 2592000000 |
maxDepth | integer | Optional | Maximum link depth from the starting URL (0 = only the starting page). Unlimited when omitted. · Min: 0 · Max: 9007199254740991 |
maxPages | integer | Optional | Maximum number of pages to analyze. Default 5, hard cap 50. Does NOT change the price — extraction is billed per call. · Min: 1 · Max: 50 |
factCheck | boolean | Optional | When true, every returned value must be grounded in text stated on the page and unsupported fields come back null/empty. When false (default), reasonable inferences are allowed while verifiable specifics stay faithful to the source. |
timeoutMS | integer | Optional | Upstream timeout in milliseconds (max 300000). Context.dev aborts the call with a 408 when exceeded. Keep it below the endpoint's requestTimeoutMs so the provider answers before the platform's own budget expires. · Min: 1000 · Max: 300000 |
waitForMs | integer | Optional | Extra browser wait in milliseconds after page load before the content is captured (0-30000). Useful for JavaScript-heavy pages. · Min: 0 · Max: 30000 |
stopAfterMs | integer | Optional | Soft time budget for the crawl phase in milliseconds (10000-110000, default 80000). · Min: 10000 · Max: 110000 |
instructions | string | Optional | Extraction guidance: which facts to prioritize, how to interpret ambiguous fields. · Max length: 2000 |
includeFrames | boolean | Optional | Include iframe contents in the Markdown handed to the extractor. Default false. |
followSubdomains | boolean | Optional | Follow links on subdomains of the starting URL's domain. Default false. |
settleAnimations | boolean | Optional | Wait briefly for animations to settle before each page is read. Default false. |
02
Output Schema
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the generation task |
status | string | Task status: pending, running, completed, failed, timeout |
model | string | Model used for the generation |
outputs | array | Array of output items |
outputs[].url | string | URL of the generated artifact |
outputs[].content_type | string | MIME type (e.g. image/png, video/mp4) |
error | object | null | Error details if failed, null on success |
error.type | string | Machine-readable error type code |
error.message | string | Human-readable error description |
Async Workflow
This model uses asynchronous execution. Submit a request and poll for the result.
- Submit — POST to /v1/run, receive an
id - Poll — GET /v1/run/{id} until status is
completed,failed, ortimeout - Retrieve — Read
outputsfrom the completed response
03
Code Examples
Ready-to-run snippets
# Step 1: Submit
curl -X POST https://api.sandbase.ai/v1/run \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "context-dev/extract-structured-data",
"prompt": "a beautiful sunset over mountains"
}'
# Step 2: Poll result (replace <id>)
curl https://api.sandbase.ai/v1/run/<id> \
-H "Authorization: Bearer YOUR_API_KEY"
