Properties
| Name | Type | Description |
|---|---|---|
| urls | array | The pages to extract from. Each must be an http(s) URL. A trailing `/*` marks a crawl scope: every page discovered under that path is extracted and merged into the result. |
| schema | object | JSON Schema describing the shape you want back. Optional if `prompt` is given; when both are present the schema fixes the field names and types while the prompt guides what to pull. |
| prompt | string | Natural-language instruction for what to extract. Use with or instead of a schema. |
| preferStructure | boolean | Preserve document structure (headings, lists, tables) over prose density when reading the page — good for listing and catalog pages. Default off. |
| enableWebSearch | boolean | Pull in extra source pages by web-searching your prompt, to fill fields your URLs do not cover. Requires a `prompt`. |
| showSources | boolean | Return the concrete list of URLs that were actually extracted, after any wildcard and web-search expansion. Default off. |
| showConfidence | boolean | For each field, return a confidence score and the exact source passage the value was drawn from. Default off. |
| mergeEntities | boolean | Merge the per-page results into one deduplicated collection — one row per entity, with its contributing source URLs — instead of a separate result per page. Default off. |
| maxAge | number | Reuse a recent capture of each page if it is younger than this many milliseconds. Omit or 0 to always fetch fresh. Capped at 7 days. |
| location | object | Fetch each page as if from this country and with these preferred languages, for sites that change prices or content by region. |
| headers | object | Extra request headers to send when fetching each page, such as a cookie that picks the store or delivery area a site prices by. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/hydrafetch-com/json-schema/hydrafetch-com-extract-request-dto-schema.json",
"title": "ExtractRequestDto",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/hydrafetch-com-openapi.json#/components/schemas/ExtractRequestDto",
"type": "object",
"properties": {
"urls": {
"maxItems": 10,
"description": "The pages to extract from. Each must be an http(s) URL. A trailing `/*` marks a crawl scope: every page discovered under that path is extracted and merged into the result.",
"type": "array",
"items": {
"type": "string"
}
},
"schema": {
"type": "object",
"additionalProperties": true,
"description": "JSON Schema describing the shape you want back. Optional if `prompt` is given; when both are present the schema fixes the field names and types while the prompt guides what to pull."
},
"prompt": {
"type": "string",
"maxLength": 2000,
"description": "Natural-language instruction for what to extract. Use with or instead of a schema."
},
"preferStructure": {
"type": "boolean",
"description": "Preserve document structure (headings, lists, tables) over prose density when reading the page — good for listing and catalog pages. Default off."
},
"enableWebSearch": {
"type": "boolean",
"description": "Pull in extra source pages by web-searching your prompt, to fill fields your URLs do not cover. Requires a `prompt`."
},
"showSources": {
"type": "boolean",
"description": "Return the concrete list of URLs that were actually extracted, after any wildcard and web-search expansion. Default off."
},
"showConfidence": {
"type": "boolean",
"description": "For each field, return a confidence score and the exact source passage the value was drawn from. Default off."
},
"mergeEntities": {
"type": "boolean",
"description": "Merge the per-page results into one deduplicated collection — one row per entity, with its contributing source URLs — instead of a separate result per page. Default off."
},
"maxAge": {
"type": "number",
"minimum": 0,
"maximum": 604800000,
"description": "Reuse a recent capture of each page if it is younger than this many milliseconds. Omit or 0 to always fetch fresh. Capped at 7 days."
},
"location": {
"description": "Fetch each page as if from this country and with these preferred languages, for sites that change prices or content by region.",
"allOf": [
{
"$ref": "#/$defs/LocationDto"
}
]
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Extra request headers to send when fetching each page, such as a cookie that picks the store or delivery area a site prices by."
}
},
"required": [
"urls"
],
"$defs": {
"LocationDto": {
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "ISO 3166 alpha-2 country to fetch the page as if from."
},
"languages": {
"description": "Preferred content languages, most-preferred first.",
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/hydrafetch-com-extract-request-dto"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.