// api docs
REST API.
Base URL: https://api.screensnatch.com
Authentication: Bearer token via Keycloak OAuth 2.0 (Device Flow for desktop, PKCE for web).
44 endpoints · 12 public · 32 authenticated
GET
/health Health check GET
/s/:slug Share page with OG meta tags (crawlers get HTML, browsers redirect) GET
/api/v1/s/:slug Screenshot/video metadata GET
/api/v1/s/:slug/raw Download original file (streams binary) GET
/api/v1/s/:slug/thumbnail Thumbnail image (auto-generated for videos) GET
/api/v1/s/:slug/comments List comments on a screenshot/video GET
/api/v1/s/:slug/reactions Emoji reaction counts POST
/api/v1/s/:slug/reactions Toggle emoji reaction (rate-limited, fingerprinted) GET
/api/v1/s/:slug/transcript Video transcript (segments with timestamps) GET
/api/v1/s/:slug/transcript.vtt WebVTT subtitles for video player GET
/api/v1/updates/latest Latest app release (Tauri updater format) GET
/api/v1/oembed oEmbed 1.0 endpoint for rich embeds POST
/api/v1/upload Upload screenshot/video (multipart form) 🔒 GET
/api/v1/screenshots List your screenshots 🔒 GET
/api/v1/screenshots/:id Get screenshot by ID 🔒 DELETE
/api/v1/screenshots/:id Delete screenshot 🔒 GET
/api/v1/screenshots/search Search by title (?q=...) 🔒 POST
/api/v1/screenshots/:id/trim Trim video (start_sec, end_sec) 🔒 POST
/api/v1/screenshots/:id/move Move to folder 🔒 POST
/api/v1/screenshots/:id/tags Set tags 🔒 POST
/api/v1/screenshots/:id/password Set/remove password protection 🔒 POST
/api/v1/screenshots/:id/expiry Set custom expiry (1h, 24h, 7d, 30d, 365d, never) 🔒 PATCH
/api/v1/screenshots/:id/title Rename screenshot 🔒 POST
/api/v1/screenshots/:id/downloadable Toggle download button visibility 🔒 POST
/api/v1/screenshots/:id/thumbnail Upload custom thumbnail 🔒 GET
/api/v1/screenshots/:id/analytics View analytics (total, unique, daily) 🔒 POST
/api/v1/screenshots/download-zip Download multiple as ZIP 🔒 POST
/api/v1/screenshots/stitch Stitch multiple videos into one 🔒 POST
/api/v1/screenshots/bulk-delete Delete multiple screenshots 🔒 POST
/api/v1/screenshots/bulk-move Move multiple to folder 🔒 POST
/api/v1/screenshots/bulk-tag Tag multiple screenshots 🔒 POST
/api/v1/s/:slug/comments Add comment (with optional timestamp_sec) 🔒 DELETE
/api/v1/comments/:id Delete own comment 🔒 GET
/api/v1/folders List folders 🔒 POST
/api/v1/folders Create folder 🔒 PATCH
/api/v1/folders/:id Rename folder 🔒 DELETE
/api/v1/folders/:id Delete folder 🔒 GET
/api/v1/folders/:id/screenshots List screenshots in folder 🔒 GET
/api/v1/me Current user info 🔒 GET
/api/v1/me/quota Usage quota (used/limit/remaining) 🔒 GET
/api/v1/me/plugins Available plugins based on product registry 🔒 GET
/api/v1/me/notifications New views + comments count (?since=ISO8601) 🔒 POST
/api/v1/updates/release Publish app release (admin only) 🔒 GET
/api/v1/admin/stats System-wide statistics (admin only) 🔒