Skip to main content

Overview

The Snipp API is the public, third-party integration surface. Use it to upload media, manage your files, fetch posts, and build apps and SDKs on top of Snipp. For first-party clients (for example, the Snipp mobile app) that need account-level features such as the discover feed, likes, comments, blocking, and profile editing, use the Relay API instead.

Base URL

The default base URL is:
api.snipp.gg is a load balancer sitting in front of the upload servers. It resolves to the nearest healthy region and connects straight to it, with no per-request size cap, so your file size limit is whatever your plan allows. It is the right default for everything, including uploads.

Regional endpoints

Regional endpoints reach the same servers as api.snipp.gg and upload at the same speed, so pinning one buys you no performance. Use them when you want to control which region stores your files, or to force a specific server instead of letting the load balancer choose. To see which region you are being routed to, call GET /region on any host.

Alternative endpoint

flux.snipp.gg serves the same API over a separate network path. Requests are buffered before they reach the server, so uploads there are capped at 100 MB per request and large uploads are several times slower. Use it only as a fallback if api.snipp.gg is ever unreachable. For normal use, stay on api.snipp.gg.

Authentication

Include your API key in the api-key header with every request. See Authentication for details on locating your key and security best practices.

Endpoints

Looking for the discover feed, likes, comments, blocking, profile editing, avatar uploads, or anything that powers the full Snipp experience? See the Relay API.

Conventions

  • Request and response bodies are JSON with snake_case keys, except file uploads (multipart/form-data) and the converted file from /convert.
  • Resources are addressed in the path: /posts/{code}, /users/{id}. HTTP methods are the verbs.
  • A single resource comes back under its singular name ({"post": ...}), a list under its plural name with pagination fields.
  • Timestamps are ISO 8601 in UTC and end in _at. Counts end in _count.
  • Every response carries a request-id header.

Errors

Errors return a non-2xx status and an error object with a stable type and a readable message:
See Errors for every type and status.

Rate Limits

Rate limits apply per endpoint, not per account. See Rate Limits for the full table and how to handle 429 responses. Upgrading from the old endpoints such as /uploads or /editUpload? See the migration guide.