SnapAPI Analyze API

AI-powered web analysis with your own LLM key (BYOK)

OpenAPI Specification

snapapi-pics-analyze-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: SnapAPI - Screenshot & Web Data Analyze 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: Analyze
  description: AI-powered web analysis with your own LLM key (BYOK)
paths:
  /v1/analyze:
    post:
      operationId: analyzeWebpage
      summary: AI-Powered Web Analysis
      description: Analyze any webpage using your own LLM API key (BYOK). Supports OpenAI and Anthropic. Optionally get structured JSON output via jsonSchema. Perfect for competitive intelligence, compliance audits, and data extraction.
      tags:
      - Analyze
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnalyzeRequest'
            examples:
              basic:
                summary: Basic analysis
                value:
                  url: https://example.com
                  prompt: Summarize the main content
                  provider: openai
                  apiKey: sk-...
              structured:
                summary: Structured output
                value:
                  url: https://example.com/pricing
                  prompt: Extract all pricing plans
                  provider: openai
                  apiKey: sk-...
                  jsonSchema:
                    type: object
                    properties:
                      plans:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            price:
                              type: string
                            features:
                              type: array
                              items:
                                type: string
                    required:
                    - plans
                    additionalProperties: false
      responses:
        '200':
          description: Analysis complete
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyzeResponse'
        '400':
          description: Validation error
        '401':
          description: Invalid SnapAPI key
        '502':
          description: LLM provider error
components:
  schemas:
    AnalyzeRequest:
      type: object
      required:
      - url
      - prompt
      - apiKey
      properties:
        url:
          type: string
          format: uri
        prompt:
          type: string
          minLength: 1
          maxLength: 5000
          description: Analysis prompt for the LLM
        provider:
          type: string
          enum:
          - openai
          - anthropic
          default: openai
        apiKey:
          type: string
          description: Your own LLM provider API key (BYOK)
        model:
          type: string
          description: Model override (e.g. gpt-4o, claude-sonnet-4-20250514)
        jsonSchema:
          type: object
          description: JSON schema for structured LLM output
        timeout:
          type: integer
          default: 30000
        waitFor:
          type: string
        blockAds:
          type: boolean
          default: true
        blockCookieBanners:
          type: boolean
          default: true
        includeScreenshot:
          type: boolean
          default: false
        includeMetadata:
          type: boolean
          default: true
        maxContentLength:
          type: integer
          default: 50000
    AnalyzeResponse:
      type: object
      properties:
        success:
          type: boolean
        url:
          type: string
        metadata:
          type: object
          properties:
            url:
              type: string
            title:
              type: string
            description:
              type: string
        analysis:
          description: LLM analysis (string or structured object)
        provider:
          type: string
        model:
          type: string
        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