Meta · Endpoint
Keys
Every non-revoked API key you own: identity, limits and remaining quota — never secrets or request history.
/v1/me/keysThe endpoint allow-list is the only gate: a key whose allow.endpoints is a list must name meta.keys, or the call is 403 endpoint_not_allowed. Every self-service key names it.
Parameters
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
limit | integer 1–5000 | optional | 100 | Rows per page. Below 1 or above 5000 is a 400 bad_request naming the parameter and the constraint it broke. |
offset | integer | optional | 0 | Rows to skip; pagination.has_more is false at the end. |
Example request
curl
curl -H "Authorization: Bearer sxk_live_4f9c…" \ "https://api.simicx.com/v1/me/keys"
Try it
Execute GET /v1/me/keys against the live API using your key. Paste a key below to send without signing in, or sign in to auto-fill from your profile — either way, the call counts towards your rate limits. Whether the route answers depends on your key's endpoint allow-list — /v1/me lists what is in force; a new key starts with only the self-service routes until an administrator grants more.
Sent server-side via a same-origin proxy; only the documented host(s) are allowed.
Request
https://api.simicx.com/v1/me/keys?limit=100&offset=0Example response
JSON · synthetic values, real schema
{
"data": [
{
"key_id": "9f2c4ab8d1e3f0a2",
"display_prefix": "sxk_live_9f2c4a…",
"name": "notebook",
"status": "active",
"allow": {
"endpoints": { "mode": "list", "ids": ["meta.health", "meta.keys", "meta.me"] },
"alphas": { "mode": "all", "ids": [] },
"runs": { "mode": "all", "ids": [] }
},
"field_policy": { "expose_raw_book": false },
"rate_limit": { "per_second": 5, "per_minute": 60, "per_day": 5000, "monthly_requests": 100000 },
"usage": {
"second": 0, "minute": 1, "day": 12, "month": 48,
"remaining_second": 5, "remaining_minute": 59,
"remaining_day": 4988, "remaining_month": 99952
},
"expires_at": "2027-07-01T00:00:00Z",
"created_at": "2026-02-11T09:40:00Z"
}
],
"pagination": { "limit": 100, "offset": 0, "returned": 1, "total": 1, "has_more": false },
"meta": {
"request_id": "req_7f3a2c",
"generated_at": "2026-07-28T14:03:12Z",
"source": "platform_accounts",
"key_id": "9f2c4ab8d1e3f0a2"
}
}Response fields
Every field the response can carry, what it means, and how it is computed.
key_iddisplay_prefixnamestatusallowfield_policy.expose_raw_bookrate_limitusageexpires_atcreated_atkey_idstringPublic identifier of the key.
How it is computed
The full secret is shown once, at issuance, in your platform profile — it is never returned by the API.
display_prefixstringMasked form of the token.
How it is computed
sxk_live_ plus a short prefix of the key_id — enough to tell keys apart in a list.
namestringHuman name given at issuance.
How it is computed
Use it to tell production from notebook keys.
statusactive | suspendedLifecycle state of the key.
How it is computed
Only active keys authenticate; suspended maps to 401 key_suspended. Revoked (deleted) keys are omitted from this inventory entirely — they do not appear as rows. Expiry is not a status — it is expires_at passing, which surfaces as 401 key_expired while status still reads active.
allowobjectWhat this key may call, and which alphas it may address.
How it is computed
Same shape as /v1/me's allow block, clamped to the owner's ceiling at read time. A never-granted key reports the meta-only list — never mode "all".
field_policy.expose_raw_bookbooleanWhether raw_* fields and raw_ books are served.
How it is computed
Per-key flag.
rate_limitobjectConfigured envelopes for this key.
How it is computed
per_second, per_minute, per_day, monthly_requests — 5 / 60 / 5000 / 100000 on a self-service key; null on monthly_requests means an unlimited month.
usageobjectLive used and remaining counters for each window.
How it is computed
Same windows as /v1/me; request history is not included here.
expires_atISO timestamp | nullWhen the key stops working, if set.
How it is computed
null means no expiry.
created_atISO timestampWhen the key was issued.
How it is computed
Issuance timestamp.
- Revoked keys are omitted: delete is the terminal console action, and this inventory matches that disappear semantics. Suspended keys still appear (the suspension is reversible).
- Each row's allow.endpoints is clamped to your account ceiling, so an endpoint withdrawn from the account is no longer listed as available on any key.
- Request history for a key is available to platform operators only — not on this customer endpoint.
- Rows come back newest first, ordered by created_at descending, and page with limit / offset like every other collection. There is no sort parameter.

