This guide will walk you through getting your first project fully configured and ready to proxy requests from your iOS app.
By the end of this setup, you will have:
Let’s get started.
When you are developing locally or using the iOS Simulator, you cannot mint real DeviceCheck tokens. Instead, KVProxy uses Dev Tokens to authenticate your app during development.
A Dev Token:
You manage all tokens under:
Project → Dev Tokens

Once created, copy the token value. You will use it in your Xcode scheme shortly.
KVProxy provides a lightweight Swift package that integrates directly into your app.
Add the following package dependency to your project:
https://github.com/kvproxy/kvproxy-ios
In Xcode:
In your app’s startup path (typically in App or AppDelegate), add:
KVProxyInitialize(project: "your-project-slug")
Replace "your-project-slug" with your project’s slug, shown in the dashboard (also the last component of your project's dashboard URL.)
This tells the SDK which KVProxy project it belongs to.
To authenticate during development:

KVPROXY_DEBUG_TOKEN = your-dev-token

Now when your app launches, the SDK will:
You are now connected.
Dev Tokens are only for development.
For real devices and production builds, KVProxy uses Apple DeviceCheck to authenticate clients securely.
To enable this:
.p8 key from your Apple Developer account.p8 file to KVProxyFollow the detailed DeviceCheck setup guide here.
Once configured:
This gives you secure, production-grade client authentication.
Proxy Rules define how KVProxy modifies outgoing requests before forwarding them to third-party services.
Without a rule, KVProxy does nothing. Rules are explicit and domain-based.
Go to:
Project → Proxy Rules

Click Create New Proxy Rule.
You have two options:
Templates exist for popular services and pre-configure common patterns.
Examples include:
Templates automatically configure hostname matching and common header replacements.
If you are integrating with a different API, choose Custom.
You’ll configure:
KVProxy activates a rule when a request’s hostname matches your conditions.
Example:
api.elevenlabs.io
You can:

Replacement Rules define what KVProxy modifies in the request.
Common example:
| Target | Key | Behavior |
|---|---|---|
| HTTP Headers | x-api-key | Replace or Insert |
Instead of shipping your real API key in your app, you can:
You can configure:

Once saved and enabled, KVProxy will apply these rules in order whenever a matching request arrives.
After setup:
Your real API keys never live in your mobile app.
Before shipping:
Once these steps are complete, KVProxy is fully operational.
You can now:
If you run into issues, check the Documentation section in the sidebar or reach out via support.