Nimbleway Extract API
The Extract API from Nimbleway — 3 operation(s) for extract.
The Extract API from Nimbleway — 3 operation(s) for extract.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/nimbleway-extract-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Nimble SDK Agents Extract API
version: 1.0.0
description: The AI-Native SDK for Real-Time Web Data at scale
servers:
- url: https://sdk.nimbleway.com
tags:
- name: Extract
paths:
/v1/extract:
post:
summary: Extract
tags:
- Extract
security:
- BearerAuth: []
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ExtractPayload'
examples:
- url: https://www.example.com
render: true
country: US
locale: en-US
responses:
'200':
description: Successful Response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ExtractResponse'
examples:
- url: https://www.example.com/
task_id: e8ed8ef6-2657-43ba-98d5-a5c79ea7b551
status: success
status_code: 200
data:
html: '...'
markdown: MARKDOWN
parsing: {}
cookies: {}
screenshot: iVBORw0KGgoAAAANSUhEUgAAA...
fetch_request: []
network_capture: []
browser_actions: []
headers: {}
metadata:
query_time: '2026-02-09T10:26:05.817Z'
query_duration: 1877
response_parameters:
input_url: https://www.example.com/
driver: vx8
'400':
description: Unprocessable Entity - Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error400'
'402':
description: Payment Required
content:
application/json:
schema:
$ref: '#/components/schemas/Error402'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/Error429'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error500'
/v1/extract/async:
post:
summary: Extract Async
tags:
- Extract
security:
- BearerAuth: []
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ExtractPayload'
- $ref: '#/components/schemas/AsyncOptions'
examples:
- url: https://www.example.com
render: true
country: US
locale: en-US
storage_url: s3://mu-s3-bucket.com/
storage_type: s3
callback_url: https://my-callback-url.com/
responses:
'200':
description: Async Task Created
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncResponse'
example:
status: success
task:
id: 8e8cfde8-345b-42b8-b3e2-0c61eb11e00f
state: pending
created_at: '2026-01-24T12:36:24.685Z'
modified_at: '2026-01-24T12:36:24.685Z'
input: {}
'400':
description: Unprocessable Entity - Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error400'
'402':
description: Payment Required
content:
application/json:
schema:
$ref: '#/components/schemas/Error402'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/Error429'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error500'
/v1/extract/batch:
post:
summary: Extract Batch
tags:
- Extract
security:
- BearerAuth: []
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ExtractBatchPayload'
examples:
- inputs:
- url: https://www.example.com/page1
- url: https://www.example.com/page2
- url: https://www.example.com/page3
- url: https://www.example.com/page4
shared_inputs:
callback_url: https://example.com/webhook/callback
storage_type: s3
storage_url: s3://bucket-name/path/to/object
storage_compress: true
storage_object_name: result-2024-01-15.json
render: true
country: US
locale: en-US
responses:
'200':
description: Extract Batch Created
content:
application/json:
schema:
$ref: '#/components/schemas/BatchResponse'
example:
batch_id: 4b0a90bf-c951-42e4-95b3-a95a65ba69fc
batch_size: 1
tasks:
- id: 123e4567-e89b-12d3-a456-426614174000
state: pending
output_url: string
created_at: '2024-01-15T10:30:00Z'
modified_at: '2024-01-15T10:35:00Z'
account_name: string
input: null
batch_id: 4b0a90bf-c951-42e4-95b3-a95a65ba69fc
status_code: 200
api_type: extract
'400':
description: Unprocessable Entity - Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error400'
'402':
description: Payment Required
content:
application/json:
schema:
$ref: '#/components/schemas/Error402'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/Error429'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error500'
components:
schemas:
Error429:
type: object
title: Error429
properties:
status:
type: string
example: failed
examples:
- failed
msg:
type: string
example: Rate limit exceeded
examples:
- Rate limit exceeded
required:
- status
- msg
example:
status: failed
msg: Rate limit exceeded
ExtractResponse:
type: object
properties:
url:
type: string
format: uri
description: The URL that was extracted
task_id:
type: string
format: uuid
description: Unique identifier for the extraction task
status:
type: string
description: Status of the extraction
enum:
- success
- failed
status_code:
type: integer
description: HTTP status code from the target website
data:
type: object
description: Data from the extraction
properties:
html:
type: string
description: Raw HTML content of the page
headers:
type: object
description: Response headers from the target website
parsing:
type: object
description: Parsed data when parsing is enabled
markdown:
type: string
description: Markdown content when markdown conversion is enabled
cookies:
type: object
description: Cookies when cookie capture is enabled
fetch_request:
type: array
description: Captured executed fetch requests when enabled
items:
type: object
network_capture:
type: array
description: Captured network activity when enabled
items:
type: object
browser_actions:
type: array
description: Browser actions results
items:
type: object
screenshot:
type: string
description: Base64 encoded screenshot when enabled (requires rendering)
metadata:
type: object
description: Metadata from the extraction
properties:
query_time:
type: string
format: date-time
description: Timestamp when the query was executed
input_url:
type: string
format: uri
description: The original input URL
driver:
type: string
description: Driver used for extraction (depends on target domain and rendering configuration)
examples:
- vx8
warnings:
type: array
description: List of warnings
items:
type: string
required:
- url
- task_id
- status
- status_code
- data
- metadata
PostProcessor:
type: object
description: Transform extracted data
properties:
type:
type: string
enum:
- number
- string
- date
- regex
- trim
- lowercase
- uppercase
required:
- type
BatchResponse:
type: object
properties:
batch_id:
type: string
description: Unique identifier for the batch.
batch_size:
type: number
description: Number of tasks in the batch.
tasks:
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
description: Unique task identifier.
examples:
- 123e4567-e89b-12d3-a456-426614174000
state:
type: string
enum:
- pending
- success
- error
description: Current state of the task.
examples:
- pending
output_url:
description: Storage location of the output data.
type: string
status_url:
type: string
format: uri
description: URL for checking the task status.
examples:
- https://sdk.nimbleway.com/v1/tasks/123e4567-e89b-12d3-a456-426614174000
download_url:
description: URL for downloading the task results.
examples:
- https://sdk.nimbleway.com/v1/tasks/123e4567-e89b-12d3-a456-426614174000/results
type: string
format: uri
error:
description: Error message if the task failed.
examples:
- Connection timeout
type: string
error_type:
description: Classification of the error type.
examples:
- timeout_error
type: string
created_at:
description: Timestamp when the task was created.
examples:
- '2024-01-15T10:30:00Z'
type: string
modified_at:
description: Timestamp when the task was last modified.
examples:
- '2024-01-15T10:35:00Z'
type: string
account_name:
description: Account name that owns the task.
type: string
input:
description: Original input data for the task.
_query: {}
batch_id:
description: Batch ID if this task is part of a batch.
examples:
- 4b0a90bf-c951-42e4-95b3-a95a65ba69fc
type: string
status_code:
description: HTTP status code from the task execution.
examples:
- 200
type: number
api_type:
type: string
enum:
- web
- serp
- ecommerce
- social
- media
- agent
- extract
required:
- id
- state
- status_url
- created_at
- input
- _query
additionalProperties: false
description: List of created tasks.
additionalProperties: false
description: Response when a batch of extract tasks is created successfully.
ParserSelector:
oneOf:
- type: object
description: CSS selector
properties:
type:
type: string
enum:
- css
css_selector:
type: string
description: CSS selector string
required:
- type
- css_selector
- type: object
description: XPath selector
properties:
type:
type: string
enum:
- xpath
path:
type: string
description: XPath expression
required:
- type
- path
- type: object
description: JSON selector
properties:
type:
type: string
enum:
- json
path:
type: string
description: JSONPath expression
coercion_filter:
type: string
description: JSONPath filter for multiple objects
required:
- type
- path
- type: object
description: Sequence of selectors
properties:
type:
type: string
enum:
- sequence
sequence:
type: array
items:
$ref: '#/components/schemas/ParserSelector'
required:
- type
- sequence
- type: object
description: Root selector
properties:
type:
type: string
enum:
- root
required:
- type
Error400:
type: object
title: Error400
properties:
status:
type: string
example: failed
examples:
- failed
msg:
type: string
description: Validation error message describing what went wrong
example: Invalid request parameters
examples:
- Invalid request parameters
error:
type: string
description: The validation error type
example: PARAMETERS_FAILED_JSON_SCHEMA_VALIDATION_ERROR
examples:
- PARAMETERS_FAILED_JSON_SCHEMA_VALIDATION_ERROR
details:
type: object
description: Detailed validation error information
example:
schema_validation_errors:
- instancePath: ''
schemaPath: '#/required'
keyword: required
params:
missingProperty: search_engine
message: must have required property 'search_engine'
required:
- status
- msg
example:
status: failed
msg: Invalid request parameters
error: PARAMETERS_FAILED_JSON_SCHEMA_VALIDATION_ERROR
details:
schema_validation_errors:
- instancePath: ''
schemaPath: '#/required'
keyword: required
params:
missingProperty: search_engine
message: must have required property 'search_engine'
NetworkCaptureFilter:
type: object
description: Configuration for capturing network requests made by the page
properties:
method:
type: string
description: Filter by HTTP method
enum:
- GET
- HEAD
- POST
- PUT
- DELETE
- CONNECT
- OPTIONS
- TRACE
- PATCH
url:
type: object
description: URL matching configuration
properties:
type:
type: string
description: How to match URLs
enum:
- exact
- contains
value:
type: string
description: The URL or URL pattern to match
required:
- value
resource_type:
description: Filter by request type
type: array
items:
type: string
enum:
- xhr
- fetch
- stylesheet
- script
- document
- image
examples:
- xhr
- fetch
validation:
type: boolean
description: Validate response content
wait_for_requests_count:
type: number
description: Wait for this many matching requests
minimum: 0
wait_for_requests_count_timeout:
type: number
description: How long to wait in seconds
minimum: 0
maximum: 300000
ExtractBatchPayload:
type: object
properties:
inputs:
type: array
items:
anyOf:
- $ref: '#/components/schemas/ExtractPayload'
shared_inputs:
allOf:
- $ref: '#/components/schemas/AsyncOptions'
- $ref: '#/components/schemas/ExtractPayload'
required: []
ParserExtractor:
oneOf:
- type: object
description: Extract text content
properties:
type:
type: string
enum:
- text
post_processor:
$ref: '#/components/schemas/PostProcessor'
required:
- type
- type: object
description: Extract attribute value
properties:
type:
type: string
enum:
- attr
attr:
type: string
description: Attribute name (e.g., href, src)
post_processor:
$ref: '#/components/schemas/PostProcessor'
required:
- type
- attr
- type: object
description: Extract as JSON
properties:
type:
type: string
enum:
- json
post_processor:
$ref: '#/components/schemas/PostProcessor'
required:
- type
- type: object
description: Extract raw HTML
properties:
type:
type: string
enum:
- raw
post_processor:
$ref: '#/components/schemas/PostProcessor'
required:
- type
ExtractPayload:
type: object
properties:
url:
type: string
format: uri
description: Target URL to scrape
examples:
- https://example.com/page
country:
description: Country used to access the target URL, use ISO Alpha-2 Codes
examples:
- US
type: string
state:
description: State used to access the target URL (US and CA only), use ISO Alpha-2 Codes
examples:
- NY
type: string
city:
description: City used to access the target URL
examples:
- new_york
type: string
locale:
description: LCID standard locale used for the URL request. Alternatively, user can use 'auto' for automatic locale based on geo-location
examples:
- en-US
type: string
render:
description: Whether to render JavaScript content using a browser. Use 'auto' to let Nimble automatically select the optimal driver configuration per target domain.
oneOf:
- type: boolean
- type: string
enum:
- auto
examples:
- true
- auto
parse:
description: Whether to parse the response content
type: boolean
parser:
$ref: '#/components/schemas/Parser'
formats:
description: Response format
examples:
- - html
- markdown
type: array
items:
type: string
enum:
- html
- markdown
- screenshot
- headers
- links
driver:
type: string
enum:
- vx6
- vx8
- vx8-pro
- vx10
- vx10-pro
- auto
examples:
- vx8
title: Driver
description: 'Browserless drivers available for web extraction. Use ''auto'' to let Nimble automatically select the optimal driver per target domain (equivalent to render: ''auto'').'
auto_driver_configuration:
type: object
description: 'Customize automatic driver selection: maps driver configuration names to the number of attempts (0-10) to spend on each before escalating to the next (0 skips it). Key order defines the escalation order; at least one configuration must have attempts > 0. Providing it opts the request into ''auto'' driver selection. Ignored when a specific driver is set.'
additionalProperties:
type: integer
minimum: 0
maximum: 10
propertyNames:
enum:
- vx6-fast
- vx6-stealth
- vx8
- vx8-pro
- vx10
- vx10-pro
examples:
- vx6-fast: 1
vx8: 3
vx10-pro: 2
network_capture:
description: Intercept and capture network requests made by the page
type: array
items:
$ref: '#/components/schemas/NetworkCaptureFilter'
browser_actions:
description: Array of actions to perform sequentially during browser rendering
examples:
- wait: 2s
- click:
selector: '#load-more'
timeout: 5s
type: array
items:
$ref: '#/components/schemas/BrowserAction'
browser:
anyOf:
- type: string
enum:
- chrome
- firefox
description: Browser type to emulate
examples:
- chrome
- type: object
properties:
name:
type: string
enum:
- chrome
- firefox
version:
description: Specific browser version to emulate
examples:
- 144.0.0
type: string
required:
- name
os:
description: Operating system to emulate
examples:
- windows
type: string
enum:
- windows
- mac os
- linux
- android
- ios
no_userbrowser:
description: Whether to disable browser-based rendering
examples:
- false
type: boolean
device:
description: Device type for browser emulation
examples:
- desktop
type: string
enum:
- desktop
- mobile
- tablet
tag:
description: User-defined tag for request identification
examples:
- campaign-2024-q1
type: string
is_xhr:
description: Whether to emulate XMLHttpRequest behavior
examples:
- true
type: boolean
http2:
description: Whether to use HTTP/2 protocol
examples:
- true
type: boolean
expected_status_codes:
description: Expected HTTP status codes for successful requests
examples:
- 200
- 201
type: array
items:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
referrer_type:
description: Referrer policy for the request
examples:
- no-referrer
anyOf:
- type: string
enum:
- random
- no-referer
- same-origin
- type: string
enum:
- google
- bing
- facebook
- twitter
- instagram
method:
description: HTTP method for the request
examples:
- GET
type: string
enum:
- GET
- POST
- PUT
- PATCH
- DELETE
render_options:
type: object
properties:
render_type:
description: Type of render completion to wait for
examples:
- idle2
type: string
enum:
- domready
- load
- idle0
- idle2
headless:
description: Whether to run browser in headless mode
examples:
- true
type: boolean
timeout:
description: Maximum time in milliseconds to wait for page render
examples:
- 30000
type: number
minimum: 1
userbrowser:
description: Whether to use a persistent browser session
examples:
- true
type: boolean
include_iframes:
description: Whether to include iframe content in the result
examples:
- true
type: boolean
disabled_resources:
description: Types of resources to block from loading
examples:
- image
- stylesheet
type: array
items:
type: string
enum:
- other
- document
- stylesheet
- image
- media
- font
- script
- texttrack
- xhr
- fetch
- eventsource
- websocket
- manifest
- signedexchange
- ping
- cspviolationreport
- prefetch
- preflight
- fedcm
adblock:
description: Whether to enable ad blocking
examples:
- true
type: boolean
blocked_domains:
description: Domains to block from loading
examples:
- ads.example.com
- tracker.com
minItems: 1
type: array
items:
type: string
minLength: 1
with_performance_metrics:
description: Whether to collect performance metrics during rendering
examples:
- true
type: boolean
no_accept_encoding:
description: Disable content encoding to avoid cached responses
examples:
- true
type: boolean
description: Request body model for the /extract endpoint
required:
- url
AsyncResponse:
type: object
properties:
status:
type: string
examples:
- success
task:
type: object
properties:
id:
type: string
format: uuid
description: Unique task identifier
examples:
- 8e8cfde8-345b-42b8-b3e2-0c61eb11e00f
state:
type: string
description: Current state of the task
enum:
- pending
- processing
- completed
- failed
examples:
- pending
created_at:
type: string
format: date-time
description: Task creation timestamp
examples:
- '2026-01-24T12:36:24.685Z'
account_name:
type: string
description: The user account name
examples:
- my-account
api_type:
type: string
description: The api endpoint used
enum:
- agent
- extract
examples:
- extract
modified_at:
type: string
format: date-time
description: Task last modification timestamp
examples:
- '2026-01-24T12:36:24.685Z'
input:
type: object
description: Original request input parameters
required:
- id
- state
- created_at
- modified_at
- input
required:
- status
- task
examples:
- status: success
task:
id: 8e8cfde8-345b-42b8-b3e2-0c61eb11e00f
state: pending
account_name: my-account
api_type: extract
created_at: '2026-01-24T12:36:24.685Z'
modified_at: '2026-01-24T12:36:24.685Z'
input: {}
AsyncOptions:
type: object
properties:
storage_type:
type: string
description: Storage type for async results. Use s3 for Amazon S3 and gs for Google Cloud Platform.
enum:
- s3
- gs
examples:
- s3
storage_url:
type: string
description: 'Repository URL where output will be saved. Format: s3://Your.Bucket.Name/your/object/name/prefix/ - Output will be saved as TASK_ID.json'
examples:
- s3://Your.Repository.Path/
callback_url:
type: string
format: uri
description: A URL to callback once the data is delivered. The API will send a POST request with task details (without the requested data) when the task completes.
examples:
- https://your.callback.url/path
storage_compress:
type: boolean
description: When set to true, the response saved to storage_url will be compressed using GZIP format. If false or not set, response will be saved uncompressed.
examples:
- false
storage_object_name:
type: string
description: Custom name for the stored object instead of the default task ID
examples:
- my task
Error402:
type: object
title: Error402
properties:
status:
type: string
example: failed
examples:
- failed
msg:
type: string
description: Error message indicating the payment issue
example: trial expired
enum:
- no budget
- limit reached
- trial expired
- trial quota finished
required:
- status
- msg
example:
status: failed
msg: trial expired
Parser:
type: object
description: Custom extraction recipe defining what data to extract and how to structure it. Each property represents a field in the output.
additionalProperties:
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nimbleway/refs/heads/main/openapi/nimbleway-extract-api-openapi.yml