Skip to main content
Upload a file to your workspace. On success, Netter stores the file and starts turning it into a queryable database.

Request

Send the file as multipart/form-data in a field named file, with your API key in the Authorization header.
string
required
Bearer ntr_…—your API key.
file
required
The file to upload. Allowed types: CSV, JSON, XLSX. Maximum size 50 MB.
string
Folder to place the file in, e.g. invoices/2024. The folder is created on the fly if it doesn’t exist yet. Omit it to upload to the workspace root.

Examples

Calling from an IP-allowlisted network? Swap api.netter.ai for ingest.netter.ai to use Netter’s static IPs. The same key works on both.

Response

Returns 201 Created. The state field tells you what happened next.
string
The uploaded file’s ID.
string
The stored filename. When a folder is used, this is just the file’s leaf name—the folder is tracked separately.
string
csv, json, or xlsx.
integer
Size of the uploaded file.
boolean
true if this upload replaced an existing file with the same name.
string
committed (parsed automatically) or pending (needs confirmation in the Files view in the app).
array
Present when state is committed. Each entry has id, name, and refresh_status for the database being created from the file.
array
Present when state is pending. The detected sheets and headers awaiting confirmation.

Errors