Upload a CSV source
Upload a CSV file as a new source into an Orbit Search directory and poll its processing status.
POST
Uploads a CSV file as a new source into the specified directory. The request uses
multipart/form-data. The API synchronously parses, validates, and materializes accepted rows, then returns processing metadata. Large uploads or rows requiring profile resolution may continue processing asynchronously — poll the source status endpoint to track completion.
Path parameters
The UUID of the owning organization.
The UUID of the target directory. The directory must not be archived.
Request body (multipart/form-data)
The CSV file to upload.
An optional client-generated key. Reusing the same key with the same file makes the request idempotent — the API returns the original response without creating a duplicate source. If you reuse a key with a different file, the request is rejected.
Response fields
UUID of the newly created (or reused, if idempotent) source.
UUID of the directory this source belongs to.
Current processing status of the source. See source status values below.
Number of rows accepted and materialized into the directory.
Number of rows that failed validation and were not imported.
Number of rows accepted with non-fatal warnings.
true if this response was served from a previously completed upload with the same idempotency_key.Source status values
Uploads process in two phases: the synchronous phase materializes as many rows as possible immediately, and any remaining work continues asynchronously under the source record. Poll the status endpoint untilsource_status reaches a terminal state.
| Status | Meaning |
|---|---|
pending | Upload received; processing has not started. |
processing | Rows are being validated and materialized. |
completed | All rows have been processed. Check accepted, failed, and warnings for results. |
failed | Processing encountered an unrecoverable error. |
