Upload a dataset
- Last UpdatedJul 01, 2026
- 2 minute read
The file(s) uploaded comprises the data that is validated against the loaded class library. This is the core set of data for which validation is required, using the associated validation rules from the class library specified during the upload.
Upload using REST
Endpoint: POST /api/account/{accountId}/dataValidation/{instanceId}/v1/dataset
Content-Type: multipart/form-data
Supports CSV, Excel (.xlsx), JSON, and NDJSON file formats.
Upload parameters reference
|
Parameter |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
datasetFile |
File |
No |
-- |
The data file to upload |
|
name |
string |
No |
(generated) |
Human readable name |
|
handle |
long? |
No |
(new) |
Upload into an existing dataset instead of creating anew |
|
classLibraryHandle |
long? |
No |
-- |
Associate with a ClassLibrary at upload time |
|
overwriteExisting |
bool |
No |
false |
Replace existing file when handle is provided. |
|
requiresTranspose |
bool |
No |
false |
Data has rows and columns transposed |
|
requiresSorting |
bool |
No |
false |
Sort data during processing |
|
separatorChar |
string |
No |
, |
CSV column separator |
|
quoteChar |
strong |
No |
" |
CSV quote character |
|
multiValueDelimiter |
string |
No |
-- |
Delimiter for multi-valued cells (e.g., \|, ;) |
|
hasHeaderRow |
bool |
No |
true |
First data row is a header |
|
rowsToSkipBeforeHeaderRow |
int |
No |
0 |
Rows to skip before header |
|
rowsToSkipAfterHeaderRow |
int |
No |
0 |
Rows to skip before header data |
|
ignoreUnmappedColumns |
bool |
No |
false |
Skip reporting unmapped columns as issues |
|
timeZoneOffsetInMinutes |
int? |
No |
-- |
UTC offset for date/time values |
|
cultureCodeDateTime |
string? |
No |
-- |
Culture code for date/time parsing (e.g., en-US) |
|
cultureCodeDecimalNumber |
string? |
No |
-- |
Culture code for decimal parsing (e.g., de-DE) |
cURL example (Excel file)
curl -X POST \
"/api/account/{accountId}/dataValidation/{instanceId}/v1/dataset" \
-H "Authorization: Bearer {token}" \
-F "datasetFile=@equipment-data.xlsx" \
-F "name=Windtopia Equipment Q4 2024" \
-F "classLibraryHandle=100"
cURL example (CSV with custom parsing)
curl -X POST \
"/api/account/{accountId}/dataValidation/{instanceId}/v1/dataset" \
-H "Authorization: Bearer {token}" \
-F "datasetFile=@data.csv" \
-F "name=German Format Data" \
-F "separatorChar=;" \
-F "cultureCodeDecimalNumber=de-DE" \
-F "hasHeaderRow=true" \
-F "rowsToSkipBeforeHeaderRow=2"
Browse Existing Datasets
{
dataValidation {
dataset {
list {
handle name status numberOfSessions numberOfFileFormats numberOfFiles
createdAt lastUpdatedAt etag grantedAccess
}
}
}
}
Count
{ dataValidation { dataset { count } } }
Dataset entity structure
|
Property |
Type |
Description |
|---|---|---|
|
handle |
long |
Unique indentifier |
|
name |
string |
Human readable name |
|
retentionPeriodInMinutes |
int? |
Retention (default is 7 days) |
|
retainUntil |
DateTime? |
Retention expiry |
|
status |
string |
Processing state |
|
numberOfSessions |
long? |
Sessions using this dataset |
|
numberOfFileFormats |
long? |
Distint file formats |
|
numberOfFiles |
long? |
File count |
|
createdAt |
DateTime |
Upload timestamp |
|
lastUpdatedAt |
DateTime? |
Last update |
|
etag |
string |
Concurrency token |
|
grantedAccess |
string[] |
Effective permissions |
Child entities: sessions, files, fileFormats, fileSections, properties, createdByUser,
dataObjectMetricsBreakdown
Consistency Check
Before creating a session, verify that the dataset is consistent with the class library:
{
dataValidation {
dataset { consistencyStatus(datasetHandle : 200 classLibraryHandle : 100) }
}
}