This page is the API reference. For the concepts behind the request — what a manifest is, what gets validated, and how the conflict-resolution flags interact — see the Uploading Data section.
Authentication
Authenticate using HTTP Basic Auth. Pass your API key as the username and leave the password empty. You must have at leastWrite permission on the target dataset.
Request
Method:PUTURL:
https://api.alphacast.io/datasets/{dataset_id}/dataContent-Type:
multipart/form-data
Path parameters
The numeric ID of the dataset to upload data into.
Form fields
The CSV file to upload. Accepts plain
.csv files or gzip-compressed .csv.gz files. The first row must be a header row containing column names.A JSON string declaring each column’s data type and entity flag. Required on the dataset’s first upload (or set the manifest beforehand from the web UI). On subsequent uploads it is optional — pass it only when you want to replace the dataset’s stored manifest. See the Manifest reference for the full schema.
Query parameters
When
true, rows present in the existing dataset but absent from the upload are deleted. Use this to perform a full replacement. Forced to false if the dataset’s manifest is locked. See Upload modes.When
true, rows whose entity key matches an existing row are updated with the new value. When false, the existing value is kept and the upload’s value is discarded for those rows.When
true, columns in the CSV that are not in the dataset’s existing schema are added. When false, unknown columns cause the upload to fail with Unknown column(s): .... Forced to false if the manifest is locked.Response
Returns201 Created with a process object describing the background upload job.
The ID of the upload process. Use this to poll the dataset processes endpoint and inspect status, stats, and any error message.
Initial status — typically
Requested. Transitions to Processing → Processed (or Error) as the background worker runs. See the upload lifecycle.Example
Upload a CSV file with a manifest:Error responses
The API surfaces validation errors via the upload process record (statusError, statusDescription set to the message). The HTTP response itself uses standard codes:
| Status | Cause |
|---|---|
400 Bad Request | The manifest is malformed, or required form fields are missing. |
401 Unauthorized | Missing or invalid API key. |
403 Forbidden | You do not have Write permission on this dataset. |
404 Not Found | No dataset with the given ID exists or is accessible to your account. |
Data has not Date column, duplicate rows, out-of-range Short Integer, etc.) the HTTP call returns 201 with a process record, and the failure surfaces when the process transitions to Error. See Validation rules for the complete list.
Uploads are processed asynchronously. The API returns immediately with a process object, and the data becomes available in the dataset once the background job completes. Identical re-uploads (same content + same flags as the previous successful run) are detected via a content hash and skipped — see Idempotency.