Skip to main content
Ingest a document into Synap’s memory pipeline. The document is processed asynchronously through the extraction, categorization, entity resolution, and storage stages. The call returns immediately with an ingestion_id you can poll via memories.status().

Parameters

string
required
The raw document content to ingest. This can be a conversation transcript, a knowledge base article, a support ticket, or any text content.
string
required
The type of document being ingested. This determines how the ingestion pipeline processes the content.
string
An optional external identifier for deduplication. If a document with this ID has already been ingested, the request is rejected as a conflict.
datetime
Timestamp of when the document was originally created. Used for temporal ordering of memories. Defaults to the current time if not provided.
Always provide document_created_at when backfilling historical data. Accurate timestamps improve temporal reasoning during retrieval (e.g., “What did the user say last month?”).
string
The external user ID this memory is about. Omit for customer- or client-scope ingestion.
string
The external customer ID this memory belongs to. Required on B2B; auto-resolved on B2C. See B2C vs B2B. Omit for client-scope ingestion. The effective scope is derived by the server from the IDs you pass and the instance’s user-context isolation (B2C/B2B).
string
required
The ingestion processing mode: the ingestion axis (fast vs long-range) of Retrieval Modes.
object
Arbitrary key-value pairs to attach to the memory. Useful for filtering and organizing memories.

Returns

CreateMemoryResponse with the ingestion job identifiers and initial status.
UUID
Unique identifier for tracking this ingestion job. Pass this to memories.status or memories.wait_for_completion.
string
The document identifier (either the one you supplied or one generated by the server).
string
Initial status of the ingestion job. Always queued for new submissions.
datetime
Server timestamp at which the job was accepted into the queue.

Example

Ingestion is asynchronous. A successful return means the document has been accepted for processing, not that extraction is complete. Use memories.status, memories.wait_for_completion, or webhooks to track progress.

Raises

  • SynapAuthError: when the API key is missing or invalid.
  • SynapValidationError: when required fields are missing or document_type / mode are not recognized.
  • SynapConflictError: when a document with the same document_id has already been ingested.

See also