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
    • 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. Update a membership

                              Update a membership

                              PATCH
                              /v1/projects/{projectId}/memberships/{membershipId}
                              curl -X PATCH 'https://api.embodiflow.io/v1/projects/{projectId}/memberships/{membershipId}' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "expiresAt": "2026-01-01T00:00:00Z",
                                  "role": "owner",
                                  "roles": "owner",
                                  "status": "active",
                                  "permissionsOverlay": {
                                    "grants": "project:read",
                                    "denies": "project:read"
                                  }
                                }'

                              Authorization

                              Send a personal access token with every request.

                              • Authorization: Bearer PAT
                              Authentication guide

                              Path parameters

                              • projectIdstringrequired
                              • membershipIdstringrequired

                              Request body

                              Content-Typeapplication/json
                              • expiresAtstring (date-time) | null
                              • rolestring
                                Allowed values
                                owner
                                editor
                                reviewer
                                labeler
                                viewer
                                uploader
                                data_supplier
                              • rolesarray<string>
                              • statusstring
                                Allowed values
                                active
                                disabled
                                removed
                              • permissionsOverlayobject | null
                                • grantsarray<string>
                                • deniesarray<string>

                              Responses

                              Success

                              • dataobjectrequired
                                • projectMembershipIdstringrequired
                                • projectMembershipIdsarray<string>
                                • membershipIdstringrequired
                                • userIdstringrequired
                                • displayNamestring | nullrequired
                                • emailstring | nullrequired
                                • rolestringrequired
                                  Allowed values
                                  owner
                                  viewer
                                  reviewer
                                  editor
                                  labeler
                                  uploader
                                  data_supplier
                                • rolesarray<string>required
                                • roleAssignmentsarray<ProjectRoleAssignmentDto>
                                • roleSourcesarray<string>required
                                • statusstringrequired
                                • joinedAtstringrequired
                                • lastAccessedAtstring | nullrequired
                                • expiresAtstring | null
                                • permissionsOverlayobject
                                • effectivePermissionsobject
                                • capabilitiesobject
                              Response example
                              {
                                "data": {
                                  "projectMembershipId": "string",
                                  "projectMembershipIds": [
                                    "string"
                                  ],
                                  "membershipId": "string",
                                  "userId": "string",
                                  "displayName": "string",
                                  "email": "string",
                                  "role": "owner",
                                  "roles": "owner",
                                  "roleAssignments": [
                                    {
                                      "projectMembershipId": "string",
                                      "role": "owner",
                                      "source": "string"
                                    }
                                  ],
                                  "roleSources": [
                                    "string"
                                  ],
                                  "status": "string",
                                  "joinedAt": "string",
                                  "lastAccessedAt": "string",
                                  "expiresAt": "string",
                                  "permissionsOverlay": {
                                    "grants": "project:read",
                                    "denies": "project:read"
                                  },
                                  "effectivePermissions": {
                                    "rolePermissions": "project:read",
                                    "grants": "project:read",
                                    "denies": "project:read",
                                    "effective": "project:read"
                                  },
                                  "capabilities": {
                                    "canViewProject": false,
                                    "canViewDatasets": false,
                                    "canViewProcessing": false,
                                    "canUploadData": false,
                                    "canSubmitUploadBatch": false,
                                    "canRunProcessing": false,
                                    "canViewAnalytics": false,
                                    "canEditProcessingTemplates": false,
                                    "canPublishProcessingTemplates": false,
                                    "canRollbackProcessingTemplates": false,
                                    "canSetDefaultProcessingTemplate": false,
                                    "canEditProjectSettings": false,
                                    "canManageMembers": false,
                                    "canArchiveProject": false,
                                    "canDeleteProject": false
                                  }
                                }
                              }
                              Servershttps://api.embodiflow.io/v1https://api.embodiflow.dev/v1
                              Previous

                              POST /projects/{projectId}/members

                              Next

                              GET /projects/{projectId}/overview

                              curl -X PATCH 'https://api.embodiflow.io/v1/projects/{projectId}/memberships/{membershipId}' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "expiresAt": "2026-01-01T00:00:00Z",
                                  "role": "owner",
                                  "roles": "owner",
                                  "status": "active",
                                  "permissionsOverlay": {
                                    "grants": "project:read",
                                    "denies": "project:read"
                                  }
                                }'
                              Response example
                              Status code
                              200
                              ​
                              {
                                "data": {
                                  "projectMembershipId": "string",
                                  "projectMembershipIds": [
                                    "string"
                                  ],
                                  "membershipId": "string",
                                  "userId": "string",
                                  "displayName": "string",
                                  "email": "string",
                                  "role": "owner",
                                  "roles": "owner",
                                  "roleAssignments": [
                                    {
                                      "projectMembershipId": "string",
                                      "role": "owner",
                                      "source": "string"
                                    }
                                  ],
                                  "roleSources": [
                                    "string"
                                  ],
                                  "status": "string",
                                  "joinedAt": "string",
                                  "lastAccessedAt": "string",
                                  "expiresAt": "string",
                                  "permissionsOverlay": {
                                    "grants": "project:read",
                                    "denies": "project:read"
                                  },
                                  "effectivePermissions": {
                                    "rolePermissions": "project:read",
                                    "grants": "project:read",
                                    "denies": "project:read",
                                    "effective": "project:read"
                                  },
                                  "capabilities": {
                                    "canViewProject": false,
                                    "canViewDatasets": false,
                                    "canViewProcessing": false,
                                    "canUploadData": false,
                                    "canSubmitUploadBatch": false,
                                    "canRunProcessing": false,
                                    "canViewAnalytics": false,
                                    "canEditProcessingTemplates": false,
                                    "canPublishProcessingTemplates": false,
                                    "canRollbackProcessingTemplates": false,
                                    "canSetDefaultProcessingTemplate": false,
                                    "canEditProjectSettings": false,
                                    "canManageMembers": false,
                                    "canArchiveProject": false,
                                    "canDeleteProject": false
                                  }
                                }
                              }