One endpoint, every free provider.
FreeRide is a local OpenAI-compatible gateway that routes requests across free-tier inference providers. No subscription, no hosted keys, no vendor lock-in.
Quick start
$ curl -sSL https://api.free-ride.xyz/install.sh | sh
# or via pip/uv
$ pip install freeride-gateway
$ uv tool install freeride-gatewayWant the coding agent too? curl -sSL https://api.free-ride.xyz/ridex.sh | sh installs ridex with the gateway included.
FreeRide does not provide keys. Bring your own free-tier keys from OpenRouter, Groq, NVIDIA NIM, and friends. Run freeride config to set them.
# For Claude Code, OpenAI Codex, or Gemini CLI
$ freeride run claude
# For older agents (Aider, Continue, etc.)
$ freeride bind aider
# Or point any client at the local port
$ export OPENAI_API_BASE=http://localhost:11343/v1API reference
FreeRide implements the OpenAI Chat Completions API and the Anthropic Messages API. The full OpenAPI 3.1 spec lives at /openapi.json.
Standard OpenAI chat completions. Supports streaming, function calling, and vision (provider-dependent).
curl http://localhost:11343/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "freeride/coding", "messages": [{"role": "user", "content": "Hello"}]}'Lists all models from configured providers. Cached to reduce upstream calls.
Anthropic Messages API compatibility for Claude-speaking clients.
Health check. Returns gateway status, providers, and which ones hold usable keys.
Error handling
FreeRide returns JSON error responses with standard HTTP status codes:
All providers rate-limited. Check the Retry-After header.
All providers unavailable or quota exhausted; structured JSON body says which.
Requested model not available from any configured provider.
Rate limiting
FreeRide respects upstream provider rate limits and includes standard headers when available:
X-RateLimit-Limitprovider limitX-RateLimit-Remainingremaining requestsX-RateLimit-Resetunix timestamp when the limit resetsRetry-Afterseconds to wait (on 429/503)