Request body
- Content-Type
- application/json
- Schema
- object
{
"type": "object",
"properties": {
"dataSource": {
"type": "string",
"nullable": true,
"description": "Optional recording source facet. Only ego_human is accepted when present. Omit for robot recordings. Literal ego_human (underscore); ego-human is rejected."
},
"dataFormat": {
"type": "string",
"nullable": true
},
"sourceKind": {
"enum": [
"human",
"robot",
"umi"
],
"type": "string"
},
"recordingShape": {
"enum": [
"continuous",
"single_task",
"presegmented"
],
"type": "string"
},
"vendorSchema": {
"type": "string",
"nullable": true
},
"taskId": {
"type": "string",
"nullable": true
},
"task": {
"type": "string",
"nullable": true,
"description": "Robot task text; wins over the project default (FV-09)."
},
"durationS": {
"type": "number",
"nullable": true
},
"sourceEpisodes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImportSourceEpisodeBodyDto"
}
},
"captureSessions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UploadFileGroupCaptureSessionBodyDto"
}
},
"captureLabels": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"scene": {
"type": "string",
"nullable": true
},
"taskDescription": {
"type": "string",
"nullable": true
}
}
},
"description": "Labels per planned recording, keyed by plan dataset key. Shape and size\nare checked by the service with RECORDING_CAPTURE_LABELS_* codes."
},
"sampleForFormatId": {
"type": "string",
"description": "Upload a test sample for the draft of this team data format (FV-20c). The\nsample is only used for that draft's sample runs; it is never listed,\ncounted, versioned or exported. Needs `algorithm:write` and sourceType\n`team-format`.",
"format": "uuid"
},
"projectId": {
"type": "string",
"format": "uuid"
},
"sourceType": {
"type": "string"
},
"metadata": {
"type": "object",
"additionalProperties": true
},
"manifestFiles": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CreateUploadSessionFileBodyDto"
}
},
"groupingOverrides": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UploadGroupingOverrideBodyDto"
}
}
},
"required": [
"projectId",
"sourceType"
]
}Responses
| Status | Description | Content-Type | Schema |
|---|
| 201 | Success | application/json | object |
| 400 | Bad request. Enumerated catalog codes for this operation. | application/problem+json | union |
| 401 | Authentication failed. A specific TOKEN_* cause is returned only when the presented hash matched a stored row. | application/problem+json | union |
| 403 | 403 DATA_FORMAT_SAMPLE_UPLOAD_FORBIDDEN | Not published in OpenAPI | Not published in OpenAPI |
| 409 | Conflict. Enumerated catalog codes for this operation. | application/problem+json | union |
| 413 | JSON request body exceeds the 4 MiB upload-batch descriptor ceiling. File bytes belong in object storage; this limit applies only to the JSON descriptor. The global public JSON limit stays 100kb. | application/problem+json | union |
| 422 | 422 DATA_FORMAT_SAMPLE_EXTENSION_UNSUPPORTED | DATA_FORMAT_SAMPLE_PROJECT_MISMATCH | RECORDING_FORMAT_NOT_ACCEPTED | Not published in OpenAPI | Not published in OpenAPI |
| 429 | Authenticated per-principal or per-tenant request budget exceeded. Rate-limit headers appear only on 429. | application/problem+json | union |
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/CreateUploadBatchResponseDto"
}
},
"required": [
"data"
]
}{
"allOf": [
{
"$ref": "#/components/schemas/ProblemJson"
},
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"enum": [
400
]
},
"code": {
"type": "string",
"enum": [
"BAD_REQUEST",
"EGO_HUMAN_HIGH_RES_COST",
"EGO_HUMAN_PRIVACY_PREREQUISITE",
"EMPTY_UPLOAD_MANIFEST",
"GROUPED_DATASET_SCALE",
"IDEMPOTENCY_KEY_INVALID",
"IF_MATCH_INVALID",
"TENANT_CONTEXT_MISMATCH",
"TENANT_REQUIRED",
"UNCLASSIFIED_FILES",
"UNSUPPORTED_FILE_EXTENSION",
"UPLOAD_PLAN_PROJECT_TYPE_UNSUPPORTED",
"UPLOAD_SESSION_EXPIRED",
"VALIDATION_ERROR"
]
}
}
}
]
}{
"allOf": [
{
"$ref": "#/components/schemas/PublishedAuthProblem"
},
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"enum": [
401
]
},
"code": {
"type": "string",
"enum": [
"TOKEN_MALFORMED",
"TOKEN_NOT_FOUND",
"TOKEN_EXPIRED",
"TOKEN_REVOKED",
"UNAUTHORIZED",
"SESSION_EXPIRED",
"ACTIVATION_REQUIRED",
"MFA_REQUIRED"
]
}
}
}
]
}{
"allOf": [
{
"$ref": "#/components/schemas/ProblemJson"
},
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"enum": [
409
]
},
"code": {
"type": "string",
"enum": [
"IDEMPOTENCY_CONFLICT",
"UPLOAD_BATCH_ACTIVE",
"UPLOAD_BATCH_NOT_DISCARDABLE",
"UPLOAD_SESSION_ALREADY_ABORTED",
"UPLOAD_SESSION_ALREADY_COMPLETED"
]
}
}
}
]
}{
"allOf": [
{
"$ref": "#/components/schemas/ProblemJson"
},
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"enum": [
413
]
},
"code": {
"type": "string",
"enum": [
"PAYLOAD_TOO_LARGE"
]
}
}
}
]
}{
"allOf": [
{
"$ref": "#/components/schemas/PublishedAuthProblem"
},
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"enum": [
429
]
},
"code": {
"type": "string",
"enum": [
"RATE_LIMITED"
]
}
}
}
]
}