Skip to main content
DELETE
/
episodes
/
{group_id}
/
{source_description}
Delete Episodes by Source
curl --request DELETE \
  --url https://memory.stru.ai/episodes/{group_id}/{source_description} \
  --header 'X-API-Key: <x-api-key>'
{
  "422": {},
  "message": "<string>"
}

Overview

Delete all episodes associated with a specific source_description for a user. This is useful when users delete conversations or when you need to remove related data in bulk.
This operation is permanent! All facts and entities derived from these episodes will be removed from the knowledge graph.

Authentication

X-API-Key
string
required
Your API key for authentication
X-API-Key: windowseat

Path Parameters

group_id
string
required
User identifier (group ID)
/episodes/user_oauth_sub/conv_12345
source_description
string
required
Conversation/source identifier to delete
/episodes/user_oauth_sub/conv_12345

Response

message
string
Confirmation message
"message": "Episodes deleted successfully"

Example Request

curl -X DELETE https://memory.stru.ai/episodes/user_oauth_sub/conv_12345 \
  -H "X-API-Key: windowseat"

Example Response

{
  "message": "Episodes deleted successfully"
}

Error Responses

422
Validation Error
Request validation failed - invalid parameters
{
  "detail": [
    {
      "loc": ["path", "group_id"],
      "msg": "field required",
      "type": "value_error.missing"
    }
  ]
}

Best Practices

Always use source_description when adding episodes - This enables easy batch cleanup later
Understand the impact - Deleting episodes removes derived facts and entities. Entities mentioned in other episodes will remain in the graph.
Group related data - Use the same source_description for all episodes in a conversation for efficient cleanup

Use Cases

User Deletes Conversation

When a user deletes a conversation in your app, use this endpoint to remove all associated memory data

Clean Up Test Data

Remove temporary or test episodes by source_description

Remove Sensitive Information

Delete episodes containing sensitive data that should no longer be stored

Workflow Example

# 1. When user starts a conversation, generate a unique ID
conversation_id = "conv_12345"

# 2. Add episodes with that source_description
add_episodes(
    group_id="user_123",
    messages=[...],
    source_description=conversation_id
)

# 3. When user deletes the conversation, clean up all episodes
delete_episodes_by_source(
    group_id="user_123",
    source_description=conversation_id
)