Documentation

One API for every model. First call in two minutes.

A single OpenAI- and Anthropic-compatible endpoint, three model tiers, and hard spend ceilings. Grab a key, paste one snippet, and you're calling.

  1. 1Get a key
  2. 2Pick a tier
  3. 3Send a request
Base URL
api…sslip.io/v1
Auth
Bearer zn-…
Models
fast · smart · frontier

Quickstart

Your first request

Set one environment variable, pick a tier, paste the snippet. Auth is a Bearer token — your zn-… key, shown once when minted.

1 · Credential

terminal
export ZAINO_API_KEY='zn-…  # paste the value shown once at creation'

2 · Tier & endpoint

https://api.15-224-52-176.sslip.io/v1

3 · Send it — model: fast

request.sh
curl https://api.15-224-52-176.sslip.io/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ZAINO_API_KEY" \
  -d '{
    "model": "fast",
    "messages": [
      { "role": "user", "content": "Hello from Zaino — reply in one sentence." }
    ]
  }'

Models

Three names. That's the whole catalog.

You never pick a deployment — you pick a tier and the gateway load-balances across several models behind it, skipping a rate-limited pool instead of failing your request. Swapping the models behind an alias is a deploy, not a migration.
fast

Chat & copilots

Cheapest

High-volume work — drafts, classification, bulk transforms.

Input
$0.15
per 1M tokens
Output
$0.60
per 1M tokens
  • Chat & copilots
  • Bulk jobs
  • First drafts

Starter · Pro · 262k context · 32k max output

Most used
smart

Agents

Most used

Everyday balanced tier — the default for most integrations.

Input
$0.30
per 1M tokens
Output
$1.20
per 1M tokens
  • Agents
  • Tool calling
  • Support bots

Starter · Pro · 262k context · 32k max output

frontier

Deep reasoning

Pro

Highest-priced tier for the hardest reasoning workloads.

Input
$0.60
per 1M tokens
Output
$2.40
per 1M tokens
  • Deep reasoning
  • Multi-step agents
  • Hard tasks

Pro only · 262k context · 32k max output

Rates are nominal development figures so budgets stay exercisable — the provider publishes no pricing. They will be replaced with real numbers before customer money depends on them. Your plan's multiplier (Starter ×1.30, Pro ×1.25) applies on top.

Wire format

OpenAI-compatible chat

Point any OpenAI SDK at the base URL with your zn-… key. Streaming, tool calling, and the tool-result turn all work — verified end to end with agentic CLIs.
OpenAI logoOpenAI SDK-compatiblebaseURL override only — no code changes beyond the key.
openai.py
from openai import OpenAI

client = OpenAI(
    base_url="https://api.15-224-52-176.sslip.io/v1",
    api_key="zn-...",  # or os.environ["ZAINO_API_KEY"]
)

resp = client.chat.completions.create(
    model="fast",
    messages=[{"role": "user", "content": "Hello from Zaino!"}],
)
print(resp.choices[0].message.content)
POST /v1/chat/completionsChat, tools, streaming — primary path
GET /v1/modelsReturns [fast, smart, …] per your plan
POST /v1/responsesTranslated to chat before metering (Codex)

Wire format

Anthropic-compatible messages

The same key drives /v1/messages — native upstream support, valid tool-use arguments, SSE framing, and the tool-result→answer turn all verified.
Anthropic logoAnthropic SDK-compatiblebaseURL + key override — messages, tools, streaming.
anthropic.ts
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.15-224-52-176.sslip.io/v1",
  apiKey: process.env.ZAINO_API_KEY, // zn-…
});

const msg = await client.messages.create({
  model: "fast",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello from Zaino!" }],
});
console.log(msg);
POST /v1/messagesNative messages incl. tool calling + SSE
max_tokens ≥ 1024Reasoning models can spend small budgets on thinking

Agent CLI

Run Codex on Zaino

codex-cli 0.156 speaks the Responses API exclusively. The gateway translates it to chat before metering — reasoning deltas stay out of the answer text, streams always terminate, error statuses pass through.
OpenAI logoCodex0.156.1 verified · wire_api = responses · OpenAI CLI

1Declare the provider and the three tiers

~/.codex/config.toml
# ~/.codex/config.toml — Zaino as a Codex provider.
# Verified with codex-cli 0.156.1 (Responses API only).

[model_providers.zaino]
base_url = "https://api.15-224-52-176.sslip.io/v1"
env_key = "ZAINO_API_KEY"
wire_api = "responses"

[models.fast]
model_provider = "zaino"
model_context_window = 262144
model_max_output_tokens = 32768

[models.smart]
model_provider = "zaino"
model_context_window = 262144
model_max_output_tokens = 32768

[models.frontier]
model_provider = "zaino"
model_context_window = 262144
model_max_output_tokens = 32768

Without [models.*] Codex warns “Model metadata not found”. Context 262,144 · max output 32,768.

2Export the key and run with the override

run-codex.sh
export ZAINO_API_KEY='zn-…'

# The model override is REQUIRED — without it Codex sends its
# global default, which the gateway correctly rejects with 403.
codex -c model_provider=zaino -c model=fast

-c model=fast is required — without it Codex sends its global default, rejected with 403.

  • Prompt → tool call → answer
  • Multi-step file read/write/exec
  • Use max_output ≥ 1024

Agent CLI

Run Claude Code on Zaino

Claude Code speaks the Anthropic messages shape, served natively. Point it at the Zaino base URL and hand it your zn-… key as the auth token.
Claude logoClaude CodeAnthropic-compatible · tool calling verified

1Point Claude Code at the gateway

env.sh
export ANTHROPIC_BASE_URL="https://api.15-224-52-176.sslip.io/v1"
export ANTHROPIC_AUTH_TOKEN="zn-…"

# Pick the tier Claude Code should drive (Starter: fast | smart).
export ANTHROPIC_MODEL="fast"

Starter drives fast or smart; frontier needs Pro — the gateway 403s anything outside your plan.

2Or pin it in settings.json (optional)

~/.claude/settings.json
{
  // ~/.claude/settings.json — point Claude Code at Zaino.
  // Credentials come from the environment (ANTHROPIC_AUTH_TOKEN),
  // never from this file.
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.15-224-52-176.sslip.io/v1",
    "ANTHROPIC_MODEL": "fast"
  }
}

Keep the credential in ANTHROPIC_AUTH_TOKEN, never in the JSON file.

Operate

Keys, headers, and limits

Keys are Bearer credentials with a zn- prefix, shown once at creation. The gateway rewrites the prefix at the edge and enforces budgets, rate limits, and plan tiers on every request.

Auth headers

auth
Authorization: Bearer zn-…   # preferred
x-api-key: zn-…              # equivalent

Both styles authenticate. Never log, commit, or embed a key in client-side code.

Gateway answerMeaning
401Missing, revoked, or wrong-door key
403Tier outside your plan
429Budget, RPM, or TPM ceiling hit
402No live subscription (dashboard)

Ready to make your first call?

Create an account, pick Starter or Pro, pay by D17 — your first key is seconds away.

Get an API key