Get multiple memories by ID
POST /v1/memories:batchGet: Retrieves multiple memories in a single operation, with individual success/failure results.
Retrieves multiple memories in a single operation, with individual success/failure results. Each item requires READ_MEMORY on the requested memory; authority may be granted through DIRECT_MEMBERS_OF its containing space.
ApiKeyAuthx-api-key<token>GoodMem-Timeout-Ms?integerOptional 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.
int641 <= value <= 86400000Batch memory retrieval details
application/json- body
Request body for retrieving multiple memories by their IDs
memoryIds*array<>Array of memory IDs to retrieve
[ "550e8400-e29b-41d4-a716-446655440000", "550e8400-e29b-41d4-a716-446655440001"]includeContent?|Whether to include the original content in the response
falseincludeProcessingHistory?|Whether to include background job processing history for each memory
falseResults of batch memory retrieval operation
application/json- response
Response containing per-item results for a batch memories operation
results*array<>Array of per-item results
curl -X POST 'https://your-goodmem-server.example.com/v1/memories:batchGet' \ -H 'GoodMem-Timeout-Ms: 30000' \ -H 'Content-Type: application/json' \ -d '{ "memoryIds": [ "550e8400-e29b-41d4-a716-446655440000", "550e8400-e29b-41d4-a716-446655440001" ], "includeContent": false, "includeProcessingHistory": false}'{ "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" } } ]}