Documentation
Why use AIProxy?
API keys cannot be kept secret inside a shipped app. Loading a key at runtime does not solve the problem: to use the key over the network, the app must receive the complete credential and attach it to a request, where someone who controls the client can extract and reuse it. AIProxy lets your app call AI providers without ever giving the client the full provider key, while adding controls and visibility that are difficult to build and operate yourself.
- Protect provider credentials: Your complete API key is never included in the app binary or sent by the client.
- Prevent endpoint abuse: Use Apple DeviceCheck, endpoint restrictions, and per-user or per-IP rate limits to control who can make requests and how often.
- Monitor production usage: Inspect request history, errors, token usage, client activity, and traffic trends in the dashboard.
- Integrate quickly: Use our open-source Swift package for typed access to popular AI services, or proxy requests from your existing networking code.
How AIProxy works
To use AIProxy you first add the service/API you want to protect, then add your API key through our dashboard. We don't actually store the key on our servers, we encrypt the key and store 1/2 of that result in our backend and give the customer the other 1/2 to send up with requests to AIProxy. We marry the two pieces and decrypt the key, forwarding that onto the API. Learn more
View integration guide Sample apps Swift client librarySupported Services
| Service | Supported | Endpoints | Examples |
|---|---|---|---|
Anthropic |
Yes | Messages, streaming-messages, streaming tool calls, send image, tools API | Examples |
Anthropic Migration (0.135.0) |
Yes | Migration guide for Anthropic SDK | Examples |
Azure |
Yes | OpenAI | Examples |
Brave Search |
Yes | Search | Examples |
DeepL |
Yes | Translations | Examples |
DeepSeek |
Yes | Chat completion, streaming chat completion | Examples |
EachAI |
Yes | Each AI Workflows | Examples |
ElevenLabs |
Yes | Text-to-speech | Examples |
Fal |
Yes | FastSDXL, Runway Gen3 Alpha, Flux training | Examples |
Fireworks AI |
Yes | DeepSeek R1 | Examples |
Gemini |
Yes | Text generation, audio transcription, vision | Examples |
Groq |
Yes | Non-streaming chat, streaming chat, transcribe audio | Examples |
Mistral |
Yes | Chat, streaming chat | Examples |
OpenAI |
Yes | Chat, streaming chat, multi-modal chat, DALLE, text-to-speech | Examples |
OpenRouter |
Yes | Chat completions, streaming chat completions, structured outputs (strict json), multi-modal (image input) | Examples |
Open-Meteo |
Yes | Fetch the weather | Examples |
Perplexity |
Yes | Chat completion, streaming chat completion | Examples |
Replicate |
Yes | Flux-Schnell, Flux-Dev, Flux-Pro, Flux-PuLID, Flux ControlNet, SDXL, Flux fine-tune | Examples |
Stability.ai |
Yes | Image generation | Examples |
Together AI |
Yes | Chat, streaming chat, tool call with Llama | Examples |
Request a new service
If you need us to support a service not listed above you can reach out to us and we'll take a look!
Request a new service
Anthropic
Azure
Brave Search
DeepL
DeepSeek
EachAI
ElevenLabs
Fal
Fireworks AI
Gemini
Groq
Mistral
OpenAI
OpenRouter
Open-Meteo
Perplexity
Replicate
Stability.ai
Together AI