SnapAPI Extract API
Web content extraction (HTML, text, markdown, article, structured)
Web content extraction (HTML, text, markdown, article, structured)
openapi: 3.1.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:
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
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
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