SOAX Web Data API

The SOAX Web Data API extracts fully rendered HTML, screenshots, XHR responses, and structured data from any public website. It handles JavaScript rendering, CAPTCHA solving, fingerprinting, headless browsers, and anti-bot bypass automatically.

OpenAPI Specification

soax-web-data-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SOAX Proxy Management Ecommerce Data Web Data API
  description: The SOAX Proxy Management API enables programmatic control of proxy packages. Manage IP whitelists, configure proxy endpoints, and retrieve geo-targeting options including cities, regions, carriers, and ISPs across 195+ countries.
  version: '1'
  contact:
    name: SOAX Support
    url: https://helpcenter.soax.com/
  license:
    name: Proprietary
    url: https://soax.com/terms-of-service
servers:
- url: https://partner.api.soax.com
  description: SOAX Partner API endpoint
security:
- APIKeyHeader: []
tags:
- name: Web Data
  description: Extract content from web pages
paths:
  /v2/webdata/fetch-content:
    post:
      operationId: fetchWebContent
      summary: Fetch Web Content
      description: Fetch fully rendered content from any public web page. Handles JavaScript execution, CAPTCHA bypass, anti-bot circumvention, and headless browser management automatically. Returns HTML body, screenshots, XHR calls, or Markdown depending on response configuration.
      tags:
      - Web Data
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchContentRequest'
            example:
              url: https://www.example.com
              proxy_settings:
                country: us
                type: 1
              response:
                body: true
                screenshot: false
                xhr: false
                markdown: false
      responses:
        '200':
          description: Successfully extracted web content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchContentResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Invalid or missing API key
        '429':
          description: Rate limit exceeded
        '500':
          description: Internal server error or target site failure
components:
  schemas:
    FetchContentResponse:
      type: object
      properties:
        status:
          type: integer
          description: HTTP status code of the fetched page
          example: 200
        url:
          type: string
          format: uri
          description: Final URL after redirects
        body:
          type: string
          description: Fully rendered HTML content of the page
        screenshot:
          type: string
          format: byte
          description: Base64-encoded PNG screenshot (if requested)
        xhr:
          type: array
          description: XHR/fetch calls captured during page rendering
          items:
            type: object
            properties:
              url:
                type: string
                description: URL of the XHR request
              method:
                type: string
                description: HTTP method
              status:
                type: integer
                description: Response status code
              body:
                type: string
                description: Response body
        markdown:
          type: string
          description: Markdown representation of the page content (if requested)
        metadata:
          type: object
          properties:
            title:
              type: string
              description: Page title
            description:
              type: string
              description: Meta description
            proxy_used:
              type: string
              description: The proxy IP used for the request
    FetchContentRequest:
      type: object
      required:
      - url
      properties:
        url:
          type: string
          format: uri
          description: The target URL to fetch content from
          example: https://www.example.com
        proxy_settings:
          type: object
          description: Proxy configuration for the request
          properties:
            country:
              type: string
              description: ISO 3166-1 alpha-2 country code for geo-targeting
              example: us
            type:
              type: integer
              description: Proxy type identifier (1=residential, 2=mobile, 3=datacenter)
              enum:
              - 1
              - 2
              - 3
              example: 1
            city:
              type: string
              description: Target city for geo-targeting
            region:
              type: string
              description: Target region/state for geo-targeting
            isp:
              type: string
              description: Target ISP for proxy selection
        response:
          type: object
          description: Configure what content to return in the response
          properties:
            body:
              type: boolean
              default: true
              description: Return the fully rendered HTML body
            screenshot:
              type: boolean
              default: false
              description: Return a PNG screenshot of the rendered page
            xhr:
              type: boolean
              default: false
              description: Return XHR/fetch background API responses captured during rendering
            markdown:
              type: boolean
              default: false
              description: Return a lightweight Markdown version of the page content
        session:
          type: object
          description: Session configuration for stateful browsing
          properties:
            sticky:
              type: boolean
              default: false
              description: Maintain the same IP across multiple requests
            session_id:
              type: string
              description: Session identifier for sticky sessions
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error description
        request_id:
          type: string
          description: Request identifier for support
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: api-key
      description: Your SOAX API key from the Profile tab in your dashboard