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.
Query standalone rate limit data with SQL. Use the ratelimits_v1 table, or the rolled-up ratelimits_per_minute_v1, ratelimits_per_hour_v1, ratelimits_per_day_v1, and ratelimits_per_month_v1. The query must be one SELECT with a FROM, using only allowed functions and documented columns. CTEs, subqueries, UNION, and EXCEPT work. The rules and their error codes are on err:user:bad_request:invalid_analytics_query. Responses over 4 MiB fail with err:user:unprocessable_entity:query_memory_limit_exceeded. Query time and result rows are limited too. Calls POST /v2/analytics.getRatelimits. See ratelimits tables, Analytics restrictions and quotas, and Analytics troubleshooting.

Usage

Flags

string
required
The SQL SELECT to run.

Shared flags

Every unkey api command takes these. See CLI output and shared flags.
string
Root key used for the request. Falls back to UNKEY_ROOT_KEY, then to the key stored by unkey auth login.
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 config file written by unkey auth login. Falls back to UNKEY_CONFIG.
string
Output format. Falls back to UNKEY_OUTPUT. json prints the full response. Any other value prints the request ID and data.
string
Send this JSON as the whole request body instead of using the command’s flags. You can’t combine it with them.

Required permissions

ratelimit.*.read_analytics, or ratelimit.<namespace_id>.read_analytics for one or more namespaces, which limits results to those namespaces. See Root key permissions.

Examples

Passed versus rejected per namespace
Or send the whole request as JSON:
Raw body
Last modified on September 29, 2026