{
"hash": "<string>",
"mime_type": "<string>",
"size": 123
}{
"error": {
"code": "validation_error",
"message": "<string>",
"details": {}
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"details": {}
}
}Blobs
Upload a blob
Uploads binary content and returns its sha256:<hex> content-addressed hash. Accepts multipart/form-data (typical for browser file inputs) or application/octet-stream (raw bytes for SDK / CLI uploads).
Uploads are idempotent: re-uploading identical bytes returns the existing hash without re-storing — the storage backend deduplicates by hash. MAX_BLOB_SIZE (default 50 MB) caps individual uploads; over-size returns 413 blob_too_large. Tenant blob count and storage-byte quotas (blobs, storage_bytes) gate uploads.
Reference the returned hash from item properties (blob_ref on core.file.* types) or attachment entries. See Blobs.
POST
/
blobs
{
"hash": "<string>",
"mime_type": "<string>",
"size": 123
}{
"error": {
"code": "validation_error",
"message": "<string>",
"details": {}
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"details": {}
}
}