Connect

REST API

Every memory operation is available over plain HTTP at https://api.kognite.dev — for backends, cron jobs, and agents that don’t speak MCP. Same store, same scopes as the MCP gateway.

Authentication

Pass an API key as a Bearer token. Create keys in the dashboard; the key determines the scope every request reads and writes.

http
Authorization: Bearer YOUR_KEY
Keep keys server-side. Never ship one in a browser bundle or a public repo — a key is full read/write access to its scope.

Add a memory

POST /api/memories — persist a single durable fact. Returns 201 with the created record.

bash
curl -X POST https://api.kognite.dev/api/memories \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Cristian deploys to Hetzner, never Railway.",
    "kind": "preference",
    "metadata": { "project": "missioncontrol" }
  }'
FieldTypeRequiredNotes
contentstringyesThe fact to store.
kindstringnoDefaults to fact. See kinds.
metadataobjectnoArbitrary tags stored with the memory.

Search memories

GET /api/memories?query=… — hybrid semantic + full-text search. Omit query to list recent memories. Returns { data: [...], meta: { total, limit, offset } }.

bash
curl -s "https://api.kognite.dev/api/memories?query=where%20do%20I%20deploy&limit=5" \
  -H "Authorization: Bearer YOUR_KEY"
ParamTypeNotes
querystringNatural-language search. If omitted, lists recent memories.
limitnumber1–100, default 20.
offsetnumberFor paging the list view.

Fetch & delete

GET /api/memories/:id returns a single memory. DELETE /api/memories/:id soft-deletes it (recoverable from the dashboard).

Ingest an episode

POST /api/memories/ingest — store a whole conversation and auto-extract atomic facts from it. This is the HTTP equivalent of the episode_log tool.

bash
curl -X POST https://api.kognite.dev/api/memories/ingest \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      { "speaker": "user", "content": "I moved the DB to Postgres 16 last week." },
      { "speaker": "assistant", "content": "Noted — Postgres 16 as of last week." }
    ],
    "extract": true,
    "store_raw": true
  }'

extract (default true) forms atomic memories; store_raw (default true) keeps the verbatim turns for precise recall.

Assemble context

POST /api/context/assemble — one call that returns a token-budgeted bundle of the most relevant memories (plus optional skills and graph neighbours) for a query.

bash
curl -X POST https://api.kognite.dev/api/context/assemble \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "what do I know about the deploy setup?", "token_budget": 2000 }'

Errors & limits

Errors return a JSON body of the shape { "error": { "code", "message" } } with a matching HTTP status:

StatusMeaning
401Missing or invalid Bearer key.
402Monthly memory-operation quota exceeded — upgrade or wait for the reset.
413Payload too large (content or message batch over the limit).
422Validation failed (e.g. missing content or query).
429Rate limited — back off and retry after the Retry-After header.

Each successful operation counts as one memory operation against your plan quota. See pricing for per-plan limits.