Ship APIs, not infrastructure.
Push your repo, get a production API. Unkey builds the image, runs it across your chosen regions, and routes every request through the gateway for API key authentication, rate limiting, and IP rules before it hits your code. Domains, rollbacks, and analytics are handled. You write the application; we run it.
Push to GitHub or run unkey deploy. Multi-region, instant rollbacks, automatic domains, preview environments.
API key authentication, rate limiting, and IP policies running in front of your app. No middleware to write.
Issue, verify, revoke. Usage limits, expiration, metadata, identities. Use standalone or attached to a deployment.
Who's using your API, how much, when. Built in, queryable, no pipeline to build.
Why Unkey?#
Shipping an API used to mean stitching together a runtime, a CDN, a key store, a Redis for rate limits, an analytics pipeline, and the auth middleware to glue them. Unkey is one platform that runs all of it on servers we operate, so you can focus on the actual API.
| Without Unkey | With Unkey |
|---|---|
| Provision servers, configure load balancers, manage TLS | git push or unkey deploy |
| Build key storage, hashing, rotation, revocation | Attached to your app or called via SDK |
| Stand up Redis for rate limiting | unkey.ratelimit.limit() |
| Wire up usage tracking and dashboards | Built-in analytics |
Unkey never stores API keys in plain text. Keys are SHA-256 hashed before storage, so even if our database were compromised your keys stay safe.
What can you build?#
Ship a production API from your repo
Connect a GitHub repository or run unkey deploy. Unkey builds your image, runs it across your chosen regions, and assigns domains automatically. Every push to your default branch goes to production; every other branch gets a preview environment.
Authenticate every request before it hits your app
The gateway sits in front of your deployment and enforces API key checks, rate limits, and IP rules. No SDK call required from inside your app: invalid requests are rejected before they reach your code.
Issue API keys to your customers
Issue keys with prefixes, expiration, usage credits, rate limits, and arbitrary metadata. Verify them with one SDK call, attached to a deployment or standalone.
Rate limit anything
Per-user, per-IP, per-endpoint, per-anything. Globally distributed, no Redis, attached to a key or completely standalone.
Usage-based billing
Issue keys with monthly credits and automatic refills. Verification consumes credits, so usage-based pricing is one config object away.
Get started#
Connect a GitHub repository (or push a Docker image) and have a live URL in minutes.
Create a keyspace, generate a key, and verify it with curl or your favorite SDK.
Step-by-step recipes for Next.js, Bun, Express, Hono, FastAPI, Go.
Ready-to-copy patterns: per-user limits, tiered subscriptions, usage billing.
Choose your path#
Deploy from GitHub or CLI. Multi-region, rollbacks, preview environments, the gateway in front.
Use the SDK directly from any backend, no deployment required.
Bring existing keys over without disrupting your users.
Start by deploying. Add API key auth and rate limits as policies on the deployment.
Join the community#
Questions, ideas, or just want to talk to other API builders?