v1 data
Ingest data for processing with memory integration
Ingest data for asynchronous processing
Accepts various content types (text, messages, files) and processes them to extract information
and integrate it into the user's memory system. Returns a job_id for tracking status.
**Entity Resolution:**
- user_id (str, required): Always required - the main user identifier
- persona_id (str, optional): If provided, data is ingested to this persona instead of user
- project_id (str, optional): If provided, data is ingested to this project (inherits from user)
Priority: persona_id > project_id > user_id
**Request Parameters:**
- content_type (str, required): One of: "text", "messages", "pdf", "word", "image", "video", "audio", "file"
- payload (str|dict|list, required): Content data (text string, message list, or base64 for files)
- content_description (str, optional): Description of the content being ingested (e.g., 'Logo design concepts', 'Meeting notes')
- session_id (str, optional): Groups related content for session-based retrieval
- timestamp (str, optional): ISO-8601 timestamp for historical data
- filename (str, optional): Original filename for file uploads
**Response:**
- job_id (str): Unique identifier for tracking the processing job
- user_id (str): Confirmed entity ID (user, persona, or project)
- content_type (str): Confirmed content type
- status (str): Job status ('queued', 'accepted')
- message (str): Status message
- created_at (str): ISO-8601 timestamp
- success (bool): True if accepted
**Example:**
```json
{
"user_id": "user-123",
"persona_id": null,
"project_id": "project-456",
"content_type": "text",
"payload": "Meeting notes from today's discussion",
"content_description": "Meeting notes from today's discussion"
}
```
Returns 202 Accepted with job_id. Use /job/status to check processing status.
Max payload: 5MB (JSON), 20MB (multipart). Requires JWT authentication.
post/v1/data/ingest
Request body
Example request
{
"content_description": "Email correspondence about project updates",
"content_type": "text",
"payload": "From: john@example.com\nTo: jane@example.com\nSubject: Hello\n\nHello Jane!",
"timestamp": "2024-01-01T12:00:00Z",
"user_id": "user-123"
}Response
Successful Response
Example response
{
"content_type": "text",
"created_at": "2024-01-01T12:00:00Z",
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"message": "Content successfully uploaded and queued for processing",
"status": "queued",
"success": true,
"user_id": "abc-123"
}