README
<h1 align="center">Unkey</h1>
<h5>The Developer Platform for Modern APIs</h5>
unkey.com ·
Docs ·
Engineering ·
Discord
What is Unkey?
Unkey is the developer platform for modern APIs. We unify your infrastructure so you can ship faster: deploy APIs instantly, route traffic through global gateways, and understand usage — all in one place.
- Deploy — push an API to production in seconds, with zero infrastructure to manage
- Gateway — route, authenticate, and shape traffic through globally distributed gateways
- API Keys — issue, verify, and revoke keys with fast global verification
- Ratelimiting — globally consistent, durable ratelimiting for any identifier
- Permissions & RBAC — per-key permissions, roles, and fine-grained access control
- Analytics — usage, latency, and per-key insights across every request
- Audit logs — immutable history of every action across your workspace
License
Please find the license under the LICENSE file.
Pull requests
Unkey is not accepting external pull requests at this time.
Unkey has paused external code contributions while the team focuses on platform direction and stability. Pull requests opened by people outside the Unkey team will not be reviewed or merged.
Issues remain open for bug reports, feature requests, and documentation feedback. This repository remains public and source-available so you can read the code, fork it under the terms of the AGPL, and self-host. Unkey may revisit this policy in the future, and any change will be announced here.
If you've found a security issue, please email security@unkey.com instead of opening a public issue.
Let's Talk

Authors
Extension points exported contracts — how you extend this code
Handler (Interface)
Handler defines the interface for HTTP request handlers in the Zen framework. Implementations receive a Session and retu [54 …
pkg/zen/handler.go
Event (Interface)
Event defines the interface for simulation events that can be run against a state. Events are the building blocks of sim [9 …
pkg/sim/events.go
Validator (Interface)
Validator is an optional interface for cross-field or business-rule validation. It is called after defaults have been ap [11 …
pkg/config/config.go
CtrlServiceClient (Interface)
CtrlServiceClient is a client for the ctrl.v1.CtrlService service. [8 implementers]
gen/proto/ctrl/v1/ctrlv1connect/service.connect.go
Heartbeat (Interface)
Heartbeat sends push-based health signals to monitoring services. [4 implementers]
pkg/healthcheck/heartbeat.go
DBTX (Interface)
DBTX is an interface that abstracts database operations for both direct connections and transactions. It allows query me [4 …
pkg/mysql/interface.go
WaitStrategy (Interface)
WaitStrategy defines how to wait for a container to become ready. Implementations should poll the container until it is [4 …
pkg/testutil/containers/wait.go
Clock (Interface)
Clock is an interface for getting the current time and creating tickers. By abstracting time operations behind this inte [4 …
pkg/clock/interface.go
Core symbols most depended-on inside this repo
Run
called by 1901
pkg/sim/events.go
CallRoute
called by 967
svc/api/internal/testutil/http.go
New
called by 819
pkg/uid/new.go
Now
called by 769
pkg/clock/interface.go
Resources
called by 536
svc/api/integration/harness.go
RW
called by 527
pkg/mysql/interface.go
Error
called by 484
pkg/fault/wrapped.go
Public
called by 479
pkg/fault/wrap.go
Shape
Function
5,463
Method
4,238
Struct
1,712
Interface
316
TypeAlias
109
Class
52
FuncType
28
Enum
9
Languages
Go73%
TypeScript27%
Modules by API surface
pkg/db/querier_generated.go310 symbols
gen/proto/ctrl/v1/cluster.pb.go258 symbols
gen/proto/ctrl/v1/deployment.pb.go185 symbols
svc/frontline/internal/db/models_generated.go153 symbols
pkg/db/models_generated.go153 symbols
internal/services/ratelimit/db/models_generated.go153 symbols
svc/api/openapi/gen.go143 symbols
gen/proto/vault/v1/service.pb.go115 symbols
gen/proto/hydra/v1/deploy.pb.go101 symbols
gen/proto/frontline/v1/match.pb.go90 symbols
gen/proto/frontline/v1/ratelimit.pb.go69 symbols
pkg/cli/flag_test.go65 symbols
Dependencies from manifests, versioned
buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/gov1.36.11-20250718181 · 1×
buf.build/gen/go/bufbuild/protodescriptor/protocolbuffers/gov1.36.11-20250109164 · 1×
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/gov1.36.11-20251209175 · 1×
buf.build/gen/go/bufbuild/registry/connectrpc/gov1.19.1-202601261449 · 1×
buf.build/gen/go/bufbuild/registry/protocolbuffers/gov1.36.11-20260126144 · 1×
buf.build/gen/go/depot/api/connectrpc/gov1.19.1-202509151255 · 1×
buf.build/gen/go/depot/api/protocolbuffers/gov1.36.11-20250915125 · 1×
buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/gov1.36.11-20241007202 · 1×
buf.build/go/appv0.2.0 · 1×
buf.build/go/bufpluginv0.9.0 · 1×
buf.build/go/bufprivateusagev0.1.0 · 1×
buf.build/go/interruptv1.1.0 · 1×
Datastores touched
(mysql)Database · 1 repos
unkeyDatabase · 1 repos
dbDatabase · 1 repos
dbnameDatabase · 1 repos
dbDatabase · 1 repos