For real-time conversation ingestion during agent interactions, use the Python SDK which provides a more ergonomic interface with automatic authentication, retries, and async support. The REST API is best suited for server-side batch operations and administrative tasks.
Create Memory
Ingest a document into Synap’s memory pipeline. The document is processed asynchronously through the extraction, categorization, entity resolution, and storage stages.Request Body
The raw document content to ingest. This can be a conversation transcript, a knowledge base article, a support ticket, or any text content.
The type of document being ingested. This determines how the ingestion pipeline processes the content.
| Value | Description |
|---|---|
ai-chat-conversation | A conversation between a user and an AI assistant |
document | A generic document or report |
email | An email message or thread |
pdf | PDF document content (text extracted) |
image | Image descriptions or OCR text |
audio | Audio transcriptions |
meeting-transcript | Meeting transcription content |
human-chat-conversation | A conversation between two or more humans (coming soon) |
support-ticket | A customer support ticket or thread (coming soon) |
knowledge-article | A structured knowledge base article (coming soon) |
note | A freeform note or annotation (coming soon) |
An optional external identifier for deduplication. If a document with this ID has already been ingested, the request is rejected with a
409 Conflict.ISO 8601 timestamp of when the document was originally created. Used for temporal ordering of memories. Defaults to the current time if not provided.
The user ID to scope this memory to. Memories scoped to a user are only retrievable in that user’s context.
The customer ID to scope this memory to. Provides a broader scope than user_id — all users within a customer can access customer-scoped memories.
The ingestion processing mode.
| Value | Description |
|---|---|
fast | Optimized for speed. Uses lighter extraction models. Best for high-volume, real-time ingestion. |
long-range | Optimized for quality. Runs the full extraction pipeline including deep entity resolution, relationship mapping, and graph storage. Best for conversations and important documents. |
Arbitrary key-value pairs to attach to the memory. Useful for filtering and organizing memories.
Response
Unique identifier for tracking this ingestion job. Use this with the Ingestion Status endpoint.
Initial status of the ingestion job. Always
queued for new submissions.Example
Response (201 Created)
Ingestion is asynchronous. A
201 response means the document has been accepted for processing, not that extraction is complete. Use the Ingestion Status endpoint or webhooks to track progress.Batch Create Memories
Ingest multiple documents in a single request. This is the primary endpoint for bootstrap ingestion — loading historical conversations, backfilling knowledge bases, and migrating data from other systems. Each document is processed independently through the ingestion pipeline.Request Body
Array of document objects. Each object has the same schema as the Create Memory request body.
If
true, the entire batch is rejected if any single document fails validation. If false (default), valid documents are accepted and invalid ones are returned in the errors array.Response
Array of successfully queued ingestion results, each containing
ingestion_id and status.Array of validation errors for documents that could not be accepted. Each error includes the document index, error code, and message.
Example
Response
Get Ingestion Status
Check the progress of an asynchronous ingestion job.Path Parameters
The ingestion job ID returned from the create memory endpoint.
Response
The ingestion job identifier.
Current status of the ingestion job.
| Value | Description |
|---|---|
queued | Document is waiting to be processed |
processing | Document is currently being processed through the pipeline |
completed | All extraction and storage stages completed successfully |
failed | Processing failed. Check the errors field for details. |
partial_success | Some extractions succeeded but others failed. Check errors for details. |
Progress details for each pipeline stage.
Array of error objects if any stage failed. Each contains
stage, code, and message.Example
Response
Get Memory
Retrieve a specific memory by its ID.Path Parameters
The memory ID. Format:
mem_<hex>.Response
Unique memory identifier.
Memory type:
fact, preference, episode, emotion, temporal_event.The extracted memory content.
Confidence score of the extraction, between
0.0 and 1.0.Array of resolved entities referenced in this memory.
Scope information including
user_id, customer_id, and client_id.Source document information including
ingestion_id, document_type, and document_created_at.Metadata inherited from the source document.
ISO 8601 timestamp of when this memory was created.
ISO 8601 timestamp of the last update.
null if never updated.Example
Response
Update Memory
Update an existing memory. The update behavior depends on the merge strategy.Path Parameters
The memory ID to update.
Request Body
Updated memory content. Behavior depends on
merge_strategy.How the update should be applied.
| Value | Description |
|---|---|
replace | Fully replace the existing memory content with the new content. |
append | Append the new content to the existing memory, preserving the original. |
smart-merge | Intelligently merge new information with existing content, deduplicating and resolving conflicts by preferring the newer version. |
Updated confidence score, between
0.0 and 1.0.Updated metadata. Merged with existing metadata.
Response
Returns the updated memory object.Example
Response
Delete Memory
Permanently delete a specific memory.Path Parameters
The memory ID to delete.
Response
Returns204 No Content on success with an empty body.