Upload Dataset
POST/datasets/upload
Upload a dataset file with automatic format conversion and lakehouse integration.
Creates the dataset and its first version (version=1) from a single uploaded file.
file_format is inferred from the filename extension when omitted. CSV, JSON, and JSONL
uploads are converted to Parquet in addition to the original being stored, and any format
that yields Parquet is registered as an Iceberg table so it can be queried and edited
through the row-operation and SQL-query endpoints; row count and column metadata are
computed from the file up front rather than left for a later pass. Lakehouse registration
failures are logged and swallowed rather than failing the upload — it is treated as
optional, so a caller sees the dataset succeed even if querying it is not yet available.
project_id is required — this endpoint does not fall back to a default project for an
omitted one. The caller must be a workspace editor or admin of the named project's
workspace, or, for a legacy workspace-less project, a platform admin. When the project
carries a schema_name/task_type, the upload's own values must match exactly.
predecessor_dataset_id optionally declares a cross-dataset lineage parent; it must
already exist in the same workspace as this upload, or the request is rejected — a missing
dataset and one in another tenant's workspace return the identical error, so a caller
cannot use this to probe another workspace's contents.
Request
Responses
- 201
- 400
- 401
- 403
- 404
- 409
- 422
- 503
Successful Response
Bad Request
Unauthorized
Forbidden
Not Found
Conflict
Unprocessable Entity
Service Unavailable