Drop & Direct Upload
Drop files; RememberOS extracts, embeds, and keeps originals downloadable. Built so one bad file never sinks a batch.
The drop zone#
rememberos.ai/drop.html — drag files or folders (folders are walked recursively), record audio in-browser, pick a collection, drop. Audio/video are transcribed, documents parsed, images captioned (see Content Types).
API: small batches#
POST /v1/memory/collections/docs/drop (multipart, files=…)
→ 201 with per-file results and text previews
API: big batches (async)#
POST /v1/memory/collections/docs/drop (multipart + async_ingest=true)
→ 202 {"batch_id": "…", "queued": N}
GET /v1/memory/ingest/batch/{batch_id}
→ {"total": N, "done": d, "failed": f, "complete": false}
Files are stored first and processed by the background worker — you can close the tab; poll the batch for progress.
Presigned direct-to-S3 (how the UI does >12 files)#
POST /v1/memory/collections/docs/drop/presign
[{"filename": "a.pdf", "content_type": "application/pdf", "size": 12345}, …]
→ {"uploads": [{"filename": "a.pdf", "key": "…", "url": "https://…presigned PUT…"}]}
# the browser PUTs each file straight to storage — bytes never touch the API
POST /v1/memory/collections/docs/drop/complete
[{"key": "…", "filename": "a.pdf", "mime": "application/pdf", "size": 12345}]
→ 202 {"batch_id": "…", "queued": N, "rejected": 0}
Keys are validated against your tenant's namespace on completion — you can't enqueue someone else's objects. Oversize files are flagged at presign time, not silently signed.
Failure isolation#
- Per-file uploads: an unreadable file (e.g. a cloud-placeholder not actually on disk) fails only itself and is named in the result.
- 10 MB per file; the per-file cap and counts are always reported.