CortexDB Docs
API Reference

GET /v1/events

List raw events from the WAL — the append-only source of truth.

GET
/v1/events
AuthorizationBearer <token>

PASETO v4 public token (or deployment gate key). Auth-disabled dev instances accept any caller.

In: header

Query Parameters

scope*string
limit?integer
cursor?string
labels?string

Response Body

curl -X GET "https://example.com/v1/events?scope=string"
Empty
GET
/v1/events/{id}
AuthorizationBearer <token>

PASETO v4 public token (or deployment gate key). Auth-disabled dev instances accept any caller.

In: header

Path Parameters

id*string

Response Body

curl -X GET "https://example.com/v1/events/string"
Empty

Event item shape

Real item shape — id, subject object, nested context

Each event is { id, scope, caller, observed_actor, subject: { id, type }, scope_key, modality, content, context: { observed_at, recorded_at, intent, labels }, wal_offset }. Note: id (not event_id); subject is an object { id, type } (not a string); observed_at / recorded_at / labels / intent are nested under context (not top-level). This is the same shape recall and GET /v1/events/{id} return.

Behavior notes (v0.9.9)

exclude_content is a no-op on this endpoint

exclude_content=true is a no-op on GET /v1/eventscontent is returned in full regardless. (It does work on recall, where it nulls content.)

  • Envelope: { items: [...], next_cursor, has_more }. Default view is local; the enum is local / granular / structured / holistic / descend.
  • Filters that work: labels (comma-separated, any-match), observed_actor, modality, since / until (RFC 3339). GET /v1/events/{id} returns a single event; a missing/unknown id → 404.
  • limit max is 500 but limit=600 returns 200 (clamped internally, not a 422). A missing scope query param → 400 (query-string validation returns 400; body validation returns 422).

On this page