Build with the snapWONDERS API

Hide, reveal, forensically analyse, and convert media over one REST API — call it directly, from an AI agent over MCP, or through an official SDK.

REST API MCP SDKs

1 Getting started — your first call

Everything is one REST API at https://snapwonders.com/api. Your very first call needs no key and no upload — just confirm the service is up:

# Health check — no key required. Returns {"status":"UP", ...} curl https://snapwonders.com/api/status

Then make your first authenticated call — creating a hide session. A working key returns an upload_uid; a 401 tells you exactly what to fix (see the next step):

curl -X POST https://snapwonders.com/api/session \ -H "X-Api-Key: sw_your_key_here" \ -H "Content-Type: application/json" \ -d '{"type":"hide"}'
Prefer to skip the raw HTTP? Jump to the SDKs — they wrap the whole flow (including file upload) into a single call.

2 Get your API key

Create a key on your account, then send it as the X-Api-Key header on every request. Keys start with sw_ — send the whole key.

  • Generate a key at vaultify.snapwonders.com/profile/api-keys — free accounts work, no credit card.
  • Header on every authenticated call: X-Api-Key: sw_your_key_here
  • Health and the get-started/discovery calls need no key.

If a call returns 401, the error code tells you which of three things is wrong, so you are never guessing:

  • missing_api_key — no X-Api-Key header was sent.
  • malformed_api_key — a header is present but not a valid key shape.
  • invalid_api_key — a well-formed key that is not recognised, expired, or inactive.

3 The APIs

Three products share one session → job → poll → download shape. Files upload over the resumable TUS protocol (out of band), then you start a job and poll it to completion.

Steganography — hide & reveal

Conceal an encrypted file inside a cover image or video, and reveal it again with the passphrase. Lossless output.

Forensic analysis

Deep media inspection — manipulation, hidden content, faces, OCR text, watermarks, and C2PA provenance — graded per file.

Media conversion

Convert between image and video formats (AVIF, HEIC, JXL, WebP, PNG, MP4, MKV, …) with quality and resize controls.

Full reference

Every endpoint, parameter, and response is in the interactive Swagger UI, with the raw OpenAPI spec.

Uploads use TUS because MCP tool calls and plain JSON cannot carry file bytes. The SDKs wrap TUS for you — see SDKs below.

4 MCP — for AI agents

The same capabilities are exposed as tools over the Model Context Protocol, so an AI agent (Claude, Cursor, VS Code Copilot, and others) can call them directly. Transport is Streamable HTTP, spec 2025-03-26.

  • Endpoint: https://snapwonders.com/mcp
  • Auth: the same X-Api-Key header (three discovery tools — status, vaultify_get_started, snapwonders_get_started — need no key).

For example, adding it to Claude Code is one line:

claude mcp add --transport http snapwonders https://snapwonders.com/mcp --header "X-Api-Key: sw_your_key_here"
That is just one client. Ready-to-paste config for Claude Desktop, Cursor, Windsurf, VS Code, and Gemini CLI — plus the full list of MCP tools — is in the MCP section of the Swagger UI. Note: MCP is clearnet-only — AI clients cannot reach the Tor or I2P addresses.

5 SDKs

Official client libraries wrap the API and the fiddly TUS upload into one idiomatic call, so a whole hide job is a couple of lines — in Python, JavaScript/TypeScript, PHP, or Go.

PythonPython — snapwonders

# pip install snapwonders from snapwonders import Client client = Client(api_key="sw_...") job = client.stego.hide( ["secret.pdf", "cover.jpg"], password="Str0ng!Pass") for r in job.results(): r.download("out/")

View source on GitHub ↗

JavaScript / TypeScriptJavaScript / TypeScript — @snapwonders/sdk

// npm i @snapwonders/sdk import { Client } from "@snapwonders/sdk"; const client = new Client("sw_..."); const job = await client.stego.hide( ["secret.pdf", "cover.jpg"], { password: "Str0ng!Pass" });

View source on GitHub ↗

PHPPHP — snapwonders/sdk

// composer require snapwonders/sdk (on release) use SnapWonders\Client; $client = new Client("sw_..."); $job = $client->stego->hide( ["secret.pdf", "cover.jpg"], password: "Str0ng!Pass");

View source on GitHub ↗

GoGo — snapWONDERS-SDK-Go

// go get github.com/snapWONDERS/snapWONDERS-SDK-Go client := snapwonders.NewClient("sw_...") job, _ := client.Stego.Hide( []string{"secret.pdf", "cover.jpg"}, "Str0ng!Pass") for _, r := range must(job.Results()) { r.Download("out/") }

View source on GitHub ↗

Python and JavaScript are live on PyPI and npm. Go installs straight from GitHub with go get. PHP installs from GitHub today via Composer's VCS repository (a one-line listing on Packagist is coming). All four are open source on GitHub — Python, JavaScript/TypeScript, PHP, and Go — install with pip install snapwonders, npm i @snapwonders/sdk, or go get (PHP via Composer soon). Questions or early-access notes? Get in touch.

6 Other languages — generate a client

No SDK for your language yet? The API ships a full OpenAPI 3 spec, so you can generate a typed client for Ruby, Java, C#, Kotlin, Swift, Rust, and dozens more with OpenAPI Generator:

# Ruby (swap 'ruby' for java, csharp, kotlin, swift, rust, …) npx @openapitools/openapi-generator-cli generate \ -i https://snapwonders.com/api/openapi.json \ -g ruby -o ./snapwonders-ruby
A generated client covers the plain JSON endpoints. The one piece it can not express is the resumable TUS file upload — that is why the official SDKs are hand-written. To upload from a generated client, follow the TUS flow (POST /api/tus → chunked PATCH) documented in the Swagger UI, or port the ~40-line uploader from any official SDK.

More questions? See the FAQ or contact us.

Share the ♥

Browsing Safely
Web SSL Web Browser over SSL
/
Tor
/
I2P

Same snapWONDERS services on all three networks. Read more

Get the App
Download on the
App Store
Get it on
Google Play
Join the waitlist →

Join the Movement

Get updates on new snapWONDERS features, privacy tools, and dark web access improvements — including Vaultify. Nothing else.

Follow the ♥

© 2026 snapWONDERS · All rights reserved.

ABN: 72 080 510 827

snapWONDERS snapWONDERS.com

Analyse & Expose your Digital Media

Forensic Analysis / Metadata Extraction / File Conversion : photos + images + videos

Brought to you by the team at:
goldenSoftwareENGINEERS®