# 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)