EmbodiFlowDocs
Open console
Get startedDataWorkflows and algorithmsTraining and deploymentDeveloper reference
  • Developer reference

Authentication

  • Authentication overview
  • API keys
  • Personal access tokens
  • Browser sessions

REST API

  • Using the REST API
  • All endpoints
  • Projects
    • Recordings
      • POST
        Create a archive request
      • POST
        Create a revision
      • GET
        List checks for a dataset version
      • POST
        Create a contract check request
      • GET
        List deletion eligibility for a dataset version
      • GET
        List health for a dataset version
      • POST
        Create a health recompute request
      • GET
        List provenance summary for a dataset version
      • POST
        Create a repair task generation request
      • GET
        List reproducibility bundle for a dataset version
      • POST
        Create a split plan
      • GET
        List training jobs for a dataset version
      • GET
        List diff for a dataset version
      • POST
        Create a dataset
      • GET
        Get a dataset
      • PATCH
        Update a dataset
      • PUT
        Update a draft
      • POST
        ADR 0073: import QWen auto-annotate draft → writeback + optional search index rebuild.
      • GET
        List frame spatial annotations for a dataset
      • POST
        Create a frame spatial annotation
      • DELETE
        Delete a frame spatial annotation
      • PATCH
        Update a frame spatial annotation
      • GET
        List lineage for a dataset
      • GET
        List studio for a dataset
      • GET
        List time range annotations for a dataset
      • POST
        Create a time range annotation
      • DELETE
        Delete a time range annotation
      • PATCH
        Update a time range annotation
      • GET
        List versions for a dataset
      • GET
        List governance tags for a version
      • POST
        Create a governance tag
      • DELETE
        Delete a governance tag
      • PATCH
        Update a governance tag
      • GET
        List governance tags for a item
      • POST
        Create a governance tag
      • DELETE
        Delete a governance tag
      • PATCH
        Update a governance tag
      • GET
        Get a version
      • POST
        Create a derived version
      • GET
        List files for a version
      • GET
        List items for a version
      • GET
        List lineage for a version
      • GET
        List metadata for a version
      • GET
        List processing gate for a version
      • POST
        Create a publication request
      • POST
        Create a quality check job
      • GET
        List quality report for a version
      • GET
        List quality summary for a version
      • GET
        List signed files for a version
      • GET
        List topics for a version
      • POST
        Create a visibility restoration
      • GET
        List edges for a lineage
      • GET
        List downstream for a node
      • GET
        List upstream for a node
      • GET
        List capture sessions in a project
      • POST
        Create a capture session
      • GET
        List data contracts for a project
      • POST
        Create a data contract
      • GET
        List datasets for a project
      • GET
        List health for a project
      • GET
        List recordings in a project
      • POST
        Create a recording from an upload session or a one-way Hugging Face Hub import
      • DELETE
        Move a recording to trash
      • GET
        Get a recording
      • PATCH
        Patch recording name and tags
      • GET
        Get anonymization evidence and spot-check status for a recording
      • POST
        Create a consent-document upload for a human recording
      • POST
        Complete a consent-document upload after the object is stored
      • POST
        Confirm a privacy spot check for the latest processing result
      • GET
        What the latest processing result of a recording holds: cameras, columns, features, rate and duration
      • PUT
        Assign or clear a recording capture session
    • Upload
      • Episodes and versions
        • Annotation
          • Quality and tasks
            • Search
              • Workflows
                • Algorithms
                  • Models
                    • Artifacts and export
                      • Billing and usage
                        • Team and governance
                          • Account and notifications
                            • Webhook endpoints

                              Events

                              • Outbound events
                              • Signature verification

                              Tools

                              • CLI
                              • SDK
                              • MCP

                              Updates

                              • Changelog

                              © 2026 EmbodiFlow

                              llms.txtOpenAPI JSON
                              1. Developer reference
                              2. REST API
                              3. Recordings
                              4. Create a recording from an upload session or a one-way Hugging Face Hub import

                              Create a recording from an upload session or a one-way Hugging Face Hub import

                              POST
                              /v1/projects/{projectId}/recordings
                              curl -X POST 'https://api.embodiflow.io/v1/projects/{projectId}/recordings' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "files": [
                                    {
                                      "role": "calibration",
                                      "deviceMeta": {},
                                      "originalFilename": "string",
                                      "relativePath": "string",
                                      "contentType": "string",
                                      "sizeBytes": 0,
                                      "checksumExpected": "string"
                                    }
                                  ],
                                  "name": "string",
                                  "tags": [
                                    "string"
                                  ],
                                  "dataFormat": "string",
                                  "sourceKind": "human",
                                  "recordingShape": "continuous",
                                  "vendorSchema": "string",
                                  "taskId": "string",
                                  "task": "string",
                                  "durationS": 0,
                                  "sourceEpisodes": [
                                    {
                                      "taskId": "string",
                                      "label": "string",
                                      "id": "string",
                                      "startS": 0,
                                      "endS": 0
                                    }
                                  ],
                                  "captureSessionId": "string",
                                  "sourceTime": "string",
                                  "collectionTaskId": "00000000-0000-0000-0000-000000000000",
                                  "sceneId": "00000000-0000-0000-0000-000000000000",
                                  "storageBucketId": "00000000-0000-0000-0000-000000000000",
                                  "captureLabels": {
                                    "tags": [
                                      "string"
                                    ],
                                    "scene": "string",
                                    "taskDescription": "string"
                                  },
                                  "source": {
                                    "type": "hugging_face",
                                    "repoId": "lerobot/pusht",
                                    "revision": "string",
                                    "subPath": "string"
                                  },
                                  "accessToken": "string"
                                }'

                              Authorization

                              Send a personal access token with every request.

                              • Authorization: Bearer PAT
                              Authentication guide

                              Path parameters

                              • projectIdstringrequired

                              Header parameters

                              • Idempotency-Keystring

                                Optional idempotency key, at most 255 characters (UUIDv4 recommended). A repeated key returns the first response byte-for-byte, including a 5xx. The same key with a different body, or a second in-flight request, returns 409 IDEMPOTENCY_CONFLICT. Keys are unique per tenant and retained for 24 hours.

                              Request body

                              Content-Typeapplication/json
                              • filesarray<CreateUploadSessionFileBodyDto>
                                • rolestring | null
                                  Allowed values
                                  calibration
                                  mapping
                                  media
                                • deviceMetaobject | null
                                • originalFilenamestringrequired
                                • relativePathstringrequired
                                • contentTypestring | null
                                • sizeBytesnumberrequired
                                • checksumExpectedstring | null
                              • namestring | null
                              • tagsarray<string>
                              • dataFormatstring | null
                              • sourceKindstring
                                Allowed values
                                human
                                robot
                                umi
                              • recordingShapestring
                                Allowed values
                                continuous
                                single_task
                                presegmented
                              • vendorSchemastring | null
                              • taskIdstring | null
                              • taskstring | null

                                Robot task text; wins over the project default task (FV-09).

                              • durationSnumber | null
                              • sourceEpisodesarray<ImportSourceEpisodeBodyDto>
                                • taskIdstring | null
                                • labelstring | null
                                • idstringrequired
                                • startSnumberrequired
                                • endSnumberrequired
                              • captureSessionIdstring | null
                              • sourceTimestring | null
                              • collectionTaskIdstring (uuid) | null

                                Reserved; validated in W41.

                              • sceneIdstring (uuid) | null

                                Reserved; validated in W41.

                              • storageBucketIdstring (uuid) | null
                              • captureLabelsobject | null

                                Uploader labels (EGO-DATA P5). Shape and size are checked by the service with the named codes RECORDING_CAPTURE_LABELS_INVALID / _TOO_LARGE.

                                • tagsarray<string>required
                                • scenestring | nullrequired
                                • taskDescriptionstring | nullrequired
                              • sourceobject
                                • typestringrequired
                                  Allowed values
                                  hugging_face
                                • repoIdstringrequired
                                • revisionstring
                                • subPathstring
                              • accessTokenstring

                                One-shot Hub token. Used once, not stored.

                              Responses

                              Success

                              • dataobjectrequired
                                • recordingobjectrequired
                                • uploadBatchIdstringrequired
                                • sessionsarray<UploadSessionSummaryDto>
                              Response example
                              {
                                "data": {
                                  "recording": {
                                    "id": "string",
                                    "projectId": "string",
                                    "name": "string",
                                    "tags": [
                                      "string"
                                    ],
                                    "sourceFormat": "string",
                                    "source": "upload",
                                    "huggingFace": {
                                      "type": "hugging_face",
                                      "repoId": "string",
                                      "revision": "string",
                                      "commitSha": "string",
                                      "subPath": "string",
                                      "licence": "string",
                                      "gated": "none",
                                      "sourceFormat": "lerobot-v3",
                                      "progress": {
                                        "filesDone": 0,
                                        "filesTotal": 0,
                                        "bytesDone": 0,
                                        "bytesTotal": 0
                                      },
                                      "failureReason": "HF_REPO_NOT_FOUND"
                                    },
                                    "status": {
                                      "lifecycle": "failed",
                                      "quality": "warn",
                                      "qualityCheckId": "string",
                                      "qualityVerdict": "warning",
                                      "stepId": "string",
                                      "stepWaitReason": "string",
                                      "noProgressSince": "string",
                                      "failure": {
                                        "code": "string",
                                        "reason": "string",
                                        "stepId": "string",
                                        "stepName": "string",
                                        "stepAlgorithm": {
                                          "slug": "string",
                                          "title": "string"
                                        },
                                        "stepRunId": "string",
                                        "runId": "string",
                                        "stepErrorCode": "string"
                                      },
                                      "runId": "string",
                                      "processingRefused": {
                                        "code": "string"
                                      }
                                    },
                                    "segmentationState": {
                                      "state": "not_segmented",
                                      "episodeCount": 0
                                    },
                                    "privacyState": "pending",
                                    "privacyRequirement": "required",
                                    "privacyGate": "human",
                                    "durationNs": 0,
                                    "collector": null,
                                    "posterUrl": "string",
                                    "latestReadyProcessingResultId": "string",
                                    "processedWith": {
                                      "workflowName": "string",
                                      "revision": 0
                                    },
                                    "rigProfile": {
                                      "name": "string",
                                      "revisionId": "string"
                                    },
                                    "captureLabels": {
                                      "tags": [
                                        "string"
                                      ],
                                      "scene": "string",
                                      "taskDescription": "string"
                                    },
                                    "rejectedSavedMinutes": 0,
                                    "createdAt": "string",
                                    "updatedAt": "string"
                                  },
                                  "uploadBatchId": "string",
                                  "sessions": [
                                    {
                                      "id": "string",
                                      "uploadBatchId": "string",
                                      "storageBucketId": "string",
                                      "objectKey": "string",
                                      "originalFilename": "string",
                                      "uploadMode": "single",
                                      "status": "string",
                                      "expiresAt": "string",
                                      "putUrl": "string",
                                      "providerUploadId": "string",
                                      "completedAt": "string",
                                      "storageObjectId": "string",
                                      "error": {
                                        "code": "string",
                                        "message": "string"
                                      },
                                      "writeCredentials": {
                                        "accessKeyId": "string",
                                        "secretAccessKey": "string",
                                        "sessionToken": "string",
                                        "expiresAt": "string",
                                        "bucketName": "string",
                                        "region": "string",
                                        "provider": "string",
                                        "endpoint": "string",
                                        "objectKey": "string",
                                        "prefix": "string",
                                        "forcePathStyle": false
                                      },
                                      "partSizeBytes": 0
                                    }
                                  ]
                                }
                              }
                              Servershttps://api.embodiflow.io/v1https://api.embodiflow.dev/v1
                              Previous

                              GET /projects/{projectId}/recordings

                              Next

                              DELETE /projects/{projectId}/recordings/{recordingId}

                              curl -X POST 'https://api.embodiflow.io/v1/projects/{projectId}/recordings' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "files": [
                                    {
                                      "role": "calibration",
                                      "deviceMeta": {},
                                      "originalFilename": "string",
                                      "relativePath": "string",
                                      "contentType": "string",
                                      "sizeBytes": 0,
                                      "checksumExpected": "string"
                                    }
                                  ],
                                  "name": "string",
                                  "tags": [
                                    "string"
                                  ],
                                  "dataFormat": "string",
                                  "sourceKind": "human",
                                  "recordingShape": "continuous",
                                  "vendorSchema": "string",
                                  "taskId": "string",
                                  "task": "string",
                                  "durationS": 0,
                                  "sourceEpisodes": [
                                    {
                                      "taskId": "string",
                                      "label": "string",
                                      "id": "string",
                                      "startS": 0,
                                      "endS": 0
                                    }
                                  ],
                                  "captureSessionId": "string",
                                  "sourceTime": "string",
                                  "collectionTaskId": "00000000-0000-0000-0000-000000000000",
                                  "sceneId": "00000000-0000-0000-0000-000000000000",
                                  "storageBucketId": "00000000-0000-0000-0000-000000000000",
                                  "captureLabels": {
                                    "tags": [
                                      "string"
                                    ],
                                    "scene": "string",
                                    "taskDescription": "string"
                                  },
                                  "source": {
                                    "type": "hugging_face",
                                    "repoId": "lerobot/pusht",
                                    "revision": "string",
                                    "subPath": "string"
                                  },
                                  "accessToken": "string"
                                }'
                              Response example
                              Status code
                              201
                              ​
                              {
                                "data": {
                                  "recording": {
                                    "id": "string",
                                    "projectId": "string",
                                    "name": "string",
                                    "tags": [
                                      "string"
                                    ],
                                    "sourceFormat": "string",
                                    "source": "upload",
                                    "huggingFace": {
                                      "type": "hugging_face",
                                      "repoId": "string",
                                      "revision": "string",
                                      "commitSha": "string",
                                      "subPath": "string",
                                      "licence": "string",
                                      "gated": "none",
                                      "sourceFormat": "lerobot-v3",
                                      "progress": {
                                        "filesDone": 0,
                                        "filesTotal": 0,
                                        "bytesDone": 0,
                                        "bytesTotal": 0
                                      },
                                      "failureReason": "HF_REPO_NOT_FOUND"
                                    },
                                    "status": {
                                      "lifecycle": "failed",
                                      "quality": "warn",
                                      "qualityCheckId": "string",
                                      "qualityVerdict": "warning",
                                      "stepId": "string",
                                      "stepWaitReason": "string",
                                      "noProgressSince": "string",
                                      "failure": {
                                        "code": "string",
                                        "reason": "string",
                                        "stepId": "string",
                                        "stepName": "string",
                                        "stepAlgorithm": {
                                          "slug": "string",
                                          "title": "string"
                                        },
                                        "stepRunId": "string",
                                        "runId": "string",
                                        "stepErrorCode": "string"
                                      },
                                      "runId": "string",
                                      "processingRefused": {
                                        "code": "string"
                                      }
                                    },
                                    "segmentationState": {
                                      "state": "not_segmented",
                                      "episodeCount": 0
                                    },
                                    "privacyState": "pending",
                                    "privacyRequirement": "required",
                                    "privacyGate": "human",
                                    "durationNs": 0,
                                    "collector": null,
                                    "posterUrl": "string",
                                    "latestReadyProcessingResultId": "string",
                                    "processedWith": {
                                      "workflowName": "string",
                                      "revision": 0
                                    },
                                    "rigProfile": {
                                      "name": "string",
                                      "revisionId": "string"
                                    },
                                    "captureLabels": {
                                      "tags": [
                                        "string"
                                      ],
                                      "scene": "string",
                                      "taskDescription": "string"
                                    },
                                    "rejectedSavedMinutes": 0,
                                    "createdAt": "string",
                                    "updatedAt": "string"
                                  },
                                  "uploadBatchId": "string",
                                  "sessions": [
                                    {
                                      "id": "string",
                                      "uploadBatchId": "string",
                                      "storageBucketId": "string",
                                      "objectKey": "string",
                                      "originalFilename": "string",
                                      "uploadMode": "single",
                                      "status": "string",
                                      "expiresAt": "string",
                                      "putUrl": "string",
                                      "providerUploadId": "string",
                                      "completedAt": "string",
                                      "storageObjectId": "string",
                                      "error": {
                                        "code": "string",
                                        "message": "string"
                                      },
                                      "writeCredentials": {
                                        "accessKeyId": "string",
                                        "secretAccessKey": "string",
                                        "sessionToken": "string",
                                        "expiresAt": "string",
                                        "bucketName": "string",
                                        "region": "string",
                                        "provider": "string",
                                        "endpoint": "string",
                                        "objectKey": "string",
                                        "prefix": "string",
                                        "forcePathStyle": false
                                      },
                                      "partSizeBytes": 0
                                    }
                                  ]
                                }
                              }