# Unkey Docs ## Docs - [Create an API](https://unkey.com/docs/api-reference/apis/create) - [Delete an API](https://unkey.com/docs/api-reference/apis/delete): Permanently delete an API and revoke all keys associated with it - [Delete all keys of an API](https://unkey.com/docs/api-reference/apis/delete-keys) - [Retrieve an API](https://unkey.com/docs/api-reference/apis/get) - [List keys for an API](https://unkey.com/docs/api-reference/apis/list-keys) - [Authentication](https://unkey.com/docs/api-reference/authentication): How to authenticate your requests to Unkey's API - [BAD_REQUEST](https://unkey.com/docs/api-reference/errors/code/BAD_REQUEST) - [CONFLICT](https://unkey.com/docs/api-reference/errors/code/CONFLICT) - [DELETE_PROTECTED](https://unkey.com/docs/api-reference/errors/code/DELETE_PROTECTED) - [DISABLED](https://unkey.com/docs/api-reference/errors/code/DISABLED) - [EXPIRED](https://unkey.com/docs/api-reference/errors/code/EXPIRED) - [FORBIDDEN](https://unkey.com/docs/api-reference/errors/code/FORBIDDEN) - [INTERNAL_SERVER_ERROR](https://unkey.com/docs/api-reference/errors/code/INTERNAL_SERVER_ERROR) - [NOT_FOUND](https://unkey.com/docs/api-reference/errors/code/NOT_FOUND) - [TOO_MANY_REQUESTS](https://unkey.com/docs/api-reference/errors/code/TOO_MANY_REQUESTS) - [UNAUTHORIZED](https://unkey.com/docs/api-reference/errors/code/UNAUTHORIZED) - [Introduction](https://unkey.com/docs/api-reference/errors/introduction): Machine and human readable error codes - [Create an identity](https://unkey.com/docs/api-reference/identities/create-identity) - [Delete an identity](https://unkey.com/docs/api-reference/identities/delete-identity) - [Get an identity](https://unkey.com/docs/api-reference/identities/get-identity) - [List identities](https://unkey.com/docs/api-reference/identities/list-identities) - [Update an identity](https://unkey.com/docs/api-reference/identities/update-identity) - [Add Permissions](https://unkey.com/docs/api-reference/keys/add-permissions): Add one or more permissions to a key. - [Add Roles](https://unkey.com/docs/api-reference/keys/add-roles): Add one or more roles to a key. - [Create a key](https://unkey.com/docs/api-reference/keys/create) - [Delete a key](https://unkey.com/docs/api-reference/keys/delete): Deleted keys are no longer valid and will not be able to be used to authenticate requests. - [Retrieve a key by ID](https://unkey.com/docs/api-reference/keys/get) - [Remove Permissions](https://unkey.com/docs/api-reference/keys/remove-permissions): Remove one or more permissions from a key. - [Remove Roles](https://unkey.com/docs/api-reference/keys/remove-roles): Remove one or more roles from a key. - [Set Permissions](https://unkey.com/docs/api-reference/keys/set-permissions): Overwrite the permissions of a key with a new set of permissions. - [Set Roles](https://unkey.com/docs/api-reference/keys/set-roles): Overwrite the roles of a key with a new set of roles. - [Update a key](https://unkey.com/docs/api-reference/keys/update): Updates the configuration of an existing key. Omit fields to leave unchanged. - [Update a key's remaining limit](https://unkey.com/docs/api-reference/keys/update-remaining) - [Retrieve usage numbers](https://unkey.com/docs/api-reference/keys/verifications): Filter by `keyId` or `ownerId`. - [Verify a key](https://unkey.com/docs/api-reference/keys/verify) - [Returns data about a key](https://unkey.com/docs/api-reference/keys/whoami) - [Migrate key to Unkey](https://unkey.com/docs/api-reference/migrations/create-keys) - [Overview](https://unkey.com/docs/api-reference/overview): General information about the API. - [Create A Permission](https://unkey.com/docs/api-reference/permissions/create-permission) - [Create A Role](https://unkey.com/docs/api-reference/permissions/create-role) - [Delete A Permission](https://unkey.com/docs/api-reference/permissions/delete-permission) - [Delete A Role](https://unkey.com/docs/api-reference/permissions/delete-role) - [Get Permission](https://unkey.com/docs/api-reference/permissions/get-permission) - [Get Role](https://unkey.com/docs/api-reference/permissions/get-role) - [List Permissions](https://unkey.com/docs/api-reference/permissions/list-permissions) - [List Roles](https://unkey.com/docs/api-reference/permissions/list-roles) - [Ratelimit anything](https://unkey.com/docs/api-reference/ratelimits/limit) - [Analytics](https://unkey.com/docs/apis/features/analytics): Per key and per API analytics - [Example](https://unkey.com/docs/apis/features/authorization/example): RBAC in the almost-real world - [Overview](https://unkey.com/docs/apis/features/authorization/introduction): Access Control with Roles and Permissions - [Roles and Permissions](https://unkey.com/docs/apis/features/authorization/roles-and-permissions) - [Verifying](https://unkey.com/docs/apis/features/authorization/verifying): Verifying permissions through the API - [Disabling Keys](https://unkey.com/docs/apis/features/enabled): Enable or disable a key. Disabled keys will not validate. - [Environments](https://unkey.com/docs/apis/features/environments): Separate your keys into live and test environments. - [Modes](https://unkey.com/docs/apis/features/ratelimiting/modes): Latency or consistency? Choose the right mode for your usecase. - [Overview](https://unkey.com/docs/apis/features/ratelimiting/overview): How rate limiting works in unkey - [Refill](https://unkey.com/docs/apis/features/refill): Refill remaining key verifications on a set interval - [Usage limited keys](https://unkey.com/docs/apis/features/remaining): Limiting the usage of keys - [Key Revocation](https://unkey.com/docs/apis/features/revocation): Keys can be revoked at any time, from the API or the dashboard. - [Temporary Keys](https://unkey.com/docs/apis/features/temp-keys): How to create temporary API Keys in Unkey - [IP Whitelisting](https://unkey.com/docs/apis/features/whitelist): Unkey offers IP whitelisting to restrict requests to a specific set of IP addresses. - [Overview](https://unkey.com/docs/apis/introduction): Protect your public APIs - [Overview](https://unkey.com/docs/audit-log/introduction): Audit logs for your workspace, allowing you to see the history of all the resource requests made inside your workspace. - [Event Types](https://unkey.com/docs/audit-log/types): Available audit log event types - [Overview](https://unkey.com/docs/concepts/identities/overview): Identities are a representations of a user, an org or a machine in your application. - [Ratelimits](https://unkey.com/docs/concepts/identities/ratelimits): Identities can be used to share ratelimits across multiple keys - [Editor Setup (Optional)](https://unkey.com/docs/contributing/editor-setup): Editor setup to enhance your development experience - [null](https://unkey.com/docs/contributing/getting-started) - [SDK development](https://unkey.com/docs/contributing/sdk-development): Information for Unkey SDK developers - [Architecture](https://unkey.com/docs/contributing/services/agent/architecture) - [Cluster](https://unkey.com/docs/contributing/services/agent/cluster): Running a cluster for high availablity and global distribution. - [Configuration](https://unkey.com/docs/contributing/services/agent/configuration): Configuration services and options for the agent service. - [Profiling](https://unkey.com/docs/contributing/services/agent/profiling) - [Testing](https://unkey.com/docs/contributing/testing): James loves writing tests - [Versioning](https://unkey.com/docs/contributing/versions): How to release new versions of the repository. - [Vercel](https://unkey.com/docs/integrations/vercel): Zero Config API Authenciation on Vercel - [Welcome to Unkey](https://unkey.com/docs/introduction): API management redefined - [create_key](https://unkey.com/docs/libraries/ex/functions/create_key): Create an api key for your users - [delete_key](https://unkey.com/docs/libraries/ex/functions/delete_key): delete a key - [update_key](https://unkey.com/docs/libraries/ex/functions/update_key): Updates the configuration of a key - [update_remaining](https://unkey.com/docs/libraries/ex/functions/update_remaining): Updates the `remaining` value of a key - [verify_key](https://unkey.com/docs/libraries/ex/functions/verify_key): Verify a key - [Overview](https://unkey.com/docs/libraries/ex/overview): Elixir client for unkey - [Overview](https://unkey.com/docs/libraries/go/overview): Go SDK for Unkey - [Overview](https://unkey.com/docs/libraries/nuxt/overview): Nuxt module for unkey - [Async](https://unkey.com/docs/libraries/py/async): Using unkey.py synchronous or asynchronous - [Overview](https://unkey.com/docs/libraries/py/overview): Developer-friendly & type-safe Python SDK for Unkey's API. - [Apis](https://unkey.com/docs/libraries/py/services/apis) - [Identities](https://unkey.com/docs/libraries/py/services/identities) - [Keys](https://unkey.com/docs/libraries/py/services/keys) - [Migrations](https://unkey.com/docs/libraries/py/services/migrations) - [Permissions](https://unkey.com/docs/libraries/py/services/permissions) - [Ratelimits](https://unkey.com/docs/libraries/py/services/ratelimits) - [Overview](https://unkey.com/docs/libraries/rs/overview): Rust client for unkey - [Get API](https://unkey.com/docs/libraries/springboot-java/api/get): Retrieve information about an API - [List Keys](https://unkey.com/docs/libraries/springboot-java/api/list): List API keys - [Create](https://unkey.com/docs/libraries/springboot-java/functions/create): Create an api key for your users - [revoke](https://unkey.com/docs/libraries/springboot-java/functions/revoke): Revoke an api key - [Update](https://unkey.com/docs/libraries/springboot-java/functions/update): Update an api key - [Verify](https://unkey.com/docs/libraries/springboot-java/functions/verify): Verify an api key - [Overview](https://unkey.com/docs/libraries/springboot-java/overview): Spring Boot client for unkey - [@unkey/cache](https://unkey.com/docs/libraries/ts/cache/overview): Cache middleware with types - [@unkey/hono](https://unkey.com/docs/libraries/ts/hono): Hono.js middleware for authenticating API keys - [@unkey/nextjs](https://unkey.com/docs/libraries/ts/nextjs): Next.js SDK for Unkey - [@unkey/ratelimit](https://unkey.com/docs/libraries/ts/ratelimit): Serverless ratelimiting - [Create](https://unkey.com/docs/libraries/ts/sdk/apis/create): Create a new API - [Delete](https://unkey.com/docs/libraries/ts/sdk/apis/delete): Permanently delete an API and revoke all keys associated with it. - [Get](https://unkey.com/docs/libraries/ts/sdk/apis/get): Retrieve the configuration of an API - [List Keys](https://unkey.com/docs/libraries/ts/sdk/apis/list-keys): Get a list of keys belonging to an API - [Create](https://unkey.com/docs/libraries/ts/sdk/keys/create): Create an api key for your users - [Delete](https://unkey.com/docs/libraries/ts/sdk/keys/delete): Delete an api key for your users - [Get](https://unkey.com/docs/libraries/ts/sdk/keys/get): Get the configuration for an api key - [Update](https://unkey.com/docs/libraries/ts/sdk/keys/update): Update an api key for your users - [Update Remaining](https://unkey.com/docs/libraries/ts/sdk/keys/update-remaining): Update the remaining usage of a key. - [Verifications](https://unkey.com/docs/libraries/ts/sdk/keys/verifications): Get usage information about your API keys - [Verify](https://unkey.com/docs/libraries/ts/sdk/keys/verify): Verify a key - [Overview](https://unkey.com/docs/libraries/ts/sdk/overview): Typescript client for unkey - [Limit](https://unkey.com/docs/libraries/ts/sdk/ratelimits/limit): Serverless ratelimiting - [Overview](https://unkey.com/docs/migrations/introduction): Migrate your API to Unkey - [Migrate keys to Unkey](https://unkey.com/docs/migrations/keys) - [Bun](https://unkey.com/docs/quickstart/apis/bun): Authentication for Bun's http server - [Express](https://unkey.com/docs/quickstart/apis/express): Authentication for your Express server - [Hono](https://unkey.com/docs/quickstart/apis/hono): API Authentication in Hono - [Next.js](https://unkey.com/docs/quickstart/apis/nextjs): API Authentication in Next.js - [Quickstart](https://unkey.com/docs/quickstart/identities/shared-ratelimits): Create your first identity and key with Unkey - [Public API Protection](https://unkey.com/docs/quickstart/onboarding/onboarding-api): Get started with API keys - [Ratelimiting](https://unkey.com/docs/quickstart/onboarding/onboarding-ratelimiting): Get started with standalone ratelimiting - [Bun](https://unkey.com/docs/quickstart/ratelimiting/bun): Ratelimiting endpoints with Bun's http server - [Express](https://unkey.com/docs/quickstart/ratelimiting/express): Ratelimiting endpoints with Express - [Hono](https://unkey.com/docs/quickstart/ratelimiting/hono): Ratelimiting endpoints with Hono - [Next.js](https://unkey.com/docs/quickstart/ratelimiting/nextjs): Ratelimiting endpoints with Next.js - [Overview](https://unkey.com/docs/ratelimiting/introduction): Ratelimit your serverless functions. - [Consistency vs Latency](https://unkey.com/docs/ratelimiting/modes): Optimize for consistency or latency with different ratelimiting modes. - [Custom overrides](https://unkey.com/docs/ratelimiting/overrides): Override limits for identifiers without code changes. - [GitHub Secret Scanning](https://unkey.com/docs/security/github-scanning): How Unkey protects you from leaked root keys - [Overview](https://unkey.com/docs/security/overview): How does Unkey work? What security measures are in place? - [Recovering Keys](https://unkey.com/docs/security/recovering-keys): Show keys again after they are created - [Root Keys](https://unkey.com/docs/security/root-keys): Learn how root keys in the Unkey API work ## Optional - [Blog & Tutorials](https://unkey.com/blog) - [Discord](https://unkey.com/discord) - [GitHub](https://github.com/unkeyed)