Memories API
Create, retrieve, and manage memories
POST
/api/v1/memoriesCreate new memories from conversation messages. The system automatically extracts semantic facts and stores them with embeddings.
Authentication
Requires API key in Authorization header:
Authorization: Bearer YOUR_API_KEYRequest Body
{
"messages": [
{
"role": "user",
"content": "I love TypeScript"
},
{
"role": "assistant",
"content": "TypeScript is great!"
}
],
"user_id": "user_123", // Optional
"metadata": { // Optional
"source": "chat",
"session_id": "sess_xyz"
}
}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| messages | array | Yes | Array of conversation messages |
| user_id | string | No | End user ID for B2B applications |
| metadata | object | No | Additional context and tags |
Response
{
"success": true,
"memories_created": 2,
"memory_ids": [
"69e0deb6-88d8-49a7-9da7-26a9c8f08d4b",
"8daf534c-2583-43ee-ba5e-2bbcfee110cb"
],
"owner_id": "user_abc123",
"user_id": "user_123"
}Example Request
curl -X POST https://your-domain.com/api/v1/memories \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"role": "user",
"content": "I love TypeScript"
},
{
"role": "assistant",
"content": "TypeScript is great!"
}
],
"user_id": "user_123"
}'GET
/api/v1/memoriesList memories with optional filtering and pagination.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| user_id | string | - | Filter by user ('self', 'all', or specific ID) |
| limit | number | 20 | Max results per page (1-100) |
| cursor | string | - | Pagination cursor |
| order | string | desc | Sort order ('asc' or 'desc') |
| memory_type | string | - | Filter by type (preference, fact, etc.) |
| min_confidence | number | - | Minimum confidence score (0-1) |
Response
{
"success": true,
"count": 2,
"next_cursor": "eyJpZCI6IjEyMyJ9",
"results": [
{
"id": "69e0deb6-88d8-49a7-9da7-26a9c8f08d4b",
"owner_clerk_id": "user_abc123",
"end_user_id": "user_123",
"content": "The user loves TypeScript.",
"memory_type": "preference",
"confidence": 0.90,
"metadata": {
"source": "chat"
},
"source_type": "text",
"created_at": "2024-11-15T10:30:00Z",
"updated_at": "2024-11-15T10:30:00Z"
}
]
}Example Request
curl -X GET "https://your-domain.com/api/v1/memories?user_id=user_123&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"Memory Types
The system automatically classifies memories into types:
- preference - User preferences and likes
- fact - Factual information
- experience - Past experiences and events
- goal - Future intentions and goals
- relationship - Connections between entities
Error Responses
401 Unauthorized
{
"error": "Invalid API key"
}429 Rate Limit Exceeded
{
"error": "Monthly API limit exceeded"
}400 Bad Request
{
"error": "Invalid request payload",
"details": {
"fieldErrors": {
"messages": ["Required"]
}
}
}