Ingest content
The universal text ingestion endpoint.
Accepts text, markdown, HTML, JSON and code.
Routing. With mode: "auto" (the default) a classifier assigns the
content to a department. Below a 0.70 confidence threshold it lands in
v_unassigned for review rather than being filed somewhere plausible but
wrong. Use mode: "manual" with a vault_id when you already know where
it belongs.
The perimeter runs first. Secrets and PII are detected and masked before anything is embedded or stored. If the scanner is unavailable the request fails rather than storing content unscanned — this is deliberate and not configurable.
For binary documents use POST /uploads instead.
A platform key (ck_live_…) — reaches every memory in the tenant.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/memory/ingest" \ -H "Content-Type: application/json" \ -d '{ "content": "# Acme Q4 review\\\\n\\\\nDeal moved to Security Review.", "content_type": "markdown", "routing": { "mode": "auto" } }'{ "doc_id": "string", "vault_id": "string", "routing_confidence": 0.1, "needs_review": true, "dlp_matches": 0}