Finds subflows using exactly one selector: userIDs, flowIDs, sessionIDs or filters.
The filters selector searches a time window with optional error, environment and subflow filters.
ID-based results are ordered by start time, oldest first. Filter-based results are newest first
and include totalCount (uncapped matches) and flowIDs (distinct parent flows).
All results are capped at limit.
Required API key permission: observe:subFlows:read.
Use an Observe API key from the management console. The key selects the project and must grant the permission listed on the operation. Keep this key on your server.
Saved filter to apply to the filters selector (format svf-<number>), through each subflow's parent
flow: a subflow is kept when its flow matches, and subflows without a parent flow are left out. Omitted
or none: unfiltered (the project's default saved filter does not apply here; pass its ID to filter
like the dashboards do). The filters are combined with it (AND); totalCount, flowIDs and the
aggregates count the filtered subflows. Not accepted with the userIDs, flowIDs or sessionIDs
selectors. The response's savedFilter says which filter was applied.
Filter on each subflow's parent flow, in the condition format of saved filters (saved-filter-v1, see
observeSavedFilterCondition); combined (AND) with the saved filter and the filters. Like savedFilterID,
only accepted with the filters selector, and subflows without a parent flow are left out. filters.osName,
filters.browserName and filters.applicationID still read the subflow's own client environment and
application. Together with those filters (the saved filter does not count), the limits of saved filter
definitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).
Time-window selector with optional narrowing filters. All narrowing filters are AND-combined; values within one filter are OR-combined. Filters targeting a column a subflow type does not have (e.g. cdaLikelihoods on anything but passkey-login) simply exclude that type from the result.
Total number of matching subflows before the limit cap. Only set for the filters selector — compare against the returned count to detect truncation (analytics over a truncated result cover the most recent totalCount-of-limit slice, not the whole window).
Deduplicated parent flow IDs (format flw-<number>) of the returned subflows, in result order. Only set
for the filters selector. Store via POST /observe/idLists to hand the cohort to user-search or a
funnel.
Per-group counts of the matching subflows — only set for output=aggregate. Ordered by count descending and capped at 5000 cells (aggregateTruncated reports the cap firing; totalCount stays exact regardless). A value of "" means the dimension is not set on the subflow.
True when the aggregate cell cap dropped long-tail groups.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Corbado docs","colors":{"primary":"#184aff","light":"#629eff","dark":"#184aff"},"logo":{"light":"https://mintcdn.com/corbado-43/uh5IdxgOHQMtEt9x/logo/corbado-logo-light.svg?fit=max\u0026auto=format\u0026n=uh5IdxgOHQMtEt9x\u0026q=85\u0026s=decbc139fa76d9eeee8dcfbe91ed2094","dark":"https://mintcdn.com/corbado-43/uh5IdxgOHQMtEt9x/logo/corbado-logo-dark.svg?fit=max\u0026auto=format\u0026n=uh5IdxgOHQMtEt9x\u0026q=85\u0026s=398183bb6eb303cda3062b080363672b"},"favicon":"https://mintcdn.com/corbado-43/uh5IdxgOHQMtEt9x/logo/favicon.svg?fit=max\u0026auto=format\u0026n=uh5IdxgOHQMtEt9x\u0026q=85\u0026s=7e718008fe38fabeacb4a3d75472a491","navbar":{"links":[{"href":"mailto:support@corbado.com","label":"Support"}],"primary":{"type":"button","label":"Start for free","href":"https://app.corbado.com/"}},"footer":{"socials":{"twitter":"https://twitter.com/corbadotech","linkedin":"https://www.linkedin.com/company/corbado"}},"integrations":{"hotjar":{"hjid":"3375029","hjsv":"6"},"koala":{"publicApiKey":"pk_ca0e031974819fc6f69a82b884ff6f1cb661"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Community","icon":"slack","href":"https://bit.ly/passkeys-community"},{"anchor":"GitHub","icon":"github","href":"https://github.com/corbado"},{"anchor":"Blog","icon":"newspaper","href":"https://www.corbado.com/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"corbado-43","hasAudioNarration":false,"actualSubdomain":"corbado-43","customDomains":["docs.corbado.com"],"gitSource":{"type":"github","owner":"corbadotech","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aec3e1525c041b786079735","collectionId":"dfcf9d0e-3ac9-4252-a39b-21a2d577fca8","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aec3e1525c041b786079735"},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aedee1cde69105c4467d729","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"API Reference","count":184},{"language":"default","tag":"Corbado Connect","count":155},{"language":"default","tag":"Corbado Observe","count":137},{"language":"default","tag":"API endpoints","count":91},{"language":"default","tag":"Backend API","count":69},{"language":"default","tag":"Passkey UI Flows","count":32},{"language":"default","tag":"Alert management","count":23},{"language":"default","tag":"Overview","count":17},{"language":"default","tag":"Web","count":16},{"language":"default","tag":"Analytics and configuration","count":16}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"html{scroll-behavior:smooth!important}.pk-accent{fill:#184aff}.dark .pk-accent{fill:#629eff}.pk-accent-text{fill:#184aff}.dark .pk-accent-text{fill:#629eff}.pk-node{cursor:pointer;transition:opacity 0.15s ease}.pk-node:hover{opacity:0.72}.observe-visual-light,.observe-visual-dark,.connect-visual-light,.connect-visual-dark{width:100%;height:auto}.observe-visual-light,.connect-visual-light{display:block}.observe-visual-dark,.connect-visual-dark{display:none}.dark .observe-visual-light,.dark .connect-visual-light{display:none}.dark .observe-visual-dark,.dark .connect-visual-dark{display:block}"}],"page":{"pagePath":"api-reference/observe/search-subflows","slug":"/api-reference/observe/search-subflows","pageMetadata":{"title":"Search subflows by filter criteria","description":"Finds subflows using exactly one selector: `userIDs`, `flowIDs`, `sessionIDs` or `filters`.\nThe `filters` selector searches a time window with optional error, environment and subflow filters.\n\nID-based results are ordered by start time, oldest first. Filter-based results are newest first\nand include `totalCount` (uncapped matches) and `flowIDs` (distinct parent flows).\nAll results are capped at `limit`.\n\nRequired API key permission: `observe:subFlows:read`.","deprecated":null,"version":null,"sidebarTitle":"Search subflows","openapi":"/api-reference/openapi/observe.yaml post /observe/subFlowSearch","href":"/api-reference/observe/search-subflows","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Finds subflows using exactly one selector: \", _jsx(_components.code, {\n children: \"userIDs\"\n }), \", \", _jsx(_components.code, {\n children: \"flowIDs\"\n }), \", \", _jsx(_components.code, {\n children: \"sessionIDs\"\n }), \" or \", _jsx(_components.code, {\n children: \"filters\"\n }), \".\\nThe \", _jsx(_components.code, {\n children: \"filters\"\n }), \" selector searches a time window with optional error, environment and subflow filters.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"ID-based results are ordered by start time, oldest first. Filter-based results are newest first\\nand include \", _jsx(_components.code, {\n children: \"totalCount\"\n }), \" (uncapped matches) and \", _jsx(_components.code, {\n children: \"flowIDs\"\n }), \" (distinct parent flows).\\nAll results are capped at \", _jsx(_components.code, {\n children: \"limit\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Required API key permission: \", _jsx(_components.code, {\n children: \"observe:subFlows:read\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Search subflows by filter criteria","description":"Finds subflows using exactly one selector: `userIDs`, `flowIDs`, `sessionIDs` or `filters`.\nThe `filters` selector searches a time window with optional error, environment and subflow filters.\n\nID-based results are ordered by start time, oldest first. Filter-based results are newest first\nand include `totalCount` (uncapped matches) and `flowIDs` (distinct parent flows).\nAll results are capped at `limit`.\n\nRequired API key permission: `observe:subFlows:read`.","deprecated":null,"version":null,"sidebarTitle":"Search subflows","openapi":"/api-reference/openapi/observe.yaml post /observe/subFlowSearch","href":"/api-reference/observe/search-subflows","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/corbado-43/07f8b5952369ac3b/content/matomo.js","/_mintlify/custom/corbado-43/3de72dcbd84a772a/content/linkedin-insight-tag.js","/_mintlify/custom/corbado-43/674dd5320b6b99a7/content/commonroom.js"],"openApiReferenceData":{"operation":{"x-mint":{"href":"/api-reference/observe/search-subflows"},"summary":"Search subflows by filter criteria","description":"Finds subflows using exactly one selector: `userIDs`, `flowIDs`, `sessionIDs` or `filters`.\nThe `filters` selector searches a time window with optional error, environment and subflow filters.\n\nID-based results are ordered by start time, oldest first. Filter-based results are newest first\nand include `totalCount` (uncapped matches) and `flowIDs` (distinct parent flows).\nAll results are capped at `limit`.\n\nRequired API key permission: `observe:subFlows:read`.","operationId":"ObserveSubFlowSearch","tags":["ObserveSubFlow"],"security":["e2d2cfbb-bdac-45e2-990f-cf4ae1f1a01e"],"requestBody":"2e9d0802-687d-4497-997d-d5c956c4a260","responses":{"200":"b779e7cd-73a8-40b8-9723-538b1b0e3ad6","default":"1f41227b-69d3-4406-a234-1be2dc316795"},"method":"post","type":"path","servers":["22c3014f-9385-4d0c-83b4-842924313628"],"path":"/observe/subFlowSearch","baseUrlOptions":["https://api.cloud.corbado.io/v1"],"title":"Search subflows by filter criteria","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"savedFilterID":{"type":"string","description":"Saved filter to apply to the `filters` selector (format `svf-\u003cnumber>`), through each subflow's parent\nflow: a subflow is kept when its flow matches, and subflows without a parent flow are left out. Omitted\nor `none`: unfiltered (the project's default saved filter does not apply here; pass its ID to filter\nlike the dashboards do). The `filters` are combined with it (AND); `totalCount`, `flowIDs` and the\naggregates count the filtered subflows. Not accepted with the userIDs, flowIDs or sessionIDs\nselectors. The response's `savedFilter` says which filter was applied.","example":"svf-123456","x-oapi-codegen-extra-tags":{"validate":"omitempty,max=40"},"uniqueKey":"savedFilterID","typeLabel":"string"},"condition":{"oneOf":[{"type":"object","title":"all","description":"Filter on each subflow's parent flow, in the condition format of saved filters (`saved-filter-v1`, see\n`observeSavedFilterCondition`); combined (AND) with the saved filter and the `filters`. Like `savedFilterID`,\nonly accepted with the `filters` selector, and subflows without a parent flow are left out. `filters.osName`,\n`filters.browserName` and `filters.applicationID` still read the subflow's own client environment and\napplication. Together with those filters (the saved filter does not count), the limits of saved filter\ndefinitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).","required":["all"],"x-go-type":"json.RawMessage","properties":{"all":{"type":"array","items":{"$circularRef":"e414b583-bcbc-419e-9b14-f2cd58eb2d25"},"isRequired":true,"uniqueKey":"condition.oneOf.0.all","typeLabel":"array"}},"additionalProperties":false,"uniqueKey":"condition.oneOf.0","typeLabel":"all · object"},{"type":"object","title":"any","description":"Filter on each subflow's parent flow, in the condition format of saved filters (`saved-filter-v1`, see\n`observeSavedFilterCondition`); combined (AND) with the saved filter and the `filters`. Like `savedFilterID`,\nonly accepted with the `filters` selector, and subflows without a parent flow are left out. `filters.osName`,\n`filters.browserName` and `filters.applicationID` still read the subflow's own client environment and\napplication. Together with those filters (the saved filter does not count), the limits of saved filter\ndefinitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).","required":["any"],"x-go-type":"json.RawMessage","properties":{"any":{"type":"array","items":{"$circularRef":"e414b583-bcbc-419e-9b14-f2cd58eb2d25"},"isRequired":true,"uniqueKey":"condition.oneOf.1.any","typeLabel":"array"}},"additionalProperties":false,"uniqueKey":"condition.oneOf.1","typeLabel":"any · object"},{"type":"object","title":"not","description":"Filter on each subflow's parent flow, in the condition format of saved filters (`saved-filter-v1`, see\n`observeSavedFilterCondition`); combined (AND) with the saved filter and the `filters`. Like `savedFilterID`,\nonly accepted with the `filters` selector, and subflows without a parent flow are left out. `filters.osName`,\n`filters.browserName` and `filters.applicationID` still read the subflow's own client environment and\napplication. Together with those filters (the saved filter does not count), the limits of saved filter\ndefinitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).","required":["not"],"x-go-type":"json.RawMessage","properties":{"not":{"oneOf":[{"$circularRef":"e414b583-bcbc-419e-9b14-f2cd58eb2d25","isRequired":true}],"isRequired":true,"uniqueKey":"condition.oneOf.2.not","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"condition.oneOf.2","typeLabel":"not · object"},{"type":"object","title":"dimension","description":"Filter on each subflow's parent flow, in the condition format of saved filters (`saved-filter-v1`, see\n`observeSavedFilterCondition`); combined (AND) with the saved filter and the `filters`. Like `savedFilterID`,\nonly accepted with the `filters` selector, and subflows without a parent flow are left out. `filters.osName`,\n`filters.browserName` and `filters.applicationID` still read the subflow's own client environment and\napplication. Together with those filters (the saved filter does not count), the limits of saved filter\ndefinitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).","required":["dimension"],"x-go-type":"json.RawMessage","properties":{"dimension":{"type":"string","enum":["application","osName","osVersion","browserName","touchpoint","visitorType"],"isRequired":true,"uniqueKey":"condition.oneOf.3.dimension","typeLabel":"enum\u003cstring>"},"in":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"condition.oneOf.3.in.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"condition.oneOf.3.in.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"condition.oneOf.3.in.items.[INDEX]","typeLabel":"string | null"},"uniqueKey":"condition.oneOf.3.in","typeLabel":"(string | null)[]"},"notIn":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"condition.oneOf.3.notIn.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"condition.oneOf.3.notIn.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"condition.oneOf.3.notIn.items.[INDEX]","typeLabel":"string | null"},"uniqueKey":"condition.oneOf.3.notIn","typeLabel":"(string | null)[]"}},"additionalProperties":false,"uniqueKey":"condition.oneOf.3","typeLabel":"dimension · object"},{"type":"object","title":"tag","description":"Filter on each subflow's parent flow, in the condition format of saved filters (`saved-filter-v1`, see\n`observeSavedFilterCondition`); combined (AND) with the saved filter and the `filters`. Like `savedFilterID`,\nonly accepted with the `filters` selector, and subflows without a parent flow are left out. `filters.osName`,\n`filters.browserName` and `filters.applicationID` still read the subflow's own client environment and\napplication. Together with those filters (the saved filter does not count), the limits of saved filter\ndefinitions apply (6 levels, 50 dimension or tag conditions, 200 values per list).","required":["tag"],"x-go-type":"json.RawMessage","properties":{"tag":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"condition.oneOf.4.tag","typeLabel":"string"},"in":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"condition.oneOf.4.in.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"condition.oneOf.4.in.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"condition.oneOf.4.in.items.[INDEX]","typeLabel":"string | null"},"uniqueKey":"condition.oneOf.4.in","typeLabel":"(string | null)[]"},"notIn":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"condition.oneOf.4.notIn.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"condition.oneOf.4.notIn.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"condition.oneOf.4.notIn.items.[INDEX]","typeLabel":"string | null"},"uniqueKey":"condition.oneOf.4.notIn","typeLabel":"(string | null)[]"}},"additionalProperties":false,"uniqueKey":"condition.oneOf.4","typeLabel":"tag · object"}],"uniqueKey":"condition","typeLabel":"all · object | any · object | not · object | dimension · object | tag · object"},"includeDetails":{"type":"boolean","description":"Include batched environment, error and tag details for userIDs, flowIDs or sessionIDs selectors. Filters retain their output setting.","uniqueKey":"includeDetails","typeLabel":"boolean"},"userIDs":{"type":"array","description":"User IDs to fetch subflows for (format `tus-\u003cnumber>`). Mutually exclusive with other selectors.","items":{"type":"string","uniqueKey":"userIDs.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,max=500,dive,id=tus"},"uniqueKey":"userIDs","typeLabel":"string[]"},"flowIDs":{"type":"array","description":"Flow IDs to fetch subflows for (format `flw-\u003cnumber>`). Mutually exclusive with other selectors.","items":{"type":"string","uniqueKey":"flowIDs.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,max=500,dive,id=flw"},"uniqueKey":"flowIDs","typeLabel":"string[]"},"sessionIDs":{"type":"array","description":"Public session UUIDs to fetch subflows for. Mutually exclusive with other selectors.","items":{"type":"string","uniqueKey":"sessionIDs.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,max=500,dive,uuid"},"uniqueKey":"sessionIDs","typeLabel":"string[]"},"filters":{"type":"object","description":"Time-window selector with optional narrowing filters. All narrowing filters are AND-combined; values within one filter are OR-combined. Filters targeting a column a subflow type does not have (e.g. cdaLikelihoods on anything but passkey-login) simply exclude that type from the result.","required":["fromDate","toDate"],"properties":{"fromDate":{"type":"string","description":"Start of the subflow-start window (yyyy-MM-dd), interpreted in UTC.","x-oapi-codegen-extra-tags":{"validate":"required,datetime=2006-01-02"},"isRequired":true,"uniqueKey":"filters.fromDate","typeLabel":"string"},"toDate":{"type":"string","description":"End of the subflow-start window (yyyy-MM-dd, exclusive), interpreted in UTC. At most 366 days after `fromDate`.","x-oapi-codegen-extra-tags":{"validate":"required,datetime=2006-01-02"},"isRequired":true,"uniqueKey":"filters.toDate","typeLabel":"string"},"flavourIDs":{"type":"array","description":"Restrict to subflows that carry an error occurrence of one of these error flavours (format\n`erf-\u003cnumber>`).","items":{"type":"string","uniqueKey":"filters.flavourIDs.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,max=500,dive,id=erf"},"uniqueKey":"filters.flavourIDs","typeLabel":"string[]"},"osName":{"type":"array","description":"Filter by OS name.","items":{"type":"string","uniqueKey":"filters.osName.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,dive,min=1,max=100"},"uniqueKey":"filters.osName","typeLabel":"string[]"},"browserName":{"type":"array","description":"Filter by browser name (web) / app name (native).","items":{"type":"string","uniqueKey":"filters.browserName.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,dive,min=1,max=100"},"uniqueKey":"filters.browserName","typeLabel":"string[]"},"applicationID":{"type":"array","description":"Filter by application ID.","items":{"type":"string","uniqueKey":"filters.applicationID.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,dive,min=1,max=25"},"uniqueKey":"filters.applicationID","typeLabel":"string[]"},"specTypes":{"type":"array","description":"Filter by subflow spec type. Excludes subflow types without a spec type.","items":{"type":"string","uniqueKey":"filters.specTypes.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,dive,min=1,max=255"},"uniqueKey":"filters.specTypes","typeLabel":"string[]"},"configVariantIDs":{"type":"array","description":"Filter by challenge/config variant (format `chv-\u003cnumber>`). Only passkey-login, passkey-enrollment and\nprovide-identifier subflows carry one.","items":{"type":"string","uniqueKey":"filters.configVariantIDs.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,max=500,dive,id=chv"},"uniqueKey":"filters.configVariantIDs","typeLabel":"string[]"},"responseVariantIDs":{"type":"array","description":"Filter by ceremony response variant (format `chv-\u003cnumber>`, type `response`). Only passkey-login,\npasskey-enrollment and provide-identifier subflows carry one, and only when a WebAuthn response was\nobserved.","items":{"type":"string","uniqueKey":"filters.responseVariantIDs.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,max=500,dive,id=chv"},"uniqueKey":"filters.responseVariantIDs","typeLabel":"string[]"},"cdaLikelihoods":{"type":"array","description":"Filter by CDA-likelihood bucket. Only passkey-login subflows carry one.","items":{"type":"string","enum":["no","25-50","50-75","75-95","95-plus"],"uniqueKey":"filters.cdaLikelihoods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,dive,oneof=no 25-50 50-75 75-95 95-plus"},"uniqueKey":"filters.cdaLikelihoods","typeLabel":"enum\u003cstring>[]"},"completed":{"type":"boolean","description":"Filter by completion. Omit to match both completed and non-completed subflows.","uniqueKey":"filters.completed","typeLabel":"boolean"},"output":{"type":"string","enum":["full","flowIDs","aggregate"],"description":"Response shape. `full` (default) returns hydrated subflow entries enriched with environment values, error occurrences and the parent flow's custom tags. `flowIDs` returns an empty `subFlows` array and only `totalCount` plus the deduplicated parent `flowIDs` — the cheap shape for user-search / funnel handoffs. `aggregate` returns per-group counts of the matching subflows along the `groupBy` dimensions instead of rows — the exact-denominator shape for correlation analysis (no row cap bias).","x-oapi-codegen-extra-tags":{"validate":"omitempty,oneof=full flowIDs aggregate"},"uniqueKey":"filters.output","typeLabel":"enum\u003cstring>"},"groupBy":{"type":"array","description":"Dimensions to aggregate over — required with (and only valid with) `output=aggregate`. Static tokens: clientEnvType (web/app), osName, browserName (browser / app name), osVersion, browserVersion (browser version maj.min.pat / app version), deviceModel, deviceBrand, deviceOwnerAuth, playServicesVersion (the last three native-app only — web subflows fold into the \"\" group), specType, detailedOutcome, completed, configVariantID, responseVariantID, cdaLikelihood. Custom tags of the parent flow via `customTag:\u003cname>`. A dimension a subflow type has no column for excludes that type from the aggregation.","items":{"type":"string","uniqueKey":"filters.groupBy.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,max=8,dive,min=1,max=270"},"uniqueKey":"filters.groupBy","typeLabel":"string[]"},"detailedOutcomes":{"type":"array","description":"Filter by detailed outcome values.","items":{"type":"string","uniqueKey":"filters.detailedOutcomes.items.[INDEX]","typeLabel":"string"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,dive,min=1,max=255"},"uniqueKey":"filters.detailedOutcomes","typeLabel":"string[]"}},"uniqueKey":"filters","typeLabel":"object"},"subFlowTypes":{"type":"array","description":"Optional subflow types to include.","items":{"type":"string","description":"Observe subflow type.","enum":["passkeyLogin","passwordLogin","socialLogin","ssoLogin","provideIdentifier","decision","passkeyEnrollment","emailOTP","emailLink","setPassword","provideData","reset","passkeyDeletion","smsOTP","totp","appConfirmation","systemCredential","trustedDeviceCheck","trustedDeviceEnrollment","keySigning","keyRegistration","form"],"uniqueKey":"subFlowTypes.items.[INDEX]","typeLabel":"enum\u003cstring>"},"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,dive,oneof=passkeyLogin passwordLogin socialLogin ssoLogin provideIdentifier decision passkeyEnrollment emailOTP emailLink setPassword provideData reset passkeyDeletion smsOTP totp appConfirmation systemCredential trustedDeviceCheck trustedDeviceEnrollment keySigning keyRegistration form"},"uniqueKey":"subFlowTypes","typeLabel":"enum\u003cstring>[]"},"limit":{"type":"integer","description":"Maximum number of subflows to return in total across all subflow types. Defaults to 100, maximum 10000.","default":100,"minimum":1,"maximum":10000,"x-oapi-codegen-extra-tags":{"validate":"omitempty,min=1,max=10000"},"uniqueKey":"limit","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"savedFilterID":"svf-123456","condition":{"all":"\u003carray>"},"includeDetails":true,"userIDs":["\u003cstring>"],"flowIDs":["\u003cstring>"],"sessionIDs":["\u003cstring>"],"subFlowTypes":[],"limit":100}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b779e7cd-73a8-40b8-9723-538b1b0e3ad6":{"description":"Matching subflows.","content":{"application/json":{"schema":{"type":"object","required":["subFlows"],"properties":{"subFlows":{"type":"array","description":"Matching subflows, capped at `limit`. ID-based selectors order oldest first; the `filters` selector orders newest first.","items":{"type":"object","required":["id","flowID","sessionID","applicationID","errorCount","completed","durationMs","startMs","data"],"properties":{"id":{"type":"string","description":"Subflow ID (format `sfl-\u003cnumber>`).","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].id","typeLabel":"string"},"flowID":{"oneOf":[{"type":"string","description":"Parent flow ID (format `flw-\u003cnumber>`). Null when the subflow has no parent flow.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].flowID.oneOf.0","typeLabel":"string"},{"type":"null","description":"Parent flow ID (format `flw-\u003cnumber>`). Null when the subflow has no parent flow.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].flowID.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].flowID","typeLabel":"string | null"},"sessionID":{"oneOf":[{"type":"string","description":"Public session UUID. Null when the subflow has no parent flow/session.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].sessionID.oneOf.0","typeLabel":"string"},{"type":"null","description":"Public session UUID. Null when the subflow has no parent flow/session.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].sessionID.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].sessionID","typeLabel":"string | null"},"applicationID":{"type":"string","description":"Application ID.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].applicationID","typeLabel":"string"},"errorCount":{"type":"integer","description":"Number of errors during the subflow.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].errorCount","typeLabel":"integer"},"completed":{"type":"boolean","description":"Whether the subflow completed successfully.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].completed","typeLabel":"boolean"},"durationMs":{"type":"integer","format":"int64","description":"Duration of the subflow in milliseconds.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].durationMs","typeLabel":"integer\u003cint64>"},"startMs":{"type":"integer","format":"int64","description":"Start time in milliseconds since epoch.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].startMs","typeLabel":"integer\u003cint64>"},"data":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["passkeyLogin"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.0.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Passkey login spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.0.specType","typeLabel":"string"},"configVariantID":{"type":"string","description":"Challenge/config variant ID (format `chv-\u003cnumber>`), when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.0.configVariantID","typeLabel":"string"},"responseVariantID":{"type":"string","description":"Ceremony response variant ID (format `chv-\u003cnumber>`, type `response`), when a WebAuthn response was\nobserved. Resolve it via /observe/challengeVariants.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.0.responseVariantID","typeLabel":"string"},"cdaLikelihood":{"type":"string","enum":["no","25-50","50-75","75-95","95-plus"],"description":"Bucketed likelihood that this login could only proceed via cross-device authentication, when a statement could be made (see the CDA-likelihood classification). Absent for discoverable/CUI logins and unknown environments.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.0.cdaLikelihood","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.0","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["passwordLogin"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.1.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Password login spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.1.specType","typeLabel":"string"},"overlayAutofillCount":{"type":"integer","description":"Number of autofill patterns interpreted for the subflow.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.1.overlayAutofillCount","typeLabel":"integer"},"overlayUnclearCount":{"type":"integer","description":"Number of unclear overlay patterns interpreted for the subflow.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.1.overlayUnclearCount","typeLabel":"integer"},"autofillType":{"type":"string","description":"Derived autofill type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.1.autofillType","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.1","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["socialLogin"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.2.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Social login spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.2.specType","typeLabel":"string"},"providerName":{"type":"string","description":"Social provider name, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.2.providerName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.2","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["ssoLogin"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.3.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Enterprise SSO login spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.3.specType","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.3","typeLabel":"object"},{"type":"object","required":["type","name","skipped"],"properties":{"type":{"type":"string","enum":["form"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.4.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Normalized form name (lower-case, words separated by `-`, e.g. `personal-details`), as sent with the\nform's `subflow_started` event.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.4.name","typeLabel":"string"},"skipped":{"type":"boolean","description":"True when the user left the form forward without submitting it (e.g. \"Do it later\"). Never true\ntogether with `completed`.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.4.skipped","typeLabel":"boolean"},"fields":{"type":"array","description":"Field names the integration declared for the form. Absent when none were declared.","items":{"type":"string","uniqueKey":"subFlows.items.[INDEX].data.oneOf.4.fields.items.[INDEX]","typeLabel":"string"},"uniqueKey":"subFlows.items.[INDEX].data.oneOf.4.fields","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.4","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["provideIdentifier"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.5.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Provide-identifier spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.5.specType","typeLabel":"string"},"configVariantID":{"type":"string","description":"Challenge/config variant ID (format `chv-\u003cnumber>`), when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.5.configVariantID","typeLabel":"string"},"responseVariantID":{"type":"string","description":"Ceremony response variant ID (format `chv-\u003cnumber>`, type `response`), when a WebAuthn response was\nobserved. Resolve it via /observe/challengeVariants.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.5.responseVariantID","typeLabel":"string"},"overlayCUICount":{"type":"integer","description":"Number of CUI overlay patterns interpreted for the subflow.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.5.overlayCUICount","typeLabel":"integer"},"overlayAutofillCount":{"type":"integer","description":"Number of autofill patterns interpreted for the subflow.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.5.overlayAutofillCount","typeLabel":"integer"},"overlayUnclearCount":{"type":"integer","description":"Number of unclear overlay patterns interpreted for the subflow.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.5.overlayUnclearCount","typeLabel":"integer"},"cuiType":{"type":"string","description":"Derived CUI type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.5.cuiType","typeLabel":"string"},"autofillType":{"type":"string","description":"Derived autofill type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.5.autofillType","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.5","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["decision"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.6.type","typeLabel":"enum\u003cstring>"},"decisionID":{"type":"string","description":"Decision ID for decision subflows (format `dec-\u003cnumber>`).","uniqueKey":"subFlows.items.[INDEX].data.oneOf.6.decisionID","typeLabel":"string"},"inputVariantID":{"type":"string","description":"Decision input variant ID for decision subflows (format `dva-\u003cnumber>`).","uniqueKey":"subFlows.items.[INDEX].data.oneOf.6.inputVariantID","typeLabel":"string"},"outcomeVariantID":{"type":"string","description":"Decision outcome variant ID for decision subflows (format `dva-\u003cnumber>`), when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.6.outcomeVariantID","typeLabel":"string"},"occurrence":{"type":"integer","description":"0-based occurrence of this decision within the flow, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.6.occurrence","typeLabel":"integer"},"firstStartMs":{"type":"integer","format":"int64","description":"Original first start time of the decision in milliseconds since epoch.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.6.firstStartMs","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.6","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["passkeyEnrollment"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.7.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Passkey enrollment spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.7.specType","typeLabel":"string"},"configVariantID":{"type":"string","description":"Challenge/config variant ID (format `chv-\u003cnumber>`), when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.7.configVariantID","typeLabel":"string"},"responseVariantID":{"type":"string","description":"Ceremony response variant ID (format `chv-\u003cnumber>`, type `response`), when a WebAuthn response was\nobserved. Resolve it via /observe/challengeVariants.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.7.responseVariantID","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.7","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["emailOTP"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.8.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Email OTP spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.8.specType","typeLabel":"string"},"emailDomainID":{"type":"string","description":"Project-scoped email domain reference (`emd-\u003cnumber>`), omitted when not reported.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.8.emailDomainID","typeLabel":"string"},"resentCount":{"type":"integer","description":"Number of OTP resends, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.8.resentCount","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.8","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["emailLink"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.9.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Email link spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.9.specType","typeLabel":"string"},"additionalClientEnvID":{"type":"string","description":"Additional completion-side client environment ID (format `tce-\u003cnumber>`), when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.9.additionalClientEnvID","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.9","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["setPassword"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.10.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Set-password spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.10.specType","typeLabel":"string"},"overlayAutofillCount":{"type":"integer","description":"Number of autofill patterns interpreted for the subflow.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.10.overlayAutofillCount","typeLabel":"integer"},"overlayUnclearCount":{"type":"integer","description":"Number of unclear overlay patterns interpreted for the subflow.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.10.overlayUnclearCount","typeLabel":"integer"},"autofillType":{"type":"string","description":"Derived autofill type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.10.autofillType","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.10","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["provideData"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.11.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Provide-data spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.11.specType","typeLabel":"string"},"fieldName":{"type":"string","description":"Name of the collected data field as reported by the SDK (sanitized), when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.11.fieldName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.11","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["reset"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.12.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.12","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["passkeyDeletion"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.13.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.13","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["smsOTP"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.14.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"SMS OTP spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.14.specType","typeLabel":"string"},"resentCount":{"type":"integer","description":"Number of OTP resends, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.14.resentCount","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.14","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["totp"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.15.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"TOTP spec type, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.15.specType","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.15","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["appConfirmation"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.16.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"App confirmation spec type (qr-code, same-device or push), when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.16.specType","typeLabel":"string"},"retryCount":{"type":"integer","description":"Number of retry steps within the confirmation, when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.16.retryCount","typeLabel":"integer"},"ceremonyErrorCode":{"type":"string","description":"Terminal ceremony error code (declined/expired) when the confirmation failed; empty otherwise.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.16.ceremonyErrorCode","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.16","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["systemCredential"],"description":"Subflow detail type discriminator.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.17.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Requested credential option set (e.g. passkey-password, with the -auto suffix for sheets fired without a user gesture), when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.17.specType","typeLabel":"string"},"outcome":{"type":"string","description":"System-credential outcome (complete-passkey / complete-password / complete-federated / fill-password / incomplete), when available.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.17.outcome","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.17","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["keySigning"],"description":"Direct key signing. Completion includes preparing a usable signed artifact.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.18.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.18","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["keyRegistration"],"description":"Key registration. Completion means the authority is accepted and usable.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.19.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.19","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["trustedDeviceCheck"],"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.20.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Reported mechanism (key or token).","uniqueKey":"subFlows.items.[INDEX].data.oneOf.20.specType","typeLabel":"string"},"outcome":{"type":"string","description":"Classified trust check or enrollment result.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.20.outcome","typeLabel":"string"},"purpose":{"type":"string","description":"Reported check purpose (additional-verification or mfa-exemption).","uniqueKey":"subFlows.items.[INDEX].data.oneOf.20.purpose","typeLabel":"string"},"storage":{"type":"string","uniqueKey":"subFlows.items.[INDEX].data.oneOf.20.storage","typeLabel":"string"},"trustName":{"type":"string","uniqueKey":"subFlows.items.[INDEX].data.oneOf.20.trustName","typeLabel":"string"},"bindingReference":{"type":"string","description":"Optional pseudonymous reference to an identified binding.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.20.bindingReference","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.20","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["trustedDeviceEnrollment"],"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.21.type","typeLabel":"enum\u003cstring>"},"specType":{"type":"string","description":"Reported mechanism (key or token).","uniqueKey":"subFlows.items.[INDEX].data.oneOf.21.specType","typeLabel":"string"},"outcome":{"type":"string","description":"Classified trust check or enrollment result.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.21.outcome","typeLabel":"string"},"purpose":{"type":"string","description":"Reported check purpose (additional-verification or mfa-exemption).","uniqueKey":"subFlows.items.[INDEX].data.oneOf.21.purpose","typeLabel":"string"},"storage":{"type":"string","uniqueKey":"subFlows.items.[INDEX].data.oneOf.21.storage","typeLabel":"string"},"trustName":{"type":"string","uniqueKey":"subFlows.items.[INDEX].data.oneOf.21.trustName","typeLabel":"string"},"bindingReference":{"type":"string","description":"Optional pseudonymous reference to an identified binding.","uniqueKey":"subFlows.items.[INDEX].data.oneOf.21.bindingReference","typeLabel":"string"}},"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data.oneOf.21","typeLabel":"object"}],"isRequired":true,"uniqueKey":"subFlows.items.[INDEX].data","typeLabel":"object"},"passkeyID":{"type":"string","description":"Associated passkey (tpk-...). Interpret creation/use using method and outcome; association alone does not prove successful authentication.","uniqueKey":"subFlows.items.[INDEX].passkeyID","typeLabel":"string"},"clientEnvDataID":{"type":"string","description":"Exact environment snapshot ID as a decimal string.","uniqueKey":"subFlows.items.[INDEX].clientEnvDataID","typeLabel":"string"},"additionalClientEnvDataID":{"type":"string","description":"Exact additional environment snapshot ID as a decimal string, when applicable.","uniqueKey":"subFlows.items.[INDEX].additionalClientEnvDataID","typeLabel":"string"},"touchpoint":{"type":"string","description":"Stored method touchpoint, when available.","uniqueKey":"subFlows.items.[INDEX].touchpoint","typeLabel":"string"},"bindingID":{"type":"string","description":"Trusted-device binding ID as a decimal string, when available.","uniqueKey":"subFlows.items.[INDEX].bindingID","typeLabel":"string"},"previouslySeenBucket":{"type":"string","description":"Stored trusted-device history bucket.","uniqueKey":"subFlows.items.[INDEX].previouslySeenBucket","typeLabel":"string"},"userID":{"type":"string","description":"User ID (format `tus-\u003cnumber>`). Absent for anonymous subflows.","uniqueKey":"subFlows.items.[INDEX].userID","typeLabel":"string"},"clientEnvID":{"type":"string","description":"Client environment ID (format `tce-\u003cnumber>`). Absent when no client environment was resolved.","uniqueKey":"subFlows.items.[INDEX].clientEnvID","typeLabel":"string"},"firstInteractionDurationMs":{"type":"integer","format":"int64","description":"Duration from implicit decision start to first user interaction in milliseconds.","uniqueKey":"subFlows.items.[INDEX].firstInteractionDurationMs","typeLabel":"integer\u003cint64>"},"detailedOutcome":{"type":"string","description":"Detailed subflow outcome when available.","uniqueKey":"subFlows.items.[INDEX].detailedOutcome","typeLabel":"string"},"connectedDecisionID":{"type":"string","description":"Decision subflow ID that triggered this subflow (format `sfl-\u003cnumber>`), when available.","uniqueKey":"subFlows.items.[INDEX].connectedDecisionID","typeLabel":"string"},"environment":{"type":"object","description":"Resolved client-environment values of a subflow. Only set for the `filters` selector with `output=full`; ID-based selectors keep returning the clientEnvID reference only.","properties":{"osName":{"type":"string","description":"OS name, when recorded.","uniqueKey":"subFlows.items.[INDEX].environment.osName","typeLabel":"string"},"browserName":{"type":"string","description":"Browser name (web) / app name (native), when recorded.","uniqueKey":"subFlows.items.[INDEX].environment.browserName","typeLabel":"string"},"osVersion":{"type":"string","description":"OS version as maj.min.pat; absent when unrecorded.","uniqueKey":"subFlows.items.[INDEX].environment.osVersion","typeLabel":"string"},"clientEnvType":{"type":"string","description":"Client environment type.","enum":["web","app"],"uniqueKey":"subFlows.items.[INDEX].environment.clientEnvType","typeLabel":"enum\u003cstring>"},"browserVersion":{"type":"string","description":"Browser version as maj.min.pat (web) / app version (native), when recorded.","uniqueKey":"subFlows.items.[INDEX].environment.browserVersion","typeLabel":"string"},"deviceModel":{"type":"string","description":"Device model (web via Sec-CH-UA-Model, native from the app), when recorded.","uniqueKey":"subFlows.items.[INDEX].environment.deviceModel","typeLabel":"string"},"deviceBrand":{"type":"string","description":"Device brand (native only), when recorded.","uniqueKey":"subFlows.items.[INDEX].environment.deviceBrand","typeLabel":"string"},"deviceOwnerAuth":{"type":"string","description":"Screen-lock / device-owner authentication class (native only), when recorded.","uniqueKey":"subFlows.items.[INDEX].environment.deviceOwnerAuth","typeLabel":"string"},"playServicesVersion":{"type":"string","description":"Google Play Services version (Android only), when recorded.","uniqueKey":"subFlows.items.[INDEX].environment.playServicesVersion","typeLabel":"string"}},"uniqueKey":"subFlows.items.[INDEX].environment","typeLabel":"object"},"errors":{"type":"array","description":"Error occurrences detected on this subflow during classification, oldest first. Only set for `filters` with `output=full` or ID selectors with `includeDetails=true`. Resolve signature details and the mapped error via the error flavour list.","items":{"type":"object","required":["flavourID","createdMs"],"properties":{"flavourID":{"type":"string","description":"Raw-signature flavour of the occurrence (format `erf-\u003cnumber>`).","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].errors.items.[INDEX].flavourID","typeLabel":"string"},"createdMs":{"type":"integer","format":"int64","description":"Occurrence time in milliseconds since epoch.","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].errors.items.[INDEX].createdMs","typeLabel":"integer\u003cint64>"},"durationMs":{"type":"integer","format":"int64","description":"Subflow-start-to-error latency in milliseconds, when recorded.","uniqueKey":"subFlows.items.[INDEX].errors.items.[INDEX].durationMs","typeLabel":"integer\u003cint64>"}},"uniqueKey":"subFlows.items.[INDEX].errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"subFlows.items.[INDEX].errors","typeLabel":"object[]"},"customTags":{"type":"array","description":"Custom tags of the parent flow, name-sorted. Only set for the `filters` selector with `output=full`.","items":{"type":"object","required":["name","value"],"properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].customTags.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"subFlows.items.[INDEX].customTags.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"subFlows.items.[INDEX].customTags.items.[INDEX]","typeLabel":"object"},"uniqueKey":"subFlows.items.[INDEX].customTags","typeLabel":"object[]"}},"uniqueKey":"subFlows.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"subFlows","typeLabel":"object[]"},"savedFilter":{"type":"object","description":"The saved filter the subflows were selected with. Only set for the `filters` selector.","required":["status"],"properties":{"status":{"type":"string","enum":["none","applied","notApplicable"],"isRequired":true,"uniqueKey":"savedFilter.status","typeLabel":"enum\u003cstring>"},"savedFilterID":{"type":"string","description":"Saved filter ID (format `svf-\u003cnumber>`); absent for `none`.","uniqueKey":"savedFilter.savedFilterID","typeLabel":"string"},"version":{"type":"integer","format":"int64","description":"Version of the saved filter's definition that was read.","uniqueKey":"savedFilter.version","typeLabel":"integer\u003cint64>"},"name":{"type":"string","uniqueKey":"savedFilter.name","typeLabel":"string"},"source":{"type":"string","description":"`default`: the project's default saved filter; `explicit`: requested by `savedFilterID`.","enum":["default","explicit"],"uniqueKey":"savedFilter.source","typeLabel":"enum\u003cstring>"},"missing":{"type":"array","description":"What the data does not carry, for `notApplicable`.","items":{"type":"object","description":"A dimension (schema name, e.g. `visitorType`) or a custom tag key a saved filter reads.","properties":{"dimension":{"type":"string","uniqueKey":"savedFilter.missing.items.[INDEX].dimension","typeLabel":"string"},"tag":{"type":"string","uniqueKey":"savedFilter.missing.items.[INDEX].tag","typeLabel":"string"}},"uniqueKey":"savedFilter.missing.items.[INDEX]","typeLabel":"object"},"uniqueKey":"savedFilter.missing","typeLabel":"object[]"}},"uniqueKey":"savedFilter","typeLabel":"object"},"totalCount":{"type":"integer","format":"int64","description":"Total number of matching subflows before the `limit` cap. Only set for the `filters` selector — compare against the returned count to detect truncation (analytics over a truncated result cover the most recent totalCount-of-limit slice, not the whole window).","uniqueKey":"totalCount","typeLabel":"integer\u003cint64>"},"flowIDs":{"type":"array","description":"Deduplicated parent flow IDs (format `flw-\u003cnumber>`) of the returned subflows, in result order. Only set\nfor the `filters` selector. Store via POST /observe/idLists to hand the cohort to user-search or a\nfunnel.","items":{"type":"string","uniqueKey":"flowIDs.items.[INDEX]","typeLabel":"string"},"uniqueKey":"flowIDs","typeLabel":"string[]"},"aggregates":{"type":"array","description":"Per-group counts of the matching subflows — only set for `output=aggregate`. Ordered by count descending and capped at 5000 cells (`aggregateTruncated` reports the cap firing; `totalCount` stays exact regardless). A value of \"\" means the dimension is not set on the subflow.","items":{"type":"object","required":["values","count"],"properties":{"values":{"type":"object","description":"The group's dimension values, keyed by the requested groupBy tokens.","additionalProperties":{"type":"string","uniqueKey":"aggregates.items.[INDEX].values.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"aggregates.items.[INDEX].values","typeLabel":"object"},"count":{"type":"integer","format":"int64","description":"Number of matching subflows in this group.","isRequired":true,"uniqueKey":"aggregates.items.[INDEX].count","typeLabel":"integer\u003cint64>"}},"uniqueKey":"aggregates.items.[INDEX]","typeLabel":"object"},"uniqueKey":"aggregates","typeLabel":"object[]"},"aggregateTruncated":{"type":"boolean","description":"True when the aggregate cell cap dropped long-tail groups.","uniqueKey":"aggregateTruncated","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"subFlows":[{"id":"\u003cstring>","flowID":"\u003cstring>","sessionID":"\u003cstring>","applicationID":"\u003cstring>","errorCount":123,"completed":true,"durationMs":123,"startMs":123,"data":{"type":"passkeyLogin","specType":"\u003cstring>","configVariantID":"\u003cstring>","responseVariantID":"\u003cstring>","cdaLikelihood":"no"},"passkeyID":"\u003cstring>","clientEnvDataID":"\u003cstring>","additionalClientEnvDataID":"\u003cstring>","touchpoint":"\u003cstring>","bindingID":"\u003cstring>","previouslySeenBucket":"\u003cstring>","userID":"\u003cstring>","clientEnvID":"\u003cstring>","firstInteractionDurationMs":123,"detailedOutcome":"\u003cstring>","connectedDecisionID":"\u003cstring>","environment":{"osName":"\u003cstring>","browserName":"\u003cstring>","osVersion":"\u003cstring>","clientEnvType":"web","browserVersion":"\u003cstring>","deviceModel":"\u003cstring>","deviceBrand":"\u003cstring>","deviceOwnerAuth":"\u003cstring>","playServicesVersion":"\u003cstring>"},"errors":[{"flavourID":"\u003cstring>","createdMs":123,"durationMs":123}],"customTags":[{"name":"\u003cstring>","value":"\u003cstring>"}]}],"savedFilter":{"status":"none","savedFilterID":"\u003cstring>","version":123,"name":"\u003cstring>","source":"default","missing":[{"dimension":"\u003cstring>","tag":"\u003cstring>"}]},"totalCount":123,"flowIDs":["\u003cstring>"],"aggregates":[{"values":{},"count":123}],"aggregateTruncated":true}}},"exampleType":"generated"}},"exampleType":"generated"},"1f41227b-69d3-4406-a234-1be2dc316795":{"description":"Error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message"],"properties":{"message":{"description":"Error message","type":"string","example":"Validation failed","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Validation error details per field","type":"array","items":{"type":"object","required":["field","message"],"properties":{"field":{"description":"Field name that failed validation","type":"string","example":"projectID","isRequired":true,"uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"message":{"description":"Validation error message","type":"string","example":"required","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"message":"Validation failed","details":[{"field":"projectID","message":"required"}]}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e2d2cfbb-bdac-45e2-990f-cf4ae1f1a01e":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Use an Observe API key from the management console. The key selects the project and must grant the permission listed on the operation. Keep this key on your server.","scopes":["observe:subFlows:read"],"schemeName":"bearerAuth"}}},"servers":{"22c3014f-9385-4d0c-83b4-842924313628":{"url":"https://api.cloud.corbado.io/v1"}},"schemas":{"e414b583-bcbc-419e-9b14-f2cd58eb2d25":{"oneOf":[{"type":"object","title":"all","description":"A condition: `all` (every condition matches; `all: []` matches every flow), `any` (at least one\nmatches; `any: []` matches none), `not`, or a dimension or tag condition with exactly one of `in` /\n`notIn` (`in: []` matches none, `notIn: []` every flow). A `null` value matches flows where the\ndimension or tag is absent or empty; empty strings are rejected. `application` values are application\nIDs (`app-\u003cnumber>`).\n\nOn read endpoints, `condition` is the dimension and tag filter. Their older per-dimension and tag fields\nare compatibility shorthands, combined (AND) with it: they get no new dimensions, operators or values, and\nendpoints added from now on take `condition` only.","required":["all"],"x-go-type":"json.RawMessage","properties":{"all":{"type":"array","items":{"$circularRef":"e414b583-bcbc-419e-9b14-f2cd58eb2d25"},"isRequired":true}},"additionalProperties":false},{"type":"object","title":"any","description":"A condition: `all` (every condition matches; `all: []` matches every flow), `any` (at least one\nmatches; `any: []` matches none), `not`, or a dimension or tag condition with exactly one of `in` /\n`notIn` (`in: []` matches none, `notIn: []` every flow). A `null` value matches flows where the\ndimension or tag is absent or empty; empty strings are rejected. `application` values are application\nIDs (`app-\u003cnumber>`).\n\nOn read endpoints, `condition` is the dimension and tag filter. Their older per-dimension and tag fields\nare compatibility shorthands, combined (AND) with it: they get no new dimensions, operators or values, and\nendpoints added from now on take `condition` only.","required":["any"],"x-go-type":"json.RawMessage","properties":{"any":{"type":"array","items":{"$circularRef":"e414b583-bcbc-419e-9b14-f2cd58eb2d25"},"isRequired":true}},"additionalProperties":false},{"type":"object","title":"not","description":"A condition: `all` (every condition matches; `all: []` matches every flow), `any` (at least one\nmatches; `any: []` matches none), `not`, or a dimension or tag condition with exactly one of `in` /\n`notIn` (`in: []` matches none, `notIn: []` every flow). A `null` value matches flows where the\ndimension or tag is absent or empty; empty strings are rejected. `application` values are application\nIDs (`app-\u003cnumber>`).\n\nOn read endpoints, `condition` is the dimension and tag filter. Their older per-dimension and tag fields\nare compatibility shorthands, combined (AND) with it: they get no new dimensions, operators or values, and\nendpoints added from now on take `condition` only.","required":["not"],"x-go-type":"json.RawMessage","properties":{"not":{"oneOf":[{"isRequired":true}],"isRequired":true}},"additionalProperties":false},{"type":"object","title":"dimension","description":"A condition: `all` (every condition matches; `all: []` matches every flow), `any` (at least one\nmatches; `any: []` matches none), `not`, or a dimension or tag condition with exactly one of `in` /\n`notIn` (`in: []` matches none, `notIn: []` every flow). A `null` value matches flows where the\ndimension or tag is absent or empty; empty strings are rejected. `application` values are application\nIDs (`app-\u003cnumber>`).\n\nOn read endpoints, `condition` is the dimension and tag filter. Their older per-dimension and tag fields\nare compatibility shorthands, combined (AND) with it: they get no new dimensions, operators or values, and\nendpoints added from now on take `condition` only.","required":["dimension"],"x-go-type":"json.RawMessage","properties":{"dimension":{"type":"string","enum":["application","osName","osVersion","browserName","touchpoint","visitorType"],"isRequired":true},"in":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}},"notIn":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}}},"additionalProperties":false},{"type":"object","title":"tag","description":"A condition: `all` (every condition matches; `all: []` matches every flow), `any` (at least one\nmatches; `any: []` matches none), `not`, or a dimension or tag condition with exactly one of `in` /\n`notIn` (`in: []` matches none, `notIn: []` every flow). A `null` value matches flows where the\ndimension or tag is absent or empty; empty strings are rejected. `application` values are application\nIDs (`app-\u003cnumber>`).\n\nOn read endpoints, `condition` is the dimension and tag filter. Their older per-dimension and tag fields\nare compatibility shorthands, combined (AND) with it: they get no new dimensions, operators or values, and\nendpoints added from now on take `condition` only.","required":["tag"],"x-go-type":"json.RawMessage","properties":{"tag":{"type":"string","minLength":1,"maxLength":255,"isRequired":true},"in":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}},"notIn":{"type":"array","maxItems":200,"x-go-type":"[]*string","items":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}}},"additionalProperties":false}]}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Use an Observe API key from the management console. The key selects the project and must grant the permission listed on the operation. Keep this key on your server.","scopes":["observe:subFlows:read"],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Use an Observe API key from the management console. The key selects the project and must grant the permission listed on the operation. Keep this key on your server.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi/observe.yaml"},"subdomain":"corbado-43","siteName":"Corbado docs","title":"Search subflows by filter criteria - Corbado docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T15:11:48.385Z","originalFileLocation":"api-reference/observe/search-subflows.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Finds subflows using exactly one selector: userIDs, flowIDs, sessionIDs or filters. The filters selector searches a time window with optional error, environment and subflow filters. ID-based results are ordered by start time, oldest first. Filter-based results are newest first and include totalCount (uncapped matches) and flowIDs (distinct parent flows). All results are capped at limit. Required API key permission: observe:subFlows:read.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Corbado docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Search subflows by filter criteria - Corbado docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Finds subflows using exactly one selector: userIDs, flowIDs, sessionIDs or filters. The filters selector searches a time window with optional error, environment and subflow filters. ID-based results are ordered by start time, oldest first. Filter-based results are newest first and include totalCount (uncapped matches) and flowIDs (distinct parent flows). All results are capped at limit. Required API key permission: observe:subFlows:read.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Corbado docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.corbado.com/api-reference/observe/search-subflows\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://corbado-43.mintlify.site/_mintlify/api/og/v2?division=Journeys+and+users\u0026amp;title=Search+subflows+by+filter+criteria\u0026amp;description=Finds+subflows+using+exactly+one+selector%3A+%60userIDs%60%2C+%60flowIDs%60%2C+%60sessionIDs%60+or+%60filters%60.%0AThe+%60filters%60+selector+searches+a+time+window+with+optional+error%2C+e\u0026amp;theme=46938e1ac6053c91ba042440\u0026amp;signature=d15b5f4a2a9d0cd0cc864c769b0d60263bb2884afc287874631fa55b03ae74c6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Search subflows by filter criteria - Corbado docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Finds subflows using exactly one selector: userIDs, flowIDs, sessionIDs or filters. The filters selector searches a time window with optional error, environment and subflow filters. ID-based results are ordered by start time, oldest first. Filter-based results are newest first and include totalCount (uncapped matches) and flowIDs (distinct parent flows). All results are capped at limit. Required API key permission: observe:subFlows:read.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://corbado-43.mintlify.site/_mintlify/api/og/v2?division=Journeys+and+users\u0026amp;title=Search+subflows+by+filter+criteria\u0026amp;description=Finds+subflows+using+exactly+one+selector%3A+%60userIDs%60%2C+%60flowIDs%60%2C+%60sessionIDs%60+or+%60filters%60.%0AThe+%60filters%60+selector+searches+a+time+window+with+optional+error%2C+e\u0026amp;theme=46938e1ac6053c91ba042440\u0026amp;signature=d15b5f4a2a9d0cd0cc864c769b0d60263bb2884afc287874631fa55b03ae74c6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/corbado-43/noBvchxiQo85SoLM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Corbado docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#184aff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.corbado.com/api-reference/observe/search-subflows\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/observe/search-subflows.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.corbado.com/#organization\",\"name\":\"Corbado docs\",\"url\":\"https://docs.corbado.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/corbado-43/uh5IdxgOHQMtEt9x/logo/corbado-logo-light.svg?fit=max\u0026auto=format\u0026n=uh5IdxgOHQMtEt9x\u0026q=85\u0026s=decbc139fa76d9eeee8dcfbe91ed2094\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.corbado.com#website\",\"name\":\"Corbado docs\",\"url\":\"https://docs.corbado.com\",\"publisher\":{\"@id\":\"https://docs.corbado.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.corbado.com/api-reference/observe/search-subflows#webpage\",\"url\":\"https://docs.corbado.com/api-reference/observe/search-subflows\",\"name\":\"Search subflows by filter criteria\",\"description\":\"Finds subflows using exactly one selector: userIDs, flowIDs, sessionIDs or filters. The filters selector searches a time window with optional error, environment and subflow filters. ID-based results are ordered by start time, oldest first. Filter-based results are newest first and include totalCount (uncapped matches) and flowIDs (distinct parent flows). All results are capped at limit. Required API key permission: observe:subFlows:read.\",\"dateModified\":\"2026-11-06T15:11:48.385Z\",\"isPartOf\":{\"@id\":\"https://docs.corbado.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.corbado.com/api-reference/observe/search-subflows#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.corbado.com/api-reference/observe/search-subflows#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Corbado Observe\",\"item\":\"https://docs.corbado.com/api-reference/observe/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API endpoints\",\"item\":\"https://docs.corbado.com/api-reference/observe/send-events\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Journeys and users\",\"item\":\"https://docs.corbado.com/api-reference/observe/search-flows\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Search subflows by filter criteria\",\"item\":\"https://docs.corbado.com/api-reference/observe/search-subflows\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.corbado.com/api-reference/observe/search-subflows#apireference\",\"headline\":\"Search subflows by filter criteria\",\"name\":\"Search subflows by filter criteria\",\"description\":\"Finds subflows using exactly one selector: userIDs, flowIDs, sessionIDs or filters. The filters selector searches a time window with optional error, environment and subflow filters. ID-based results are ordered by start time, oldest first. Filter-based results are newest first and include totalCount (uncapped matches) and flowIDs (distinct parent flows). All results are capped at limit. Required API key permission: observe:subFlows:read.\",\"url\":\"https://docs.corbado.com/api-reference/observe/search-subflows\",\"mainEntityOfPage\":{\"@id\":\"https://docs.corbado.com/api-reference/observe/search-subflows#webpage\"},\"dateModified\":\"2026-11-06T15:11:48.385Z\",\"publisher\":{\"@id\":\"https://docs.corbado.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.corbado.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Corbado docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Corbado docs","nav":{"global":{"anchors":[{"anchor":"Community","icon":"slack","href":"https://bit.ly/passkeys-community"},{"anchor":"GitHub","icon":"github","href":"https://github.com/corbado"},{"anchor":"Blog","icon":"newspaper","href":"https://www.corbado.com/blog"}]},"tabs":[{"tab":"Start","pages":[{"title":"Start","href":"/start"}]},{"tab":"Corbado Observe","pages":[{"title":"Corbado Observe","href":"/corbado-observe/overview/welcome"}]},{"tab":"Corbado Connect","pages":[{"title":"Corbado Connect","href":"/corbado-connect/overview/welcome"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"Corbado Observe and Connect API Reference","sidebarTitle":"Choose an API","href":"/api-reference/overview"}]},{"group":"Corbado Observe","pages":[{"title":"Observe API reference","sidebarTitle":"Overview","href":"/api-reference/observe/overview"},{"title":"Observe API authentication","sidebarTitle":"Authentication","href":"/api-reference/observe/authentication"},{"title":"Observe errors, pagination and limits","sidebarTitle":"Errors and limits","href":"/api-reference/observe/errors"},{"title":"User data export and deletion","sidebarTitle":"User data requests","href":"/api-reference/observe/user-data"},{"group":"API endpoints","pages":[{"group":"Events","pages":[{"title":"Create new events","deprecated":null,"version":null,"sidebarTitle":"Send events","openapi":"/api-reference/openapi/observe.yaml post /observe/events","href":"/api-reference/observe/send-events"},{"title":"Search events by filter criteria","deprecated":null,"version":null,"sidebarTitle":"Search events","openapi":"/api-reference/openapi/observe.yaml post /observe/eventSearch","href":"/api-reference/observe/search-events"},{"title":"Search low-level tracking events by filter criteria","deprecated":null,"version":null,"sidebarTitle":"Search low events","openapi":"/api-reference/openapi/observe.yaml post /observe/trackingEventLowSearch","href":"/api-reference/observe/search-low-events"}]},{"group":"Catalogs and labels","pages":[{"title":"List flow type definitions","deprecated":null,"version":null,"sidebarTitle":"Flow types","openapi":"/api-reference/openapi/observe.yaml get /observe/flowTypeDefinitions","href":"/api-reference/observe/flow-types"},{"title":"List decisions","deprecated":null,"version":null,"sidebarTitle":"Decisions","openapi":"/api-reference/openapi/observe.yaml get /observe/decisions","href":"/api-reference/observe/decisions"},{"title":"List decision variants","deprecated":null,"version":null,"sidebarTitle":"Decision variants","openapi":"/api-reference/openapi/observe.yaml get /observe/decisionVariants","href":"/api-reference/observe/decision-variants"},{"title":"List challenge variants","deprecated":null,"version":null,"sidebarTitle":"Challenge variants","openapi":"/api-reference/openapi/observe.yaml get /observe/challengeVariants","href":"/api-reference/observe/challenge-variants"},{"title":"List applications","deprecated":null,"version":null,"sidebarTitle":"Applications","openapi":"/api-reference/openapi/observe.yaml get /observe/applications","href":"/api-reference/observe/applications"},{"title":"List email domains","deprecated":null,"version":null,"sidebarTitle":"Email domains","openapi":"/api-reference/openapi/observe.yaml get /observe/emailDomains","href":"/api-reference/observe/email-domains"},{"title":"List labels","deprecated":null,"version":null,"sidebarTitle":"Labels","openapi":"/api-reference/openapi/observe.yaml get /observe/labels","href":"/api-reference/observe/labels"},{"title":"Create label","deprecated":null,"version":null,"sidebarTitle":"Create label","openapi":"/api-reference/openapi/observe.yaml post /observe/labels","href":"/api-reference/observe/create-label"},{"title":"Update label","deprecated":null,"version":null,"sidebarTitle":"Update label","openapi":"/api-reference/openapi/observe.yaml put /observe/labels/{labelID}","href":"/api-reference/observe/update-label"},{"title":"Delete label","deprecated":null,"version":null,"sidebarTitle":"Delete label","openapi":"/api-reference/openapi/observe.yaml delete /observe/labels/{labelID}","href":"/api-reference/observe/delete-label"}]},{"group":"Metrics and funnels","pages":[{"title":"Calculate historical metrics for an exact journey position","deprecated":null,"version":null,"sidebarTitle":"Funnel metrics","openapi":"/api-reference/openapi/observe.yaml post /observe/funnel/metricSeries","href":"/api-reference/observe/funnel-metrics"},{"title":"Get project-owned history dictionaries and coverage","deprecated":null,"version":null,"sidebarTitle":"Funnel metadata","openapi":"/api-reference/openapi/observe.yaml get /observe/funnel/metricSeries/metadata","href":"/api-reference/observe/funnel-metadata"},{"title":"Get time series data","deprecated":null,"version":null,"sidebarTitle":"Time series","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeries","href":"/api-reference/observe/time-series"},{"title":"Get time series totals","deprecated":null,"version":null,"sidebarTitle":"Time series totals","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeries/totals","href":"/api-reference/observe/time-series-totals"},{"title":"List time-series definitions","deprecated":null,"version":null,"sidebarTitle":"Time series definitions","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeriesDefinitions","href":"/api-reference/observe/time-series-definitions"}]},{"group":"Data exports","pages":[{"title":"Export time series to downloadable files","deprecated":null,"version":null,"sidebarTitle":"Create time series export","openapi":"/api-reference/openapi/observe.yaml post /observe/timeSeries/export","href":"/api-reference/observe/create-time-series-export"},{"title":"List time series exports","deprecated":null,"version":null,"sidebarTitle":"Time series exports","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeries/exports","href":"/api-reference/observe/time-series-exports"},{"title":"Get a time series export by ID","deprecated":null,"version":null,"sidebarTitle":"Time series export","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeries/exports/{exportID}","href":"/api-reference/observe/time-series-export"},{"title":"Get a download link for a time series export file","deprecated":null,"version":null,"sidebarTitle":"Time series export download","openapi":"/api-reference/openapi/observe.yaml get /observe/timeSeries/exports/{exportID}/files/{fileName}/downloadLink","href":"/api-reference/observe/time-series-export-download"},{"title":"List observe table export files","deprecated":null,"version":null,"sidebarTitle":"Table exports","openapi":"/api-reference/openapi/observe.yaml get /observe/tableExports","href":"/api-reference/observe/table-exports"},{"title":"Get observe table export download link","deprecated":null,"version":null,"sidebarTitle":"Table export download","openapi":"/api-reference/openapi/observe.yaml get /observe/tableExports/{filename}/downloadLink","href":"/api-reference/observe/table-export-download"}]},{"group":"User data","pages":[{"title":"Create data deletion jobs","deprecated":null,"version":null,"sidebarTitle":"Delete user data","openapi":"/api-reference/openapi/observe.yaml post /observe/dataDeletionJobs","href":"/api-reference/observe/delete-user-data"},{"title":"Get a data deletion job by ID","deprecated":null,"version":null,"sidebarTitle":"Deletion status","openapi":"/api-reference/openapi/observe.yaml get /observe/dataDeletionJobs/{dataDeletionJobID}","href":"/api-reference/observe/deletion-status"},{"title":"Export observe data by external ID","deprecated":null,"version":null,"sidebarTitle":"Export user","openapi":"/api-reference/openapi/observe.yaml get /observe/dataExports/{externalID}","href":"/api-reference/observe/export-user"}]},{"group":"Metadata","pages":[{"title":"List FIDO MDS authenticator metadata","deprecated":null,"version":null,"sidebarTitle":"Authenticator metadata","openapi":"/api-reference/openapi/observe.yaml get /observe/metadata/mds","href":"/api-reference/observe/authenticator-metadata"},{"title":"List passkey authenticator (AAGUID) metadata","deprecated":null,"version":null,"sidebarTitle":"Passkey authenticator metadata","openapi":"/api-reference/openapi/observe.yaml get /observe/metadata/passkey-aaguid","href":"/api-reference/observe/passkey-authenticator-metadata"}]},{"group":"Saved ID lists","pages":[{"title":"Get Observe ID list","deprecated":null,"version":null,"sidebarTitle":"Id list","openapi":"/api-reference/openapi/observe.yaml get /observe/idLists/{id}","href":"/api-reference/observe/id-list"},{"title":"Create Observe ID list","deprecated":null,"version":null,"sidebarTitle":"Create id list","openapi":"/api-reference/openapi/observe.yaml post /observe/idLists","href":"/api-reference/observe/create-id-list"}]},{"group":"Journeys and users","pages":[{"title":"Search flows by filter criteria","description":"Finds Observe flows that match the provided filters. Provide at least one of\nthe following filters: `userIDs`, `flowIDs`, `sessionIDs`, or a complete\n`fromDate` / `toDate` range.\n\nWhen provided, the date range may span at most 366 days.\n\nResults are ordered by creation time, oldest first by default or newest first with\n`orderDirection: desc`, and capped at `limit`.\n\nRequired API key permission: `observe:flow:read`.","deprecated":null,"version":null,"sidebarTitle":"Search flows","openapi":"/api-reference/openapi/observe.yaml post /observe/flowSearch","href":"/api-reference/observe/search-flows"},{"title":"Search subflows by filter criteria","deprecated":null,"version":null,"sidebarTitle":"Search subflows","openapi":"/api-reference/openapi/observe.yaml post /observe/subFlowSearch","href":"/api-reference/observe/search-subflows"},{"title":"Search flow tags","description":"Finds Observe flow tags for selected flows.\n\nRequired API key permission: `observe:flow:read`.","deprecated":null,"version":null,"sidebarTitle":"Search flow tags","openapi":"/api-reference/openapi/observe.yaml post /observe/flowTagSearch","href":"/api-reference/observe/search-flow-tags"},{"title":"Search users by filter criteria","deprecated":null,"version":null,"sidebarTitle":"Search users","openapi":"/api-reference/openapi/observe.yaml post /observe/userSearch","href":"/api-reference/observe/search-users"},{"title":"Search identifier submissions","deprecated":null,"version":null,"sidebarTitle":"Search identifiers","openapi":"/api-reference/openapi/observe.yaml post /observe/identifierSearch","href":"/api-reference/observe/search-identifiers"},{"title":"Search client environments","deprecated":null,"version":null,"sidebarTitle":"Search client environments","openapi":"/api-reference/openapi/observe.yaml post /observe/clientEnvSearch","href":"/api-reference/observe/search-client-environments"}]},{"group":"Passkey Intelligence","pages":[{"title":"Explain what went wrong for a user","deprecated":null,"version":null,"sidebarTitle":"User diagnosis","openapi":"/api-reference/openapi/observe.yaml post /observe/userDiagnosis","href":"/api-reference/observe/passkey-intelligence/user-diagnosis"},{"title":"Predict the passkey login outcome","deprecated":null,"version":null,"sidebarTitle":"Predict login","openapi":"/api-reference/openapi/observe.yaml post /observe/passkeyIntelligence","href":"/api-reference/observe/passkey-intelligence/predict-login"}]},{"group":"Passkey analysis","pages":[{"title":"List passkey behaviour for a user cohort","deprecated":null,"version":null,"sidebarTitle":"Passkey cohort","openapi":"/api-reference/openapi/observe.yaml post /observe/passkeyCohort","href":"/api-reference/observe/passkey-cohort"},{"title":"Search passkeys","deprecated":null,"version":null,"sidebarTitle":"Search passkeys","openapi":"/api-reference/openapi/observe.yaml post /observe/passkeySearch","href":"/api-reference/observe/search-passkeys"}]},{"group":"Annotations","pages":[{"title":"List annotations","deprecated":null,"version":null,"sidebarTitle":"Annotations","openapi":"/api-reference/openapi/observe.yaml get /observe/annotations","href":"/api-reference/observe/annotations"},{"title":"Create annotation","deprecated":null,"version":null,"sidebarTitle":"Create annotation","openapi":"/api-reference/openapi/observe.yaml post /observe/annotations","href":"/api-reference/observe/create-annotation"},{"title":"Get project memory document","deprecated":null,"version":null,"sidebarTitle":"Annotation document","openapi":"/api-reference/openapi/observe.yaml get /observe/annotations/document","href":"/api-reference/observe/annotation-document"},{"title":"Create or update annotation by external key","deprecated":null,"version":null,"sidebarTitle":"Upsert annotation","openapi":"/api-reference/openapi/observe.yaml put /observe/annotations/byExternalKey/{externalKey}","href":"/api-reference/observe/upsert-annotation"},{"title":"Get annotation","deprecated":null,"version":null,"sidebarTitle":"Get annotation","openapi":"/api-reference/openapi/observe.yaml get /observe/annotations/{annotationID}","href":"/api-reference/observe/get-annotation"},{"title":"Update annotation","deprecated":null,"version":null,"sidebarTitle":"Update annotation","openapi":"/api-reference/openapi/observe.yaml put /observe/annotations/{annotationID}","href":"/api-reference/observe/update-annotation"},{"title":"Delete annotation","deprecated":null,"version":null,"sidebarTitle":"Delete annotation","openapi":"/api-reference/openapi/observe.yaml delete /observe/annotations/{annotationID}","href":"/api-reference/observe/delete-annotation"},{"title":"List annotation history","deprecated":null,"version":null,"sidebarTitle":"List annotation events","openapi":"/api-reference/openapi/observe.yaml get /observe/annotations/{annotationID}/events","href":"/api-reference/observe/list-annotation-events"}]},{"group":"Error management","pages":[{"title":"List error flavours","deprecated":null,"version":null,"sidebarTitle":"Error flavours","openapi":"/api-reference/openapi/observe.yaml get /observe/errorFlavours","href":"/api-reference/observe/error-flavours"},{"title":"Assign error flavours","deprecated":null,"version":null,"sidebarTitle":"Assign error flavours","openapi":"/api-reference/openapi/observe.yaml patch /observe/errorFlavours","href":"/api-reference/observe/assign-error-flavours"},{"title":"Analyze the flow impact of error flavours","deprecated":null,"version":null,"sidebarTitle":"Error impact","openapi":"/api-reference/openapi/observe.yaml post /observe/errorFlavours/impact","href":"/api-reference/observe/error-impact"},{"title":"List errors","deprecated":null,"version":null,"sidebarTitle":"Errors list","openapi":"/api-reference/openapi/observe.yaml get /observe/errors","href":"/api-reference/observe/errors-list"},{"title":"Create error","deprecated":null,"version":null,"sidebarTitle":"Create error","openapi":"/api-reference/openapi/observe.yaml post /observe/errors","href":"/api-reference/observe/create-error"},{"title":"Update error","deprecated":null,"version":null,"sidebarTitle":"Update error","openapi":"/api-reference/openapi/observe.yaml put /observe/errors/{errorID}","href":"/api-reference/observe/update-error"},{"title":"Delete error","deprecated":null,"version":null,"sidebarTitle":"Delete error","openapi":"/api-reference/openapi/observe.yaml delete /observe/errors/{errorID}","href":"/api-reference/observe/delete-error"},{"title":"Upsert error recommendation","deprecated":null,"version":null,"sidebarTitle":"Upsert error recommendation","openapi":"/api-reference/openapi/observe.yaml put /observe/errors/{errorID}/recommendation","href":"/api-reference/observe/upsert-error-recommendation"},{"title":"Delete error recommendation","deprecated":null,"version":null,"sidebarTitle":"Delete error recommendation","openapi":"/api-reference/openapi/observe.yaml delete /observe/errors/{errorID}/recommendation","href":"/api-reference/observe/delete-error-recommendation"},{"title":"Create recommendation asset upload","deprecated":null,"version":null,"sidebarTitle":"Create recommendation asset upload","openapi":"/api-reference/openapi/observe.yaml post /observe/errors/{errorID}/recommendation/assets","href":"/api-reference/observe/create-recommendation-asset-upload"},{"title":"Delete recommendation asset","deprecated":null,"version":null,"sidebarTitle":"Delete recommendation asset","openapi":"/api-reference/openapi/observe.yaml delete /observe/errors/{errorID}/recommendation/assets/{assetID}","href":"/api-reference/observe/delete-recommendation-asset"},{"title":"Confirm recommendation asset upload","deprecated":null,"version":null,"sidebarTitle":"Confirm recommendation asset upload","openapi":"/api-reference/openapi/observe.yaml post /observe/errors/{errorID}/recommendation/assets/{assetID}/confirm","href":"/api-reference/observe/confirm-recommendation-asset-upload"},{"title":"Get recommendation asset download URL","deprecated":null,"version":null,"sidebarTitle":"Recommendation asset download","openapi":"/api-reference/openapi/observe.yaml get /observe/errors/{errorID}/recommendation/assets/{assetID}/downloadUrl","href":"/api-reference/observe/recommendation-asset-download"}]},{"group":"ObserveErrorCode","pages":[{"title":"Get the error dictionary","deprecated":null,"version":null,"sidebarTitle":"Error codes","openapi":"/api-reference/openapi/observe.yaml get /observe/errorCodes","href":"/api-reference/observe/error-codes"}]},{"group":"Alert management","pages":[{"title":"Get alerting summary","deprecated":null,"version":null,"sidebarTitle":"Alert summary","openapi":"/api-reference/openapi/observe.yaml get /observe/alertSummary","href":"/api-reference/observe/alert-summary"},{"title":"List alert rules","deprecated":null,"version":null,"sidebarTitle":"Alert rules","openapi":"/api-reference/openapi/observe.yaml get /observe/alertRules","href":"/api-reference/observe/alert-rules"},{"title":"Create alert rule","deprecated":null,"version":null,"sidebarTitle":"Create alert rule","openapi":"/api-reference/openapi/observe.yaml post /observe/alertRules","href":"/api-reference/observe/create-alert-rule"},{"title":"Simulate alert rule","deprecated":null,"version":null,"sidebarTitle":"Simulate alert rule","openapi":"/api-reference/openapi/observe.yaml post /observe/alertRules/simulate","href":"/api-reference/observe/simulate-alert-rule"},{"title":"Get alert rule","deprecated":null,"version":null,"sidebarTitle":"Alert rule","openapi":"/api-reference/openapi/observe.yaml get /observe/alertRules/{alertRuleID}","href":"/api-reference/observe/alert-rule"},{"title":"Update alert rule","deprecated":null,"version":null,"sidebarTitle":"Update alert rule","openapi":"/api-reference/openapi/observe.yaml put /observe/alertRules/{alertRuleID}","href":"/api-reference/observe/update-alert-rule"},{"title":"Delete alert rule","deprecated":null,"version":null,"sidebarTitle":"Delete alert rule","openapi":"/api-reference/openapi/observe.yaml delete /observe/alertRules/{alertRuleID}","href":"/api-reference/observe/delete-alert-rule"},{"title":"Evaluate alert rules","deprecated":null,"version":null,"sidebarTitle":"Evaluate alert rules","openapi":"/api-reference/openapi/observe.yaml post /observe/alerts/evaluate","href":"/api-reference/observe/evaluate-alert-rules"},{"title":"List alert contact points","deprecated":null,"version":null,"sidebarTitle":"Alert contact points","openapi":"/api-reference/openapi/observe.yaml get /observe/alertContactPoints","href":"/api-reference/observe/alert-contact-points"},{"title":"Create alert contact point","deprecated":null,"version":null,"sidebarTitle":"Create alert contact point","openapi":"/api-reference/openapi/observe.yaml post /observe/alertContactPoints","href":"/api-reference/observe/create-alert-contact-point"},{"title":"Get alert contact point","deprecated":null,"version":null,"sidebarTitle":"Alert contact point","openapi":"/api-reference/openapi/observe.yaml get /observe/alertContactPoints/{alertContactPointID}","href":"/api-reference/observe/alert-contact-point"},{"title":"Update alert contact point","deprecated":null,"version":null,"sidebarTitle":"Update alert contact point","openapi":"/api-reference/openapi/observe.yaml put /observe/alertContactPoints/{alertContactPointID}","href":"/api-reference/observe/update-alert-contact-point"},{"title":"Delete alert contact point","deprecated":null,"version":null,"sidebarTitle":"Delete alert contact point","openapi":"/api-reference/openapi/observe.yaml delete /observe/alertContactPoints/{alertContactPointID}","href":"/api-reference/observe/delete-alert-contact-point"},{"title":"Send test notification","deprecated":null,"version":null,"sidebarTitle":"Test alert contact point integration","openapi":"/api-reference/openapi/observe.yaml post /observe/alertContactPoints/{alertContactPointID}/integrations/{alertContactPointIntegrationID}/test","href":"/api-reference/observe/test-alert-contact-point-integration"},{"title":"List alert rule types","deprecated":null,"version":null,"sidebarTitle":"Alert rule types","openapi":"/api-reference/openapi/observe.yaml get /observe/alertRuleTypes","href":"/api-reference/observe/alert-rule-types"},{"title":"List alert rule groups","deprecated":null,"version":null,"sidebarTitle":"Alert rule groups","openapi":"/api-reference/openapi/observe.yaml get /observe/alertRuleGroups","href":"/api-reference/observe/alert-rule-groups"},{"title":"List alert instances","deprecated":null,"version":null,"sidebarTitle":"Alert instances","openapi":"/api-reference/openapi/observe.yaml get /observe/alertInstances","href":"/api-reference/observe/alert-instances"},{"title":"Get alert instance statistics","deprecated":null,"version":null,"sidebarTitle":"Alert instance statistics","openapi":"/api-reference/openapi/observe.yaml get /observe/alertInstanceStatistics","href":"/api-reference/observe/alert-instance-statistics"},{"title":"Get alert firing","deprecated":null,"version":null,"sidebarTitle":"Alert firing","openapi":"/api-reference/openapi/observe.yaml get /observe/alertFirings/{alertFiringID}","href":"/api-reference/observe/alert-firing"},{"title":"Get alert rule statistics","deprecated":null,"version":null,"sidebarTitle":"Alert rule statistics","openapi":"/api-reference/openapi/observe.yaml get /observe/alertRuleStatistics","href":"/api-reference/observe/alert-rule-statistics"},{"title":"List alert evaluations","deprecated":null,"version":null,"sidebarTitle":"Alert evaluations","openapi":"/api-reference/openapi/observe.yaml get /observe/alertEvaluations","href":"/api-reference/observe/alert-evaluations"},{"title":"List alert transitions","deprecated":null,"version":null,"sidebarTitle":"Alert transitions","openapi":"/api-reference/openapi/observe.yaml get /observe/alertTransitions","href":"/api-reference/observe/alert-transitions"},{"title":"List alert notifications","deprecated":null,"version":null,"sidebarTitle":"Alert notifications","openapi":"/api-reference/openapi/observe.yaml get /observe/alertNotifications","href":"/api-reference/observe/alert-notifications"}]},{"group":"Experiments","pages":[{"title":"List experiments","deprecated":null,"version":null,"sidebarTitle":"Experiments","openapi":"/api-reference/openapi/observe.yaml get /observe/experiments","href":"/api-reference/observe/experiments"},{"title":"List experiment runs","deprecated":null,"version":null,"sidebarTitle":"Experiment runs","openapi":"/api-reference/openapi/observe.yaml get /observe/experimentRuns","href":"/api-reference/observe/experiment-runs"},{"title":"Create experiment run","deprecated":null,"version":null,"sidebarTitle":"Create experiment run","openapi":"/api-reference/openapi/observe.yaml post /observe/experimentRuns","href":"/api-reference/observe/create-experiment-run"},{"title":"Update experiment run","deprecated":null,"version":null,"sidebarTitle":"Update experiment run","openapi":"/api-reference/openapi/observe.yaml put /observe/experimentRuns/{experimentRunID}","href":"/api-reference/observe/update-experiment-run"},{"title":"Delete experiment run","deprecated":null,"version":null,"sidebarTitle":"Delete experiment run","openapi":"/api-reference/openapi/observe.yaml delete /observe/experimentRuns/{experimentRunID}","href":"/api-reference/observe/delete-experiment-run"}]}]}]},{"group":"Corbado Connect","pages":[{"title":"Connect API reference","sidebarTitle":"Overview","href":"/api-reference/connect/overview"},{"title":"Connect API authentication","sidebarTitle":"Authentication","href":"/api-reference/connect/authentication"},{"title":"Connect API error types","sidebarTitle":"Error types","href":"/api-reference/connect/error-types"},{"title":"Connect Frontend API","sidebarTitle":"Frontend protocol","href":"/api-reference/connect/frontend"},{"group":"Frontend API","pages":[{"group":"Passkey flows","pages":[{"title":"Initialize connect login","deprecated":null,"version":null,"sidebarTitle":"Initialize connect login","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/login/init","href":"/api-reference/connect/frontend/corbadoconnect/initialize-connect-login"},{"title":"Start connect login","deprecated":null,"version":null,"sidebarTitle":"Start connect login","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/login/start","href":"/api-reference/connect/frontend/corbadoconnect/start-connect-login"},{"title":"Finish connect login","deprecated":null,"version":null,"sidebarTitle":"Finish connect login","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/login/finish","href":"/api-reference/connect/frontend/corbadoconnect/finish-connect-login"},{"title":"Initialize connect append","deprecated":null,"version":null,"sidebarTitle":"Initialize connect append","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/append/init","href":"/api-reference/connect/frontend/corbadoconnect/initialize-connect-append"},{"title":"Start connect append","deprecated":null,"version":null,"sidebarTitle":"Start connect append","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/append/start","href":"/api-reference/connect/frontend/corbadoconnect/start-connect-append"},{"title":"Finish connect append","deprecated":null,"version":null,"sidebarTitle":"Finish connect append","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/append/finish","href":"/api-reference/connect/frontend/corbadoconnect/finish-connect-append"},{"title":"Initialize connect management","deprecated":null,"version":null,"sidebarTitle":"Initialize connect management","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/manage/init","href":"/api-reference/connect/frontend/corbadoconnect/initialize-connect-management"},{"title":"Delete connect passkey","deprecated":null,"version":null,"sidebarTitle":"Delete connect passkey","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/manage/delete","href":"/api-reference/connect/frontend/corbadoconnect/delete-connect-passkey"},{"title":"List connect passkeys","deprecated":null,"version":null,"sidebarTitle":"List connect passkeys","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/manage/list","href":"/api-reference/connect/frontend/corbadoconnect/list-connect-passkeys"},{"title":"Create connect event","deprecated":null,"version":null,"sidebarTitle":"Create connect event","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/events","href":"/api-reference/connect/frontend/corbadoconnect/create-connect-event"},{"title":"Send low-level Connect events","deprecated":null,"version":null,"sidebarTitle":"Send low-level Connect events","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/eventsLow","href":"/api-reference/connect/frontend/corbadoconnect/post-v2connecteventslow"},{"title":"Clear connect process","deprecated":null,"version":null,"sidebarTitle":"Clear connect process","openapi":"/api-reference/openapi/connect-frontend.yaml post /v2/connect/process/clear","href":"/api-reference/connect/frontend/corbadoconnect/clear-connect-process"}]},{"group":"App association and keys","pages":[{"title":"Get Android Digital Asset Links","deprecated":null,"version":null,"sidebarTitle":"Get Android Digital Asset Links","openapi":"/api-reference/openapi/connect-frontend.yaml get /.well-known/assetlinks.json","href":"/api-reference/connect/frontend/wellknown/get-well-knownassetlinksjson"},{"title":"Get Apple App Site Association","deprecated":null,"version":null,"sidebarTitle":"Get Apple App Site Association","openapi":"/api-reference/openapi/connect-frontend.yaml get /.well-known/apple-app-site-association","href":"/api-reference/connect/frontend/wellknown/get-well-knownapple-app-site-association"},{"title":"Get project signing keys","deprecated":null,"version":null,"sidebarTitle":"Get project signing keys","openapi":"/api-reference/openapi/connect-frontend.yaml get /.well-known/jwks","href":"/api-reference/connect/frontend/wellknown/get-well-knownjwks"}]}]},{"group":"Backend API","pages":[{"group":"Users and passkeys","pages":[{"title":"List users","deprecated":null,"version":null,"sidebarTitle":"List users","openapi":"/api-reference/openapi/connect-backend.yaml get /users","href":"/api-reference/connect/backend/users/list-users"},{"title":"Create a new user","deprecated":null,"version":null,"sidebarTitle":"Create a new user","openapi":"/api-reference/openapi/connect-backend.yaml post /users","href":"/api-reference/connect/backend/users/create-a-new-user"},{"title":"Retrieve a user","deprecated":null,"version":null,"sidebarTitle":"Retrieve a user","openapi":"/api-reference/openapi/connect-backend.yaml get /users/{userID}","href":"/api-reference/connect/backend/users/retrieve-a-user"},{"title":"Delete a user","deprecated":null,"version":null,"sidebarTitle":"Delete a user","openapi":"/api-reference/openapi/connect-backend.yaml delete /users/{userID}","href":"/api-reference/connect/backend/users/delete-a-user"},{"title":"Update a user","deprecated":null,"version":null,"sidebarTitle":"Update a user","openapi":"/api-reference/openapi/connect-backend.yaml patch /users/{userID}","href":"/api-reference/connect/backend/users/update-a-user"},{"title":"List passkeys for a user","deprecated":null,"version":null,"sidebarTitle":"List passkeys for a user","openapi":"/api-reference/openapi/connect-backend.yaml get /users/{userID}/credentials","href":"/api-reference/connect/backend/users/list-passkeys-for-a-user"},{"title":"Delete a passkey for a user","deprecated":null,"version":null,"sidebarTitle":"Delete a passkey for a user","openapi":"/api-reference/openapi/connect-backend.yaml delete /users/{userID}/credentials/{credentialID}","href":"/api-reference/connect/backend/users/delete-a-passkey-for-a-user"},{"title":"List passkeys for a user including full authenticator data","deprecated":null,"version":null,"sidebarTitle":"List passkeys for a user including full authenticator data","openapi":"/api-reference/openapi/connect-backend.yaml get /users/{userID}/fullCredentials","href":"/api-reference/connect/backend/users/list-passkeys-for-a-user-including-full-authenticator-data"}]},{"group":"Identifiers","pages":[{"title":"Create a login identifier for a user","deprecated":null,"version":null,"sidebarTitle":"Create a login identifier for a user","openapi":"/api-reference/openapi/connect-backend.yaml post /users/{userID}/identifiers","href":"/api-reference/connect/backend/identifiers/create-a-login-identifier-for-a-user"},{"title":"Delete a login identifier for a user","deprecated":null,"version":null,"sidebarTitle":"Delete a login identifier for a user","openapi":"/api-reference/openapi/connect-backend.yaml delete /users/{userID}/identifiers/{identifierID}","href":"/api-reference/connect/backend/identifiers/delete-a-login-identifier-for-a-user"},{"title":"Update a login identifier for a user","deprecated":null,"version":null,"sidebarTitle":"Update a login identifier for a user","openapi":"/api-reference/openapi/connect-backend.yaml patch /users/{userID}/identifiers/{identifierID}","href":"/api-reference/connect/backend/identifiers/update-a-login-identifier-for-a-user"},{"title":"List all login identifiers","deprecated":null,"version":null,"sidebarTitle":"List all login identifiers","openapi":"/api-reference/openapi/connect-backend.yaml get /identifiers","href":"/api-reference/connect/backend/identifiers/list-all-login-identifiers"}]},{"group":"Passkey diagnostics","pages":[{"title":"List all passkey events for a user","deprecated":null,"version":null,"sidebarTitle":"List all passkey events for a user","openapi":"/api-reference/openapi/connect-backend.yaml get /users/{userID}/passkeyEvents","href":"/api-reference/connect/backend/passkeyevents/list-all-passkey-events-for-a-user"},{"title":"Create a passkey event for a user","deprecated":null,"version":null,"sidebarTitle":"Create a passkey event for a user","openapi":"/api-reference/openapi/connect-backend.yaml post /users/{userID}/passkeyEvents","href":"/api-reference/connect/backend/passkeyevents/create-a-passkey-event-for-a-user"},{"title":"Delete a passkey event for a user","deprecated":null,"version":null,"sidebarTitle":"Delete a passkey event for a user","openapi":"/api-reference/openapi/connect-backend.yaml delete /users/{userID}/passkeyEvents/{passkeyEventID}","href":"/api-reference/connect/backend/passkeyevents/delete-a-passkey-event-for-a-user"},{"title":"List all passkey challenges for a user","deprecated":null,"version":null,"sidebarTitle":"List all passkey challenges for a user","openapi":"/api-reference/openapi/connect-backend.yaml get /users/{userID}/passkeyChallenges","href":"/api-reference/connect/backend/passkeychallenges/list-all-passkey-challenges-for-a-user"},{"title":"Update a passkey challenge for a user","deprecated":null,"version":null,"sidebarTitle":"Update a passkey challenge for a user","openapi":"/api-reference/openapi/connect-backend.yaml patch /users/{userID}/passkeyChallenges/{passkeyChallengeID}","href":"/api-reference/connect/backend/passkeychallenges/update-a-passkey-challenge-for-a-user"}]},{"group":"Connect tokens","pages":[{"title":"List all ConnectTokens","deprecated":null,"version":null,"sidebarTitle":"List all connecttokens","openapi":"/api-reference/openapi/connect-backend.yaml get /connectTokens","href":"/api-reference/connect/backend/connecttokens/list-all-connecttokens"},{"title":"Create a connectToken","deprecated":null,"version":null,"sidebarTitle":"Create a connecttoken","openapi":"/api-reference/openapi/connect-backend.yaml post /connectTokens","href":"/api-reference/connect/backend/connecttokens/create-a-connecttoken"},{"title":"Delete a ConnectToken","deprecated":null,"version":null,"sidebarTitle":"Delete a connecttoken","openapi":"/api-reference/openapi/connect-backend.yaml delete /connectTokens/{connectTokenID}","href":"/api-reference/connect/backend/connecttokens/delete-a-connecttoken"},{"title":"Update a ConnectToken","deprecated":null,"version":null,"sidebarTitle":"Update a connecttoken","openapi":"/api-reference/openapi/connect-backend.yaml patch /connectTokens/{connectTokenID}","href":"/api-reference/connect/backend/connecttokens/update-a-connecttoken"}]},{"group":"Passkey ceremonies","pages":[{"title":"Start creating a new passkey","deprecated":null,"version":null,"sidebarTitle":"Start creating a new passkey","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/append/start","href":"/api-reference/connect/backend/passkeys/start-creating-a-new-passkey"},{"title":"Finish creating a new passkey","deprecated":null,"version":null,"sidebarTitle":"Finish creating a new passkey","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/append/finish","href":"/api-reference/connect/backend/passkeys/finish-creating-a-new-passkey"},{"title":"Start login with an existing passkey","deprecated":null,"version":null,"sidebarTitle":"Start login with an existing passkey","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/login/start","href":"/api-reference/connect/backend/passkeys/start-login-with-an-existing-passkey"},{"title":"Finish login with an existing passkey","deprecated":null,"version":null,"sidebarTitle":"Finish login with an existing passkey","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/login/finish","href":"/api-reference/connect/backend/passkeys/finish-login-with-an-existing-passkey"},{"title":"Verify signedPasskeyData from a passkey login","deprecated":null,"version":null,"sidebarTitle":"Verify signedpasskeydata from a passkey login","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/verifySignedData","href":"/api-reference/connect/backend/passkeys/verify-signedpasskeydata-from-a-passkey-login"},{"title":"Start login with an existing passkey (Conditional UI)","deprecated":null,"version":null,"sidebarTitle":"Start login with an existing passkey conditional ui","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/mediation/start","href":"/api-reference/connect/backend/passkeys/start-login-with-an-existing-passkey-conditional-ui"},{"title":"Finish login with an existing passkey (Conditional UI)","deprecated":null,"version":null,"sidebarTitle":"Finish login with an existing passkey conditional ui","openapi":"/api-reference/openapi/connect-backend.yaml post /passkey/mediation/finish","href":"/api-reference/connect/backend/passkeys/finish-login-with-an-existing-passkey-conditional-ui"}]},{"group":"Data exports","pages":[{"title":"List project exports","deprecated":null,"version":null,"sidebarTitle":"List project exports","openapi":"/api-reference/openapi/connect-backend.yaml get /exports/{exportType}","href":"/api-reference/connect/backend/exports/list-project-exports"},{"title":"Get download link for an export file","deprecated":null,"version":null,"sidebarTitle":"Get download link for an export file","openapi":"/api-reference/openapi/connect-backend.yaml get /exports/{exportType}/{filename}/downloadLink","href":"/api-reference/connect/backend/exports/get-download-link-for-an-export-file"}]},{"group":"Analytics and configuration","pages":[{"title":"Get project statistics","deprecated":null,"version":null,"sidebarTitle":"Get project statistics","openapi":"/api-reference/openapi/connect-backend.yaml get /stats","href":"/api-reference/connect/backend/connect-reads/get-stats"},{"title":"Get statistics over time","deprecated":null,"version":null,"sidebarTitle":"Get statistics over time","openapi":"/api-reference/openapi/connect-backend.yaml get /statsByTime","href":"/api-reference/connect/backend/connect-reads/get-statsbytime"},{"title":"List applications","deprecated":null,"version":null,"sidebarTitle":"List applications","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/applications","href":"/api-reference/connect/backend/connect-reads/get-connectapplications"},{"title":"Search Connect processes","deprecated":null,"version":null,"sidebarTitle":"Search Connect processes","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/processSearch","href":"/api-reference/connect/backend/connect-reads/post-connectprocesssearch"},{"title":"Get Connect processes by ID","deprecated":null,"version":null,"sidebarTitle":"Get Connect processes by ID","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/processList","href":"/api-reference/connect/backend/connect-reads/post-connectprocesslist"},{"title":"List process events","deprecated":null,"version":null,"sidebarTitle":"List process events","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/processes/{processID}/events","href":"/api-reference/connect/backend/connect-reads/get-connectprocesses-events"},{"title":"Get process metadata","deprecated":null,"version":null,"sidebarTitle":"Get process metadata","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/processMetadata/{processID}","href":"/api-reference/connect/backend/connect-reads/get-connectprocessmetadata"},{"title":"List subprocesses","deprecated":null,"version":null,"sidebarTitle":"List subprocesses","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/processes/{processID}/subProcesses","href":"/api-reference/connect/backend/connect-reads/get-connectprocesses-subprocesses"},{"title":"List process errors","deprecated":null,"version":null,"sidebarTitle":"List process errors","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/processErrors","href":"/api-reference/connect/backend/connect-reads/get-connectprocesserrors"},{"title":"List error patterns","deprecated":null,"version":null,"sidebarTitle":"List error patterns","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/processErrorPatterns","href":"/api-reference/connect/backend/connect-reads/get-connectprocesserrorpatterns"},{"title":"List devices for multiple users","deprecated":null,"version":null,"sidebarTitle":"List devices for multiple users","openapi":"/api-reference/openapi/connect-backend.yaml post /devices","href":"/api-reference/connect/backend/connect-reads/list-devices-for-multiple-users"},{"title":"List shared devices for a user","deprecated":null,"version":null,"sidebarTitle":"List shared devices for a user","openapi":"/api-reference/openapi/connect-backend.yaml get /sharedDevices","href":"/api-reference/connect/backend/connect-reads/get-shareddevices"},{"title":"List Android app configurations","deprecated":null,"version":null,"sidebarTitle":"List Android app configurations","openapi":"/api-reference/openapi/connect-backend.yaml get /androidappconfig","href":"/api-reference/connect/backend/connect-reads/get-androidappconfig"},{"title":"List Passkey Intelligence rulesets","deprecated":null,"version":null,"sidebarTitle":"List Passkey Intelligence rulesets","openapi":"/api-reference/openapi/connect-backend.yaml get /passkeyIntelligence/{projectID}/rulesetsMetadata","href":"/api-reference/connect/backend/connect-reads/get-passkeyintelligence-rulesetsmetadata"},{"title":"Get a Passkey Intelligence ruleset","deprecated":null,"version":null,"sidebarTitle":"Get a Passkey Intelligence ruleset","openapi":"/api-reference/openapi/connect-backend.yaml get /passkeyIntelligence/{projectID}/rulesets/{rulesetID}","href":"/api-reference/connect/backend/connect-reads/get-passkeyintelligence-rulesets"},{"title":"Get project configuration","deprecated":null,"version":null,"sidebarTitle":"Get project configuration","openapi":"/api-reference/openapi/connect-backend.yaml get /projectConfig","href":"/api-reference/connect/backend/connect-reads/get-projectconfig"}]},{"group":"App configuration","pages":[{"title":"Create an application","deprecated":null,"version":null,"sidebarTitle":"Create an application","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/applications","href":"/api-reference/connect/backend/connectmanagement/post-connectapplications"},{"title":"Create an Android app configuration","deprecated":null,"version":null,"sidebarTitle":"Create an Android app configuration","openapi":"/api-reference/openapi/connect-backend.yaml post /androidappconfig","href":"/api-reference/connect/backend/connectmanagement/post-androidappconfig"},{"title":"Update an application","deprecated":null,"version":null,"sidebarTitle":"Update an application","openapi":"/api-reference/openapi/connect-backend.yaml put /connect/applications/{applicationID}","href":"/api-reference/connect/backend/connectmanagement/put-connectapplications"},{"title":"Delete an application","deprecated":null,"version":null,"sidebarTitle":"Delete an application","openapi":"/api-reference/openapi/connect-backend.yaml delete /connect/applications/{applicationID}","href":"/api-reference/connect/backend/connectmanagement/delete-connectapplications"},{"title":"Update an Android app configuration","deprecated":null,"version":null,"sidebarTitle":"Update an Android app configuration","openapi":"/api-reference/openapi/connect-backend.yaml put /androidappconfig/{androidAppConfigID}","href":"/api-reference/connect/backend/connectmanagement/put-androidappconfig"},{"title":"Delete an Android app configuration","deprecated":null,"version":null,"sidebarTitle":"Delete an Android app configuration","openapi":"/api-reference/openapi/connect-backend.yaml delete /androidappconfig/{androidAppConfigID}","href":"/api-reference/connect/backend/connectmanagement/delete-androidappconfig"},{"title":"Create a Passkey Intelligence ruleset","deprecated":null,"version":null,"sidebarTitle":"Create a Passkey Intelligence ruleset","openapi":"/api-reference/openapi/connect-backend.yaml post /passkeyIntelligence/{projectID}/rulesets","href":"/api-reference/connect/backend/connectmanagement/post-passkeyintelligence-rulesets"},{"title":"Activate a Passkey Intelligence ruleset","deprecated":null,"version":null,"sidebarTitle":"Activate a Passkey Intelligence ruleset","openapi":"/api-reference/openapi/connect-backend.yaml post /passkeyIntelligence/{projectID}/rulesets/{rulesetID}/activate","href":"/api-reference/connect/backend/connectmanagement/post-passkeyintelligence-rulesets-activate"}]},{"group":"Rollout configuration","pages":[{"title":"Get Connect configuration","deprecated":null,"version":null,"sidebarTitle":"Get Connect configuration","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/config","href":"/api-reference/connect/backend/connectrollout/get-connectconfig"},{"title":"Update Connect configuration","deprecated":null,"version":null,"sidebarTitle":"Update Connect configuration","openapi":"/api-reference/openapi/connect-backend.yaml put /connect/config","href":"/api-reference/connect/backend/connectrollout/put-connectconfig"},{"title":"Create Connect configuration","deprecated":null,"version":null,"sidebarTitle":"Create Connect configuration","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/config","href":"/api-reference/connect/backend/connectrollout/post-connectconfig"},{"title":"List rollout rulesets","deprecated":null,"version":null,"sidebarTitle":"List rollout rulesets","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/rulesetsMetadata","href":"/api-reference/connect/backend/connectrollout/get-connectrulesetsmetadata"},{"title":"Create a rollout ruleset","deprecated":null,"version":null,"sidebarTitle":"Create a rollout ruleset","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/rulesets","href":"/api-reference/connect/backend/connectrollout/post-connectrulesets"},{"title":"Get a rollout ruleset","deprecated":null,"version":null,"sidebarTitle":"Get a rollout ruleset","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/rulesets/{rulesetID}","href":"/api-reference/connect/backend/connectrollout/get-connectrulesets"},{"title":"Update a rollout ruleset","deprecated":null,"version":null,"sidebarTitle":"Update a rollout ruleset","openapi":"/api-reference/openapi/connect-backend.yaml patch /connect/rulesets/{rulesetID}","href":"/api-reference/connect/backend/connectrollout/patch-connectrulesets"},{"title":"Activate a rollout ruleset","deprecated":null,"version":null,"sidebarTitle":"Activate a rollout ruleset","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/rulesets/{rulesetID}/activate","href":"/api-reference/connect/backend/connectrollout/post-connectrulesets-activate"},{"title":"List identifier allowlists","deprecated":null,"version":null,"sidebarTitle":"List identifier allowlists","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/identifierWhitelists","href":"/api-reference/connect/backend/connectrollout/get-connectidentifierwhitelists"},{"title":"Create an identifier allowlist","deprecated":null,"version":null,"sidebarTitle":"Create an identifier allowlist","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/identifierWhitelists","href":"/api-reference/connect/backend/connectrollout/post-connectidentifierwhitelists"},{"title":"Update an identifier allowlist","deprecated":null,"version":null,"sidebarTitle":"Update an identifier allowlist","openapi":"/api-reference/openapi/connect-backend.yaml put /connect/identifierWhitelists/{identifierWhitelistID}","href":"/api-reference/connect/backend/connectrollout/put-connectidentifierwhitelists"},{"title":"Delete an identifier allowlist","deprecated":null,"version":null,"sidebarTitle":"Delete an identifier allowlist","openapi":"/api-reference/openapi/connect-backend.yaml delete /connect/identifierWhitelists/{identifierWhitelistID}","href":"/api-reference/connect/backend/connectrollout/delete-connectidentifierwhitelists"},{"title":"List rollout simulations","deprecated":null,"version":null,"sidebarTitle":"List rollout simulations","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/rulesets/{rulesetID}/simulations","href":"/api-reference/connect/backend/connectrollout/get-connectrulesets-simulations"},{"title":"Create a rollout simulation","deprecated":null,"version":null,"sidebarTitle":"Create a rollout simulation","openapi":"/api-reference/openapi/connect-backend.yaml post /connect/rulesets/{rulesetID}/simulations","href":"/api-reference/connect/backend/connectrollout/post-connectrulesets-simulations"},{"title":"Get rollout simulation status","deprecated":null,"version":null,"sidebarTitle":"Get rollout simulation status","openapi":"/api-reference/openapi/connect-backend.yaml get /connect/rulesets/{rulesetID}/simulations/{simulationID}","href":"/api-reference/connect/backend/connectrollout/get-connectrulesets-simulations-1"}]}]}]}]},{"tab":"Passkey UI Flows","pages":[{"title":"Passkey UI Flows","href":"/passkey-ui-flows/overview"}]}]},"basePath":"","title":"Search subflows by filter criteria - Corbado docs","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Myd8dsju.js","utils-C2HkQgW0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-8rSppmTv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B6MjiCFm.js","snippetPresets-DwrSAONL.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-1-a5UQKQ.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C541m7wZ.js","shallow-CWELCZ77.js","getApiPlaygroundDisplay-CTo5Zn03.js","CodeSnippet-D--dzvnl.js","CodeSnippets-DM3cXEDh.js","Page-CxAy5y67.js","getPastedJson-C-VECgcL.js","icon-BPq2-Mg3.js","MethodPill-D9J5cUHd.js","DuplicateIcon-BqHaxUnD.js","createIcon-CIbcZHp9.js","DynamicMarkdown-BKiHAm_d.js","SectionHeading-DstQXt3H.js","axios-vUo_bRtp.js","Markdown-CpxgzsKA.js","clsx-C5EfhVm0.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CJ9Oly2E.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Mk6P3qvh.js"]}