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
    • Recordings
      • Upload
        • Episodes and versions
          • Annotation
            • Quality and tasks
              • Search
                • GET
                  Asset cards across dataset versions and artifacts.
                • GET
                  Single asset card with recent events.
                • POST
                  Preview a structured query against canonical parquet for one dataset version.
                • GET
                  L0 Postgres coarse filter across dataset versions visible to the caller.
                • GET
                  Facet counts for the same visible version scope as dataset-versions list.
                • GET
                  How many recordings are not in the search index yet.
                • POST
                  Explicit team Owner/Admin action: build the search profile for recordings processed before indexing existed. Derived cache, never dataset history.
                • POST
                  Structured + optional semantic catalog search (ADR 0012 / 0014).
                • GET
                  Structured catalog search schema for query builders (ADR 0012).
                • GET
                  Search this team for projects, recordings, versions, and commands
              • 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. Search
                              4. Structured + optional semantic catalog search (ADR 0012 / 0014).

                              Structured + optional semantic catalog search (ADR 0012 / 0014).

                              POST
                              /v1/catalog/search-queries
                              curl -X POST 'https://api.embodiflow.io/v1/catalog/search-queries' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "scope": {
                                    "projectId": "00000000-0000-0000-0000-000000000000",
                                    "datasetId": "00000000-0000-0000-0000-000000000000",
                                    "currentVersionOnly": true,
                                    "includeSoftHidden": true
                                  },
                                  "where": {},
                                  "semantic": {
                                    "text": "string",
                                    "limit": 0
                                  },
                                  "pageSize": 0,
                                  "pageToken": "string",
                                  "sortBy": "updatedAt",
                                  "sortOrder": "asc"
                                }'

                              Authorization

                              Send a personal access token with every request.

                              • Authorization: Bearer PAT
                              Authentication guide

                              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
                              • scopeobject | null
                                • projectIdstring (uuid) | null
                                • datasetIdstring (uuid) | null
                                • currentVersionOnlyboolean | null
                                • includeSoftHiddenboolean | null
                              • whereobject | null
                              • semanticobject | null
                                • textstringrequired
                                • limitinteger | null
                              • pageSizeinteger | null
                              • pageTokenstring | null
                              • sortBystring | null
                                Allowed values
                                updatedAt
                                createdAt
                                durationNs
                                qualityStatus
                                indexedAt
                              • sortOrderstring | null
                                Allowed values
                                asc
                                desc

                              Responses

                              Success

                              • dataobjectrequired
                                • dataarray<CatalogSearchResultItemDto>required
                                • metaobjectrequired
                              Response example
                              {
                                "data": {
                                  "data": [
                                    {
                                      "datasetVersionId": "string",
                                      "datasetId": "string",
                                      "projectId": "string",
                                      "datasetName": "string",
                                      "sourceType": "string",
                                      "dataSource": "string",
                                      "episodeStatisticsGranularity": "coarse",
                                      "version": 0,
                                      "qualityStatus": "string",
                                      "assetHealth": {
                                        "healthStatus": "failed",
                                        "lastEventAt": "string",
                                        "summary": "string",
                                        "qualityStatus": "string"
                                      },
                                      "operationFacts": {
                                        "contractVersion": "embodiflow-recording-operation-facts/v1",
                                        "observedAt": "string",
                                        "processing": {
                                          "upload": {},
                                          "workflow": {},
                                          "quality": {}
                                        },
                                        "health": {
                                          "status": "unknown",
                                          "primaryBlockerCode": "string",
                                          "openRepairCount": 0,
                                          "observedAt": "string"
                                        },
                                        "playback": {
                                          "reasonCode": "string"
                                        },
                                        "lastMeaningfulActivityAt": "string"
                                      },
                                      "recordingStatus": {
                                        "lifecycle": "failed",
                                        "quality": "warn",
                                        "qualityCheckId": "string",
                                        "qualityVerdict": "warning",
                                        "stepId": "string",
                                        "stepWaitReason": "string",
                                        "noProgressSince": "string",
                                        "failure": {
                                          "code": "string",
                                          "reason": "string",
                                          "stepId": "string",
                                          "stepName": "string",
                                          "stepAlgorithm": {},
                                          "stepRunId": "string",
                                          "runId": "string",
                                          "stepErrorCode": "string"
                                        },
                                        "runId": "string",
                                        "processingRefused": {
                                          "code": "string"
                                        }
                                      },
                                      "durationNs": 0,
                                      "cameraCount": 0,
                                      "jointDimension": 0,
                                      "topicCount": 0,
                                      "featureCount": 0,
                                      "fps": 0,
                                      "semanticScore": 0,
                                      "matchedEpisodes": [
                                        {
                                          "sampleKey": "string",
                                          "episodeIndex": 0,
                                          "semanticScore": 0,
                                          "summaryPreview": "string"
                                        }
                                      ],
                                      "matchedSignals": [
                                        {
                                          "id": "string",
                                          "signalKind": "string",
                                          "name": "string",
                                          "normalizedName": "string",
                                          "signalType": "string",
                                          "dimension": 0,
                                          "frequencyHz": 0
                                        }
                                      ],
                                      "matchedPredicates": [
                                        {
                                          "kind": "field",
                                          "summary": "string"
                                        }
                                      ],
                                      "updatedAt": "string"
                                    }
                                  ],
                                  "meta": {
                                    "pageSize": 0,
                                    "elapsedMs": 0,
                                    "indexStatus": "missing"
                                  }
                                }
                              }
                              Servershttps://api.embodiflow.io/v1https://api.embodiflow.dev/v1
                              Previous

                              POST /catalog/search-index/builds

                              Next

                              GET /catalog/search-schema

                              curl -X POST 'https://api.embodiflow.io/v1/catalog/search-queries' \
                                -H 'Authorization: Bearer $EMBODIFLOW_PAT' \
                                -H 'Content-Type: application/json' \
                                -d '{
                                  "scope": {
                                    "projectId": "00000000-0000-0000-0000-000000000000",
                                    "datasetId": "00000000-0000-0000-0000-000000000000",
                                    "currentVersionOnly": true,
                                    "includeSoftHidden": true
                                  },
                                  "where": {},
                                  "semantic": {
                                    "text": "string",
                                    "limit": 0
                                  },
                                  "pageSize": 0,
                                  "pageToken": "string",
                                  "sortBy": "updatedAt",
                                  "sortOrder": "asc"
                                }'
                              Response example
                              Status code
                              201
                              ​
                              {
                                "data": {
                                  "data": [
                                    {
                                      "datasetVersionId": "string",
                                      "datasetId": "string",
                                      "projectId": "string",
                                      "datasetName": "string",
                                      "sourceType": "string",
                                      "dataSource": "string",
                                      "episodeStatisticsGranularity": "coarse",
                                      "version": 0,
                                      "qualityStatus": "string",
                                      "assetHealth": {
                                        "healthStatus": "failed",
                                        "lastEventAt": "string",
                                        "summary": "string",
                                        "qualityStatus": "string"
                                      },
                                      "operationFacts": {
                                        "contractVersion": "embodiflow-recording-operation-facts/v1",
                                        "observedAt": "string",
                                        "processing": {
                                          "upload": {},
                                          "workflow": {},
                                          "quality": {}
                                        },
                                        "health": {
                                          "status": "unknown",
                                          "primaryBlockerCode": "string",
                                          "openRepairCount": 0,
                                          "observedAt": "string"
                                        },
                                        "playback": {
                                          "reasonCode": "string"
                                        },
                                        "lastMeaningfulActivityAt": "string"
                                      },
                                      "recordingStatus": {
                                        "lifecycle": "failed",
                                        "quality": "warn",
                                        "qualityCheckId": "string",
                                        "qualityVerdict": "warning",
                                        "stepId": "string",
                                        "stepWaitReason": "string",
                                        "noProgressSince": "string",
                                        "failure": {
                                          "code": "string",
                                          "reason": "string",
                                          "stepId": "string",
                                          "stepName": "string",
                                          "stepAlgorithm": {},
                                          "stepRunId": "string",
                                          "runId": "string",
                                          "stepErrorCode": "string"
                                        },
                                        "runId": "string",
                                        "processingRefused": {
                                          "code": "string"
                                        }
                                      },
                                      "durationNs": 0,
                                      "cameraCount": 0,
                                      "jointDimension": 0,
                                      "topicCount": 0,
                                      "featureCount": 0,
                                      "fps": 0,
                                      "semanticScore": 0,
                                      "matchedEpisodes": [
                                        {
                                          "sampleKey": "string",
                                          "episodeIndex": 0,
                                          "semanticScore": 0,
                                          "summaryPreview": "string"
                                        }
                                      ],
                                      "matchedSignals": [
                                        {
                                          "id": "string",
                                          "signalKind": "string",
                                          "name": "string",
                                          "normalizedName": "string",
                                          "signalType": "string",
                                          "dimension": 0,
                                          "frequencyHz": 0
                                        }
                                      ],
                                      "matchedPredicates": [
                                        {
                                          "kind": "field",
                                          "summary": "string"
                                        }
                                      ],
                                      "updatedAt": "string"
                                    }
                                  ],
                                  "meta": {
                                    "pageSize": 0,
                                    "elapsedMs": 0,
                                    "indexStatus": "missing"
                                  }
                                }
                              }