Skip to main content
You need a root key with the permissions listed on this page. Create one in the dashboard under Settings > Root Keys. See Permission reference for every permission.
List the in a project. Results are ordered by app ID. When pagination.hasMore is true, pass pagination.cursor back with --cursor.

Usage

Flags

string
Pagination cursor from a previous response.
integer
default:"100"
Maximum number of apps per page, between 1 and 100.
string
required
Project ID or slug. Both forms resolve to the same project.
Free-form text, at most 256 characters. Returns apps whose ID, name, or slug contains it, matched case-insensitively.

Shared flags

Every unkey api command accepts these; CLI output and shared flags describes them in full.
string
A JSON document sent as the request body instead of building it from the flags above. It is mutually exclusive with the request-building flags, and unknown fields are rejected locally. See Send a raw body.
string
Root key for the request. Falls back to UNKEY_ROOT_KEY, then to the config file written by unkey auth login. See CLI authentication.
string
default:"https://api.unkey.com"
Base URL of the API. Falls back to UNKEY_API_BASE_URL. You don’t normally need to set it.
string
default:"~/.unkey/config.toml"
Path of the TOML file that unkey auth login writes. Falls back to UNKEY_CONFIG.
string
Output format. Falls back to UNKEY_OUTPUT. Set json to print the full response envelope (meta and data) for piping; any other value prints the request ID followed by data.

Required permissions

Your root key needs app.*.read_app. If the project doesn’t exist or your key doesn’t have the permission, you get the same 404: The requested project does not exist. See Root key permissions for the full catalog.

Examples

List the apps in a project:
Filter and page:

API endpoint

The command calls POST /v2/apps.listApps and prints its response. The request fields carry the same names as the flags in camelCase, which is the shape --body expects.
Last modified on September 29, 2026