finedata-ai · Schema
AsyncScrapeRequest
Async scrape request. Same options as sync scrape, plus webhook callback.
CompanyAIWebScrapingDataExtractionMCPLLM
Properties
| Name | Type | Description |
|---|---|---|
| url | string | Target URL to scrape |
| method | string | HTTP method (GET, POST, PUT, DELETE) |
| headers | object | Custom HTTP headers |
| body | object | Request body (for POST/PUT) |
| tls_profile | object | TLS fingerprint profile: chrome145, chrome136, firefox147, safari26_0, smart, vip |
| max_retries | object | Max retry attempts |
| timeout | object | Timeout in seconds (max 300 for captcha) |
| use_antibot | boolean | Browser-like TLS fingerprint (+2 tokens) |
| use_js_render | boolean | Render JavaScript with headless browser (+5 tokens) |
| use_residential | boolean | Residential proxy (+3 tokens) |
| use_isp | boolean | ISP proxy (+2 tokens) |
| use_mobile | boolean | Mobile carrier proxy (+4 tokens) |
| proxy_sticky | boolean | Keep the same proxy exit IP across requests in this job. Works with residential and BYOP sticky profiles. |
| proxy_country | object | Request a proxy exit IP from a specific country (ISO-2 code, e.g. 'US', 'DE'). Applies to datacenter, residential, ISP and mobile proxies. Mutually exclusive with proxy_profile_id (BYOP). |
| proxy_profile_id | object | Use your own proxy list via a saved BYOP profile id. Mutually exclusive with use_residential/use_isp/use_mobile. Charges flat +1 token. Requires team_s plan or admin override. |
| stealth_antibot | boolean | Stronger browser emulation for pages a plain request cannot load (+7 tokens) |
| stealth_antibot_headful | boolean | Full real browser with a visible display (+25 tokens) |
| stealth_new | boolean | Experimental next-gen engine (+15 tokens) |
| stealth_premium | boolean | Premium stealth engine (+20 tokens) |
| stealth_premium_headful | boolean | Premium stealth headful mode (+30 tokens) |
| js_wait_for | string | Page load strategy: networkidle, load, domcontentloaded, or selector:.css |
| js_scroll | boolean | Scroll to load lazy content |
| js_actions | object | Browser actions before extraction: click, wait, type, scroll, hover, evaluate (+2 tokens each, max 10) |
| solve_captcha | boolean | Auto-solve captchas: reCAPTCHA, hCaptcha, Turnstile (+10 tokens) |
| session_id | object | Sticky session ID for same proxy IP across requests |
| session_ttl | object | Session lifetime in seconds (default 1800) |
| formats | object | Output formats to include in response. Options: 'markdown', 'rawHtml', 'text', 'links', 'screenshot'. If not specified, only 'body' (raw HTML) is returned for backward compatibility. Example: ['markdo |
| only_main_content | boolean | Extract only the main content of the page (removes navigation, footer, sidebar, ads). Applies to 'markdown' and 'text' formats. Uses Mozilla Readability algorithm |
| extract_rules | object | CSS/XPath selectors for structured data extraction. Simple: {'title': 'h1', 'price': '.price'}. Advanced: {'links': {'selector': 'a.product', 'type': 'list', 'output': '@href'}}. Supported types: text |
| extract_schema | object | JSON Schema for AI-powered structured data extraction. The AI model analyzes page content and returns data matching your schema. Example: {'type': 'object', 'properties': {'products': {'type': 'array' |
| extract_prompt | object | Natural language instruction for AI-powered data extraction. Alternative to extract_schema. Example: 'Extract all product names, prices, and ratings from this page' (+5 tokens) |
| ai_content_mode | object | Content mode for AI extraction (extract_schema/extract_prompt). 'full' — AI sees full page content including sidebars, structured data blocks (best for product pages, real estate listings, marketplace |
| callback_url | object | Webhook URL to receive the result when job completes |
| callback_headers | object | Custom headers sent with the webhook POST |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/finedata-ai/json-schema/finedata-ai-async-scrape-request-schema.json",
"title": "AsyncScrapeRequest",
"description": "Async scrape request. Same options as sync scrape, plus webhook callback.",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/finedata-openapi.json#/components/schemas/AsyncScrapeRequest",
"properties": {
"url": {
"type": "string",
"title": "Url",
"description": "Target URL to scrape"
},
"method": {
"type": "string",
"title": "Method",
"description": "HTTP method (GET, POST, PUT, DELETE)",
"default": "GET"
},
"headers": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Headers",
"description": "Custom HTTP headers"
},
"body": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Body",
"description": "Request body (for POST/PUT)"
},
"tls_profile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Tls Profile",
"description": "TLS fingerprint profile: chrome145, chrome136, firefox147, safari26_0, smart, vip",
"default": "chrome136"
},
"max_retries": {
"anyOf": [
{
"type": "integer",
"maximum": 10.0,
"minimum": 1.0
},
{
"type": "null"
}
],
"title": "Max Retries",
"description": "Max retry attempts",
"default": 5
},
"timeout": {
"anyOf": [
{
"type": "integer",
"maximum": 300.0,
"minimum": 5.0
},
{
"type": "null"
}
],
"title": "Timeout",
"description": "Timeout in seconds (max 300 for captcha)",
"default": 120
},
"use_antibot": {
"type": "boolean",
"title": "Use Antibot",
"description": "Browser-like TLS fingerprint (+2 tokens)",
"default": true
},
"use_js_render": {
"type": "boolean",
"title": "Use Js Render",
"description": "Render JavaScript with headless browser (+5 tokens)",
"default": false
},
"use_residential": {
"type": "boolean",
"title": "Use Residential",
"description": "Residential proxy (+3 tokens)",
"default": false
},
"use_isp": {
"type": "boolean",
"title": "Use Isp",
"description": "ISP proxy (+2 tokens)",
"default": false
},
"use_mobile": {
"type": "boolean",
"title": "Use Mobile",
"description": "Mobile carrier proxy (+4 tokens)",
"default": false
},
"proxy_sticky": {
"type": "boolean",
"title": "Proxy Sticky",
"description": "Keep the same proxy exit IP across requests in this job. Works with residential and BYOP sticky profiles.",
"default": false
},
"proxy_country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Proxy Country",
"description": "Request a proxy exit IP from a specific country (ISO-2 code, e.g. 'US', 'DE'). Applies to datacenter, residential, ISP and mobile proxies. Mutually exclusive with proxy_profile_id (BYOP)."
},
"proxy_profile_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Proxy Profile Id",
"description": "Use your own proxy list via a saved BYOP profile id. Mutually exclusive with use_residential/use_isp/use_mobile. Charges flat +1 token. Requires team_s plan or admin override."
},
"stealth_antibot": {
"type": "boolean",
"title": "Stealth Antibot",
"description": "Stronger browser emulation for pages a plain request cannot load (+7 tokens)",
"default": false
},
"stealth_antibot_headful": {
"type": "boolean",
"title": "Stealth Antibot Headful",
"description": "Full real browser with a visible display (+25 tokens)",
"default": false
},
"stealth_new": {
"type": "boolean",
"title": "Stealth New",
"description": "Experimental next-gen engine (+15 tokens)",
"default": false
},
"stealth_premium": {
"type": "boolean",
"title": "Stealth Premium",
"description": "Premium stealth engine (+20 tokens)",
"default": false
},
"stealth_premium_headful": {
"type": "boolean",
"title": "Stealth Premium Headful",
"description": "Premium stealth headful mode (+30 tokens)",
"default": false
},
"js_wait_for": {
"type": "string",
"title": "Js Wait For",
"description": "Page load strategy: networkidle, load, domcontentloaded, or selector:.css",
"default": "networkidle"
},
"js_scroll": {
"type": "boolean",
"title": "Js Scroll",
"description": "Scroll to load lazy content",
"default": false
},
"js_actions": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/JsAction"
},
"type": "array",
"maxItems": 10
},
{
"type": "null"
}
],
"title": "Js Actions",
"description": "Browser actions before extraction: click, wait, type, scroll, hover, evaluate (+2 tokens each, max 10)"
},
"solve_captcha": {
"type": "boolean",
"title": "Solve Captcha",
"description": "Auto-solve captchas: reCAPTCHA, hCaptcha, Turnstile (+10 tokens)",
"default": false
},
"session_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Session Id",
"description": "Sticky session ID for same proxy IP across requests"
},
"session_ttl": {
"anyOf": [
{
"type": "integer",
"maximum": 86400.0,
"minimum": 60.0
},
{
"type": "null"
}
],
"title": "Session Ttl",
"description": "Session lifetime in seconds (default 1800)",
"default": 1800
},
"formats": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Formats",
"description": "Output formats to include in response. Options: 'markdown', 'rawHtml', 'text', 'links', 'screenshot'. If not specified, only 'body' (raw HTML) is returned for backward compatibility. Example: ['markdown', 'links']"
},
"only_main_content": {
"type": "boolean",
"title": "Only Main Content",
"description": "Extract only the main content of the page (removes navigation, footer, sidebar, ads). Applies to 'markdown' and 'text' formats. Uses Mozilla Readability algorithm",
"default": false
},
"extract_rules": {
"anyOf": [
{
"type": "object"
},
{
"type": "null"
}
],
"title": "Extract Rules",
"description": "CSS/XPath selectors for structured data extraction. Simple: {'title': 'h1', 'price': '.price'}. Advanced: {'links': {'selector': 'a.product', 'type': 'list', 'output': '@href'}}. Supported types: text (default), html, list. Output: text content or @attr"
},
"extract_schema": {
"anyOf": [
{
"type": "object"
},
{
"type": "null"
}
],
"title": "Extract Schema",
"description": "JSON Schema for AI-powered structured data extraction. The AI model analyzes page content and returns data matching your schema. Example: {'type': 'object', 'properties': {'products': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'price': {'type': 'number'}}}}}} (+5 tokens)"
},
"extract_prompt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Extract Prompt",
"description": "Natural language instruction for AI-powered data extraction. Alternative to extract_schema. Example: 'Extract all product names, prices, and ratings from this page' (+5 tokens)"
},
"ai_content_mode": {
"anyOf": [
{
"type": "string",
"enum": [
"full",
"main"
]
},
{
"type": "null"
}
],
"title": "Ai Content Mode",
"description": "Content mode for AI extraction (extract_schema/extract_prompt). 'full' — AI sees full page content including sidebars, structured data blocks (best for product pages, real estate listings, marketplaces). 'main' — AI sees only main content extracted via Readability algorithm (best for articles, blog posts — fewer tokens, less noise). Default: 'full'",
"default": "full"
},
"callback_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Callback Url",
"description": "Webhook URL to receive the result when job completes"
},
"callback_headers": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Callback Headers",
"description": "Custom headers sent with the webhook POST"
}
},
"type": "object",
"required": [
"url"
],
"$defs": {
"JsAction": {
"properties": {
"action": {
"type": "string",
"enum": [
"click",
"wait",
"wait_for",
"scroll",
"type",
"hover",
"screenshot",
"evaluate"
],
"title": "Action",
"description": "Action type: click, wait, wait_for, scroll, type, hover, screenshot, evaluate"
},
"selector": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Selector",
"description": "CSS selector for the target element"
},
"ms": {
"anyOf": [
{
"type": "integer",
"maximum": 30000.0,
"minimum": 100.0
},
{
"type": "null"
}
],
"title": "Ms",
"description": "Wait time in milliseconds (for 'wait' action). Accepts both 'ms' and 'value' keys"
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Text",
"description": "Text to type (for 'type' action)"
},
"timeout": {
"anyOf": [
{
"type": "integer",
"maximum": 30000.0,
"minimum": 1000.0
},
{
"type": "null"
}
],
"title": "Timeout",
"description": "Timeout for wait_for in ms",
"default": 10000
},
"y": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Y",
"description": "Y position for scroll (if no selector)"
},
"script": {
"anyOf": [
{
"type": "string",
"maxLength": 10000
},
{
"type": "null"
}
],
"title": "Script",
"description": "JavaScript code to execute on the page (for 'evaluate' action). Runs in the page context with a 15s timeout. Max 10,000 characters"
}
},
"type": "object",
"required": [
"action"
],
"title": "JsAction",
"description": "JavaScript action to perform on page"
}
}
}
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/finedata-ai-async-scrape-request"
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.