Short links your agent can manage.
The same links, permissions and analytics in your browser, API and MCP client. Basic agent access is included with the free account.
Prefer plain text? Read the agent quick reference or the OpenAPI specification. An account and a private API key are required to manage links.
- Create an account , then choose a personal username in your workspace .
- Create an API key with the permissions your agent needs. Read-only keys can inspect links and analytics. Management keys can also create, update and delete links.
- Store the key privately as
SNAPPY_API_KEYin the environment used to start your agent. Keys expire after 90 days when created on the website and can be revoked at any time.
Codex
Add this to your Codex MCP configuration. Keep the actual key in your environment.
[mcp_servers.snappy] url = "https://snappy.fyi/api/mcp" bearer_token_env_var = "SNAPPY_API_KEY"
Or run codex mcp add snappy --url https://snappy.fyi/api/mcp --bearer-token-env-var SNAPPY_API_KEY
Claude Code
Run this where your private key is available. The command stores the resolved header in your Claude MCP configuration; treat that configuration as a credential.
claude mcp add --transport http snappy https://snappy.fyi/api/mcp --header "Authorization: Bearer $SNAPPY_API_KEY"
Any agent, using the API
curl https://snappy.fyi/api/link/create \
-H "Authorization: Bearer $SNAPPY_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: project-demo-2026-01' \
-d '{"url":"https://example.com/demo","slug":"your-name/demo"}'Repeat a creation with the same idempotency key and identical details to get the same link. Reusing that key with different details returns 409. Use a new key for a new action.
Permanent project links
For memorable endings, call suggest_link_endings through MCP, or POST /api/link/suggest with { url, mode: "personal" }. Use mode: "global" for a shared ending. Optional metadata: true reads a bounded public page title, with no paid AI. Suggestions check availability without reserving a link; request another if creation returns 409.
Keep /your-name/demo in a proposal while changing its destination as your project evolves. Read the current link, preview the proposed destination, then update it with the reviewed version.
GET /api/link/query?slug=your-name/demoreads the current link.POST /api/link/previewwith{ slug, url }returns the change and itsexpectedVersion.PUT /api/link/editaccepts the full link fields plusexpectedVersion. A concurrent change returns 409.GET /api/link/history?slug=your-name/demoreturns previous destinations. Restore one by reviewing and saving it as a new edit.- MCP supports
create_linkwithidempotencyKey,get_link,update_link, and analytics tools.
Checks without inflated click reports
Read the link through the API instead of opening its public redirect when checking its destination. If you need to follow the public link, send X-Snappy-Purpose: check. It is recorded as a declared agent check. Traffic categories are estimates, not verified human identities.