View raw JSON
{
"type": "object",
"required": [
"body"
],
"properties": {
"body": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url",
"schema"
],
"~standard": {
"vendor": "zod",
"version": 1,
"jsonSchema": {}
},
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Starting website URL to crawl and extract from."
},
"schema": {
"type": "object",
"description": "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.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"maxAgeMs": {
"type": "integer",
"maximum": 2592000000,
"minimum": 0,
"description": "Reuse a cached result younger than this many milliseconds. Default 86400000 (1 day), max 2592000000 (30 days). Set 0 to always fetch fresh."
},
"maxDepth": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Maximum link depth from the starting URL (0 = only the starting page). Unlimited when omitted."
},
"maxPages": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Maximum number of pages to analyze. Default 5, hard cap 50. Does NOT change the price — extraction is billed per call."
},
"factCheck": {
"type": "boolean",
"description": "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": {
"type": "integer",
"maximum": 300000,
"minimum": 1000,
"description": "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."
},
"waitForMs": {
"type": "integer",
"maximum": 30000,
"minimum": 0,
"description": "Extra browser wait in milliseconds after page load before the content is captured (0-30000). Useful for JavaScript-heavy pages."
},
"stopAfterMs": {
"type": "integer",
"maximum": 110000,
"minimum": 10000,
"description": "Soft time budget for the crawl phase in milliseconds (10000-110000, default 80000)."
},
"instructions": {
"type": "string",
"maxLength": 2000,
"description": "Extraction guidance: which facts to prioritize, how to interpret ambiguous fields."
},
"includeFrames": {
"type": "boolean",
"description": "Include iframe contents in the Markdown handed to the extractor. Default false."
},
"followSubdomains": {
"type": "boolean",
"description": "Follow links on subdomains of the starting URL's domain. Default false."
},
"settleAnimations": {
"type": "boolean",
"description": "Wait briefly for animations to settle before each page is read. Default false."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}