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.

Already have a key starting with vlt_? It stays valid — nothing to do. Only the prefix on newly generated keys changed.

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).

Add it to Claude Code in one line:

claude mcp add --transport http snapwonders https://snapwonders.com/mcp --header "X-Api-Key: sw_your_key_here"
Copy-paste config blocks for Claude Desktop, Cursor, Windsurf, VS Code, and Gemini CLI are in the Swagger UI. Note: MCP is clearnet-only — AI clients cannot reach the Tor or I2P addresses.

5 SDKs Preview

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 (on release) 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 (on release) 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 ↗

In preview. All four SDKs are open source on GitHub — Python, JavaScript/TypeScript, PHP, and Go — read, clone, and vendor them today. The pip / npm / composer / go get packages publish to their registries at release. Questions or early-access notes? Get in touch.

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®