EmbodiFlowDocs
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
    • GET
      List data formats
    • POST
      Create a data format
    • GET
      Get a data format
    • PATCH
      Update a data format
    • POST
      Publishes the draft as the next immutable revision. The path is the REST noun (`revisions`): the public contract refuses verb segments.
    • POST
      Create a sample run
    • GET
      Get a sample run
    • DELETE
      Removes every sample uploaded for the DRAFT of a team format (FV-20c). The format stays. Repeating the call removes nothing and still succeeds.
    • GET
      This team's own formats, drafts included. The route precedes `:formatId`.
    • GET
      List first value state
    • PATCH
      Update a first value state
    • POST
      Create a onboarding sample
    • DELETE
      Delete a current
    • GET
      List current for a onboarding sample
    • POST
      Create a project import job
    • GET
      Get a project import job
    • POST
      Create a confirmation
    • POST
      Create a resumption
    • POST
      Create a project import source
    • POST
      Create a validation request
    • PATCH
      Update a project membership
    • GET
      List projects
    • POST
      Create a project
    • DELETE
      Move a project to trash
    • GET
      Get a project
    • PATCH
      Update a project
    • GET
      List analytics for a project
    • POST
      Create a archive request
    • POST
      Move a project to trash
    • GET
      List members for a project
    • POST
      Create a member
    • PATCH
      Update a membership
    • GET
      List overview for a project
    • GET
      List pii policy for a project
    • PUT
      Update a pii policy
    • GET
      List project import jobs for a project
    • GET
      List recording privacy for a project
    • PUT
      Owner only (checked in the service). Applies to new uploads; with `applyToExistingRecordings` (not_required only) it also moves the project's existing recordings, audited, in the same transaction.
    • GET
      List saved views in a project
    • POST
      Create a saved episode filter view
    • DELETE
      Delete a saved view
    • GET
      Get a saved view
    • PATCH
      Patch a saved view
    • GET
      List project secrets
    • POST
      Create a secret
    • DELETE
      Delete a secret
    • PUT
      Update a secret
    • GET
      Resolve a dataset reference or console path to ids
    • GET
      List rig profiles
    • POST
      Create a rig profile
    • GET
      Get a rig profile
    • PATCH
      Update a draft
    • POST
      Publishes the confirmed draft as the next immutable revision. The path is the REST noun (`revisions`): the public contract refuses verb segments.
    • POST
      Create a test
    • POST
      Analyses a recording and answers a draft; stores nothing.
    • GET
      List team secrets
    • POST
      Create a secret
    • DELETE
      Delete a secret
    • PUT
      Update a secret
    • GET
      List items in trash
    • DELETE
      Permanently purge an item from trash
    • POST
      Restore an item from trash
    • GET
      List recent projects for a me
  • Recordings
    • 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. Projects
                              4. Create a confirmation

                              Create a confirmation

                              POST
                              /v1/project-import-jobs/{runId}/confirmations
                              curl -X POST 'https://api.embodiflow.io/v1/project-import-jobs/{runId}/confirmations' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "credentials": {
                                    "accessKeyId": "string",
                                    "secretAccessKey": "string"
                                  },
                                  "conditionalIdentitySupported": true
                                }'

                              Authorization

                              Send a personal access token with every request.

                              • Authorization: Bearer PAT
                              Authentication guide

                              Path parameters

                              • runIdstringrequired

                              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
                              • credentialsobjectrequired
                                • accessKeyIdstringrequired
                                • secretAccessKeystringrequired
                              • conditionalIdentitySupportedboolean

                              Responses

                              Success

                              • dataobjectrequired
                                • attemptIdstringrequired
                                • statusstringrequired
                                  Allowed values
                                  confirmed
                                  resumed
                                • credentialDeadlineAtstringrequired
                                • credentialStoragestringrequired
                                  Allowed values
                                  one-shot-cache
                                • credentialStatestringrequired
                                  Allowed values
                                  expired
                                  consumed
                                  issued
                                • objectsarray<ObjectImportFrozenObject>required
                                • bindingsarray<ObjectImportAttemptBinding>required
                              Response example
                              {
                                "data": {
                                  "attemptId": "string",
                                  "status": "confirmed",
                                  "credentialDeadlineAt": "string",
                                  "credentialStorage": "one-shot-cache",
                                  "credentialState": "expired",
                                  "objects": [
                                    {
                                      "key": "string",
                                      "size": 0,
                                      "etag": "string",
                                      "versionId": "string",
                                      "lastModified": "string",
                                      "checksumAlgorithm": "string",
                                      "checksumValue": "string"
                                    }
                                  ],
                                  "bindings": [
                                    {
                                      "groupKey": "string",
                                      "dataFormat": "string",
                                      "profile": {
                                        "sourceKind": "string",
                                        "recordingShape": "string",
                                        "privacyRequirement": "string"
                                      },
                                      "objectKeys": [
                                        "string"
                                      ],
                                      "unresolvedCode": "string"
                                    }
                                  ]
                                }
                              }
                              Servershttps://api.embodiflow.io/v1https://api.embodiflow.dev/v1
                              Previous

                              GET /project-import-jobs/{runId}

                              Next

                              POST /project-import-jobs/{runId}/resumptions

                              curl -X POST 'https://api.embodiflow.io/v1/project-import-jobs/{runId}/confirmations' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "credentials": {
                                    "accessKeyId": "string",
                                    "secretAccessKey": "string"
                                  },
                                  "conditionalIdentitySupported": true
                                }'
                              Response example
                              Status code
                              201
                              ​
                              {
                                "data": {
                                  "attemptId": "string",
                                  "status": "confirmed",
                                  "credentialDeadlineAt": "string",
                                  "credentialStorage": "one-shot-cache",
                                  "credentialState": "expired",
                                  "objects": [
                                    {
                                      "key": "string",
                                      "size": 0,
                                      "etag": "string",
                                      "versionId": "string",
                                      "lastModified": "string",
                                      "checksumAlgorithm": "string",
                                      "checksumValue": "string"
                                    }
                                  ],
                                  "bindings": [
                                    {
                                      "groupKey": "string",
                                      "dataFormat": "string",
                                      "profile": {
                                        "sourceKind": "string",
                                        "recordingShape": "string",
                                        "privacyRequirement": "string"
                                      },
                                      "objectKeys": [
                                        "string"
                                      ],
                                      "unresolvedCode": "string"
                                    }
                                  ]
                                }
                              }