01Authentication
Every request carries a Bearer token in the Authorization header. Keys are scoped to a single namespace by default; use a workspace-level key for cross-namespace audit work.
curl https://api.agentprizm.com/v1/recall \ -H "Authorization: Bearer rcl_live_••••" \ -H "Content-Type: application/json"
02POST /v1/ingest
Ingest one or more memories. Returns assigned IDs and any contradictions detected against existing memories.
Request body
| Field | Type | Notes |
|---|---|---|
subject | string | Required. Entity the memory is about. |
text | string | Required. The memory itself, ≤ 1024 chars. |
type | enum | fact · preference · event · relation |
source | string | Free-form provenance (call ID, doc URL, etc). |
validFrom | ISO 8601 | Optional. Defaults to ingest time. |
validUntil | ISO 8601 | Optional. Marks the memory stale after this date. |
metadata | object | Arbitrary JSON, queryable. |
03POST /v1/recall
Retrieve the most relevant memories for a subject + query. Blends semantic, graph, temporal, and contradiction-aware channels.
{
"subject": "acme-co",
"query": "when can we close?",
"k": 5,
"channels": ["semantic", "graph", "temporal"],
"includeStale": false
}{
"memories": [
{
"id": "mem_01H...",
"text": "Procurement freezes Dec 15 → Jan 5...",
"type": "fact",
"confidence": 0.94,
"source": "call-2026-01-12",
"validUntil": "2026-12-31"
}
],
"trace_id": "trc_01H..."
}04Memory object
Every memory has a stable ID, a confidence score (0–1), a type, and provenance. Memories are immutable once written; updates create a new version, and contradictions shadow rather than overwrite.
05GET /v1/audit
Fetch the full chain that produced a recall — every memory considered, every channel score, every contradiction resolution. Audit log queries don't bill against your quota.
curl https://api.agentprizm.com/v1/audit/trc_01H... \
-H "Authorization: Bearer rcl_live_••••"06Errors
| Code | Status | Meaning |
|---|---|---|
invalid_request | 400 | Malformed body or missing field. |
auth_failed | 401 | Bad or expired API key. |
forbidden | 403 | Key not scoped to this namespace. |
not_found | 404 | Memory or trace ID doesn't exist. |
quota_exhausted | 429 | Plan cap hit. See retry-after. |
rate_limited | 429 | Too many concurrent requests. |
server_error | 500 | Something on our end. Retries are safe. |
07Rate limits
Default rate limit is 100 RPS per API key, burstable to 500 for 10 seconds. Enterprise keys are negotiated. All endpoints honor the standard X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.