---
title: "Submit Async Job"
method: POST
path: "/api/v1/async/scrape"
tags: ["Async Scraping"]
---

# Submit Async Job

`POST /api/v1/async/scrape`

## Request

- Base URL: `https://api.finedata.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.finedata.ai/api/v1/async/scrape`
- Auth: HTTP bearer

Submit a scrape job for background processing.

Returns immediately with a `job_id`. Poll `GET /api/v1/async/jobs/{job_id}` for the result,
or set `callback_url` to receive a webhook when the job finishes.

## Headers

- `authorization` string, nullable
- `x-api-key` string, nullable

## Request body

- AsyncScrapeRequest: Async scrape request. Same options as sync scrape, plus webhook callback.
  - `url` string, required: Target URL to scrape
  - `method` string: HTTP method (GET, POST, PUT, DELETE)
  - `headers` object, nullable: Custom HTTP headers
  - `body` string, nullable: Request body (for POST/PUT)
  - `tls_profile` string, nullable: TLS fingerprint profile: chrome145, chrome136, firefox147, safari26_0, smart, vip
  - `max_retries` integer, nullable: Max retry attempts
  - `timeout` integer, nullable: 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` string, nullable: 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` integer, nullable: 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` JsAction[], nullable: Browser actions before extraction: click, wait, type, scroll, hover, evaluate (+2 tokens each, max 10)
    - `action` 'click' | 'wait' | 'wait_for' | 'scroll' | 'type' | 'hover' | 'screenshot' | 'evaluate', required: Action type: click, wait, wait_for, scroll, type, hover, screenshot, evaluate
    - `selector` string, nullable: CSS selector for the target element
    - `ms` integer, nullable: Wait time in milliseconds (for 'wait' action). Accepts both 'ms' and 'value' keys
    - `text` string, nullable: Text to type (for 'type' action)
    - `timeout` integer, nullable: Timeout for wait_for in ms
    - `y` integer, nullable: Y position for scroll (if no selector)
    - `script` string, nullable: JavaScript code to execute on the page (for 'evaluate' action). Runs in the page context with a 15s timeout. Max 10,000 characters
  - `solve_captcha` boolean: Auto-solve captchas: reCAPTCHA, hCaptcha, Turnstile (+10 tokens)
  - `session_id` string, nullable: Sticky session ID for same proxy IP across requests
  - `session_ttl` integer, nullable: Session lifetime in seconds (default 1800)
  - `formats` string[], nullable: 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` 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, nullable: 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` object, nullable: 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` string, nullable: 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` 'full' | 'main', nullable: 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'
  - `callback_url` string, nullable: Webhook URL to receive the result when job completes
  - `callback_headers` object, nullable: Custom headers sent with the webhook POST

## Response `200`

Successful Response

- AsyncJobResponse: Returned when an async job is created.
  - `job_id` string, required: Unique job identifier (UUID)
  - `status` string, required: Initial job status (always 'pending')
  - `url` string, required: Target URL submitted
  - `created_at` string, required: ISO 8601 creation timestamp
  - `estimated_completion` string, nullable: Estimated completion time (ISO 8601)

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/finedata/apis/finedata-api.md) · [All operations](https://skmtc.dev/finedata/apis/finedata-api/llms.txt) · [OpenAPI document](https://skmtc.dev/finedata/apis/finedata-api/revisions/d4321b98fd0e?raw)
