List Endpoint API Keys

GET /v1/endpoints/{uuid}/api-keys

List the per-endpoint API keys you've issued for this endpoint. These are client-facing keys: visitors hitting the public URL present them in a header (typically X-API-Key or Authorization: Bearer ...) and the platform validates at the edge before forwarding to your agent. Distinct from account-level API keys which authenticate to this management API.

Each key carries an optional per-key rate limit (RPS) and an optional expiry. Maximum 50 keys per endpoint. Keys are returned masked — the full value (etk_…) is shown only once at creation; list returns a key prefix + hash for identification.

Path parameters

uuid string (uuid) Req
Endpoint UUID.

Query parameters

page int
Optional. When present (> 0), switches the response to a paged object ({items, total, page, page_size}) instead of a bare array.
page_size int
Optional. Items per page when paging. Defaults to the server default (15) and is capped at the server maximum (200).

Response (200 OK)

By default a JSON array of key objects (not wrapped in items; [] when the endpoint has none). When page is supplied, a paged object {items, total, page, page_size} is returned instead. Each key object:

uuid string (uuid)
The key's public id, used in the update/delete URLs ({key_uuid}).
endpoint_uuid string (uuid)
The endpoint the key belongs to (the {uuid} in the path).
user_uuid string (uuid)?
The user who issued the key. Omitted once that user has been deleted (the key stays with the endpoint).
name string
Friendly label.
key_prefix string
First few chars of the key (etk_a1b2c3) — enough to identify but not impersonate. Display in dashboards / audit logs.
rate_limit_rps int
Per-key requests-per-second limit. 0 = no per-key limit (the endpoint's policy still applies).
is_active boolean
false = key is disabled but kept in the table (audit-trail). The platform rejects with 401 at the edge.
expires_at datetime?
Optional expiry. Omitted for a non-expiring key.
last_used_at datetime?
Most recent successful use. Omitted if never used.
request_count int64
Total requests authenticated with this key.
created_at, updated_at datetime
RFC 3339 UTC timestamps.

Deprecated: until the sunset this response also carries the legacy integer id and *_id fields. Don't use them; read uuid and the *_uuid fields.

Errors

401 Unauthorized
Missing auth.
404 Not Found
Endpoint not found — no such endpoint in your active account (another account's endpoint reads the same; this used to be a 403).
Request
curl "https://api.ngris.com/v1/endpoints/<uuid>/api-keys" \ -H "X-API-KEY: <your_api_key>"
Python
from ngris import Ngris client = Ngris(api_key="<your_api_key>") keys = client._get_raw("/endpoints/<endpoint_uuid>/api-keys") # raw helper wraps lists as {"items": [...]} for k in keys["items"]: print(f"{k['uuid']} {k['name']} ({k['key_prefix']}...)")
Response — 200 OK
[ { "uuid": "019c5ff6-43ed-7d5b-ad5f-758b187dceed", "endpoint_uuid": "019bb1e4-e785-77d2-9966-c3cff31d0a0e", "user_uuid": "019a52c2-ca1e-78ba-ab5c-50362cc29134", "name": "mobile-app", "key_prefix": "etk_a1b2c3", "rate_limit_rps": 100, "is_active": true, "expires_at": "2027-04-29T00:00:00Z", "last_used_at": "2026-04-29T12:34:56Z", "request_count": 18342, "created_at": "2026-04-01T00:00:00Z", "updated_at": "2026-04-01T00:00:00Z" } ]
Was this helpful?
On this page
List Endpoint API Keys
Was this helpful?