Bring a key.
Get tokens.
Snail API is an OpenAI-compatible LLM gateway with key-gated SearXNG search on the side. Point your client at the base URL, hand it a key, and everything speaks the standard protocol — chat completions, streaming, tools.
Speaks OpenAI
Works with any client that takes a base_url — the official SDKs, Hermes, OpenWebUI, your own scripts. Change two lines, done.
Key-gated search
A SearXNG instance rides along, gated by the same key. Web results without the tracking.
Keys with manners
Keys can carry limits — concurrent slots, model allow-lists, active hours, expiry, prompt-size caps. Fair use, enforced at the door.
# curl — chat completions curl https://api.snail3d.com/v1/chat/completions \ -H "Authorization: Bearer snail-YOUR-KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "snail-top", "messages": [{"role": "user", "content": "why is the snail always right?"}] }'
# python — the openai SDK, two lines changed from openai import OpenAI client = OpenAI( base_url="https://api.snail3d.com/v1", api_key="snail-YOUR-KEY", ) resp = client.chat.completions.create( model="snail-top", messages=[{"role": "user", "content": "slow code, fast shell. explain."}], ) print(resp.choices[0].message.content)
# key-gated SearXNG search curl "https://api.snail3d.com/search?q=helix+snail" \ -H "Authorization: Bearer snail-YOUR-KEY"
Models
Model aliases resolve per key. snail-top is the everyday driver — ask for the list with your key via /v1/models.
Streaming
Standard SSE streaming — set "stream": true and consume the deltas like any OpenAI stream.
Fair use
No metered billing. Keys carry the limits listed above, and heavy hands get politely capped.
Need a key?
Keys are hand-issued from the workshop. Reach out on GitHub — say what you're building and how hard you'll lean on it.