IIG
Docs Models Playground Console Security

Internet Intelligence Gateway

One OpenAI-wire door onto many model providers: token-exact billing against a nominal balance, live prices, retention posture cited to provider policy, and a security story you check with curl instead of taking on faith.

Quick start

Mint a key in the console (or try the playground with no key at all), then talk to the standard chat wire — POST /v1/chat/completions, streaming included. iig/echo-standard is the built-in echo model, so a bare router answers without any provider key:

curl -s "$IIG/v1/chat/completions" \
  -H "authorization: Bearer $KEY" \
  -d '{"model": "iig/echo-standard",
       "messages": [{"role": "user", "content": "ping"}]}'

The Anthropic dialect is served at POST /v1/messages, the Responses dialect at POST /v1/responses, embeddings at POST /v1/embeddings. One routing and billing spine behind all four. The full API reference renders from GET /openapi.json — generated from the router's own route table, so it always matches the running wire; coming from another router, start at the migration one-pager.

Every model, priced live

The catalog page renders from GET /v1/models — effective prices as billed right now, context brackets, retention tier with its policy citation, provider jurisdiction where sourced. Machine pickers fetch the compact GET /v1/models/chooser in one call.

Privacy you can cite

Each route carries a retention tier earned by a provider policy citation, never asserted bare. GET /v1/endpoints/zdr is the auditable zero-data-retention report; a request's min_privacy floor makes the router refuse rather than serve below it. Details on the security page.

Spending stays bounded

Nominal balances, per-key spend caps, and fixed UTC day / week / month windows (POST /v1/account/limits) bound admission before a token is spent. Per-generation billing metadata is served at GET /v1/generation.

Verifiable, not vouched-for

Builds reproduce bit-for-bit under a pinned toolchain; GET /attestation reports the running binary's digest against your own rebuild — and honestly reports simulated: true (no confidential-hardware claim). The security page maps every claim to its endpoint.

An honest wire

GET /coverage lists every caller-facing route, real or stub — unserved OpenAI-wire routes refuse with a stable not_supported code instead of a mystery 404.

Status with split planes

Status reports the router core and its control plane as separate SLO classes — GET /status.json for machines, GET /health for liveness.