Nimbleway Crawl API

The Crawl API from Nimbleway — 2 operation(s) for crawl.

OpenAPI Specification

nimbleway-crawl-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Nimble SDK Agents Crawl 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: Crawl
paths:
  /v1/crawl:
    post:
      summary: Create Crawl
      tags:
      - Crawl
      security:
      - BearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/CrawlPayload'
              examples:
              - url: https://example.com
                name: my-crawler-1
                sitemap: include
                limit: 100
                max_discovery_depth: 3
      responses:
        '200':
          description: Successful Response - Crawl Task Created
          content:
            application/json:
              schema:
                allOf:
                - type: object
                  properties:
                    name:
                      type: string
                      nullable: true
                      description: Optional name for the crawl task
                    account_name:
                      type: string
                      nullable: true
                      description: The user's account name
                    url:
                      type: string
                      format: uri
                      description: Starting URL for the crawl
                    crawl_options:
                      type: object
                      description: Crawl configuration settings applied to this task
                      properties:
                        limit:
                          type: integer
                        sitemap:
                          type: string
                          enum:
                          - skip
                          - include
                          - only
                        allow_subdomains:
                          type: boolean
                        crawl_entire_domain:
                          type: boolean
                        max_discovery_depth:
                          type: integer
                        allow_external_links:
                          type: boolean
                        ignore_query_parameters:
                          type: boolean
                    extract_options:
                      type: object
                      nullable: true
                      description: Optional extraction configuration for each crawled page
                    crawl_id:
                      type: string
                      format: uuid
                      description: Unique identifier for the crawl task
                    status:
                      type: string
                      description: Current status of the crawl task
                      enum:
                      - queued
                      - running
                      - completed
                      - failed
                    created_at:
                      type: string
                      format: date-time
                      description: Timestamp when the crawl task was created
                    completed_at:
                      type: string
                      format: date-time
                      nullable: true
                      description: Timestamp when the crawl was completed (null if not completed)
                    updated_at:
                      type: string
                      format: date-time
                      nullable: true
                      description: Timestamp when the crawl was updateded
                  required:
                  - crawl_id
                  - url
                  - crawl_options
                  - status
                  - created_at
                examples:
                - crawl_id: 85b21e98-69c5-4aa5-9d25-261a55bbf0db
                  name: my-crawler-1
                  url: https://www.amazon.com/dp
                  status: queued
                  account_name: ACCOUNT_NAME
                  created_at: '2026-02-11T13:55:45.512Z'
                  updated_at: '2026-02-11T13:55:45.512Z'
                  completed_at: null
                  crawl_options:
                    sitemap: include
                    crawl_entire_domain: false
                    limit: 10
                    max_discovery_depth: 5
                    ignore_query_parameters: false
                    allow_external_links: false
                    allow_subdomains: false
                  extract_options: null
        '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'
    get:
      summary: List Crawls
      tags:
      - Crawl
      security:
      - BearerAuth: []
      parameters:
      - in: query
        name: status
        schema:
          type: string
          enum:
          - queued
          - running
          - succeeded
          - failed
          - canceled
          description: Filter crawls by their status
          examples:
          - pending
        required: true
        description: Filter crawls by their status
      - in: query
        name: cursor
        schema:
          description: Cursor for pagination
          anyOf:
          - type: 'null'
          - type: string
        description: Cursor for pagination
      - in: query
        name: limit
        schema:
          description: Number of crawls to return per page
          examples:
          - 10
          type: integer
          minimum: 1
          maximum: 9007199254740991
        description: Number of crawls to return per page
      responses:
        '200':
          description: Successful Response - List of Crawl Tasks
          content:
            application/json:
              schema:
                allOf:
                - type: object
                  properties:
                    data:
                      type: array
                      description: Array of crawl tasks
                      items:
                        type: object
                        properties:
                          crawl_id:
                            type: string
                            format: uuid
                            description: Unique identifier for the crawl task
                          name:
                            type: string
                            nullable: true
                            description: Optional name for the crawl task
                          url:
                            type: string
                            format: uri
                            description: Starting URL for the crawl
                          account_name:
                            type: string
                            nullable: true
                            description: The user's account name
                          status:
                            type: string
                            description: Current status of the crawl task
                            enum:
                            - pending
                            - running
                            - completed
                            - failed
                            - canceled
                          total:
                            type: integer
                            nullable: true
                            description: Total number of pages discovered
                          completed:
                            type: integer
                            nullable: true
                            description: Number of pages completed
                          failed:
                            type: integer
                            nullable: true
                            description: Number of pages failed
                          pending:
                            type: integer
                            nullable: true
                            description: Number of pages pending
                          created_at:
                            type: string
                            format: date-time
                            description: Timestamp when the crawl task was created
                          updated_at:
                            type: string
                            format: date-time
                            description: Timestamp when the crawl task was updateded
                          completed_at:
                            type: string
                            format: date-time
                            nullable: true
                            description: Timestamp when the crawl was completed
                          crawl_options:
                            type: object
                            description: Crawl configuration settings
                          extract_options:
                            type: object
                            nullable: true
                            description: Optional extraction configuration
                          tasks:
                            type: array
                            description: Array of individual page crawl tasks
                            items:
                              type: object
                              properties:
                                task_id:
                                  type: string
                                  format: uuid
                                  examples:
                                  - abc12345-e89b-12d3-a456-426614174001
                                status:
                                  type: string
                                  examples:
                                  - completed
                                  enum:
                                  - pending
                                  - failed
                                  - completed
                                completed_at:
                                  type: string
                                  description: Timestamp when task was completed
                                updated_at:
                                  type: string
                                  description: Timestamp when task was updateded
                    pagination:
                      type: object
                      description: Pagination information
                      properties:
                        hasNext:
                          type: boolean
                          description: Whether there are more results available
                        nextCursor:
                          type: string
                          nullable: true
                          description: Cursor for the next page of results
                        total:
                          type: integer
                          description: Total number of crawl tasks matching the filter
                  required:
                  - data
                  - pagination
                examples:
                - data:
                  - crawl_id: 0e9984a1-980c-412d-9e95-ebe5f6704d8a
                    name: crawl_name
                    url: https://docs.nimbleway.com
                    account_name: account_name
                    status: queued
                    total: 2
                    completed: 2
                    pending: 0
                    failed: 0
                    created_at: '2026-01-24T11:55:24.197Z'
                    completed_at: null
                    crawl_options:
                      limit: 5000
                      sitemap: include
                      allow_subdomains: false
                      crawl_entire_domain: false
                      max_discovery_depth: 5
                      allow_external_links: false
                      ignore_query_parameters: false
                    extract_options: {}
                    tasks:
                    - task_id: 441e0939-064a-4945-b49d-038772fcce17
                      status: completed
                      created_at: '2026-02-05T10:34:21.487Z'
                      updated_at: '2026-02-05T10:34:26.674Z'
                    - task_id: 0b1351e9-8155-4cd2-8cc5-a7528d0692d4
                      status: completed
                      created_at: '2026-02-05T10:34:26.667Z'
                      updated_at: '2026-02-05T10:34:27.733Z'
                  pagination:
                    has_next: false
                    next_cursor: null
                    total: 15
        '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/crawl/{id}:
    get:
      summary: Crawl by ID
      tags:
      - Crawl
      security:
      - BearerAuth: []
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
          description: The unique identifier of the crawl task
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        required: true
        description: The unique identifier of the crawl task
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                allOf:
                - type: object
                  properties:
                    status:
                      type: string
                      description: Status of the crawl task
                      examples:
                      - succeeded
                    crawl_id:
                      type: string
                      format: uuid
                      description: Unique identifier for the crawl task
                      examples:
                      - 123e4567-e89b-12d3-a456-426614174000
                    name:
                      type: string
                      description: Name of the crawl task
                    account_name:
                      type: string
                      description: The user's account name
                    total:
                      type: integer
                      description: Total number of pages to crawl
                      examples:
                      - 10
                    completed:
                      type: integer
                      description: Number of pages completed
                      examples:
                      - 2
                    failed:
                      type: integer
                      description: Number of pages failed
                      examples:
                      - 2
                    pending:
                      type: integer
                      description: Number of pages pending
                      examples:
                      - 2
                    created_at:
                      type: string
                      description: Timestamp when crawl was created
                    completed_at:
                      type: string
                      description: Timestamp when crawl was completed
                    updated_at:
                      type: string
                      description: Timestamp when crawl was updateded
                    tasks:
                      type: array
                      description: Array of individual page crawl tasks
                      items:
                        type: object
                        properties:
                          task_id:
                            type: string
                            format: uuid
                            examples:
                            - abc12345-e89b-12d3-a456-426614174001
                          status:
                            type: string
                            examples:
                            - completed
                            enum:
                            - pending
                            - failed
                            - completed
                          completed_at:
                            type: string
                            description: Timestamp when task was completed
                          updated_at:
                            type: string
                            description: Timestamp when task was updateded
                        required:
                        - task_id
                        - url
                  required:
                  - status
                  - crawl_id
                  - name
                  - total
                  - completed
                  - created_at
                  - completed_at
                  - tasks
                examples:
                - crawl_id: 85b21e98-69c5-4aa5-9d25-261a55bbf0db
                  name: my-crawler-1
                  url: https://www.amazon.com/dp
                  account_name: account_name
                  status: succeeded
                  completed_at: '2026-02-11T13:57:27.549Z'
                  crawl_options:
                    limit: 10
                    sitemap: include
                    allow_subdomains: false
                    crawl_entire_domain: false
                    max_discovery_depth: 5
                    allow_external_links: false
                    ignore_query_parameters: false
                  extract_options: null
                  created_at: '2026-02-11T13:55:45.512Z'
                  updated_at: '2026-02-11T13:57:27.555Z'
                  pending: 0
                  completed: 3
                  failed: 1
                  total: 4
                  tasks:
                  - task_id: 8d2bb2fc-e469-4549-b5d8-0d307352aeb5
                    status: completed
                    created_at: '2026-02-11T13:55:45.846Z'
                    updated_at: '2026-02-11T13:55:52.138Z'
                  - task_id: f1fc1a7d-588b-4c9c-b6f3-00a00b6796ce
                    status: completed
                    created_at: '2026-02-11T13:55:52.115Z'
                    updated_at: '2026-02-11T13:55:53.335Z'
                  - task_id: 79389a76-7c7f-4d6d-9041-c13ff83dc265
                    status: completed
                    created_at: '2026-02-11T13:55:52.115Z'
                    updated_at: '2026-02-11T13:55:53.858Z'
                  - task_id: 7f10be27-a526-4cbb-8330-53c7871e7572
                    status: failed
                    created_at: '2026-02-11T13:55:46.075Z'
                    updated_at: '2026-02-11T13:57:27.534Z'
        '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'
        '404':
          description: Crawl Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    examples:
                    - failed
                  error:
                    type: string
                    examples:
                    - Crawl not found
                required:
                - status
                - error
              example:
                status: failed
                error: Crawl not found
        '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'
    delete:
      summary: Cancel Crawl
      tags:
      - Crawl
      security:
      - BearerAuth: []
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
          description: The unique identifier of the crawl task
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        required: true
        description: The unique identifier of the crawl task
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - canceled
                required:
                - status
        '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'
        '404':
          description: Crawl Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    examples:
                    - failed
                  error:
                    type: string
                    examples:
                    - Crawl not found
                required:
                - status
                - error
              example:
                status: failed
                error: Crawl not found
        '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:
    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
    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_error

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nimbleway/refs/heads/main/openapi/nimbleway-crawl-api-openapi.yml