Upload a file
Supported formats
| Format | Extensions | MIME Type |
|---|---|---|
.pdf | application/pdf | |
| Excel | .xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| CSV | .csv | text/csv |
| Word | .docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
Validation
Files are validated in three layers before upload:- Extension — must be one of the supported formats above
- MIME type — must match the expected type for the extension
- Magic bytes — file header is checked to confirm actual format (prevents renaming executables to
.pdf)
.exe, .sh, .bat, .dll, etc.) and binary files (ELF, Mach-O) are always rejected.
Limits
| Limit | Value |
|---|---|
| Max file size | 50 MB |
| Allowed formats | PDF, XLSX, CSV, DOCX |
Error codes
| Status | Meaning |
|---|---|
201 Created | File uploaded and processing started |
400 Bad Request | No file provided (use field name file) |
413 Payload Too Large | File exceeds 50 MB |
415 Unsupported Media Type | File format not allowed or magic bytes mismatch |
Processing pipeline
After upload, the file goes through the processing pipeline:- Parsing — document is parsed into zones (sections, tables, etc.)
- Extraction — knowledge cards are extracted from zones using LLM
- Indexing — cards are embedded and indexed in the vector database
.xlsx, .csv) follow a separate pipeline optimized for tabular data.
The collection status changes to processing during this time and processed when complete.