SnapAPI Extract API

Web content extraction (HTML, text, markdown, article, structured)

Operations 2

POST /v1/extract Extract Web Content #
GET /v1/extract Extract Web Content (GET) #

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/snapapi-pics-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 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.

OpenAPI Specification

snapapi-pics-extract-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SnapAPI - Screenshot & Web Data Analyze Extract API
  version: 2.0.0
  description: 'Professional screenshot, PDF, video, scraping, content extraction, and AI analysis API. Convert any URL into structured data or visual captures with a single API call. Powered by headless Chromium.


    ## Authentication


    All API endpoints (except Auth and Health) require one of:

    - `X-Api-Key: sk_live_xxx` header (recommended for server-side)

    - `Authorization: Bearer sk_live_xxx` header

    - `?access_key=sk_live_xxx` query parameter (for GET endpoints)


    Dashboard endpoints use JWT Bearer tokens obtained from `/auth/login`.


    ## Rate Limits


    | Plan | Requests/month | Rate |

    |------|---------------|------|

    | Free | 100 | 10/min |

    | Starter | 5,000 | 60/min |

    | Pro | 50,000 | 300/min |


    Rate limit headers: `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`'
  contact:
    email: support@snapapi.pics
    url: https://snapapi.pics
servers:
- url: https://api.snapapi.pics
  description: Production
security:
- ApiKeyAuth: []
tags:
- name: Extract
  description: Web content extraction (HTML, text, markdown, article, structured)
paths:
  /v1/extract:
    post:
      operationId: extractContent
      summary: Extract Web Content
      description: Extract content from any webpage as HTML, text, markdown, article, links, images, metadata, or structured data. Optimized for LLM consumption.
      tags:
      - Extract
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtractRequest'
            examples:
              markdown:
                summary: Extract as markdown
                value:
                  url: https://example.com
                  type: markdown
              article:
                summary: Extract article (Readability)
                value:
                  url: https://blog.example.com/post
                  type: article
              structured:
                summary: Structured extraction
                value:
                  url: https://example.com
                  type: structured
                  maxLength: 10000
              links:
                summary: Extract all links
                value:
                  url: https://example.com
                  type: links
      responses:
        '200':
          description: Content extracted
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtractResponse'
        '400':
          description: Validation error
        '401':
          description: Invalid API key
    get:
      operationId: extractContentGet
      summary: Extract Web Content (GET)
      tags:
      - Extract
      parameters:
      - name: url
        in: query
        required: true
        schema:
          type: string
          format: uri
      - name: type
        in: query
        schema:
          type: string
          enum:
          - html
          - text
          - markdown
          - article
          - links
          - images
          - metadata
          - structured
          default: markdown
      - name: selector
        in: query
        schema:
          type: string
      - name: max_length
        in: query
        schema:
          type: integer
      - name: clean
        in: query
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
          default: 'true'
      - name: block_ads
        in: query
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      - name: block_cookies
        in: query
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      responses:
        '200':
          description: Content extracted
        '400':
          description: Validation error
components:
  headers:
    X-Request-Id:
      schema:
        type: string
      description: Unique request identifier for debugging
  schemas:
    ExtractRequest:
      type: object
      required:
      - url
      properties:
        url:
          type: string
          format: uri
        type:
          type: string
          enum:
          - html
          - text
          - markdown
          - article
          - links
          - images
          - metadata
          - structured
          default: markdown
        selector:
          type: string
          description: CSS selector to target
        waitFor:
          type: string
          description: Wait for selector before extracting
        timeout:
          type: integer
          minimum: 1000
          maximum: 60000
          default: 30000
        darkMode:
          type: boolean
          default: false
        blockAds:
          type: boolean
          default: false
        blockCookieBanners:
          type: boolean
          default: false
        includeImages:
          type: boolean
          default: true
        maxLength:
          type: integer
          minimum: 100
          maximum: 500000
        cleanOutput:
          type: boolean
          default: true
    ExtractResponse:
      type: object
      properties:
        success:
          type: boolean
        type:
          type: string
        url:
          type: string
        data:
          description: Extracted content (format depends on type param)
        responseTime:
          type: integer
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your SnapAPI API key
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT access token obtained from /auth/login or /auth/refresh