Leaked API keys, made harmless.
Vallkey gives your apps stand-in keys that only work within your rules. Cap spending, limit models and endpoints, see every request, and kill any key everywhere in one click. Your real keys never touch your code.

Works with the APIs you already use, and any other HTTPS API. See all integrations
The problem
API keys leak. Usually by accident, always at the worst time
A secret key can do everything your account can, and it lives in a lot of places. It only has to escape from one of them.
Committed to a repository
One forgotten .env file in a commit, a fork or a public gist.
Shipped to browsers
Bundled into a frontend or mobile app, where anyone can read it.
Printed in logs
Echoed by a CI job, an error tracker or a debug line.
Copied to people and tools
Shared in chat, pasted into a no-code tool, left on an old laptop.
With Vallkey, the key that leaks was never the real one.
The same mistake, two very different afternoons.
What it can do
Real key · Everything your account can do
Ghost key · Only what its rules allow
Spending
Real key · Unlimited until you notice
Ghost key · Stops at the limits you set
How you find out
Real key · A bill, or a customer
Ghost key · An alert the moment it is misused
Stopping it
Real key · Rotate, redeploy, hope
Ghost key · One click, everywhere
Your app
Real key · Breaks until redeployed
Ghost key · Keeps working with a new ghost key
Afterwards
Real key · Guessing what happened
Ghost key · Every request in the activity log
How it works
Every request is checked before your real key is used
Your app calls Vallkey with a ghost key. Vallkey checks the request against that key's rules, then forwards it with the real key, or stops it.
Your app
Calls the API as usual, with a ghost key and Vallkey's address instead of the real key.
Vallkey checks
Endpoint, amount, model, rate, expiry and kill state. Anything unclear is refused.
The provider
Receives the request with your real key, and answers your app through us.
Swap the key, keep everything else
Paths, parameters and responses stay exactly the same, so there is nothing to rewrite.
Before: the real key lives in your app
# Anyone who reads this file can spend your moneySTRIPE_SECRET_KEY=sk_live_51Mx9…After: a ghost key that only works within its rules
# Useless outside its rules, killable in one clickSTRIPE_GHOST_KEY=gk_stripe_9Qm2…Product
Everything a key should have had from the start
Rules the provider never gave you, applied to every request before it leaves our network.
See every request, and why it was stopped
Every call made with a ghost key shows up with its outcome, the rule that decided it, where it came from and how long the provider took. A wrong block is fixed in one click.
- The exact rule that refused it
- Country, IP address and client
- Search, filter and export to CSV

Rules a leaked key cannot get around
Allow only the endpoints a key needs, and cap requests, payments and AI models. Stricter rules apply at once; anything looser waits an hour and alerts your team.
- Endpoints, rates and spending caps
- AI models and token budgets
- IP addresses, countries and websites

AI spend you can see coming
What each model, key and project costs, where the month is heading, and budgets that stop a runaway key before the bill arrives.
- Budgets per key and per project
- An alert at 80% and when used up
- Estimated from real token counts

One-click kill switch
A killed key stops working everywhere at once. Or stop every key in an emergency.
Alerts where you work
Blocked requests, kills, rule changes and new teammates, by email, Slack, Teams or webhook.
Safe by default
Stricter rules apply at once. After a key's first day, anything looser waits an hour or the owner's passkey, and alerts everyone, so a stolen session cannot act quietly.
Set up in minutes
Works with the tools you already use
One command protects a whole project. Your SDKs keep working without a code change, in Node.js and Python, from your AI coding agent and in CI.
Protect a whole project in one command
- Finds the API keys in your .env files
- Creates a ghost key for each, with starter rules
- Writes the ghost keys back; your real keys leave the files
$ npx vallkey login Your code BCDF-GHJK (approve it in your browser)✓ Signed in $ npx vallkey initKeys to protect 2 keys .env OPENAI_API_KEY OpenAI API key sk-proj-…(52 chars) .env STRIPE_SECRET_KEY Stripe secret key sk_live_…(40 chars)✓ Swapped 2 keys for ghost keysCompared
A secrets manager stores keys. Vallkey makes them safe to use
They solve different halves: keep the real keys locked away, and hand out keys that are harmless by construction. Many teams use both.
What your app holds
Secrets manager · The real key, injected at runtime
Vallkey · A stand-in key that only works within your rules
If that key leaks
Secrets manager · Full access until you rotate it everywhere it was copied
Vallkey · Harmless outside its rules; kill it everywhere in one click
Spending and usage limits
Secrets manager · None — the key can do everything the account can
Vallkey · Spending caps, AI budgets, model and endpoint limits
Browsers and mobile apps
Secrets manager · You still cannot ship the key to them
Vallkey · Ship the stand-in; it only works from your pages
The real keys
Secrets manager · Locked in the vault
Vallkey · Locked in Vallkey, encrypted on arrival
Security
Built so that nobody can read your keys, including us
Every real key is sealed with its own encryption key the moment it arrives. Nothing in the product can show it again.
Envelope encryption
AES-256-GCM per key, wrapped by master keys that live only in runtime secrets.
Passkey sign-in
Face ID, Touch ID, Windows Hello or a security key. Nothing to phish.
Delayed loosening
After a key's first day, anything that opens it up waits an hour or the owner's passkey, and alerts everyone.
Confirm before danger
Deleting a key or adding a way to sign in asks for a passkey or a code first.
Fail closed
Requests that cannot be checked with certainty are refused.
Your data, your region
Keep your data in the European Union, or globally close to you.
Your real key
sk_live_51Mx9…Arrives over TLS, then is never stored as-is
Sealed with a data key
AES-256-GCMA fresh key for every ghost key
Data key wrapped
Master key, version 1Lives only in runtime secrets; rotatable
Stored
ciphertext onlyBound to your account and this key
While a request is forwarded, the real key is decrypted in memory for that moment only, and never written anywhere.
Pricing
Start free. Pay when it protects something real.
Every plan stops a leaked key from costing you money. Paid plans add address limits, automatic kill, rotation and a team.
Free
$0per month
For side projects and trying Vallkey out.
Start for free- 3 real keys protected
- 25,000 requests a month
- Rules, spending caps and kill switch
- Unlimited ghost keys for each real key
- Email alerts
- Leak scanning on GitHub
- Monitor mode to try rules first
- Short-lived keys for browsers and apps
Pro
Recommended$15per month$180 billed yearly, save $48
For a product in production.
Start with Pro- 25 real keys protected
- 1 million requests a month
- IP and country limits
- Automatic kill and security signals
- Rotation with a grace period
- Shared limits across ghost keys
- Your own API domain
- Answer caching up to 60 seconds
- Tries again when providers are busy
- Slack alerts and 3 API tokens
- AI agents: 5 task keys at once
Team
$65per month$780 billed yearly, save $168
For teams that share keys and need a trail.
Start with Team- 100 real keys protected
- 10 million requests a month
- 10 members, $10 for each extra ($8 yearly)
- Single sign-on (Google, Okta, Entra)
- Log streams to Datadog, Splunk or S3
- Outer rules and ghost keys made from code
- 3 own API domains
- Answer caching up to an hour
- Pacing requests to a provider's limit
- Key pools of up to 5 real keys
- 25 agent task keys at once
- A year of audit log
Business
From$199per month
For companies with security reviews.
Contact usQuoted for your volume, up to $999 a month
- Everything in Team
- Unlimited real keys
- High-volume keys: thousands of requests a second on one key
- Key pools of up to 10 real keys
- 10 own API domains
- 100 agent task keys at once
- 25 to unlimited members
- 50 to 300 million requests a month
- 99.9% uptime promise (SLA) and DPA
- Priority support
- Help with your security review
- Pay by invoice, monthly or yearly
Prices in US dollars. Sales tax or VAT is added at checkout where it applies. Paid accounts are never cut off for going over their requests.
FAQ
Questions, answered
Anything else? The docs go deeper, and we read every email.
Your next leaked key can be a non-event
Protect your first key in five minutes. Free plan, no card needed.









