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
          • Annotation
            • Quality and tasks
              • Search
                • Workflows
                  • Algorithms
                    • Models
                      • Artifacts and export
                        • Billing and usage
                          • GET
                            List feature entitlements
                          • GET
                            List plans
                          • GET
                            List current for a subscription
                          • PATCH
                            Update a billing state
                          • GET
                            List invoice snapshots for a current
                          • POST
                            Create a invoice snapshot
                          • GET
                            List usage attestation for a current
                          • GET
                            List usage summary for a current
                          • GET
                            Usage for the current or previous UTC calendar month
                          • GET
                            List usage ledger
                          • GET
                            List usage meters
                          • GET
                            List usage summary
                          • GET
                            Team storage cap and optional money budget
                          • PUT
                            Set the team storage cap and optional money budget
                          • POST
                            Estimate time, meter units, and list price for a planned action
                        • 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. Billing and usage
                              4. Estimate time, meter units, and list price for a planned action

                              Estimate time, meter units, and list price for a planned action

                              POST
                              /v1/usage/estimates
                              curl -X POST 'https://api.embodiflow.io/v1/usage/estimates' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "descriptor": "upload_plan",
                                  "uploadPlanId": "00000000-0000-0000-0000-000000000000",
                                  "workflowRevisionId": "00000000-0000-0000-0000-000000000000",
                                  "algorithmRevisionId": "00000000-0000-0000-0000-000000000000",
                                  "itemCount": 0,
                                  "recordedSeconds": 0,
                                  "projectVersionId": "00000000-0000-0000-0000-000000000000",
                                  "format": "string",
                                  "options": {},
                                  "modelImageRevisionId": "00000000-0000-0000-0000-000000000000",
                                  "flavor": "string",
                                  "steps": 0,
                                  "modelVersionId": "00000000-0000-0000-0000-000000000000",
                                  "split": "string",
                                  "episodeId": "00000000-0000-0000-0000-000000000000"
                                }'

                              Authorization

                              Send a personal access token with every request.

                              • Authorization: Bearer PAT
                              Authentication guide

                              Request body

                              Content-Typeapplication/json
                              • descriptorstringrequired
                                Allowed values
                                upload_plan
                                workflow_run
                                materialize
                                export
                                training
                                evaluation
                                try
                                endpoint_hour
                              • uploadPlanIdstring (uuid)
                              • workflowRevisionIdstring (uuid)
                              • algorithmRevisionIdstring (uuid)
                              • itemCountnumber
                              • recordedSecondsnumber
                              • projectVersionIdstring (uuid)
                              • formatstring
                              • optionsobject
                              • modelImageRevisionIdstring (uuid)
                              • flavorstring
                              • stepsnumber
                              • modelVersionIdstring (uuid)
                              • splitstring
                              • episodeIdstring (uuid)

                              Responses

                              Success

                              • dataobjectrequired
                                • durationSecondsnumberrequired
                                • unitsarray<UsageEstimateUnitDto>required
                                • priceobjectrequired
                                • basisstringrequired
                                  Allowed values
                                  coefficient
                                  history
                                  declared_resources
                                • evidencearray<string>required
                                • limitCheckobjectrequired
                              Response example
                              {
                                "data": {
                                  "durationSeconds": 0,
                                  "units": [
                                    {
                                      "meterCode": "string",
                                      "quantity": 0
                                    }
                                  ],
                                  "price": {
                                    "amountMinor": 0,
                                    "currency": "string"
                                  },
                                  "basis": "coefficient",
                                  "evidence": [
                                    "string"
                                  ],
                                  "limitCheck": {
                                    "wouldExceed": false,
                                    "remainingBytes": 0
                                  }
                                }
                              }
                              Servershttps://api.embodiflow.io/v1https://api.embodiflow.dev/v1
                              Previous

                              PUT /usage/budget

                              curl -X POST 'https://api.embodiflow.io/v1/usage/estimates' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "descriptor": "upload_plan",
                                  "uploadPlanId": "00000000-0000-0000-0000-000000000000",
                                  "workflowRevisionId": "00000000-0000-0000-0000-000000000000",
                                  "algorithmRevisionId": "00000000-0000-0000-0000-000000000000",
                                  "itemCount": 0,
                                  "recordedSeconds": 0,
                                  "projectVersionId": "00000000-0000-0000-0000-000000000000",
                                  "format": "string",
                                  "options": {},
                                  "modelImageRevisionId": "00000000-0000-0000-0000-000000000000",
                                  "flavor": "string",
                                  "steps": 0,
                                  "modelVersionId": "00000000-0000-0000-0000-000000000000",
                                  "split": "string",
                                  "episodeId": "00000000-0000-0000-0000-000000000000"
                                }'
                              Response example
                              Status code
                              200
                              ​
                              {
                                "data": {
                                  "durationSeconds": 0,
                                  "units": [
                                    {
                                      "meterCode": "string",
                                      "quantity": 0
                                    }
                                  ],
                                  "price": {
                                    "amountMinor": 0,
                                    "currency": "string"
                                  },
                                  "basis": "coefficient",
                                  "evidence": [
                                    "string"
                                  ],
                                  "limitCheck": {
                                    "wouldExceed": false,
                                    "remainingBytes": 0
                                  }
                                }
                              }