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
integer
required
The numeric ID of the dataset to upload data into.
Form fields
file
required
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.string
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
boolean
default:"false"
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.boolean
default:"false"
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.boolean
default:"false"
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.
string
The ID of the upload process. Use this to poll the dataset processes endpoint and inspect status, stats, and any error message.
string
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:
For row-level validation failures (
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.