Get Upload Url
Creates a reserved dataset row and presigned upload URL.
Request body
Name for the dataset
Type of dataset
File format (auto-detected from filename if not provided)
Original filename (used for format detection if format not provided)
Expected schema as JSON object (e.g., {"age": "Int64", "name": "Utf8"}). Enforces column types during parsing. Valid types: Int8, Int16, Int32, Int64, UInt8-64, Float32, Float64, Utf8, Boolean, Date, Datetime, Time, Duration, Categorical, Binary
Optional project ID (UUID) to assign this dataset to
Optional Experiment ID (UUID) the upload was started from. The dataset is linked to it so it appears in that Experiment's Datasets tab (ENG-7109). Ignored when the caller may not access the Experiment.
Dataset purpose: 'training' (trainable), 'evaluation' (not trainable), 'benchmark' (system-managed, evaluation-only; cannot be trained on or directly accessed).
Dataset visibility: 'private' (owner only) or 'public' (anyone can see)
Public uploads are always recorded as upload. Other generation methods are assigned by server-owned workflows.
Split ratio when type is 'split', e.g. {'training': 0.8, 'evaluation': 0.2}
Column mapping from source to standard names (e.g., {"sentence": "text", "category": "label"}). Valid standard targets: text, label, labels, entities.
Response
Successful Response
S3 presigned URL for PUT upload
Dataset ID for subsequent processing
Dataset name (for polling status via GET /{name}/{version})
Version number for this dataset
URL expiration time in seconds
Instructions for completing the upload