Analytics Ingest Keys

Replace an ingest key's value, keeping the same row and scope.

The previous value stops working immediately — the resolution cache entry for it is evicted synchronously rather than left to expire. Any client still sending the old value will start receiving 401s, so roll out the new value before rotating.

post/projects/{project_id}/analytics/ingest-keys/{key_id}/rotate

Request

  • Base URL: /api (relative, and the document was published on a file host, not at the API’s origin)
  • URL: /api/projects/{project_id}/analytics/ingest-keys/{key_id}/rotate
  • Auth: HTTP bearer

Path parameters

project_idinteger required

Project ID

key_idinteger required

Analytics ingest key ID

Response

Ingest key rotated

allowed_originsstring[] nullable

Exact origins (scheme://host[:port]) permitted to use this key from a browser. None or [] means any origin. This is a browser-enforced convenience control, not authentication — a non-browser client ignores Origin entirely.

created_atstring date-time required
created_by_user_idinteger nullable
environment_idinteger nullable

None means the key is scoped to the whole project. An environment-scoped key additionally attributes ingested data to that environment's current deployment, when it has one.

event_countinteger required
idinteger required
is_activeboolean required
last_used_atstring date-time nullable
namestring required

Operator-facing label.

project_idinteger required
public_keystring required

The ingest key itself, pa_ + 64 hex characters.

Not a secret. It is designed to ship in client-side JavaScript and is returned unmasked so operators can copy it. See the module docs.

rate_limit_per_minuteinteger nullable

None or <= 0 means unlimited.

revoked_atstring date-time nullable
updated_atstring date-time required

Example response

{
  "created_at": "2026-01-01T00:00:00Z",
  "last_used_at": "2026-01-01T00:00:00Z",
  "revoked_at": "2026-01-01T00:00:00Z",
  "updated_at": "2026-01-01T00:00:00Z"
}

Changes

No recorded changes to this operation across all 50 revisions of this API.