Nimbleway Extract API

The Extract API from Nimbleway — 3 operation(s) for extract.

Operations 3

POST /v1/extract Extract
POST /v1/extract/async Extract Async
POST /v1/extract/batch Extract Batch

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/nimbleway-extract-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

nimbleway-extract-api-openapi.yml Raw ↑
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