Official SDKs
ReqKey SDKs wrap the REST API in idiomatic middleware for your framework: one block of configuration adds key validation, credit metering, and traffic analytics to every route — your endpoints stay untouched.
Available now
One distribution with the shared sync/async client and optional framework adapters. Drop-in middleware for every major Python web stack, plus direct clients for scripts, workers, and custom frameworks.
One npm package with the shared async client and framework adapters — ESM and CommonJS, with complete TypeScript declarations. Drop-in middleware for Express, NestJS, Fastify, Koa, Next.js, and plain Node, plus the direct client for scripts and workers.
One module with a concurrency-safe client, standard net/http middleware that also fits Chi and Gorilla/Mux, and native adapters for Gin, Echo, and Fiber — typed decisions, typed errors, and idiomatic pointer options throughout.
One crate with a shared async core, a blocking client for synchronous apps, and optional native adapters for Axum, Actix Web, Rocket, and Warp — typed decisions, typed errors, and synchronous resolvers throughout. Framework features are opt-in, so the core never pulls a web framework into your build.
One Composer package with a framework-neutral client and middleware engine, plus adapters for Laravel, Symfony, and any PSR-15 dispatcher (including Slim 4) — configured in a file or by named-argument constructor, with typed enums and typed exceptions throughout. PHP 8.1+.
Two NuGet packages for C# on ASP.NET Core — a framework-neutral client and the ASP.NET integration with DI registration, middleware, Minimal API conventions, and MVC attributes. Configure in code or bind from appsettings.json, with typed enums and typed exceptions throughout. .NET 8.
Four Maven Central artifacts for the JVM — a framework-neutral core with the JDK HTTP client and shared middleware engine, plus thin adapters for Spring Boot, Jakarta Servlet, and JAX-RS. Configure in application.yml or with a fluent builder; Quarkus and Micronaut reuse the JAX-RS or Servlet adapters. Java 17+.
On the roadmap
More languages are in the works, in roughly this order. Each one ships with the same middleware-first design and configuration names as today's Python and Node SDKs, so switching stacks never means relearning ReqKey.
Rack, Rails, Sinatra
What every SDK ships
Official SDKs all cover the same surface, so the integration you learn once carries everywhere:
- Key validation & credit metering — checks each consumer key against
/key/validate, deducts credits, and enforces consumer rate limits with properRetry-Afterresponses. - Traffic analytics — records method, path, status, and latency to
/ingest, correlated to the validated consumer. Extra capture (headers, bodies, client IPs) is opt-in. - Secret redaction, always on — authorization headers, cookies, and consumer keys are stripped from analytics before anything leaves your server.
- Deliberate failure behavior — fail closed (default) or fail open when ReqKey itself is unreachable, plus an
on_errorhook for your own alerting. - Escape hatches — direct clients for scripts and workers, path exclusion, dynamic per-request credit costs, and custom key extraction.
No SDK? No problem
Every SDK is a convenience layer over two plain HTTPS endpoints. If your language isn't covered yet, call /key/validate and /ingest directly — the authentication guide shows the exact headers, and every endpoint page includes copy-paste samples in six languages.