ScrapingAnt · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the ScrapingAnt Scraping API

8 actions 8 updates documentation
Derived by API Evangelist Built from the contracts ScrapingAnt publishes. ScrapingAnt did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

tagsx-api-evangelist-notex-api-evangelist-coveragex-api-evangelist-mcpsecuritycomponentsparametersresponses

Targets 7

$.info
$
$.paths['/v2/general'].get
$.paths['/v2/general'].post
$.paths['/v2/usage'].get
$.paths['/v2/general'].get.responses['423']
$.paths['/v2/general'].get.responses['403']

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the ScrapingAnt Scraping API
  version: 1.0.0
x-provenance:
  generated: '2026-08-29'
  method: generated
  source: >-
    Enhancements derived from https://docs.scrapingant.com/request-response-format,
    https://docs.scrapingant.com/errors and https://docs.scrapingant.com/api-basics, applied
    over openapi/_original/scrapingant-openapi.json (harvested verbatim 2026-08-29).
  extends: openapi/_original/scrapingant-openapi.json
  refined_output: openapi/scrapingant-scraping-api-openapi.yml
  note: >-
    The original document is never mutated. Every action below records a divergence between the
    contract ScrapingAnt publishes and the API ScrapingAnt documents and operates. Four of them
    are defects a code generator would trip over.
x-divergences:
  - id: nonunique-operationids
    severity: high
    detail: >-
      The published spec assigns the SAME operationId
      (scrapingant_general_request_v2_general_post) to all five HTTP methods on /v2/general.
      OpenAPI requires operationId to be unique across the document. Most generators either
      fail or silently emit one method. The refined document assigns method-suffixed ids.
  - id: no-securityschemes
    severity: high
    detail: >-
      components.securitySchemes is empty and no security requirement is declared, yet every
      operation requires x-api-key. A generator reading the spec produces an unauthenticated
      client.
  - id: credential-in-query
    severity: high
    detail: >-
      x-api-key is declared as a required QUERY parameter. The docs and the provider's own code
      samples also accept it as a request header, which is the safer transport, but the contract
      does not describe that option.
  - id: missing-endpoints
    severity: high
    detail: >-
      /v2/markdown, /v2/extract and /v2/extended are documented, live (all return 422 "API
      token is missing" unauthenticated) and absent from the spec. The contract describes 2 of
      5 endpoints.
  - id: no-tags
    severity: medium
    detail: The document declares no tags, so every operation is untagged and ungrouped.
  - id: undeclared-timeout
    severity: medium
    detail: >-
      The `timeout` parameter (5-60s, default 60) is documented at
      docs.scrapingant.com/request-response-format and is missing from every operation.
  - id: response-media-type-mismatch
    severity: medium
    detail: >-
      The 200 response of /v2/general is declared as application/json while the endpoint
      returns text/html page content, as the response description itself states.
actions:
  - target: $.info
    description: >-
      Record that this contract covers only part of the documented ScrapingAnt API surface.
    update:
      x-api-evangelist-coverage: >-
        This document specifies /v2/general and /v2/usage. ScrapingAnt also operates and
        documents /v2/markdown (HTML-to-Markdown), /v2/extract (AI structured extraction) and
        /v2/extended (JSON envelope with cookies, headers, XHRs and iframes). Those three are
        not described by any machine-readable contract.
      x-api-evangelist-mcp: https://api.scrapingant.com/mcp/
  - target: $
    description: Declare the API-key security scheme the API enforces but the contract omits.
    update:
      security:
        - ApiKeyAuth: []
      components:
        securitySchemes:
          ApiKeyAuth:
            type: apiKey
            in: query
            name: x-api-key
            description: >-
              ScrapingAnt API key. Declared in-query to match the published contract; the
              provider documents that the same value is also accepted as an x-api-key request
              header, which should be preferred because query strings are logged.
  - target: $
    description: Declare tags so operations can be grouped.
    update:
      tags:
        - name: Scraping
          description: Fetch and render a target URL through the ScrapingAnt browser and proxy cluster.
        - name: Usage
          description: Account credit metering.
  - target: $.paths['/v2/general'].get
    description: Add the documented timeout parameter and correct the response media type.
    update:
      tags: [Scraping]
      parameters:
        - name: timeout
          in: query
          required: false
          description: >-
            Maximum time in seconds the request may run before it stops. Range 5-60, default
            60. Documented at https://docs.scrapingant.com/request-response-format.
          schema:
            type: integer
            minimum: 5
            maximum: 60
            default: 60
      responses:
        '200':
          content:
            text/html:
              schema:
                type: string
                description: HTML body of the rendered target page.
  - target: $.paths['/v2/general'].post
    description: >-
      Flag that a non-GET method is proxied through to the TARGET site, which makes this
      operation an unguarded third-party write.
    update:
      tags: [Scraping]
      x-agentic-consequence: external-write
      x-api-evangelist-note: >-
        POST/PUT/PATCH/DELETE against /v2/general causes ScrapingAnt to issue that method
        against the caller-supplied target URL. There is no idempotency key, no dry-run and no
        confirmation step. Treat as a write with no reversal path.
  - target: $.paths['/v2/usage'].get
    description: Tag the metering operation and record its agent relevance.
    update:
      tags: [Usage]
      x-api-evangelist-note: >-
        The only way to observe remaining credits. Not exposed as an MCP tool, so an agent on
        the MCP server is blind to its own budget.
  - target: $.paths['/v2/general'].get.responses['423']
    description: Record that no Retry-After accompanies the anti-bot status.
    update:
      x-retry: >-
        Retryable, but no Retry-After header is returned. Change proxy_type to residential or
        set proxy_country before retrying.
  - target: $.paths['/v2/general'].get.responses['403']
    description: Record the ambiguity between a bad key and an exhausted balance.
    update:
      x-disambiguation: >-
        403 covers BOTH an invalid API token and an exhausted credit balance. Call
        GET /v2/usage and read remained_credits to tell them apart.

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • 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 overlay
curl "https://apis.io/api/v1/overlays/scrapingant-scraping-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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