Ingestion
Ingest user data
Feed user activity, communications, or documents into Fastino’s personalization system. This endpoint allows agents to ingest raw events and documents, enabling the API to continuously learn and refine each user’s world model.
POST /ingest
Purpose
Use this endpoint to send contextual data — such as emails, notes, or task events — associated with a registered user.
Ingested data is embedded, indexed, and made retrievable via the /query, /summary, and /chunks endpoints.
You can call this endpoint anytime new user interactions occur (e.g., sending an email, updating a doc, completing a task).
Endpoint
Headers
Request Body
Field | Type | Required | Description |
|---|---|---|---|
| string | Yes | Unique ID of the user receiving the new data. |
| string | Optional | The origin of the data (e.g. |
| array | Optional | List of events such as messages, emails, or activity logs. |
| array | Optional | List of documents or text artifacts for indexing and retrieval. |
| boolean | Optional | Prevent duplicates by skipping previously ingested records. Default: |
Event Object
Field | Type | Required | Description |
|---|---|---|---|
| string | Yes | Unique identifier for the event. |
| string | Yes | Category of event (e.g. |
| string | Yes | ISO 8601 UTC timestamp for when the event occurred. |
| object | Optional | Optional metadata (e.g. sender, subject, recipients). |
| string | Yes | Text content of the event. |
Document Object
Field | Type | Required | Description |
|---|---|---|---|
| string | Yes | Unique identifier for the document. |
| string | Optional | Type of document ( |
| string | Optional | Human-readable title for the document. |
| string | Optional | ISO 8601 UTC timestamp for when it was created. |
| string | Yes | The main text content. |
Example Request
Example cURL
Example Response
Response Fields
Field | Type | Description |
|---|---|---|
| object | Number of successfully stored events and documents. |
| array | List of records skipped due to deduplication. |
| string | Timestamp of the latest update. |
Behavior
The ingestion process is synchronous — responses confirm how many items were stored.
If
"dedupe": trueis set, any duplicateevent_idordoc_idis skipped.Ingested records are indexed and available immediately for RAG and query retrieval.
The same endpoint supports batch ingestion (multiple events or docs per call).
Error Responses
HTTP Code | Error Code | Description |
|---|---|---|
|
| Malformed JSON or missing fields like |
|
| Missing or invalid API key. |
|
| The user has not been registered yet. |
|
| Internal error — retry with exponential backoff. |
Example:
Best Practices
Always provide a consistent
user_idmatching the profile registered with/register.Use structured
metadatafields where possible for better context retrieval.Enable
options.dedupeto prevent redundant storage when syncing from external systems.Ingest in small batches (max 100 events or 25 documents per call) for optimal performance.
Avoid sending empty
contentfields — each record should contain meaningful text.
Related Endpoints
Endpoint | Description |
|---|---|
PUT | Register or update a user. |
POST | Query user memory for natural-language answers. |
GET | Retrieve a summary of user context. |
Summary:
Use POST /ingest to feed user data into Fastino.
Each ingested event or document becomes part of the user’s evolving memory — powering retrieval, reasoning, and adaptive summaries across the Fastino ecosystem.
Join our Discord Community