Skip to content
SimicX

Meta · Endpoint

Keys

Every non-revoked API key you own: identity, limits and remaining quota — never secrets or request history.

GET/v1/me/keys

The 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

NameTypeRequiredDefaultDescription
limitinteger 1–5000optional100Rows per page. Below 1 or above 5000 is a 400 bad_request naming the parameter and the constraint it broke.
offsetintegeroptional0Rows 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

GEThttps://api.simicx.com/v1/me/keys?limit=100&offset=0

Example 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_idstring

    Public 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_prefixstring

    Masked 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.

  • namestring

    Human name given at issuance.

    How it is computed

    Use it to tell production from notebook keys.

  • statusactive | suspended

    Lifecycle 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.

  • allowobject

    What 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_bookboolean

    Whether raw_* fields and raw_ books are served.

    How it is computed

    Per-key flag.

  • rate_limitobject

    Configured 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.

  • usageobject

    Live 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 | null

    When the key stops working, if set.

    How it is computed

    null means no expiry.

  • created_atISO timestamp

    When 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.