OpenAPI Specification
openapi: 3.1.0
info:
title: SnapAPI - Screenshot & Web Data Analyze Usage 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: Usage
description: API usage and quota management
paths:
/v1/usage:
get:
operationId: getUsage
summary: Get API Usage
description: Check your current API usage and remaining quota.
tags:
- Usage
responses:
'200':
description: Usage data
content:
application/json:
schema:
$ref: '#/components/schemas/UsageResponse'
example:
used: 150
limit: 1000
remaining: 850
resetAt: '2026-03-01T00:00:00.000Z'
'401':
description: Invalid API key
components:
schemas:
UsageResponse:
type: object
properties:
used:
type: integer
example: 150
limit:
type: integer
example: 1000
remaining:
type: integer
example: 850
resetAt:
type: string
format: date-time
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