Record a launch funnel event from a trusted CLI/wrapper caller.
Body: {event_type: str, props: dict}. user_id / workspace_id
are taken from the auth scope — the body cannot override them.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/memory/launch/event" \ -H "Content-Type: application/json" \ -d '{}'null{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Ingest Document
Ingest a document from a public URL. Creates a parent document node (INDEXED) and chunk nodes (FULL, embedded) linked via PART_OF edges. Deduplicates by source URL + content hash. Security: only http:// and https:// URLs are accepted. Local file paths and other URI schemes (file://, gopher://, ftp://, etc.) are rejected to prevent SSRF/LFI attacks. Local-file ingestion is exposed via the CLI (CORE-STRUCT-CLI-1).
Ingest Structured
Ingest structured data via a registered handler. CORE-INGEST-ROUTE-COLLISION-1: served at ``POST /memory/ingest/structured``. It previously registered ``/ingest``, colliding with the NLP ingest route (``ingest_content``) — which, registered first, shadowed this handler at dispatch (a structured body silently ingested as empty content) and owned the OpenAPI entry. No HTTP client used the old path, so the move is non-breaking. Bypasses the NLP pipeline — the structure IS the content. The handler determines strategy (FULL/INDEXED/APPEND), validates, converts to MemoryItem, and creates edges and indexes.