Newvallkey connect sets your project up

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.

Free plan, no card neededFive-minute setupEU data residency
The Vallkey dashboard: six ghost keys, today's requests, what needs attention and AI spend for the month

Works with the APIs you already use, and any other HTTPS API. See all integrations

OpenAIAnthropicStripeGeminiAWSPayPalMistralGitHubOpenRouterCloudflareTwilioResendGroqPaddleVercelMailgun

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.

1

Your app

Calls the API as usual, with a ghost key and Vallkey's address instead of the real key.

2

Vallkey checks

Endpoint, amount, model, rate, expiry and kill state. Anything unclear is refused.

3

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

.env
# Anyone who reads this file can spend your moneySTRIPE_SECRET_KEY=sk_live_51Mx9…

After: a ghost key that only works within its rules

.env
# 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
A blocked request opened: why it was blocked, a one-click fix, and the request's country, client and ID

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
A key's rules: allowed endpoints, requests per minute and the largest payment allowed

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
AI spend for the month by day, model, key and project, with a forecast and a budget warning

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
Read the guide
Terminal
$ 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 keys

Compared

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.

How a real key is stored
1

Your real key

sk_live_51Mx9…

Arrives over TLS, then is never stored as-is

2

Sealed with a data key

AES-256-GCM

A fresh key for every ghost key

3

Data key wrapped

Master key, version 1

Lives only in runtime secrets; rotatable

4

Stored

ciphertext only

Bound 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 us

Quoted 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.

Compare every plan

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.