Agent-readable docs index: /docs/llms.txt. Full docs in one file: /docs/llms-full.txt. Download /docs/docs.zip to grep all markdown files locally.

Compile the smallest context that answers a query

/v1/recallPOST
JSON by default. With Accept: text/event-stream the same request streams candidates, packed and final events. When nothing citable matches, abstain.abstained is true (the TypeScript and Python SDKs expose this as pack.found and pack.reason).
Authorization
bearer *Bearer <token>
API key of the form kaibo_<id>.<secret>. Scopes: read, write, read_write, forget, admin.
Request Bodyapplication/jsonrequired
query *string
Min length: 1Max length: 8000
asOf?string (date-time)
budgetTokens?integer
Default: 2000Min: 1Max: 32000
types?"fact" | "decision" | "task" | "preference" | "procedure" | "episode"[]
Min items: 1
scope?"org" | "project" | "agent" | "user" | "session"
mode?"auto" | "fast" | "deep"
Default: "auto"
minTrust?"all" | "trusted"
Default: "all"
Response
200 · Success
items *object[]
Show item properties
memoryId *string
Min length: 1Max length: 128
type *"fact" | "decision" | "task" | "preference" | "procedure" | "episode"
mode *"quote" | "summary"
text *string
citations *object[]
Min items: 1
Show item properties
eventId *string
Min length: 1Max length: 128
seq *integer
Min: 1Max: 9007199254740991
hash *string
Pattern: ^[0-9a-f]{64}$
quote?string
Max length: 1000
confidence *number
Min: 0Max: 1
validFrom *string (date-time)
validTo *string (date-time) | null
freshness *"fresh" | "aging" | "unverified"
reverifyBy *string (date-time)
trust *"trusted" | "untrusted"
abstain *object
Show properties
abstained *boolean
reason *stringnull
version *integer
Min: 0Max: 9007199254740991
tokens *integer
Min: 0Max: 9007199254740991
asOf *string (date-time)
attestation?object
Show properties
mac *string
Pattern: ^[0-9a-f]{64}$
issuedAt *string (date-time)
400 · Invalid request
error *object
Show properties
code *"unauthenticated" | "forbidden" | "not_found" | "invalid_request" | "conflict" | "idempotency_mismatch" | "payload_too_large" | "rate_limited" | "internal"
message *string
requestId *string
details?object
401 · Missing, malformed, revoked or expired key
error *object
Show properties
code *"unauthenticated" | "forbidden" | "not_found" | "invalid_request" | "conflict" | "idempotency_mismatch" | "payload_too_large" | "rate_limited" | "internal"
message *string
requestId *string
details?object
403 · The key lacks the required scope
error *object
Show properties
code *"unauthenticated" | "forbidden" | "not_found" | "invalid_request" | "conflict" | "idempotency_mismatch" | "payload_too_large" | "rate_limited" | "internal"
message *string
requestId *string
details?object
429 · Rate limited. See Retry-After
error *object
Show properties
code *"unauthenticated" | "forbidden" | "not_found" | "invalid_request" | "conflict" | "idempotency_mismatch" | "payload_too_large" | "rate_limited" | "internal"
message *string
requestId *string
details?object
Request example
curl -X POST "/v1/recall" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "query": "string", "asOf": "2024-01-15T09:30:00Z", "budgetTokens": 2000, "types": [ "fact" ], "scope": "org", "mode": "auto", "minTrust": "all" }'