Skip to main content
Nimble Extract retrieves and parses content from any URL, giving you clean structured data instead of raw HTML. Point it at a webpage, specify what you want, and get back exactly the information you need - with full JavaScript rendering and anti-bot protection.

Quick Start

Example Request

from nimble_python import Nimble

nimble = Nimble(api_key="YOUR-API-KEY")

result = nimble.extract({
    "url": "https://www.example.com",
    "render": True
})

print(result["data"]["html"])

Example Response

{
  "url": "https://www.example.com",
  "task_id": "b1fa7943-cba5-4ec2-a88c-4d2d6799c794",
  "status": "success",
  "data": {
    "html": "<!DOCTYPE html><html>...</html>",
    "headers": {}
  },
  "metadata": {
    "query_time": "2026-02-08T22:00:36.132Z",
    "query_duration": 1877,
    "driver": "vx8"
  },
  "status_code": 200
}

How it works

1

You provide a URL and options

Give Extract the webpage URL and configure rendering, parsing, or browser actions
2

Extract fetches and renders the page

  • Loads the webpage with optional JavaScript rendering if enabled
  • Handles cookies, headers, and authentication
  • Bypasses anti-bot protections with stealth mode
  • Renders dynamic content completely
3

Extracts your specified data

  • Returns content in your chosen format (HTML, markdown)
  • Parses structured data using your CSS selectors (if parsing schema provided)
  • Captures network requests if configured
4

Returns structured results

Get clean JSON with your extracted data, ready to use in your application

Parameters

Supported input parameters:
url
string
required
The webpage URL to extract content from.Example: https://www.example.com/product
render
boolean
default:"false"
Enable JavaScript rendering for dynamic content.Set to true for sites built with React, Vue, Angular, or other JavaScript frameworks.
driver
string
default:"vx6"
The extraction engine to use.Options:
  • vx6 - Fast HTTP requests (no JavaScript)
  • vx8 - Headless browser with JavaScript
  • vx8-pro - Headful browser with JavaScript
  • vx10 - Stealth headless browser
  • vx10-pro - Stealth headful browser
formats
array
Output formats to return.Options:
  • html - Raw HTML content
  • markdown - Converted markdown format
Example: ["html", "markdown"]
country
string
default:"ALL"
Extract content as if visiting from a specific country. Use ISO Alpha-2 codes.Examples: US, UK, DE, FR
state
string
For US locations, you can specify a specific state. Only works in US or CA.Use state codes like  NY, FL, etc.
Example:
"state": "CA"
city
string
Target a specific city for hyper-local content. Works with most major cities worldwide.
Example:
"city": "New York"
locale
string
default:"auto"
Set the browser’s language preference. Affects how websites display content to you.Use codes like en-US, en-GB, fr-FR, de-DE, etc.
Example:
"locale": "en-US"
parsing
object
CSS selectors for structured data extraction. Define field names with selectors and optional types.Example:
{
    "parser":
    {
        "product_name":
        {
            "type": "terminal",
            "selector":
            {
                "type": "css",
                "css_selector": ".product-title"
            },
            "extractor":
            {
                "type": "text"
            }
        },
        "price":
        {
            "type": "terminal",
            "selector":
            {
                "type": "css",
                "css_selector": ".price-value"
            },
            "extractor":
            {
                "type": "text",
                "post_processor":
                {
                    "type": "number"
                }
            }
        }
    }
}
browser_actions
array
Automate browser interactions before extraction. Supports click, scroll, wait, type, and more.Example:
[
  {"click": {"selector": "#load-more"}},
  {"wait": {"duration": 2000}}
]
network_capture
array
Capture API calls and network requests during page load. Specify URL patterns to intercept.Example:
{
    "url": "https://www.example.com",
    "render": true,
    "network_capture":
    [
        {
            "method": "GET",
            "url":
            {
                "type": "exact",
                "value": "https://www.example.com/api/data"
            }
        }
    ]
}
headers
object
Add custom HTTP headers to your request. Useful for authentication or custom user agents.
Example:
"headers": {
  "User-Agent": "Custom Bot 1.0",
  "X-API-Key": "your-key"
}
cookies
array
Set cookies before loading the page. Great for accessing logged-in content or maintaining sessions.Each cookie needs a key, value, and domain.
Example:
"cookies": [
  {
    "key": "session_id",
    "value": "abc123xyz",
    "domain": "example.com"
  }
]

Usage

Basic HTML extraction

Extract HTML content from any URL:
from nimble_python import Nimble

nimble = Nimble(api_key="YOUR-API-KEY")

result = nimble.extract({
    "url": "https://www.example.com"
})

html = result["data"]["html"]
print(html)

JavaScript rendering

Enable rendering for dynamic sites (React, Vue, etc.):
from nimble_python import Nimble

nimble = Nimble(api_key="YOUR-API-KEY")

result = nimble.extract({
    "url": "https://www.example.com/spa",
    "render": True,
    "driver": "vx8"
})

print(result["data"]["html"])

Stealth mode

Bypass anti-bot protections with stealth driver:
from nimble_python import Nimble

nimble = Nimble(api_key="YOUR-API-KEY")

result = nimble.extract({
    "url": "https://www.protected-site.com",
    "render": True,
    "driver": "vx10"
})

print(result["data"]["html"])

Parsing with CSS selectors

Extract structured data with a parsing schema:
from nimble_python import Nimble

nimble = Nimble(api_key="YOUR-API-KEY")

result = nimble.extract({
    "url": "https://www.example.com/product",
    "render": True,
    "parsing": {
        "title": {
            "selector": "h1.product-title"
        },
        "price": {
            "selector": ".price",
            "type": "number"
        },
        "in_stock": {
            "selector": ".availability",
            "type": "boolean"
        }
    }
})

parsed = result["data"]["parsing"]
print(f"Title: {parsed['title']}")
print(f"Price: {parsed['price']}")

Browser actions

Automate interactions before extraction:
from nimble_python import Nimble

nimble = Nimble(api_key="YOUR-API-KEY")

result = nimble.extract({
    "url": "https://www.example.com",
    "render": True,
    "browser_actions": [
        {"click": {"selector": "#load-more"}},
        {"wait": {"duration": 2000}},
        {"scroll": {"direction": "down", "amount": 500}}
    ]
})

print(result["data"]["html"])

Geo-targeting

Extract content from specific locations:
from nimble_python import Nimble

nimble = Nimble(api_key="YOUR-API-KEY")

result = nimble.extract({
    "url": "https://www.example.com/products",
    "country": "UK",
    "locale": "en-GB"
})

print(result["data"]["html"])

Drivers

Choose the right extraction engine for your needs:
DriverDescriptionBest ForRender
vx6Fast HTTP requests (no JS)Static HTML, APIs, high volumeNo
vx8Headless browser with JSDynamic sites, SPAsYes
vx8-proHeadful browser with JSComplex interactionsYes
vx10Stealth headless browserBot-protected sitesYes
vx10-proStealth headful browserMost protected sitesYes

Response Fields

FieldTypeDescription
urlstringThe requested URL
task_idstringUnique identifier for the request
statusstringsuccess or failed
data.htmlstringExtracted HTML content
data.markdownstringContent as markdown (if requested)
data.parsingobjectStructured data (if parsing configured)
status_codenumberHTTP status code from target

Use cases

High-Scale Extraction

Full control for data extraction at high scale with precise selectors and configurations

Dynamic Content

Handle JavaScript-heavy sites that require full page rendering

Stealth Mode

Bypass anti-bot protections with stealth mode and residential proxies

Data Parsing

Extract structured data using CSS selectors and parsing schemas

Extract vs other tools

What you needUse
Data from popular sites (Amazon, Google, etc.)Public Agent - maintained by Nimble
Data from sites not in the galleryCustom Agent - create with natural language
Data from specific URLs (expert users)Extract - full control with CSS selectors
Data from entire websiteCrawl
Search web + extract content from resultsSearch
For most users, we recommend starting with Web Search Agents - pre-built extractors maintained by Nimble for popular sites. Use Extract when you need full control over selectors and page interactions.

Features

Explore detailed documentation for each Extract feature:

Next steps