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
      • Upload
        • Episodes and versions
          • GET
            Get a dataset version composition profile
          • GET
            List quality findings for a dataset version composition profile
          • POST
            Create a composition profile request
          • GET
            List composition profiles for a dataset version
          • GET
            Count episodes matching a filter
          • POST
            Apply label and segment operations to a selection of episodes
          • GET
            Semantic search availability and index coverage for the project
          • GET
            List episodes in a project
          • GET
            Get an episode
          • GET
            List revisions of an episode
          • POST
            Append one episode revision (never If-Match)
          • GET
            Find similar episodes in the same project
          • GET
            List version aliases in a project
          • DELETE
            Delete a version alias
          • PUT
            Create or move a version alias
          • GET
            List versions in a project
          • POST
            Create a version from a selection of episodes
          • DELETE
            Move a version to trash
          • GET
            Get a version
          • PATCH
            Patch version name, readme, and licence
          • GET
            Get a version citation
          • GET
            List episodes in a version
          • POST
            Preview a version selection without writing
        • 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. Episodes and versions
                              4. Append one episode revision (never If-Match)

                              Append one episode revision (never If-Match)

                              POST
                              /v1/projects/{projectId}/episodes/{episodeId}/revisions
                              curl -X POST 'https://api.embodiflow.io/v1/projects/{projectId}/episodes/{episodeId}/revisions' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "expectedHeadRevisionId": "00000000-0000-0000-0000-000000000000",
                                  "startNs": 0,
                                  "endNs": 0,
                                  "task": {},
                                  "outcome": "string",
                                  "subtasks": [
                                    {}
                                  ],
                                  "tags": [
                                    "string"
                                  ],
                                  "attributes": {},
                                  "splitTag": "string",
                                  "excluded": true,
                                  "deleted": true,
                                  "comment": "string",
                                  "commentAtNs": 0,
                                  "annotationJobId": "00000000-0000-0000-0000-000000000000"
                                }'

                              Authorization

                              Send a personal access token with every request.

                              • Authorization: Bearer PAT
                              Authentication guide

                              Path parameters

                              • projectIdstringrequired
                              • episodeIdstringrequired

                              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
                              • expectedHeadRevisionIdstring (uuid)required
                              • startNsnumber
                              • endNsnumber
                              • taskobject | null
                              • outcomestring | null
                              • subtasksarray<object>
                              • tagsarray<string>
                              • attributesobject
                              • splitTagstring | null
                              • excludedboolean
                              • deletedboolean
                              • commentstring
                              • commentAtNsnumber
                              • annotationJobIdstring (uuid)

                              Responses

                              Success

                              • dataobjectrequired
                                • idstringrequired
                                • episodeIdstringrequired
                                • parentRevisionIdstring | nullrequired
                                • startNsnumberrequired
                                • endNsnumberrequired
                                • durationNsnumberrequired
                                • taskobject | nullrequired
                                • outcomestring | nullrequired
                                • subtaskCountnumberrequired
                                • subtasksarray<object>required
                                • tagsarray<string>required
                                • attributesobjectrequired
                                • splitTagstring | nullrequired
                                • excludedone ofrequired
                                • deletedone ofrequired
                                • statestringrequired
                                • sourcestringrequired
                                • confidencenumber | nullrequired
                                • actorUserIdstring | nullrequired
                                • commentstring | nullrequired
                                • commentAtNsnumber | nullrequired
                                • createdAtstringrequired
                              Response example
                              {
                                "data": {
                                  "id": "string",
                                  "episodeId": "string",
                                  "parentRevisionId": "string",
                                  "startNs": 0,
                                  "endNs": 0,
                                  "durationNs": 0,
                                  "task": {
                                    "en": "string",
                                    "zh": "string"
                                  },
                                  "outcome": "string",
                                  "subtaskCount": 0,
                                  "subtasks": [
                                    {
                                      "startNs": 0,
                                      "endNs": 0,
                                      "description": {
                                        "en": "string",
                                        "zh": "string"
                                      },
                                      "skillTermId": "string",
                                      "relevance": "optional",
                                      "outcome": "success"
                                    }
                                  ],
                                  "tags": [
                                    "string"
                                  ],
                                  "attributes": {},
                                  "splitTag": "string",
                                  "excluded": false,
                                  "deleted": false,
                                  "state": "string",
                                  "source": "string",
                                  "confidence": 0,
                                  "actorUserId": "string",
                                  "comment": "string",
                                  "commentAtNs": 0,
                                  "createdAt": "string"
                                }
                              }
                              Servershttps://api.embodiflow.io/v1https://api.embodiflow.dev/v1
                              Previous

                              GET /projects/{projectId}/episodes/{episodeId}/revisions

                              Next

                              GET /projects/{projectId}/episodes/{episodeId}/similar

                              curl -X POST 'https://api.embodiflow.io/v1/projects/{projectId}/episodes/{episodeId}/revisions' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "expectedHeadRevisionId": "00000000-0000-0000-0000-000000000000",
                                  "startNs": 0,
                                  "endNs": 0,
                                  "task": {},
                                  "outcome": "string",
                                  "subtasks": [
                                    {}
                                  ],
                                  "tags": [
                                    "string"
                                  ],
                                  "attributes": {},
                                  "splitTag": "string",
                                  "excluded": true,
                                  "deleted": true,
                                  "comment": "string",
                                  "commentAtNs": 0,
                                  "annotationJobId": "00000000-0000-0000-0000-000000000000"
                                }'
                              Response example
                              Status code
                              201
                              ​
                              {
                                "data": {
                                  "id": "string",
                                  "episodeId": "string",
                                  "parentRevisionId": "string",
                                  "startNs": 0,
                                  "endNs": 0,
                                  "durationNs": 0,
                                  "task": {
                                    "en": "string",
                                    "zh": "string"
                                  },
                                  "outcome": "string",
                                  "subtaskCount": 0,
                                  "subtasks": [
                                    {
                                      "startNs": 0,
                                      "endNs": 0,
                                      "description": {
                                        "en": "string",
                                        "zh": "string"
                                      },
                                      "skillTermId": "string",
                                      "relevance": "optional",
                                      "outcome": "success"
                                    }
                                  ],
                                  "tags": [
                                    "string"
                                  ],
                                  "attributes": {},
                                  "splitTag": "string",
                                  "excluded": false,
                                  "deleted": false,
                                  "state": "string",
                                  "source": "string",
                                  "confidence": 0,
                                  "actorUserId": "string",
                                  "comment": "string",
                                  "commentAtNs": 0,
                                  "createdAt": "string"
                                }
                              }