Skip to main content

Endpoint

POST /v1/memory/upload
Content-Type: multipart/form-data

Form Fields

FieldRequiredDescription
fileBinary file (max 10 MB)
typeMemory type (usually file)
keyUnique key
blobFilenameCustom blob name
blobExtensionOverride file extension
expiresInTTL (default 30d)
mimeTypeMIME type hint
metadataJSON string: {"tags":[],"visibility":"..."}
encryptionProviderSet for encrypted uploads
encryptionMetaJSON: {"iv":"...","tag":"..."}

Example

curl -X POST "$API/memory/upload" \
  -H "Authorization: Bearer $API_KEY" \
  -F "[email protected];type=video/mp4" \
  -F "type=file" \
  -F "key=media/demo-video" \
  -F "blobFilename=demo_recording" \
  -F "expiresIn=30d" \
  -F 'metadata={"tags":["video","demo"],"visibility":"share"}'

Response (201)

{
  "id": "...",
  "type": "file",
  "key": "media/demo-video",
  "version": 1,
  "blobName": "memory/file/media/demo-video/demo_recording_v1.mp4",
  "sizeBytes": 5185628,
  "mimeType": "video/mp4",
  "filename": "video.mp4",
  "pinned": false,
  "importance": 0.5,
  "isCompressed": false,
  "createdAt": "..."
}

Credit Cost

This operation costs 5 credits (memory.write).