GoodMemGoodMem
ReferenceAPIREST APIMemories

Delete memories in batch

POST /v1/memories:batchDelete: Deletes memories using selector entries.

POST
/v1/memories:batchDelete

Deletes memories using selector entries. Each selector can target either a specific memory ID or a filtered subset scoped to a specific space. Each selected memory requires DELETE_MEMORY; authority may be granted through DIRECT_MEMBERS_OF its containing space.

Authorization

ApiKeyAuth
headerx-api-key<token>

Header Parameters

GoodMem-Timeout-Ms?integer

Optional waiting budget in milliseconds, measured from REST servlet ingress and shared across all internal gRPC calls. Supply one decimal integer from 1 to 86400000. Omission adds no deadline. Existing shorter deadlines still apply. Expiry returns HTTP 504 before streaming starts; after streaming starts, no successful completion event is sent. Use SSE or opt into GoodMem-Stream-Terminal for an explicit terminal outcome. Retrieval work is cooperatively cancelled. An accepted mutation may still commit after timeout or disconnect; a failed response does not imply rollback.

Formatint64
Range1 <= value <= 86400000

Request Body

Batch memory deletion details

application/json
  1. body

Request body for deleting memories using ID and/or filtered selectors

requests*array<>

Array of delete selectors

Example
[  {    "memoryId": "550e8400-e29b-41d4-a716-446655440000"  },  {    "filterSelector": {      "spaceId": "550e8400-e29b-41d4-a716-446655440001",      "statusFilter": "FAILED",      "filter": "val('$.source') = 'email'"    }  }]

Response Body

Results of batch memory deletion operation

application/json
  1. response

Response containing per-item results for a batch memories operation

results*array<>

Array of per-item results

Example Request
curl -X POST 'https://your-goodmem-server.example.com/v1/memories:batchDelete' \  -H 'GoodMem-Timeout-Ms: 30000' \  -H 'Content-Type: application/json' \  -d '{  "requests": [    {      "memoryId": "550e8400-e29b-41d4-a716-446655440000",      "filterSelector": {        "spaceId": "70e025f6-76ca-4cbe-b8fc-7dab8e84590a",        "filter": "val('\''$.source'\'') = '\''email'\''"      }    }  ]}'
Example Response
{  "results": [    {      "success": true,      "memoryId": "550e8400-e29b-41d4-a716-446655440000",      "memory": {        "memoryId": "550e8400-e29b-41d4-a716-446655440000",        "spaceId": "550e8400-e29b-41d4-a716-446655440001",        "originalContent": "VGhpcyBpcyBiYXNlNjQgYmluYXJ5Lg==",        "originalContentSha256": "9f2c8c5a9d740eb56d...",        "originalContentRef": "s3://my-bucket/document.pdf",        "contentType": "text/plain",        "processingStatus": "COMPLETED",        "pageImageStatus": "COMPLETED",        "pageImageCount": 12,        "createdAt": 1672531200000,        "updatedAt": 1672531200000,        "createdById": "550e8400-e29b-41d4-a716-446655440002",        "updatedById": "550e8400-e29b-41d4-a716-446655440002",        "chunkingConfig": {          "recursive": {            "chunkSize": 1000,            "chunkOverlap": 200,            "separators": [              "\n\n",              "\n",              ".",              " "            ],            "keepStrategy": "KEEP_END",            "separatorIsRegex": false,            "lengthMeasurement": "CHARACTER_COUNT"          },          "sentence": {            "maxChunkSize": 1000,            "minChunkSize": 100,            "enableLanguageDetection": true,            "lengthMeasurement": "CHARACTER_COUNT"          }        },        "processingHistory": {          "latestJob": {            "jobId": 42,            "jobType": "document_processor",            "status": "BACKGROUND_JOB_RUNNING",            "attempts": 1,            "maxAttempts": 5,            "runAt": 1714713600000,            "leaseUntil": 1714713660000,            "lockedBy": "worker-1",            "lastError": "Transient network failure",            "updatedAt": 1714713615000,            "failureStage": "DOCUMENT_PROCESSING_STAGE_GENERATING_EMBEDDINGS"          }        }      },      "error": {        "code": 403,        "message": "Forbidden - insufficient permissions"      }    }  ]}