Skip to content
Elaichi Elaichi

Application Development

Unkey

Connect Unkey once and hand every teammate a governed MCP endpoint with 47 tools ready to call from Claude, ChatGPT, Cursor, or any MCP client, inside the same permissions they already have, with every call checked and logged.

Unkey

Automations & dashboards

From answering questions to doing the work

A person no longer has to ask. A trigger starts the work, inside the same permissions and the same audit log as everything else. Automations and live dashboards ship on the Black plan.

Automations

Put Unkey work on a schedule.

A trigger starts a sequence of steps: call a Unkey tool, transform the result, branch, wait, and ask a person when it matters.

Unkey digest

Run 418 · started 2 minutes ago · on behalf of Emma Laurent

  1. Schedule

    Every weekday at 08:00

    0.2s
  2. Fetch identities

    Unkey

    1.4s
  3. Group by owner

    Transform

    0.1s
  4. Draft the digest

    Agent step

    Ran with 4 tools, returned a structured summary

    6.2s
  5. Approve the digest

    Needs approval

    Assigned to Michael Brennan

    Approve
  6. Post the digest

    Unkey

    Queued

Collections and dashboards

Report on Unkey without asking.

Collections hold your own data, written by an automation and read by a dashboard that refreshes on a schedule.

Unkey health

Refreshed 4 minutes ago · every 15 minutes · from the identities collection

Live

Identities

1,284 ↓ 12%

Keys

96 ↓ 8%

Needs attention

3 ↑ 2

Updated this week

412 ↑ 9%

Identities created

Last 14 days

By workspace

Share of activity

Engineering 34%

Product 27%

Support 21%

Sales 18%

AI tools

Unkey tools for your AI agents

47 tools are ready to call through Elaichi's MCP endpoint the moment you connect Unkey, governed by the same roles, restrictions, and audit log as everything else in Elaichi.

unkey_analytics_get_verifications

Execute a SELECT SQL query against key verification analytics in Unkey. Returns a meta object with requestId and a data array of verification rows whose fields match your SQL SELECT clause. Only SELECT queries are allowed. Required: query.

create_a_unkey_api

Create a new API namespace in Unkey. Returns the created namespace's api_id and request metadata. Required: name.

delete_a_unkey_api_by_id

Delete an Unkey API namespace by id. Returns request metadata and an empty data object on success. Required: id.

get_single_unkey_api_by_id

Get an Unkey API namespace by id. Returns the API namespace including id and name. Required: id.

unkey_apis_list_keys

List API keys for an Unkey API namespace. Returns: keyId, start, enabled, name, meta, createdAt, updatedAt, lastUsedAt, expires, permissions, roles, credits, identity, plaintext, ratelimits. Required: apiId.

create_a_unkey_deployment

Create a new deployment in Unkey from a pre-built Docker image. Returns the deployment id. Internal endpoint; not recommended for production use. Required: project, app, branch, environmentSlug, dockerImage.

get_single_unkey_deployment_by_id

Get deployment information in Unkey including status, error messages, and deployment steps. Returns: meta, data, id. Internal endpoint; not recommended for production use. Required: id.

create_a_unkey_identity

Create an identity in Unkey to group API keys under a single entity with shared metadata and rate limits. Returns the created identity with id, externalId, meta, and ratelimits, plus request metadata. Required: externalId.

delete_a_unkey_identity_by_id

Permanently delete an identity in Unkey. This operation cannot be undone. Returns only the request metadata (requestId). Required: id.

get_single_unkey_identity_by_id

Get an identity in Unkey by id. Returns the identity's id, externalId, meta, and ratelimits. Required: id.

list_all_unkey_identities

List identities in Unkey. Returns identities, a cursor, and a total count. Max 100 per page, defaults to 100.

update_a_unkey_identity_by_id

Update an identity's metadata and rate limits in Unkey. Only specified fields are modified. Returns the updated identity's id, externalId, meta, and ratelimits. Required: id.

unkey_keys_add_permissions

Add permissions to an Unkey key without replacing existing ones. Returns: id, name, slug, description. Required: keyId, permissions.

unkey_keys_add_roles

Add roles to an Unkey key without replacing existing roles or permissions. Returns: id, name, description, permissions. Required: keyId, roles.

create_a_unkey_key

Create a new Unkey API key. Returns: meta, data. The plaintext key is returned only once. Required: apiId.

delete_a_unkey_key_by_id

Delete an Unkey key by keyId. Returns: meta, data. Defaults to soft deletion. Required: id.

get_single_unkey_key_by_id

Get details of an Unkey key by id. Returns: meta, data. Required: id.

unkey_keys_get_by_hash

Look up an Unkey API key by its full key string. Returns meta and data; data contains the key record with keyId, enabled, name, permissions, roles, and credits. Required: key.

unkey_keys_migrate

Migrate pre-hashed API keys into an Unkey API. Returns meta and data; data contains the migration outcome with migrated entries (hash + keyId) and any failed hashes. Required: migrationId, apiId, keys.

unkey_keys_remove_permissions

Remove direct permissions from an Unkey key without affecting its roles. Returns meta and data; data lists the remaining direct permissions with id, name, slug, and description. Changes take up to 30 seconds to propagate. Required: keyId, permissions.

unkey_keys_remove_roles

Remove roles from an Unkey key without affecting its direct permissions. Returns meta and data; data lists the remaining roles with id, name, description, and permissions. Changes take up to 30 seconds to propagate. Required: keyId, roles.

unkey_keys_reroll

Generate a new Unkey API key while preserving an existing key's configuration. Returns meta and data; data contains the new keyId and key. Required: keyId, expiration.

unkey_keys_set_permissions

Replace all direct permissions on an Unkey key in one atomic operation. Returns meta and data: the updated permission list in data, including each permission's id, name, slug, and description. Changes may take up to 30 seconds to propagate across all edge regions. Required: keyId, permissions.

unkey_keys_set_roles

Replace all roles on an Unkey key in one atomic operation. Returns meta and data: the updated role list in data, including each role's id, name, description, and nested permissions. Changes may take up to 30 seconds to propagate across all edge regions. Required: keyId, roles.

unkey_keys_update_credits

Update a Unkey key's credit balance. Returns meta and data: the updated credit balance in data, including remaining and refill settings. Provide value when incrementing or decrementing; set value to null for unlimited credits. Required: keyId, operation.

update_a_unkey_key_by_id

Update an existing Unkey API key's settings. Supports partial updates such as name, metadata, expiration, credits, rate limits, roles, permissions, and enabled status. Returns meta and data: an empty data object confirming success. Changes take effect immediately but may take up to 30 seconds to propagate to all edge regions. Required: id.

unkey_keys_verify

Verify an Unkey API key's validity, permissions, rate limits, and usage quota for request authentication. Returns meta and data: the verification result including valid, keyId, name, meta, expires, credits, enabled, permissions, roles, identity, and ratelimits. Always returns HTTP 200; check the valid field to determine authorization. Required: key.

unkey_keys_whoami

Get information about an Unkey API key by its full key string. Returns the key object under `data` including keyId, start, enabled, createdAt, permissions, roles, credits, and ratelimits. Required: key.

list_all_unkey_liveness

Check the health status of the Unkey API. Returns the service health object including requestId, message, and response metadata. No authentication required.

create_a_unkey_permission

Create a new permission in Unkey. Returns the response envelope with meta and data containing permissionId. Required: name, slug.

delete_a_unkey_permission_by_id

Delete a permission in Unkey by permission id or slug. Returns the response envelope with meta and an empty data object on success. Required: id.

get_single_unkey_permission_by_id

Get a permission in Unkey by id or slug. Returns the response envelope with meta and data containing id, name, slug, and description. Required: id.

list_all_unkey_permissions

List all permissions in your Unkey workspace. Returns the response envelope with meta, an array of permission objects (id, name, slug, description), and pagination cursors. Optional: cursor, limit.

update_a_unkey_permission_by_id

Update a permission in unkey. Returns: meta, data, name, email, plan. Required: id.

create_a_unkey_role

Create a new role in Unkey. Returns: meta, data. Required: name.

delete_a_unkey_role_by_id

Delete a role in Unkey by role id or name. Returns meta and an empty data object. Required: id.

get_single_unkey_role_by_id

Get a role in Unkey by role id or name. Returns: meta, data. Required: id.

list_all_unkey_roles

List all roles in your Unkey workspace, including their assigned permissions. Returns: id, name, description, permissions.

update_a_unkey_role_by_id

Update an existing RBAC role in Unkey. Returns the updated role including id, name, description, and permissions. Required: id. Provide at least one of name, description, or permissions to change.

unkey_ratelimit_limit

Apply a single rate limit check in Unkey for an identifier within a namespace. Returns the rate limit result in data, including limit, remaining, reset, and success, plus request metadata in meta. Cost defaults to 1. Required: namespace, duration, identifier, limit.

unkey_ratelimit_multi_limit

Apply multiple rate limit checks in a single Unkey request. Returns the combined result in data, including a passed flag and per-check limits (limit, remaining, reset, success), plus request metadata in meta.

unkey_ratelimit_set_override

Create or update a custom Unkey rate limit override for an identifier pattern. Returns the override_id in data and request metadata in meta. Required: namespace, duration, identifier, limit.

unkey_ratelimit_get_override

Retrieve an existing Unkey rate limit override by namespace and identifier pattern. Returns the override configuration in data, including override_id, duration, identifier, and limit, plus request metadata in meta. Required: namespace, identifier.

unkey_ratelimit_delete_override

Delete an Unkey rate limit override by namespace and identifier pattern. Returns meta and an empty data object on success. Required: namespace, identifier.

unkey_ratelimit_list_overrides

List rate limit overrides in an Unkey namespace. Returns: overrideId, duration, identifier, limit. Required: namespace.

unkey_portal_create_session

Create a short-lived Unkey Portal session for an end user. Returns the session id, redirect URL, and request metadata. Requires slug, externalId, and permissions.

unkey_portal_exchange_session

Exchange a short-lived Unkey Portal session token for a long-lived browser session token. Returns the new token, its expiration timestamp, and request metadata. Requires sessionId.

How it works

From Unkey account to governed MCP endpoint

Connect

Link a Unkey account through Elaichi's hosted connect flow. Credentials are vaulted, so nobody, including the AI, ever sees them.

Compose

The connection becomes a toolbox instantly. Curate which Unkey tools are exposed, rename them, or freeze arguments.

Authorize

Point Claude, ChatGPT, Cursor, or any MCP client at the one Elaichi endpoint and sign in with OAuth, governed by roles, restrictions, and audit logs.

Put your agents to work in the tools you already use

Start a 14-day Gold trial. Connect a product, curate a toolbox, and paste a governed MCP endpoint into Claude, ChatGPT, or Cursor in minutes.