# Ferro Labs AI Gateway > High-performance open-source AI gateway written in Go. Routes LLM requests across 30 providers and 2,500+ models via a single OpenAI-compatible API. Full machine-readable corpus: https://docs.ferrolabs.ai/llms-full.txt ## Documentation - [Introduction](https://docs.ferrolabs.ai/): Overview, key capabilities, and docs map - [Overview](https://docs.ferrolabs.ai/getting-started/overview/): When and why to use the gateway - [Quickstart](https://docs.ferrolabs.ai/getting-started/quickstart/): Docker, ferrogw init, and your first request - [Architecture](https://docs.ferrolabs.ai/getting-started/architecture/): The unified routing pipeline and components - [Request Lifecycle](https://docs.ferrolabs.ai/getting-started/request-lifecycle/): Real middleware, plugin, and routing order - [Concepts](https://docs.ferrolabs.ai/getting-started/concepts/): Routing, plugins, observability, MCP - [Configuration](https://docs.ferrolabs.ai/getting-started/configuration/): Full config reference - [Dashboard](https://docs.ferrolabs.ai/guides/dashboard/): The embedded operations console ## Integrations - [Integrations Overview](https://docs.ferrolabs.ai/integrations/overview/): SDKs, frameworks, deployment, providers - [Python SDK Quickstart](https://docs.ferrolabs.ai/integrations/sdk/python/quickstart/): Install ferrolabsai and send first request - [Python SDK Reference](https://docs.ferrolabs.ai/integrations/sdk/python/reference/): Full API reference - [Python SDK Async](https://docs.ferrolabs.ai/integrations/sdk/python/async/): AsyncFerroClient usage - [Python SDK Error Handling](https://docs.ferrolabs.ai/integrations/sdk/python/error-handling/): Exception hierarchy - [TypeScript SDK](https://docs.ferrolabs.ai/integrations/sdk/typescript/): @ferro-labs-ai/sdk reference - [Go SDK](https://docs.ferrolabs.ai/integrations/sdk/go/): Go integration and custom plugins - [OpenAI-Compatible SDKs](https://docs.ferrolabs.ai/integrations/sdk/openai-compatible/): Use any OpenAI SDK - [Deploy to Railway](https://docs.ferrolabs.ai/integrations/deployment/railway/): One-click Railway deploy - [Deploy to Render](https://docs.ferrolabs.ai/integrations/deployment/render/): One-click Render deploy - [Docker Compose](https://docs.ferrolabs.ai/integrations/deployment/docker-compose/): Self-hosted deployment - [Kubernetes](https://docs.ferrolabs.ai/integrations/deployment/kubernetes/): Helm chart deployment - [Deploy to Fly.io](https://docs.ferrolabs.ai/integrations/deployment/fly-io/): Fly.io deployment ## Providers - [Providers](https://docs.ferrolabs.ai/providers/): All 30 providers and the endpoint-support matrix - [Provider Configuration](https://docs.ferrolabs.ai/providers/configuration/): Environment variables and special config per provider ## Routing - [Routing Overview](https://docs.ferrolabs.ai/routing/): Strategy model, pool vs named modes, targets - [Single](https://docs.ferrolabs.ai/routing/single/): One target, no failover (default) - [Fallback](https://docs.ferrolabs.ai/routing/fallback/): Try targets in order, advance on failure - [Load Balance](https://docs.ferrolabs.ai/routing/loadbalance/): Weighted random across targets - [Least Latency](https://docs.ferrolabs.ai/routing/least-latency/): Route to the fastest observed target - [Cost Optimized](https://docs.ferrolabs.ai/routing/cost-optimized/): Route to the cheapest priced target - [Conditional](https://docs.ferrolabs.ai/routing/conditional/): Route on model / model_prefix - [Content Based](https://docs.ferrolabs.ai/routing/content-based/): Route on prompt content - [A/B Test](https://docs.ferrolabs.ai/routing/ab-test/): Weighted variant split for migrations ## Plugins - [Plugins Overview](https://docs.ferrolabs.ai/plugins/): Plugin system, stages, ordering, failure policy - [Word Filter](https://docs.ferrolabs.ai/plugins/word-filter/): Substring content guardrail - [Max Token](https://docs.ferrolabs.ai/plugins/max-token/): Reject oversized requests - [Rate Limit](https://docs.ferrolabs.ai/plugins/rate-limit/): Token-bucket global/per-key/per-user limits - [Budget](https://docs.ferrolabs.ai/plugins/budget/): Per-key USD spend caps (402 on exhaustion) - [Response Cache](https://docs.ferrolabs.ai/plugins/response-cache/): Credential-scoped exact-match cache - [Request Logger](https://docs.ferrolabs.ai/plugins/request-logger/): Durable request logs with cost/latency - [Managed Plugins](https://docs.ferrolabs.ai/plugins/enterprise/): 5 Ferro Labs Managed security plugins ## Guides - [MCP Integration](https://docs.ferrolabs.ai/guides/mcp/): Model Context Protocol (HTTP + stdio) - [Use Cases](https://docs.ferrolabs.ai/guides/use-cases/): Recipe-style configurations - [Virtual Keys](https://docs.ferrolabs.ai/guides/virtual-keys/): config virtual_key vs admin API keys - [Cost Tracking](https://docs.ferrolabs.ai/guides/cost-tracking/): See and cap spend - [Authentication](https://docs.ferrolabs.ai/guides/auth/): MASTER_KEY, scoped keys, sessions - [Rate Limiting](https://docs.ferrolabs.ai/guides/rate-limiting/): Per-IP, per-key, and per-user limits - [Observability](https://docs.ferrolabs.ai/guides/observability/): Prometheus metrics and OpenTelemetry - [Data Handling](https://docs.ferrolabs.ai/security/data-handling/): Redaction, isolation, and audit trail ## API Reference - [API Overview](https://docs.ferrolabs.ai/api-reference/overview/): Surface and conventions - [API Endpoints](https://docs.ferrolabs.ai/api-reference/endpoints/): Full endpoint reference - [Streaming](https://docs.ferrolabs.ai/api-reference/streaming/): SSE contract and error framing - [Admin API](https://docs.ferrolabs.ai/api-reference/admin/): Keys, config, logs, usage - [Errors](https://docs.ferrolabs.ai/api-reference/errors/): Status codes with gateway-vs-provider source ## Operations - [Monitoring](https://docs.ferrolabs.ai/operations/monitoring/): Prometheus queries and alerting - [Request Logging](https://docs.ferrolabs.ai/operations/request-logging/): SQLite and PostgreSQL backends - [Server Settings](https://docs.ferrolabs.ai/operations/server-settings/): All environment variables - [CLI Reference](https://docs.ferrolabs.ai/operations/cli-reference/): ferrogw subcommands and flags ## Performance - [Benchmarks](https://docs.ferrolabs.ai/benchmarks/): Go vs Python gateway performance ## Other - [Migrate from LiteLLM](https://docs.ferrolabs.ai/guides/migration-litellm/): Move from LiteLLM - [Migrate from Portkey](https://docs.ferrolabs.ai/guides/migration-portkey/): Move from Portkey - [Migrate from OpenRouter](https://docs.ferrolabs.ai/guides/migration-openrouter/): Move from OpenRouter - [FAQ](https://docs.ferrolabs.ai/faq/): Frequently asked questions - [Troubleshooting](https://docs.ferrolabs.ai/guides/troubleshooting/): Common issues and fixes - [Why Ferro Labs](https://docs.ferrolabs.ai/guides/why-ferro/): Comparison with alternatives - [Changelog](https://docs.ferrolabs.ai/changelog/): Release history - [Enterprise](https://docs.ferrolabs.ai/enterprise/): Enterprise features ## Source Code - GitHub: https://github.com/ferro-labs/ai-gateway - License: Apache 2.0 - Python SDK: https://pypi.org/project/ferrolabsai/ - TypeScript SDK: https://www.npmjs.com/package/@ferro-labs-ai/sdk