API
Digital Assets API
ImplementedProject documents are not models. They are uploaded, chunked and searched for Reference Memory without creating a model version or enqueueing structural ingest.
Why this exists
Why this API boundary exists
Project documents are not models. They are uploaded, chunked and searched for Reference Memory without creating a model version or enqueueing structural ingest.
Endpoints
/projects/{project_id}/assetsImplementedList digital assets in a project.
Auth: clerk
services/api/app/routes/assets.py
/projects/{project_id}/assets/init-uploadImplementedPresign an asset upload. PDF, text, markdown, CSV and JSON, up to 50 MB. Does not create a model.
Auth: clerk
services/api/app/routes/assets.py
/projects/{project_id}/assets/complete-uploadImplementedVerify the blob and index overlapping text chunks with a deterministic hash embedding.
Auth: clerk
services/api/app/routes/assets.py
/projects/{project_id}/assets/searchPartialSearch indexed chunks for this project.
Auth: clerk
services/api/app/routes/assets.py
/projects/{project_id}/assets/{asset_id}ImplementedOne asset, including chunk count and optional AI summary.
Auth: clerk
services/api/app/routes/assets.py
/projects/{project_id}/assets/{asset_id}ImplementedUpdate title, domain or the Reference Memory node the asset is bound to.
Auth: clerk
services/api/app/routes/assets.py
/projects/{project_id}/assets/{asset_id}/reindexImplementedReplace this asset's chunks with a fresh extraction.
Auth: clerk
services/api/app/routes/assets.py
/projects/{project_id}/assets/{asset_id}/summarizePartialOn-demand AI summary stored on the asset. A summary is not evidence.
Auth: clerk
services/api/app/routes/assets.py
/projects/{project_id}/assets/{asset_id}/download-urlImplementedPresigned download URL for the original blob.
Auth: clerk
services/api/app/routes/assets.py
/projects/{project_id}/assets/{asset_id}ImplementedDelete an asset and its chunks.
Auth: clerk
services/api/app/routes/assets.py