List Account Keys
List the account keys of your active account, newest first: their name, role, the last four characters of the key, who created them, when they were last used and when they expire. A key's secret is never returned. Revoked keys aren't listed.
Account keys are API keys that belong to the account, not to a person: each one acts only in its own account, with the role it was given, and keeps working when the person who created it leaves.
Permission required
The members:read permission on the active account. Call it from a dashboard session or with your own API key; an account key gets 403 with the code account_key_not_allowed.
Query parameters
page int optional
1-based page number. Default
1.page_size int optional
Keys per page, sent together with
page. Default 15, capped at 200.Response (200 OK)
items object[]
The keys (fields below). Always present;
[] when there are none.page, page_size int
The page returned and the effective page size.
total int
Number of keys across all pages (expired ones included, revoked ones not).
Each key contains:
uuid string (uuid)
The key's public id. Use it in DELETE /v1/account/keys/{uuid}.
name string
The name given at creation.
role object?
{uuid, name} of the key's role. The key can do what this role allows.hint string
nak_… and the key's last four characters, to tell keys apart.created_at datetime
When the key was created, RFC 3339 UTC.
created_by object?
{uuid, name} of the member who created it (their name, else their email). null once that member's user is deleted; the key keeps working.last_used_at datetime?
When the key was last used.
null if it has never been used.expires_at datetime?
When the key stops working.
null: it never expires.allowed_ips string
The addresses and CIDR ranges the key may be used from, comma-separated.
"": any address.status string
active, expired (every request with it answers 401) or paused (the account has more keys than its plan allows; every request answers 403 with the code account_key_paused until there is room again).paused_reason string?
Why a
paused key is paused and how to resume it. Omitted otherwise.Errors
401 Unauthorized
Missing or invalid auth.
403 Forbidden
The caller lacks
members:read, the request uses an account key (account_key_not_allowed), or the account is suspended (account_suspended).Request
curl "https://api.ngris.com/v1/account/keys?page=1&page_size=15" \
-H "X-API-KEY: <your_api_key>"
Response — 200 OK
{
"items": [
{
"uuid": "019a4e2f-6c1d-7b3a-9e52-3f8d1c7a2b40",
"name": "GitHub Actions deploy",
"role": {
"uuid": "019a3f4c-77ab-7e10-b2d4-6c1e9f0a8d23",
"name": "CI deploy"
},
"hint": "nak_…7Qx2",
"created_at": "2026-11-02T14:58:40Z",
"created_by": {
"uuid": "019a52c2-ca1e-78ba-ab5c-50362cc29134",
"name": "Maria Example"
},
"last_used_at": "2026-11-02T15:14:07Z",
"expires_at": "2027-01-31T14:58:40Z",
"allowed_ips": "",
"status": "active"
},
{
"uuid": "019a2c11-08f4-7d2e-a1c9-5be0f4d36a17",
"name": "Nightly export",
"role": {
"uuid": "019a1d2e-3f40-7a5b-8c6d-7e8f9a0b1c2d",
"name": "Admin"
},
"hint": "nak_…c41d",
"created_at": "2026-07-14T09:30:00Z",
"created_by": null,
"last_used_at": "2026-10-11T03:00:12Z",
"expires_at": "2026-10-12T09:30:00Z",
"allowed_ips": "203.0.113.10",
"status": "expired"
}
],
"page": 1,
"page_size": 15,
"total": 2
}
Was this helpful?