Skip to main content

Upload

PUT /v1/blobs
Authorization: Bearer ltx_your_key
Content-Type: application/pdf

<raw bytes>
Multipart (file field) or raw body. Returns content-addressed blob_id (b_ + 16 hex). Duplicate bytes → 200 idempotent. Enforces aggregate tier blob storage (413 BLOB_STORAGE_LIMIT).

Download

GET /v1/blobs/{blob_id}
Authorization: Bearer ltx_your_key
Supports HTTP Range. Wrong agent or soft-deleted → 404 BLOB_NOT_FOUND.

List

GET /v1/blobs?page=1&per_page=50
Authorization: Bearer ltx_your_key

Metadata

GET /v1/blobs/{blob_id}/meta
Authorization: Bearer ltx_your_key

Signed read URL

GET /v1/blobs/{blob_id}/signed-url?expires_in=3600
Authorization: Bearer ltx_your_key

Delete

DELETE /v1/blobs/{blob_id}
Authorization: Bearer ltx_your_key
204 when the request is valid: soft-deletes an active blob, or is an idempotent no-op if the blob is already gone for this agent (including never existed or another agent’s object — same 204 so existence is not leaked). Malformed blob_id (not b_ + 16 hex) → 404 BLOB_NOT_FOUND. When a row actually transitions to soft-deleted, aggregate blob_storage_bytes refreshes. Storage objects are removed later by reconciliation after a configurable grace period.

Billing

See Billing: blob_storage_bytes / blob_storage_limit_bytes for aggregate object storage (separate from memory embedding bytes).

MCP

Static tool schemas: GET https://lithtrix.ai/mcp/lithtrix-blob-upload.json (and -download, -list, -meta, -delete, -signed-url).