Integrate once
Keep your model options open.
Choose direct HTTP or an official client once, then use these source-backed guides to route across supported providers and models without rebuilding the application boundary.
Integration surfaces
Start with the interface your stack already speaks.
Use POST /v2 directly with one tenant client key.
Official Go client Typed messages and mediaConstruct validated requests and preserve typed failures.
Official Python client Small synchronous transportSend canonical messages from scripts and services.
Official CLI Prompt workflows from the shellPipe text from scripts without a provider SDK.
Choose your path
Use the guide closest to the way your team ships.
Give prototypes and coding agents a durable API boundary.
Startups and product teams Compare model fit behind one endpointChange provider routing without multiplying product integrations.
Platform and engineering teams Standardize access across applicationsCentralize credentials, supported routes, and usage signals.
Start here
Understand the integrate-once contract.
See what stays stable, what changes per route, which clients are available, and where the current support boundary lives.
Provider routing
Provider routing resources
Connect through one canonical API or official client, then select any supported text provider and model route without rebuilding the application integration.
OpenAI Claude Gemini one endpoint Switch OpenAI, Claude, and Gemini behind one endpointSend one canonical messages request to supported OpenAI, Anthropic, or Gemini models while LLM Proxy owns each provider's native API contract.
OpenAI-compatible provider gateway OpenAI-compatible provider gatewayRoute Meta Muse Spark, DeepSeek, DashScope Qwen, Kimi, MiniMax, SiliconFlow, Z.AI, and Grok text calls through one compatible adapter.
Gemini Interactions proxy Gemini Interactions proxy for shared LLM callsRun model-specific Gemini Interactions lifecycles while callers keep one blocking proxy request.
Anthropic Claude Messages proxy Anthropic Claude Messages proxy for /v2 callersRoute shared messages to Anthropic's native Messages API without changing client contracts.
Security
Security resources
Use tenant secrets for clients while upstream provider credentials stay on the LLM Proxy server.
tenant secret AI gateway Tenant-secret AI gateway for internal applicationsGive client apps one llm-proxy tenant secret while the service owns provider credentials and routing.
generated LLM proxy secret rotation Rotate generated LLM Proxy client keys with confidenceAutomatically create a missing LLM Proxy client key, show it once, store only its digest, and replace it through an explicit confirmed rotation.
encrypted provider key storage Encrypted provider key storage for managed tenantsStore tenant-owned provider API keys with AES-GCM encryption at rest and honest security wording.
reject client provider key leaks Reject client-supplied provider key leaksFail public proxy requests that try to send upstream provider API keys in query, JSON, or multipart input.
Management UI
Management UI resources
Log in to the LLM Proxy app, create a client key for the selected tenant, and autosave one provider API key before leaving Settings.
bring your own provider key portal Bring-your-own provider key portal for AI accessUse LLM Proxy Settings to let users save provider keys and keep public proxy calls key-free.
TAuth protected management API TAuth-protected management API for LLM ProxyGate account, tenant, provider key, defaults, usage, and admin APIs behind validated TAuth sessions.
copyable LLM curl examples Copyable LLM curl examples from current profile dataRender copyable LLM curl examples from live profile data while keeping the one-time raw client key out of page markup and copied commands.
provider-specific system prompts Provider-specific system prompts in LLM Proxy SettingsStore each provider's text model and system prompt with its managed provider configuration.
API contract
API contract resources
Send ordered system, user, and assistant messages through one v2 endpoint before provider routing.
large prompt JSON POST Large prompt JSON POST for LLM requestsUse JSON POST bodies when prompts are too large or structured for query-string requests.
OpenAI web search guardrails OpenAI web search guardrails in an LLM proxyExpose web_search only when the selected OpenAI model is configured to support it.
LLM response formats JSON XML CSV text LLM response formats: JSON, XML, CSV, and textChoose response formatting through format or Accept without changing the provider route.
per-request provider model selection Per-request provider and model selectionUse provider and model parameters only when a request should override tenant or provider defaults.
LLM system prompt handling System prompt handling without ambiguous inputsKeep system instructions explicit across prompt bodies, v2 messages, tenant defaults, and provider settings.
max tokens provider limit validation max_tokens validation across LLM providersMap max_tokens to provider-specific fields and reject known invalid token caps before upstream calls.
Dictation
Dictation resources
Route multipart audio transcription through /dictate using the same tenant-secret boundary as text.
dictation provider routing Dictation provider routing for OpenAI, Z.AI, Grok, and SiliconFlowSelect dictation-capable providers through /dictate while keeping transcription URLs server-side.
Reliability
Reliability resources
Let LLM Proxy own OpenAI Responses background mode and return the final answer in one REST call.
upstream worker queue limits Upstream worker and queue limits for LLM trafficUse shared worker and queue controls to bound upstream HTTP operations for text and dictation.
LLM proxy status code map LLM Proxy status code map for callersHandle missing keys, bad inputs, rate limits, disabled providers, timeouts, and upstream failures consistently.
LLM provider overload timeout handling Provider overload and timeout handling for LLM callsUse clear 503 and 504 behavior for queue pressure and provider work that exceeds the proxy deadline.
Configuration
Configuration resources
Keep exact model identity and provider offerings in normalized runtime config.
provider default model selection Provider default model selection for omitted modelsLet omitted model fields resolve through tenant defaults or selected-provider configured defaults.
strict YAML config placeholders Strict YAML config placeholders for LLM ProxyUse config.yml as the only service config source and env only for strict placeholder expansion.
multi-tenant ownership migration Transactional multi-tenant account ownership migrationUpgrade one-tenant-per-user state into explicit TAuth accounts and isolated personal tenants without changing opaque tenant ids.
GORM managed tenant persistence GORM-managed tenant persistence for LLM ProxyPersist TAuth accounts, isolated tenants, provider settings, generated secret digests, defaults, and usage through GORM.
Usage
Usage resources
Expose request, response, and total token counts through common headers and JSON fields.
managed tenant usage dashboard Account-wide managed tenant usage dashboard for LLMsSee all owned tenants by default, filter one tenant when needed, and inspect safe failed-request details without exposing secrets.
admin usage visibility without secrets Admin usage visibility without exposing secretsLet configured administrators inspect managed users and 30-day usage without raw keys or prompts.
usage metadata without prompts Usage metadata without storing prompts or responsesTrack managed-tenant usage signals while excluding prompt, transcript, audio, response, and secret content.
Deployment
Deployment resources
Keep the Pages frontend static while the backend serves current runtime config at /config-ui.yaml.
local and hosted LLM proxy config Local and hosted LLM Proxy config profilesUse the same strict config contract locally and in hosted split-origin deployments.
GitHub Pages LLM management UI GitHub Pages management UI for LLM ProxyPublish the static management frontend from site/ while the backend owns API and runtime config.
Clients
Clients resources
Configure a client with a tenant secret, send canonical /v2 requests, and keep management sessions and provider keys on separate boundaries.
Go LLM proxy client v2 Go LLM Proxy client with a v2-only transportUse the Go package to send canonical messages requests through POST /v2.
Python LLM proxy client v2 Python LLM Proxy client with v2 messagesUse ClientMessagesRequest and post_messages for canonical text requests from Python.
installable LLM proxy CLI Installable LLM Proxy CLI for prompt workflowsUse llm-proxy-client to send prompt text as canonical /v2 messages from the command line.
Validation
Validation resources
Use cases