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