ReqKey.docs
SDKs

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

Pythonv0.2.0pip install reqkey

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.

FastAPIStarletteFlaskDjangoASGIWSGIPlain Python
Node.jsv0.1.0npm install reqkey

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.

ExpressNext.jsNestJSFastifyKoaNodeDirect client
Gov0.1.0go get reqkey-go

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.

net/httpGinEchoFiberChiGorilla/MuxDirect client
Rustv0.1.0cargo add reqkey

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.

AxumActix WebRocketWarpAsync clientBlocking client
PHPv0.1.0composer require reqkey/reqkey

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

LaravelSymfonySlimPSR-15Plain PHPDirect client
.NETv0.1.0dotnet add package ReqKey.AspNetCore

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.

Minimal APIMVC / Web APIMiddlewareappsettings.jsonDirect client
Javav1.0.0com.reqkey:reqkey

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

Spring BootJakarta ServletJAX-RSDirect client

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.

Rubysoon

Rack, Rails, Sinatra

Vote for the next SDK
Building in one of these languages today — or one we haven't listed? Tell us at support@reqkey.com or through the in-dashboard support chat. Demand directly decides what we build next.

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 proper Retry-After responses.
  • 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_error hook 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.