{"admin_header":"X-TokenGuard-Admin-Secret","dashboard_url":"/dashboard","default_provider":"openrouter","description":"Financial firewall proxy for LLM APIs. Point your SDK base URL here.","docs_url":"/docs","guard_enabled":true,"health_url":"/v1/status","healthz_url":"/healthz","management_enabled":true,"mgmt_routes":["POST /mgmt/provision","PATCH /mgmt/budget","GET /mgmt/users","GET /mgmt/usage","GET /mgmt/pricing","POST /mgmt/pricing/upsert","POST /mgmt/pricing/delete","POST /mgmt/pricing/sync/openrouter"],"models_priced":["aion-3.5","aion-3.5-mini","aion-labs/aion-3.5","aion-labs/aion-3.5-mini","anthropic/claude-fable-5.1","anthropic/claude-fable-5.1:batch","anthropic/claude-haiku-4-5","anthropic/claude-opus-4-8","anthropic/claude-opus-5.5","anthropic/claude-opus-5.5:batch","anthropic/claude-sonnet-4-6","claude-fable-5.1","claude-fable-5.1:batch","claude-haiku-4-5","claude-opus-4","claude-opus-4-7","claude-opus-4-8","claude-opus-5.5","claude-opus-5.5:batch","claude-sonnet-4","claude-sonnet-4-5","claude-sonnet-4-6","cohere/command-a-plus","command-a-plus","deepseek-flash-latest","deepseek-pro-latest","deepseek-v4.1-flash","deepseek-v4.1-flash:batch","deepseek/deepseek-v4.1-flash","deepseek/deepseek-v4.1-flash:batch","ember-1","fireworks/ember-1","fugu-max","fugu-ultra-v2","gemini-3.8-flash","gemini-3.8-flash:batch","glm-5.3-flashx","glm-5.3-prime","google/gemini-3.8-flash","google/gemini-3.8-flash:batch","gpt-3.5-turbo","gpt-4-turbo","gpt-4.1","gpt-4.1-mini","gpt-4.1-nano","gpt-4o","gpt-4o-mini","gpt-5","gpt-5-mini","gpt-5-nano","gpt-5.4","gpt-5.4-mini","gpt-5.4-nano","gpt-5.5","gpt-6-astra","gpt-6-astra-pro","gpt-6-astra-pro:batch","gpt-6-astra:batch","gpt-6-luna","gpt-6-luna-pro","gpt-6-luna-pro:batch","gpt-6-luna:batch","gpt-6-sol","gpt-6-sol-pro","gpt-6-sol-pro:batch","gpt-6-sol:batch","gpt-astra-latest","gpt-luna-latest","gpt-sol-latest","gpt-terra-latest","granite-4.2-8b","grok-4.7","hy4-preview","ibm-granite/granite-4.2-8b","inception/mercury-2.5","inclusionai/ling-3.0-flash-fin","inclusionai/ling-3.0-flash-fin:free","inclusionai/ling-3.0-flash-sante:free","inclusionai/ling-3.0-flash-vl","inference-net/schematron-v2-small","inference-net/schematron-v2-turbo","ling-3.0-flash-fin","ling-3.0-flash-fin:free","ling-3.0-flash-sante:free","ling-3.0-flash-vl","mercury-2.5","meta/muse-spark-1.3","meta/muse-spark-1.3-contributor","mimo-v2.6-flash","mimo-v2.6-pro","mimo-v2.6-pro-ultraspeed","muse-spark-1.3","muse-spark-1.3-contributor","nex-agi/nex-n2.5-mini:free","nex-agi/nex-n2.5-pro:free","nex-n2.5-mini:free","nex-n2.5-pro:free","o3","o4-mini","openai/gpt-4o","openai/gpt-4o-mini","openai/gpt-6-astra","openai/gpt-6-astra-pro","openai/gpt-6-astra-pro:batch","openai/gpt-6-astra:batch","openai/gpt-6-luna","openai/gpt-6-luna-pro","openai/gpt-6-luna-pro:batch","openai/gpt-6-luna:batch","openai/gpt-6-sol","openai/gpt-6-sol-pro","openai/gpt-6-sol-pro:batch","openai/gpt-6-sol:batch","openrouter/aion-labs/aion-3.5","openrouter/aion-labs/aion-3.5-mini","openrouter/anthropic/claude-fable-5.1","openrouter/anthropic/claude-fable-5.1:batch","openrouter/anthropic/claude-opus-5.5","openrouter/anthropic/claude-opus-5.5:batch","openrouter/anthropic/claude-sonnet-4-6","openrouter/cohere/command-a-plus","openrouter/deepseek/deepseek-v4.1-flash","openrouter/deepseek/deepseek-v4.1-flash:batch","openrouter/fireworks/ember-1","openrouter/google/gemini-3.8-flash","openrouter/google/gemini-3.8-flash:batch","openrouter/ibm-granite/granite-4.2-8b","openrouter/inception/mercury-2.5","openrouter/inclusionai/ling-3.0-flash-fin","openrouter/inclusionai/ling-3.0-flash-fin:free","openrouter/inclusionai/ling-3.0-flash-sante:free","openrouter/inclusionai/ling-3.0-flash-vl","openrouter/inference-net/schematron-v2-small","openrouter/inference-net/schematron-v2-turbo","openrouter/meta/muse-spark-1.3","openrouter/meta/muse-spark-1.3-contributor","openrouter/nex-agi/nex-n2.5-mini:free","openrouter/nex-agi/nex-n2.5-pro:free","openrouter/openai/gpt-4o","openrouter/openai/gpt-4o-mini","openrouter/openai/gpt-6-astra","openrouter/openai/gpt-6-astra-pro","openrouter/openai/gpt-6-astra-pro:batch","openrouter/openai/gpt-6-astra:batch","openrouter/openai/gpt-6-luna","openrouter/openai/gpt-6-luna-pro","openrouter/openai/gpt-6-luna-pro:batch","openrouter/openai/gpt-6-luna:batch","openrouter/openai/gpt-6-sol","openrouter/openai/gpt-6-sol-pro","openrouter/openai/gpt-6-sol-pro:batch","openrouter/openai/gpt-6-sol:batch","openrouter/prism-ml/ternary-bonsai-2-27b","openrouter/qwen/qwen3.8-max-0902","openrouter/qwen/qwen3.8-max-prime","openrouter/qwen/qwen3.8-omni-flash","openrouter/sakana/fugu-max","openrouter/sakana/fugu-ultra-v2","openrouter/stealth/space-bunny-alpha","openrouter/tencent/hy4-preview","openrouter/unbiased/pareto","openrouter/upstage/solar-mini4","openrouter/x-ai/grok-4.7","openrouter/xiaomi/mimo-v2.6-flash","openrouter/xiaomi/mimo-v2.6-pro","openrouter/xiaomi/mimo-v2.6-pro-ultraspeed","openrouter/z-ai/glm-5.3-flashx","openrouter/z-ai/glm-5.3-prime","openrouter/~deepseek/deepseek-flash-latest","openrouter/~deepseek/deepseek-pro-latest","openrouter/~openai/gpt-astra-latest","openrouter/~openai/gpt-luna-latest","openrouter/~openai/gpt-sol-latest","openrouter/~openai/gpt-terra-latest","pareto","prism-ml/ternary-bonsai-2-27b","qwen/qwen3.8-max-0902","qwen/qwen3.8-max-prime","qwen/qwen3.8-omni-flash","qwen3.8-max-0902","qwen3.8-max-prime","qwen3.8-omni-flash","sakana/fugu-max","sakana/fugu-ultra-v2","schematron-v2-small","schematron-v2-turbo","solar-mini4","space-bunny-alpha","stealth/space-bunny-alpha","tencent/hy4-preview","ternary-bonsai-2-27b","text-embedding-3-large","text-embedding-3-small","unbiased/pareto","upstage/solar-mini4","x-ai/grok-4.7","xiaomi/mimo-v2.6-flash","xiaomi/mimo-v2.6-pro","xiaomi/mimo-v2.6-pro-ultraspeed","z-ai/glm-5.3-flashx","z-ai/glm-5.3-prime","~deepseek/deepseek-flash-latest","~deepseek/deepseek-pro-latest","~openai/gpt-astra-latest","~openai/gpt-luna-latest","~openai/gpt-sol-latest","~openai/gpt-terra-latest"],"openrouter_note":"OpenRouter upstream base should be https://openrouter.ai/api (not .../api/v1).","provider_bases":{"anthropic":"https://api.anthropic.com","apimaster":"https://apimaster.ai","openai":"https://api.openai.com","openrouter":"https://openrouter.ai/api"},"providers":["anthropic","apimaster","openai","openrouter"],"proxy_base_url_hint":"Use this host as your OpenAI-compatible base URL (usually .../v1).","quickstart":["1. Open /docs for the human guide","2. Open Next.js /dashboard (or follow GET /dashboard redirect) with your admin secret","3. Provision a user (set budget_usd) and copy the tg_ API key","4. Set your SDK baseURL to this host + /v1","5. Send provider auth + X-TokenGuard-API-Key on every request"],"required_headers":{"Authorization / x-api-key":"Your real provider API key (passed through)","X-TokenGuard-API-Key":"User key from portal, operator console, or POST /mgmt/provision (tg_...)","X-TokenGuard-Provider":"Optional. One of the providers list (e.g. openai, openrouter)","X-TokenGuard-Session-ID":"Recommended for agents — enables loop detection","X-TokenGuard-Team-ID":"Optional. Charge a specific team pool/cap when you belong to multiple teams"},"service":"tokenguard","status_codes":{"400":"Bad request or model missing from pricing","401":"Missing or invalid TokenGuard API key","402":"Budget exceeded — operator can PATCH /mgmt/budget to extend","409":"Agent loop detected","413":"Request body too large","503":"Billing or loop service unavailable"}}
