Record the caller's acceptance of one or more documents
Record an acceptance the caller performed deliberately (FLO-2652).
Three surfaces share this endpoint, which is why it takes a list rather than
doing one thing:
Re-acceptance after a material amendment (the blocking dialog).
An invited member’s first act, on the set-password screen — the first
screen where they act for themselves. The invitation endpoints are the
inviter’s admin calls; stamping acceptance there would record an admin’s
action as the invitee’s assent and destroy the evidentiary value of the
whole table.
renewal_terms is deliberately NOT among them, despite being a documented use
for the underlying service call. AcceptedDocument.document is a
Literal[self_service_tos, privacy_policy], so a renewal_terms body is a
422 — the same structural refusal that keeps immediate_performance off this
endpoint, and for the same reason: both are written server-side by the surface
that collected the act, and a client that could name them could forge a waiver
against its own account. PR X records renewal terms through
TermsComplianceService.record_acceptance from the checkout path, not through
this endpoint.
Only the version, IP and timestamp are trusted from the server side: the
version the caller sends is validated against the published one and then
discarded, never stored as given. A version we do not publish is a 400 —
accepting one would put an arbitrary string in the formation record.
Because the sent version is discarded either way, naming it is OPTIONAL: a
caller that omits documents accepts every currently-published signup
document at the server’s versions. That is what the set-password screen does,
and what any surface should do unless it genuinely knows what it rendered —
naming a version it had to guess at is strictly worse than not naming one.
transactional_bypass_rls because terms_acceptance grants only the
backend connection user; the write is scoped to user_info.id in the
handler, and no other user id can reach this call path.
POST
/
api
/
profile
/
accept-terms
Record the caller's acceptance of one or more documents
documents is OPTIONAL, and omitting it is the safer call for any surface
that cannot be certain which versions it rendered -- see the field description.
The documents being accepted, each with the version the surface displayed. Omit the field entirely to accept every currently-published signup document at the server's own versions: a caller that cannot name a version reliably must omit this rather than send a guess, because the alternative it used to have was skipping the request and recording nothing. Required only where the caller genuinely knows its version, such as the checkout surface's renewal_terms.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SuperAI Flows","description":"Build reliable, scalable workflows that orchestrate AI models, data processing, and business logic through a simple API.","colors":{"primary":"#7443ff","light":"#9775f7","dark":"#6c40f5"},"logo":{"light":"https://mintcdn.com/superai-flows-docs/mOFmLJuUNWWCPrgW/logo/light.svg?fit=max\u0026auto=format\u0026n=mOFmLJuUNWWCPrgW\u0026q=85\u0026s=763a91d73e6886f99fbebba85459ee15","dark":"https://mintcdn.com/superai-flows-docs/mOFmLJuUNWWCPrgW/logo/dark.svg?fit=max\u0026auto=format\u0026n=mOFmLJuUNWWCPrgW\u0026q=85\u0026s=5e03ccaedeb7b9890d260cd5f28ba690","href":"https://flows.super.ai"},"favicon":"https://mintcdn.com/superai-flows-docs/mOFmLJuUNWWCPrgW/favicon.png?fit=max\u0026auto=format\u0026n=mOFmLJuUNWWCPrgW\u0026q=85\u0026s=a54a72f5610b7af45f895302bd9fec95","navbar":{"links":[{"href":"mailto:support@super.ai","label":"Support"},{"href":"https://status.super.ai","label":"Status"}],"primary":{"type":"button","label":"Dashboard","href":"https://flows.super.ai"}},"footer":{"socials":{"website":"https://super.ai","x":"https://x.com/mysuperai","linkedin":"https://www.linkedin.com/company/mysuperai"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"superai-flows-docs","hasAudioNarration":false,"actualSubdomain":"superai-flows-docs","customDomains":["docs.flows.super.ai"],"gitSource":{"type":"github","owner":"mysuperai","repo":"superai-flows-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"4c020797-e5c5-4927-8e18-f9ead2828ae7","liveDeploymentHistoryId":"6adb511a124faf20fe6181b8","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb511a124faf20fe6181b8"},"entitlements":{},"buildId":"6adb511a124faf20fe6181b8","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API Reference","count":159},{"language":"default","tag":"Endpoints","count":155},{"language":"default","tag":"integrations","count":37},{"language":"default","tag":"flows","count":31},{"language":"default","tag":"organizations","count":15},{"language":"default","tag":"plugins","count":11},{"language":"default","tag":"auth","count":9},{"language":"default","tag":"service-accounts","count":9},{"language":"default","tag":"flow-executions","count":8},{"language":"default","tag":"human-review-tasks","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"editor-v7-file-tree","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":"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents","slug":"/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents","pageMetadata":{"title":"Record the caller's acceptance of one or more documents","description":"Record an acceptance the caller performed deliberately (FLO-2652).\n\nThree surfaces share this endpoint, which is why it takes a list rather than\ndoing one thing:\n\n* **Re-acceptance** after a material amendment (the blocking dialog).\n* **An invited member's first act**, on the set-password screen — the first\n screen where they act for themselves. The invitation endpoints are the\n *inviter's* admin calls; stamping acceptance there would record an admin's\n action as the invitee's assent and destroy the evidentiary value of the\n whole table.\n``renewal_terms`` is deliberately NOT among them, despite being a documented use\nfor the underlying service call. ``AcceptedDocument.document`` is a\n``Literal[self_service_tos, privacy_policy]``, so a ``renewal_terms`` body is a\n422 -- the same structural refusal that keeps ``immediate_performance`` off this\nendpoint, and for the same reason: both are written server-side by the surface\nthat collected the act, and a client that could name them could forge a waiver\nagainst its own account. PR X records renewal terms through\n``TermsComplianceService.record_acceptance`` from the checkout path, not through\nthis endpoint.\n\nOnly the version, IP and timestamp are trusted from the server side: the\nversion the caller sends is *validated against* the published one and then\ndiscarded, never stored as given. A version we do not publish is a 400 —\naccepting one would put an arbitrary string in the formation record.\n\nBecause the sent version is discarded either way, naming it is OPTIONAL: a\ncaller that omits ``documents`` accepts every currently-published signup\ndocument at the server's versions. That is what the set-password screen does,\nand what any surface should do unless it genuinely knows what it rendered —\nnaming a version it had to guess at is strictly worse than not naming one.\n\n``transactional_bypass_rls`` because ``terms_acceptance`` grants only the\nbackend connection user; the write is scoped to ``user_info.id`` in the\nhandler, and no other user id can reach this call path.","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/profile/accept-terms","href":"/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents","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 em: \"em\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Record an acceptance the caller performed deliberately (FLO-2652).\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Three surfaces share this endpoint, which is why it takes a list rather than\\ndoing one thing:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Re-acceptance\"\n }), \" after a material amendment (the blocking dialog).\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"An invited member’s first act\"\n }), \", on the set-password screen — the first\\nscreen where they act for themselves. The invitation endpoints are the\\n\", _jsx(_components.em, {\n children: \"inviter’s\"\n }), \" admin calls; stamping acceptance there would record an admin’s\\naction as the invitee’s assent and destroy the evidentiary value of the\\nwhole table.\\n\", _jsx(_components.code, {\n children: \"renewal_terms\"\n }), \" is deliberately NOT among them, despite being a documented use\\nfor the underlying service call. \", _jsx(_components.code, {\n children: \"AcceptedDocument.document\"\n }), \" is a\\n\", _jsx(_components.code, {\n children: \"Literal[self_service_tos, privacy_policy]\"\n }), \", so a \", _jsx(_components.code, {\n children: \"renewal_terms\"\n }), \" body is a\\n422 — the same structural refusal that keeps \", _jsx(_components.code, {\n children: \"immediate_performance\"\n }), \" off this\\nendpoint, and for the same reason: both are written server-side by the surface\\nthat collected the act, and a client that could name them could forge a waiver\\nagainst its own account. PR X records renewal terms through\\n\", _jsx(_components.code, {\n children: \"TermsComplianceService.record_acceptance\"\n }), \" from the checkout path, not through\\nthis endpoint.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Only the version, IP and timestamp are trusted from the server side: the\\nversion the caller sends is \", _jsx(_components.em, {\n children: \"validated against\"\n }), \" the published one and then\\ndiscarded, never stored as given. A version we do not publish is a 400 —\\naccepting one would put an arbitrary string in the formation record.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Because the sent version is discarded either way, naming it is OPTIONAL: a\\ncaller that omits \", _jsx(_components.code, {\n children: \"documents\"\n }), \" accepts every currently-published signup\\ndocument at the server’s versions. That is what the set-password screen does,\\nand what any surface should do unless it genuinely knows what it rendered —\\nnaming a version it had to guess at is strictly worse than not naming one.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"transactional_bypass_rls\"\n }), \" because \", _jsx(_components.code, {\n children: \"terms_acceptance\"\n }), \" grants only the\\nbackend connection user; the write is scoped to \", _jsx(_components.code, {\n children: \"user_info.id\"\n }), \" in the\\nhandler, and no other user id can reach this call path.\"]\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":"Record the caller's acceptance of one or more documents","description":"Record an acceptance the caller performed deliberately (FLO-2652).\n\nThree surfaces share this endpoint, which is why it takes a list rather than\ndoing one thing:\n\n* **Re-acceptance** after a material amendment (the blocking dialog).\n* **An invited member's first act**, on the set-password screen — the first\n screen where they act for themselves. The invitation endpoints are the\n *inviter's* admin calls; stamping acceptance there would record an admin's\n action as the invitee's assent and destroy the evidentiary value of the\n whole table.\n``renewal_terms`` is deliberately NOT among them, despite being a documented use\nfor the underlying service call. ``AcceptedDocument.document`` is a\n``Literal[self_service_tos, privacy_policy]``, so a ``renewal_terms`` body is a\n422 -- the same structural refusal that keeps ``immediate_performance`` off this\nendpoint, and for the same reason: both are written server-side by the surface\nthat collected the act, and a client that could name them could forge a waiver\nagainst its own account. PR X records renewal terms through\n``TermsComplianceService.record_acceptance`` from the checkout path, not through\nthis endpoint.\n\nOnly the version, IP and timestamp are trusted from the server side: the\nversion the caller sends is *validated against* the published one and then\ndiscarded, never stored as given. A version we do not publish is a 400 —\naccepting one would put an arbitrary string in the formation record.\n\nBecause the sent version is discarded either way, naming it is OPTIONAL: a\ncaller that omits ``documents`` accepts every currently-published signup\ndocument at the server's versions. That is what the set-password screen does,\nand what any surface should do unless it genuinely knows what it rendered —\nnaming a version it had to guess at is strictly worse than not naming one.\n\n``transactional_bypass_rls`` because ``terms_acceptance`` grants only the\nbackend connection user; the write is scoped to ``user_info.id`` in the\nhandler, and no other user id can reach this call path.","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/profile/accept-terms","href":"/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Record an acceptance the caller performed deliberately (FLO-2652).\n\nThree surfaces share this endpoint, which is why it takes a list rather than\ndoing one thing:\n\n* **Re-acceptance** after a material amendment (the blocking dialog).\n* **An invited member's first act**, on the set-password screen — the first\n screen where they act for themselves. The invitation endpoints are the\n *inviter's* admin calls; stamping acceptance there would record an admin's\n action as the invitee's assent and destroy the evidentiary value of the\n whole table.\n``renewal_terms`` is deliberately NOT among them, despite being a documented use\nfor the underlying service call. ``AcceptedDocument.document`` is a\n``Literal[self_service_tos, privacy_policy]``, so a ``renewal_terms`` body is a\n422 -- the same structural refusal that keeps ``immediate_performance`` off this\nendpoint, and for the same reason: both are written server-side by the surface\nthat collected the act, and a client that could name them could forge a waiver\nagainst its own account. PR X records renewal terms through\n``TermsComplianceService.record_acceptance`` from the checkout path, not through\nthis endpoint.\n\nOnly the version, IP and timestamp are trusted from the server side: the\nversion the caller sends is *validated against* the published one and then\ndiscarded, never stored as given. A version we do not publish is a 400 —\naccepting one would put an arbitrary string in the formation record.\n\nBecause the sent version is discarded either way, naming it is OPTIONAL: a\ncaller that omits ``documents`` accepts every currently-published signup\ndocument at the server's versions. That is what the set-password screen does,\nand what any surface should do unless it genuinely knows what it rendered —\nnaming a version it had to guess at is strictly worse than not naming one.\n\n``transactional_bypass_rls`` because ``terms_acceptance`` grants only the\nbackend connection user; the write is scoped to ``user_info.id`` in the\nhandler, and no other user id can reach this call path.","operationId":"accept_terms_api_profile_accept_terms_post","requestBody":"2e22f134-1315-4b22-b937-6ef96913919e","responses":{"200":"2af6195d-70f2-47f0-85bb-bf687d1d7e16","400":"f18d11a8-353c-42c2-b189-65623ac75678","401":"918500bd-eb26-414d-ab86-03eb523e5582","422":"6a178200-2a46-407a-8ebb-7a8363ed39cd","500":"9eceff0b-bbcc-47ab-aec2-fae0a1b2c858"},"security":["ec07cf78-19df-42f1-9201-01377a254209","43d4f983-b2fd-4665-a154-8f3c2f259345"],"summary":"Record the caller's acceptance of one or more documents","tags":["profile"],"method":"post","type":"path","servers":["4d0b7ba2-10f8-42a9-8f2d-c56b9c660af5"],"path":"/api/profile/accept-terms","baseUrlOptions":["https://flows.super.ai"],"title":"Record the caller's acceptance of one or more documents","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"description":"Body for ``POST /profile/accept-terms``.\n\n``documents`` is OPTIONAL, and omitting it is the safer call for any surface\nthat cannot be certain which versions it rendered -- see the field description.","properties":{"documents":{"oneOf":[{"type":"array","items":{"description":"One document the caller is accepting, with the version they were shown.","properties":{"document":{"description":"Which document is being accepted. Only the two signup documents: renewal_terms and immediate_performance are written server-side by the surface that collected the act, never accepted from a client.","enum":["self_service_tos","privacy_policy"],"title":"Document","type":"string","isRequired":true,"uniqueKey":"documents.oneOf.0.items.[INDEX].document","typeLabel":"enum\u003cstring>"},"version":{"description":"The version the caller was shown. Validated against the published version for the signup documents; a mismatch is a 400, because accepting a version we do not publish is not evidence.","maxLength":64,"minLength":1,"title":"Version","type":"string","isRequired":true,"uniqueKey":"documents.oneOf.0.items.[INDEX].version","typeLabel":"string"}},"required":["document","version"],"title":"AcceptedDocument","type":"object","uniqueKey":"documents.oneOf.0.items.[INDEX]","typeLabel":"AcceptedDocument · object"},"title":"Documents","description":"The documents being accepted, each with the version the surface displayed. Omit the field entirely to accept every currently-published signup document at the server's own versions: a caller that cannot name a version reliably must omit this rather than send a guess, because the alternative it used to have was skipping the request and recording nothing. Required only where the caller genuinely knows its version, such as the checkout surface's renewal_terms.","maxItems":8,"minItems":1,"uniqueKey":"documents.oneOf.0","typeLabel":"AcceptedDocument · object[]"},{"type":"null","title":"Documents","description":"The documents being accepted, each with the version the surface displayed. Omit the field entirely to accept every currently-published signup document at the server's own versions: a caller that cannot name a version reliably must omit this rather than send a guess, because the alternative it used to have was skipping the request and recording nothing. Required only where the caller genuinely knows its version, such as the checkout surface's renewal_terms.","uniqueKey":"documents.oneOf.1","typeLabel":"null"}],"uniqueKey":"documents","typeLabel":"AcceptedDocument · object[] | null"}},"title":"AcceptTermsRequest","type":"object","uniqueKey":"","typeLabel":"AcceptTermsRequest · object"},"examples":{"Example":{"title":"Example","value":{"documents":[{"version":"\u003cstring>"}]}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"2af6195d-70f2-47f0-85bb-bf687d1d7e16":{"content":{"application/json":{"schema":{"properties":{"recorded":{"description":"How many acceptance rows were written.","title":"Recorded","type":"integer","isRequired":true,"uniqueKey":"recorded","typeLabel":"integer"}},"required":["recorded"],"title":"AcceptTermsResponse","type":"object","uniqueKey":"","typeLabel":"AcceptTermsResponse · object"},"examples":{"Example":{"title":"Example","value":{"recorded":123}}},"exampleType":"generated"}},"description":"Acceptance recorded","exampleType":"generated"},"f18d11a8-353c-42c2-b189-65623ac75678":{"content":{"application/json":{"schema":{"description":"Standard API error response structure.\n\nAll error responses from the API follow this format, ensuring\nconsistent error handling for API consumers.\n\nExample:\n {\n \"error\": {\n \"message\": \"Flow not found\",\n \"code\": \"not_found\"\n },\n \"request_id\": \"01K8KABR6S16YETA2SZPVBS9SP\"\n }","examples":[{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}],"properties":{"error":{"description":"Standard error detail structure.\n\nThis model matches the error format returned by the centralized\nexception handlers in app/api/errors/handlers.py.","properties":{"message":{"description":"Human-readable error message","title":"Message","type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"error.details.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"error.details.oneOf.1.items.[INDEX]","typeLabel":"object"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.1","typeLabel":"Details · object[]"},{"type":"object","title":"Details","description":"Additional error context, validation errors, or debugging information","additionalProperties":true,"uniqueKey":"error.details.oneOf.2","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.3","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string[] | Details · object[] | Details · object | null"}},"required":["message"],"title":"ErrorDetail","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["error"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}}},"exampleType":"generated"}},"description":"A named document or version is not currently published","exampleType":"generated"},"918500bd-eb26-414d-ab86-03eb523e5582":{"content":{"application/json":{"examples":{"invalid_token":{"title":"invalid_token","value":{"error":{"code":"unauthorized","message":"Invalid authentication token"},"request_id":"01K8KACP7D2XFGHJ9KLM4NPQR8"}},"missing_token":{"title":"missing_token","value":{"error":{"code":"unauthorized","message":"Authentication required"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}}},"schema":{"description":"Standard API error response structure.\n\nAll error responses from the API follow this format, ensuring\nconsistent error handling for API consumers.\n\nExample:\n {\n \"error\": {\n \"message\": \"Flow not found\",\n \"code\": \"not_found\"\n },\n \"request_id\": \"01K8KABR6S16YETA2SZPVBS9SP\"\n }","examples":[{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}],"properties":{"error":{"description":"Standard error detail structure.\n\nThis model matches the error format returned by the centralized\nexception handlers in app/api/errors/handlers.py.","properties":{"message":{"description":"Human-readable error message","title":"Message","type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"error.details.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"error.details.oneOf.1.items.[INDEX]","typeLabel":"object"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.1","typeLabel":"Details · object[]"},{"type":"object","title":"Details","description":"Additional error context, validation errors, or debugging information","additionalProperties":true,"uniqueKey":"error.details.oneOf.2","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.3","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string[] | Details · object[] | Details · object | null"}},"required":["message"],"title":"ErrorDetail","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["error"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"exampleType":"examples"}},"description":"Unauthorized - Missing or invalid authentication credentials","exampleType":"examples"},"6a178200-2a46-407a-8ebb-7a8363ed39cd":{"content":{"application/json":{"examples":{"type_error":{"title":"type_error","value":{"error":{"code":"validation_error","details":[{"input":"not-a-uuid","loc":["path","flow_id"],"msg":"Input should be a valid UUID","type":"uuid_parsing"}],"message":"Request validation failed"},"request_id":"01K8KACP7D2XFGHJ9KLM4NPQR8"}},"validation_error":{"title":"validation_error","value":{"error":{"code":"validation_error","details":[{"loc":["body","name"],"msg":"Field required","type":"missing"}],"message":"Request validation failed"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}}},"schema":{"description":"Standard API error response structure.\n\nAll error responses from the API follow this format, ensuring\nconsistent error handling for API consumers.\n\nExample:\n {\n \"error\": {\n \"message\": \"Flow not found\",\n \"code\": \"not_found\"\n },\n \"request_id\": \"01K8KABR6S16YETA2SZPVBS9SP\"\n }","examples":[{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}],"properties":{"error":{"description":"Standard error detail structure.\n\nThis model matches the error format returned by the centralized\nexception handlers in app/api/errors/handlers.py.","properties":{"message":{"description":"Human-readable error message","title":"Message","type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"error.details.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"error.details.oneOf.1.items.[INDEX]","typeLabel":"object"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.1","typeLabel":"Details · object[]"},{"type":"object","title":"Details","description":"Additional error context, validation errors, or debugging information","additionalProperties":true,"uniqueKey":"error.details.oneOf.2","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.3","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string[] | Details · object[] | Details · object | null"}},"required":["message"],"title":"ErrorDetail","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["error"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"exampleType":"examples"}},"description":"Unprocessable Entity - Request validation failed","exampleType":"examples"},"9eceff0b-bbcc-47ab-aec2-fae0a1b2c858":{"content":{"application/json":{"examples":{"internal_error":{"title":"internal_error","value":{"error":{"code":"internal_error","message":"Internal server error"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}},"repository_error":{"title":"repository_error","value":{"error":{"code":"repository_error","message":"Database operation failed"},"request_id":"01K8KACP7D2XFGHJ9KLM4NPQR8"}}},"schema":{"description":"Standard API error response structure.\n\nAll error responses from the API follow this format, ensuring\nconsistent error handling for API consumers.\n\nExample:\n {\n \"error\": {\n \"message\": \"Flow not found\",\n \"code\": \"not_found\"\n },\n \"request_id\": \"01K8KABR6S16YETA2SZPVBS9SP\"\n }","examples":[{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}],"properties":{"error":{"description":"Standard error detail structure.\n\nThis model matches the error format returned by the centralized\nexception handlers in app/api/errors/handlers.py.","properties":{"message":{"description":"Human-readable error message","title":"Message","type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"error.details.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"error.details.oneOf.1.items.[INDEX]","typeLabel":"object"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.1","typeLabel":"Details · object[]"},{"type":"object","title":"Details","description":"Additional error context, validation errors, or debugging information","additionalProperties":true,"uniqueKey":"error.details.oneOf.2","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.3","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string[] | Details · object[] | Details · object | null"}},"required":["message"],"title":"ErrorDetail","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["error"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"exampleType":"examples"}},"description":"Internal Server Error - An unexpected error occurred","exampleType":"examples"}},"security":{"ec07cf78-19df-42f1-9201-01377a254209":{"BearerAuth":{"bearerFormat":"JWT","description":"JWT Bearer token authentication. Include your access token in the Authorization header as: `Bearer YOUR_ACCESS_TOKEN`\n\nExample:\n```\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n```","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"}},"43d4f983-b2fd-4665-a154-8f3c2f259345":{"APIKeyAuth":{"description":"API key authentication. Include your API key in the X-API-Key header as: `X-API-Key YOUR_API_KEY`\n\nExample:\n```\nX-API-Key: saf_1234567890\n```","in":"header","name":"X-API-Key","type":"apiKey","scopes":[],"schemeName":"APIKeyAuth"}}},"servers":{"4d0b7ba2-10f8-42a9-8f2d-c56b9c660af5":{"description":"Production server","url":"https://flows.super.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"bearerFormat":"JWT","description":"JWT Bearer token authentication. Include your access token in the Authorization header as: `Bearer YOUR_ACCESS_TOKEN`\n\nExample:\n```\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n```","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"JWT Bearer token authentication. Include your access token in the Authorization header as: `Bearer YOUR_ACCESS_TOKEN`\n\nExample:\n```\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n```","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"},{"schemes":[{"scheme":{"description":"API key authentication. Include your API key in the X-API-Key header as: `X-API-Key YOUR_API_KEY`\n\nExample:\n```\nX-API-Key: saf_1234567890\n```","in":"header","name":"X-API-Key","type":"apiKey","scopes":[],"schemeName":"APIKeyAuth"},"schema":{"title":"X-API-Key","type":"string","description":"API key authentication. Include your API key in the X-API-Key header as: `X-API-Key YOUR_API_KEY`\n\nExample:\n```\nX-API-Key: saf_1234567890\n```","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"APIKeyAuth","name":"X-API-Key"}],"title":"APIKeyAuth"}]},"originalFileLocation":"openapi/superai-flows-openapi.json"},"subdomain":"superai-flows-docs","siteName":"SuperAI Flows","title":"Record the caller's acceptance of one or more documents - SuperAI Flows","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T12:20:52.480Z","originalFileLocation":"api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents.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=\"Record an acceptance the caller performed deliberately (FLO-2652). Three surfaces share this endpoint, which is why it takes a list rather than doing one thing: Re-acceptance after a material amendment (the blocking dialog). An invited member\u0026#x27;s first act, on the set-password screen — the first screen where they act for themselves. The invitation endpoints are the inviter\u0026#x27;s admin calls; stamping acceptance there would record an admin\u0026#x27;s action as the invitee\u0026#x27;s assent and destroy the evidentiary value of the whole table. renewal_terms is deliberately NOT among them, despite being a documented use for the underlying service call. AcceptedDocument.document is a Literal[self_service_tos, privacy_policy], so a renewal_terms body is a 422 -- the same structural refusal that keeps immediate_performance off this endpoint, and for the same reason: both are written server-side by the surface that collected the act, and a client that could name them could forge a waiver against its own account. PR X records renewal terms through TermsComplianceService.record_acceptance from the checkout path, not through this endpoint. Only the version, IP and timestamp are trusted from the server side: the version the caller sends is validated against the published one and then discarded, never stored as given. A version we do not publish is a 400 — accepting one would put an arbitrary string in the formation record. Because the sent version is discarded either way, naming it is OPTIONAL: a caller that omits documents accepts every currently-published signup document at the server\u0026#x27;s versions. That is what the set-password screen does, and what any surface should do unless it genuinely knows what it rendered — naming a version it had to guess at is strictly worse than not naming one. transactional_bypass_rls because terms_acceptance grants only the backend connection user; the write is scoped to user_info.id in the handler, and no other user id can reach this call path.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SuperAI Flows\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_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/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_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/superai-flows-docs/qpT9WA2q8_qrkdpL/_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/superai-flows-docs/qpT9WA2q8_qrkdpL/_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/superai-flows-docs/qpT9WA2q8_qrkdpL/_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/superai-flows-docs/qpT9WA2q8_qrkdpL/_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/superai-flows-docs/qpT9WA2q8_qrkdpL/_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/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Record the caller\u0026#x27;s acceptance of one or more documents - SuperAI Flows\">\u003cmeta data-mint-head property=\"og:description\" content=\"Record an acceptance the caller performed deliberately (FLO-2652). Three surfaces share this endpoint, which is why it takes a list rather than doing one thing: Re-acceptance after a material amendment (the blocking dialog). An invited member\u0026#x27;s first act, on the set-password screen — the first screen where they act for themselves. The invitation endpoints are the inviter\u0026#x27;s admin calls; stamping acceptance there would record an admin\u0026#x27;s action as the invitee\u0026#x27;s assent and destroy the evidentiary value of the whole table. renewal_terms is deliberately NOT among them, despite being a documented use for the underlying service call. AcceptedDocument.document is a Literal[self_service_tos, privacy_policy], so a renewal_terms body is a 422 -- the same structural refusal that keeps immediate_performance off this endpoint, and for the same reason: both are written server-side by the surface that collected the act, and a client that could name them could forge a waiver against its own account. PR X records renewal terms through TermsComplianceService.record_acceptance from the checkout path, not through this endpoint. Only the version, IP and timestamp are trusted from the server side: the version the caller sends is validated against the published one and then discarded, never stored as given. A version we do not publish is a 400 — accepting one would put an arbitrary string in the formation record. Because the sent version is discarded either way, naming it is OPTIONAL: a caller that omits documents accepts every currently-published signup document at the server\u0026#x27;s versions. That is what the set-password screen does, and what any surface should do unless it genuinely knows what it rendered — naming a version it had to guess at is strictly worse than not naming one. transactional_bypass_rls because terms_acceptance grants only the backend connection user; the write is scoped to user_info.id in the handler, and no other user id can reach this call path.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SuperAI Flows\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.flows.super.ai/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://superai-flows-docs.mintlify.app/_mintlify/api/og/v2?division=profile\u0026amp;title=Record+the+caller%27s+acceptance+of+one+or+more+documents\u0026amp;description=Record+an+acceptance+the+caller+performed+deliberately+%28FLO-2652%29.%0A%0AThree+surfaces+share+this+endpoint%2C+which+is+why+it+takes+a+list+rather+than%0Adoing+one+thing\u0026amp;theme=ab5065c76c8574caf1b0798b\u0026amp;signature=bc1aab39511ed841dc664c29541fb5b70649e8a15f4a261df71189828463bfec\">\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=\"Record the caller\u0026#x27;s acceptance of one or more documents - SuperAI Flows\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Record an acceptance the caller performed deliberately (FLO-2652). Three surfaces share this endpoint, which is why it takes a list rather than doing one thing: Re-acceptance after a material amendment (the blocking dialog). An invited member\u0026#x27;s first act, on the set-password screen — the first screen where they act for themselves. The invitation endpoints are the inviter\u0026#x27;s admin calls; stamping acceptance there would record an admin\u0026#x27;s action as the invitee\u0026#x27;s assent and destroy the evidentiary value of the whole table. renewal_terms is deliberately NOT among them, despite being a documented use for the underlying service call. AcceptedDocument.document is a Literal[self_service_tos, privacy_policy], so a renewal_terms body is a 422 -- the same structural refusal that keeps immediate_performance off this endpoint, and for the same reason: both are written server-side by the surface that collected the act, and a client that could name them could forge a waiver against its own account. PR X records renewal terms through TermsComplianceService.record_acceptance from the checkout path, not through this endpoint. Only the version, IP and timestamp are trusted from the server side: the version the caller sends is validated against the published one and then discarded, never stored as given. A version we do not publish is a 400 — accepting one would put an arbitrary string in the formation record. Because the sent version is discarded either way, naming it is OPTIONAL: a caller that omits documents accepts every currently-published signup document at the server\u0026#x27;s versions. That is what the set-password screen does, and what any surface should do unless it genuinely knows what it rendered — naming a version it had to guess at is strictly worse than not naming one. transactional_bypass_rls because terms_acceptance grants only the backend connection user; the write is scoped to user_info.id in the handler, and no other user id can reach this call path.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://superai-flows-docs.mintlify.app/_mintlify/api/og/v2?division=profile\u0026amp;title=Record+the+caller%27s+acceptance+of+one+or+more+documents\u0026amp;description=Record+an+acceptance+the+caller+performed+deliberately+%28FLO-2652%29.%0A%0AThree+surfaces+share+this+endpoint%2C+which+is+why+it+takes+a+list+rather+than%0Adoing+one+thing\u0026amp;theme=ab5065c76c8574caf1b0798b\u0026amp;signature=bc1aab39511ed841dc664c29541fb5b70649e8a15f4a261df71189828463bfec\">\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/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SuperAI Flows\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7443ff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.flows.super.ai/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.flows.super.ai/#organization\",\"name\":\"SuperAI Flows\",\"url\":\"https://docs.flows.super.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/superai-flows-docs/mOFmLJuUNWWCPrgW/logo/light.svg?fit=max\u0026auto=format\u0026n=mOFmLJuUNWWCPrgW\u0026q=85\u0026s=763a91d73e6886f99fbebba85459ee15\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.flows.super.ai#website\",\"name\":\"SuperAI Flows\",\"url\":\"https://docs.flows.super.ai\",\"publisher\":{\"@id\":\"https://docs.flows.super.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.flows.super.ai/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents#webpage\",\"url\":\"https://docs.flows.super.ai/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents\",\"name\":\"Record the caller's acceptance of one or more documents\",\"description\":\"Record an acceptance the caller performed deliberately (FLO-2652). Three surfaces share this endpoint, which is why it takes a list rather than doing one thing: Re-acceptance after a material amendment (the blocking dialog). An invited member's first act, on the set-password screen — the first screen where they act for themselves. The invitation endpoints are the inviter's admin calls; stamping acceptance there would record an admin's action as the invitee's assent and destroy the evidentiary value of the whole table. renewal_terms is deliberately NOT among them, despite being a documented use for the underlying service call. AcceptedDocument.document is a Literal[self_service_tos, privacy_policy], so a renewal_terms body is a 422 -- the same structural refusal that keeps immediate_performance off this endpoint, and for the same reason: both are written server-side by the surface that collected the act, and a client that could name them could forge a waiver against its own account. PR X records renewal terms through TermsComplianceService.record_acceptance from the checkout path, not through this endpoint. Only the version, IP and timestamp are trusted from the server side: the version the caller sends is validated against the published one and then discarded, never stored as given. A version we do not publish is a 400 — accepting one would put an arbitrary string in the formation record. Because the sent version is discarded either way, naming it is OPTIONAL: a caller that omits documents accepts every currently-published signup document at the server's versions. That is what the set-password screen does, and what any surface should do unless it genuinely knows what it rendered — naming a version it had to guess at is strictly worse than not naming one. transactional_bypass_rls because terms_acceptance grants only the backend connection user; the write is scoped to user_info.id in the handler, and no other user id can reach this call path.\",\"dateModified\":\"2026-10-23T12:20:52.480Z\",\"isPartOf\":{\"@id\":\"https://docs.flows.super.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.flows.super.ai/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.flows.super.ai/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.flows.super.ai/api-reference/auth/submit-a-self-service-access-request\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Record the caller's acceptance of one or more documents\",\"item\":\"https://docs.flows.super.ai/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.flows.super.ai/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents#apireference\",\"headline\":\"Record the caller's acceptance of one or more documents\",\"name\":\"Record the caller's acceptance of one or more documents\",\"description\":\"Record an acceptance the caller performed deliberately (FLO-2652). Three surfaces share this endpoint, which is why it takes a list rather than doing one thing: Re-acceptance after a material amendment (the blocking dialog). An invited member's first act, on the set-password screen — the first screen where they act for themselves. The invitation endpoints are the inviter's admin calls; stamping acceptance there would record an admin's action as the invitee's assent and destroy the evidentiary value of the whole table. renewal_terms is deliberately NOT among them, despite being a documented use for the underlying service call. AcceptedDocument.document is a Literal[self_service_tos, privacy_policy], so a renewal_terms body is a 422 -- the same structural refusal that keeps immediate_performance off this endpoint, and for the same reason: both are written server-side by the surface that collected the act, and a client that could name them could forge a waiver against its own account. PR X records renewal terms through TermsComplianceService.record_acceptance from the checkout path, not through this endpoint. Only the version, IP and timestamp are trusted from the server side: the version the caller sends is validated against the published one and then discarded, never stored as given. A version we do not publish is a 400 — accepting one would put an arbitrary string in the formation record. Because the sent version is discarded either way, naming it is OPTIONAL: a caller that omits documents accepts every currently-published signup document at the server's versions. That is what the set-password screen does, and what any surface should do unless it genuinely knows what it rendered — naming a version it had to guess at is strictly worse than not naming one. transactional_bypass_rls because terms_acceptance grants only the backend connection user; the write is scoped to user_info.id in the handler, and no other user id can reach this call path.\",\"url\":\"https://docs.flows.super.ai/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents\",\"mainEntityOfPage\":{\"@id\":\"https://docs.flows.super.ai/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents#webpage\"},\"dateModified\":\"2026-10-23T12:20:52.480Z\",\"publisher\":{\"@id\":\"https://docs.flows.super.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.flows.super.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SuperAI Flows\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SuperAI Flows","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"Overview","icon":"code","href":"/api-reference/introduction"},{"title":"Authentication","icon":"lock","href":"/api-reference/authentication"},{"title":"Error Codes","icon":"triangle-exclamation","href":"/api-reference/errors"},{"title":"MCP Server","icon":"robot","href":"/api-reference/mcp-server"}]},{"group":"Endpoints","pages":[{"group":"auth","pages":[{"title":"Submit a self-service access request","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/auth/access-request","href":"/api-reference/auth/submit-a-self-service-access-request"},{"title":"Retrieve authentication API key","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/anon-key","href":"/api-reference/auth/retrieve-authentication-api-key"},{"title":"Human-verification challenge configuration for the sign-in and signup forms","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/captcha-config","href":"/api-reference/auth/human-verification-challenge-configuration-for-the-sign-in-and-signup-forms"},{"title":"Resolve login method for an email","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/login-method","href":"/api-reference/auth/resolve-login-method-for-an-email"},{"title":"Public compliance configuration for the signup and sign-in surfaces","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/public-config","href":"/api-reference/auth/public-compliance-configuration-for-the-signup-and-sign-in-surfaces"},{"title":"Resend user invitation email","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/auth/resend-invite","href":"/api-reference/auth/resend-user-invitation-email"},{"title":"Reset Password","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/auth/reset-password","href":"/api-reference/auth/reset-password"},{"title":"Pre-flight signup email policy check for magic link","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/signup-email-policy","href":"/api-reference/auth/pre-flight-signup-email-policy-check-for-magic-link"},{"title":"The authenticated caller's terms-acceptance state","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/terms-status","href":"/api-reference/auth/the-authenticated-callers-terms-acceptance-state"}]},{"group":"files","pages":[{"title":"Download file by URI (with redirect)","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/files/download","href":"/api-reference/files/download-file-by-uri-with-redirect"},{"title":"Resolve storage URI to download URL","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/files/resolve","href":"/api-reference/files/resolve-storage-uri-to-download-url"}]},{"group":"flow-executions","pages":[{"title":"List flow executions with filtering and pagination","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flow-executions","href":"/api-reference/flow-executions/list-flow-executions-with-filtering-and-pagination"},{"title":"Create and start a flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions","href":"/api-reference/flow-executions/create-and-start-a-flow-execution"},{"title":"List the execution IDs of one filtered, sorted runs-table page","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions/page-ids","href":"/api-reference/flow-executions/list-the-execution-ids-of-one-filtered-sorted-runs-table-page"},{"title":"Retrieve a specific flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flow-executions/{flow_execution_id}","href":"/api-reference/flow-executions/retrieve-a-specific-flow-execution"},{"title":"Soft delete a flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/flow-executions/{flow_execution_id}","href":"/api-reference/flow-executions/soft-delete-a-flow-execution"},{"title":"Cancel a flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions/{flow_execution_id}/cancel","href":"/api-reference/flow-executions/cancel-a-flow-execution"},{"title":"Re-execute a flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions/{flow_execution_id}/execute","href":"/api-reference/flow-executions/re-execute-a-flow-execution"},{"title":"Add task status updates (Internal API)","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions/{flow_execution_id}/task-status","href":"/api-reference/flow-executions/add-task-status-updates-internal-api"}]},{"group":"webhook-data","pages":[{"title":"Submit webhook data for a waiting task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions/{flow_execution_id}/webhook-data","href":"/api-reference/webhook-data/submit-webhook-data-for-a-waiting-task"}]},{"group":"flows","pages":[{"title":"List all flows","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows","href":"/api-reference/flows/list-all-flows"},{"title":"Create a new flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flows","href":"/api-reference/flows/create-a-new-flow"},{"title":"Get available flow tags for autocomplete","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/available-tags","href":"/api-reference/flows/get-available-flow-tags-for-autocomplete"},{"title":"Generate file download URL","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flows/download-url","href":"/api-reference/flows/generate-file-download-url"},{"title":"Retrieve a flow by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}","href":"/api-reference/flows/retrieve-a-flow-by-id"},{"title":"Delete a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/flows/{flow_id}","href":"/api-reference/flows/delete-a-flow"},{"title":"Partially update a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/flows/{flow_id}","href":"/api-reference/flows/partially-update-a-flow"},{"title":"Get clone info for a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/clone-info","href":"/api-reference/flows/get-clone-info-for-a-flow"},{"title":"Update flow definition","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/flows/{flow_id}/definition","href":"/api-reference/flows/update-flow-definition"},{"title":"List flow files","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/files","href":"/api-reference/flows/list-flow-files"},{"title":"List flow invitations","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/invitations","href":"/api-reference/flows/list-flow-invitations"},{"title":"Upsert user invitations to a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/flows/{flow_id}/invitations","href":"/api-reference/flows/upsert-user-invitations-to-a-flow"},{"title":"Remove user invitations from a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/flows/{flow_id}/invitations","href":"/api-reference/flows/remove-user-invitations-from-a-flow"},{"title":"Get distinct metadata keys for a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/metadata/keys","href":"/api-reference/flows/get-distinct-metadata-keys-for-a-flow"},{"title":"Get distinct values for a metadata key","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/metadata/values","href":"/api-reference/flows/get-distinct-values-for-a-metadata-key"},{"title":"Get tag suggestions for a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/tag-suggestions","href":"/api-reference/flows/get-tag-suggestions-for-a-flow"},{"title":"Get tag usage for a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/tag-usage","href":"/api-reference/flows/get-tag-usage-for-a-flow"},{"title":"Get tags for flow executions","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/tags","href":"/api-reference/flows/get-tags-for-flow-executions"},{"title":"Permanently delete tags from a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/flows/{flow_id}/tags","href":"/api-reference/flows/permanently-delete-tags-from-a-flow"},{"title":"Update a single task in flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/flows/{flow_id}/task","href":"/api-reference/flows/update-a-single-task-in-flow"},{"title":"List team invitations for a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/team-invitations","href":"/api-reference/flows/list-team-invitations-for-a-flow"},{"title":"Upsert team (worker group) invitations to a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/flows/{flow_id}/team-invitations","href":"/api-reference/flows/upsert-team-worker-group-invitations-to-a-flow"},{"title":"Remove team invitations from a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/flows/{flow_id}/team-invitations","href":"/api-reference/flows/remove-team-invitations-from-a-flow"},{"title":"Generate file upload URL","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flows/{flow_id}/upload-url","href":"/api-reference/flows/generate-file-upload-url"},{"title":"Validate a flow definition without persisting","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flows/{flow_id}/validate","href":"/api-reference/flows/validate-a-flow-definition-without-persisting"},{"title":"List all versions of a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/versions","href":"/api-reference/flows/list-all-versions-of-a-flow"},{"title":"List version summaries for a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/versions/summary","href":"/api-reference/flows/list-version-summaries-for-a-flow"},{"title":"Get specific flow version","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/versions/{version}","href":"/api-reference/flows/get-specific-flow-version"},{"title":"Update version metadata","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/flows/{flow_id}/versions/{version}","href":"/api-reference/flows/update-version-metadata"},{"title":"Restore a past version","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flows/{flow_id}/versions/{version}/restore","href":"/api-reference/flows/restore-a-past-version"},{"title":"List task summaries for flow version","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/versions/{version}/summary","href":"/api-reference/flows/list-task-summaries-for-flow-version"}]},{"group":"human-review-tasks","pages":[{"title":"List human review tasks assigned to the current user","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/human-review-tasks","href":"/api-reference/human-review-tasks/list-human-review-tasks-assigned-to-the-current-user"},{"title":"Create a new human review task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/human-review-tasks","href":"/api-reference/human-review-tasks/create-a-new-human-review-task"},{"title":"List human review tasks for a flow execution (org-level access)","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/human-review-tasks/by-execution","href":"/api-reference/human-review-tasks/list-human-review-tasks-for-a-flow-execution-org-level-access"},{"title":"Get a human review task by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/human-review-tasks/{task_id}","href":"/api-reference/human-review-tasks/get-a-human-review-task-by-id"},{"title":"List all assignments for a human review task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/human-review-tasks/{task_id}/assignments","href":"/api-reference/human-review-tasks/list-all-assignments-for-a-human-review-task"},{"title":"Complete a human review task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/human-review-tasks/{task_id}/complete","href":"/api-reference/human-review-tasks/complete-a-human-review-task"},{"title":"Start a human review task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/human-review-tasks/{task_id}/start","href":"/api-reference/human-review-tasks/start-a-human-review-task"},{"title":"Unstart a human review task assignment","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/human-review-tasks/{task_id}/unstart","href":"/api-reference/human-review-tasks/unstart-a-human-review-task-assignment"}]},{"group":"integrations","pages":[{"title":"List integration catalog","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/catalog","href":"/api-reference/integrations/list-integration-catalog"},{"title":"List user credentials","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/credentials","href":"/api-reference/integrations/list-user-credentials"},{"title":"Create integration credentials","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/credentials","href":"/api-reference/integrations/create-integration-credentials"},{"title":"List credentials by provider","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/credentials/provider/{provider}","href":"/api-reference/integrations/list-credentials-by-provider"},{"title":"Get credential by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/credentials/{credential_id}","href":"/api-reference/integrations/get-credential-by-id"},{"title":"Delete credential","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/integrations/credentials/{credential_id}","href":"/api-reference/integrations/delete-credential"},{"title":"Update credential","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/integrations/credentials/{credential_id}","href":"/api-reference/integrations/update-credential"},{"title":"Get credential secrets","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/credentials/{credential_id}/credentials","href":"/api-reference/integrations/get-credential-secrets"},{"title":"List user databases","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database","href":"/api-reference/integrations/list-user-databases"},{"title":"Create Database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database","href":"/api-reference/integrations/create-database"},{"title":"Create managed database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/managed","href":"/api-reference/integrations/create-managed-database"},{"title":"List tables in managed database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/managed/tables","href":"/api-reference/integrations/list-tables-in-managed-database"},{"title":"Create table in managed database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/managed/tables","href":"/api-reference/integrations/create-table-in-managed-database"},{"title":"Get table columns from managed database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/managed/tables/{table_name}/columns","href":"/api-reference/integrations/get-table-columns-from-managed-database"},{"title":"Get table data from managed database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/managed/tables/{table_name}/data","href":"/api-reference/integrations/get-table-data-from-managed-database"},{"title":"Query a managed-DB table with exact-match filters","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/managed/tables/{table_name}/query","href":"/api-reference/integrations/query-a-managed-db-table-with-exact-match-filters"},{"title":"Insert one row into a managed-DB table","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/managed/tables/{table_name}/rows","href":"/api-reference/integrations/insert-one-row-into-a-managed-db-table"},{"title":"Get database by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/{db_id}","href":"/api-reference/integrations/get-database-by-id"},{"title":"Delete database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/integrations/database/{db_id}","href":"/api-reference/integrations/delete-database"},{"title":"Get database columns","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/{db_id}/columns","href":"/api-reference/integrations/get-database-columns"},{"title":"Get Download Url","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/{db_id}/download","href":"/api-reference/integrations/get-download-url"},{"title":"Generate database upload URL","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/{db_id}/upload-url","href":"/api-reference/integrations/generate-database-upload-url"},{"title":"Compare Csv For Replace","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/{db_id}/upload/compare","href":"/api-reference/integrations/compare-csv-for-replace"},{"title":"Complete File Upload","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/{db_id}/upload/complete","href":"/api-reference/integrations/complete-file-upload"},{"title":"Preview CSV file before import","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/{db_id}/upload/preview","href":"/api-reference/integrations/preview-csv-file-before-import"},{"title":"Replace File Upload","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/{db_id}/upload/replace","href":"/api-reference/integrations/replace-file-upload"},{"title":"Process Emails","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/email/process","href":"/api-reference/integrations/process-emails"},{"title":"Create Email Task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/email/tasks","href":"/api-reference/integrations/create-email-task"},{"title":"Deactivate Email Task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/integrations/email/tasks","href":"/api-reference/integrations/deactivate-email-task"},{"title":"Get Email Task Status","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/email/tasks/{task_id}","href":"/api-reference/integrations/get-email-task-status"},{"title":"List all registered plugins","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/plugins/","href":"/api-reference/integrations/list-all-registered-plugins"},{"title":"Execute Postgres Plugin Task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/plugins/postgres/execute","href":"/api-reference/integrations/execute-postgres-plugin-task"},{"title":"Test Postgres Plugin Connection","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/plugins/postgres/test-connection","href":"/api-reference/integrations/test-postgres-plugin-connection"},{"title":"Get plugin capabilities","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/plugins/{plugin_name}/capabilities","href":"/api-reference/integrations/get-plugin-capabilities"},{"title":"Test Postgres Connection","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/postgres/test-connection","href":"/api-reference/integrations/test-postgres-connection"},{"title":"Test Postgres Connection By Credential Id","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/postgres/test-connection/{credential_id}","href":"/api-reference/integrations/test-postgres-connection-by-credential-id"},{"title":"Test Sftp Connection","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/sftp/test-connection","href":"/api-reference/integrations/test-sftp-connection"}]},{"group":"models","pages":[{"title":"List available models","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/models","href":"/api-reference/models/list-available-models"}]},{"group":"organizations","pages":[{"title":"Why this account is restricted, if it is","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/account-restriction","href":"/api-reference/organizations/why-this-account-is-restricted-if-it-is"},{"title":"Get credit balance for current user's organization","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/credits","href":"/api-reference/organizations/get-credit-balance-for-current-users-organization"},{"title":"List the email domains this organization has claimed","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/domains","href":"/api-reference/organizations/list-the-email-domains-this-organization-has-claimed"},{"title":"Claim an email domain for this organization","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/organizations/domains","href":"/api-reference/organizations/claim-an-email-domain-for-this-organization"},{"title":"Release a claimed email domain","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/organizations/domains/{claim_id}","href":"/api-reference/organizations/release-a-claimed-email-domain"},{"title":"List signups waiting on this organization's review","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/join-requests","href":"/api-reference/organizations/list-signups-waiting-on-this-organizations-review"},{"title":"Decline a signup request","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/organizations/join-requests/{request_id}/reject","href":"/api-reference/organizations/decline-a-signup-request"},{"title":"Update organization settings","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/organizations/settings","href":"/api-reference/organizations/update-organization-settings"},{"title":"List all worker groups","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/worker-groups","href":"/api-reference/organizations/list-all-worker-groups"},{"title":"Create a worker group","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/organizations/worker-groups","href":"/api-reference/organizations/create-a-worker-group"},{"title":"Get a worker group","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/worker-groups/{group_id}","href":"/api-reference/organizations/get-a-worker-group"},{"title":"Update a worker group","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/organizations/worker-groups/{group_id}","href":"/api-reference/organizations/update-a-worker-group"},{"title":"Delete a worker group","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/organizations/worker-groups/{group_id}","href":"/api-reference/organizations/delete-a-worker-group"},{"title":"Add or remove members from a worker group","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/organizations/worker-groups/{group_id}/members","href":"/api-reference/organizations/add-or-remove-members-from-a-worker-group"},{"title":"Get organization by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/{organization_id}","href":"/api-reference/organizations/get-organization-by-id"}]},{"group":"plugins","pages":[{"title":"List Instances","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/plugins/instances","href":"/api-reference/plugins/list-instances"},{"title":"List Integrations","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/plugins/{plugin_name}/instances","href":"/api-reference/plugins/list-integrations"},{"title":"Create Integration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/instances","href":"/api-reference/plugins/create-integration"},{"title":"Update Integration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/plugins/{plugin_name}/instances/{integration_id}","href":"/api-reference/plugins/update-integration"},{"title":"Delete Integration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/plugins/{plugin_name}/instances/{integration_id}","href":"/api-reference/plugins/delete-integration"},{"title":"Execute Integration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/instances/{integration_id}/execute","href":"/api-reference/plugins/execute-integration"},{"title":"Poll Integration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/instances/{integration_id}/poll","href":"/api-reference/plugins/poll-integration"},{"title":"Get Ui Schema","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/instances/{integration_id}/ui_schema","href":"/api-reference/plugins/get-ui-schema"},{"title":"Handle Webhook","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/instances/{integration_id}/webhook/callback","href":"/api-reference/plugins/handle-webhook"},{"title":"Oauth Authorize","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/oauth/authorize","href":"/api-reference/plugins/oauth-authorize"},{"title":"Oauth Callback","description":null,"deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/plugins/{plugin_name}/{provider_name}/oauth/callback","href":"/api-reference/plugins/oauth-callback"}]},{"group":"profile","pages":[{"title":"Record the caller's acceptance of one or more documents","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/profile/accept-terms","href":"/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents"},{"title":"Whether this account has a password and whether it is SSO-managed","description":"Answer what the account-settings password form may render (FLO-2735 G-2).\n\nStrictly self-scoped: the auth id comes from the caller's own ``users`` row, never\nfrom a parameter, so this cannot be pointed at anybody else. That is what separates\nit from the email-keyed ``get_auth_signin_options_by_email`` sibling, whose public\nendpoint was retired precisely because a caller chose the address it answered for.\n\nAnswers 503 when the state cannot be resolved, rather than guessing. An earlier\nversion failed open to ``has_password=False``, which looked kinder and was worse:\nthe form then renders \"Set a Password\" with no current-password field, the submit\nomits it, and ``POST /profile/password`` — which resolves the same fact from the\nsame RPC — answers ``current_password_required``, whose copy asks the user to\nreload, straight back into the same failing lookup. The most likely trigger is the\ndeploy window before this revision's RPC exists. An unknown state is a third\noutcome and the form renders a retry for it.","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/profile/credential-state","href":"/api-reference/profile/whether-this-account-has-a-password-and-whether-it-is-sso-managed"},{"title":"Grant or withdraw marketing consent","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/profile/marketing-consent","href":"/api-reference/profile/grant-or-withdraw-marketing-consent"},{"title":"Get current user profile","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/profile/me","href":"/api-reference/profile/get-current-user-profile"},{"title":"Update current user profile","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/profile/me","href":"/api-reference/profile/update-current-user-profile"},{"title":"Change the authenticated user's password","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/profile/password","href":"/api-reference/profile/change-the-authenticated-users-password"}]},{"group":"service-accounts","pages":[{"title":"List all service accounts","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/service-accounts","href":"/api-reference/service-accounts/list-all-service-accounts"},{"title":"Create a new service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/service-accounts","href":"/api-reference/service-accounts/create-a-new-service-account"},{"title":"Get a specific service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/service-accounts/{service_account_id}","href":"/api-reference/service-accounts/get-a-specific-service-account"},{"title":"Delete a service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/service-accounts/{service_account_id}","href":"/api-reference/service-accounts/delete-a-service-account"},{"title":"Update a service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/service-accounts/{service_account_id}","href":"/api-reference/service-accounts/update-a-service-account"},{"title":"List API keys for a service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/service-accounts/{service_account_id}/api-keys","href":"/api-reference/service-accounts/list-api-keys-for-a-service-account"},{"title":"Create an API key for a service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/service-accounts/{service_account_id}/api-keys","href":"/api-reference/service-accounts/create-an-api-key-for-a-service-account"},{"title":"Delete an API key","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/service-accounts/{service_account_id}/api-keys/{api_key_id}","href":"/api-reference/service-accounts/delete-an-api-key"},{"title":"Update an API key","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/service-accounts/{service_account_id}/api-keys/{api_key_id}","href":"/api-reference/service-accounts/update-an-api-key"}]},{"group":"sso","pages":[{"title":"Get SSO configuration for organization","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/sso","href":"/api-reference/sso/get-sso-configuration-for-organization"},{"title":"Create SSO configuration for organization","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/sso","href":"/api-reference/sso/create-sso-configuration-for-organization"},{"title":"Remove SSO configuration for organization","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/sso","href":"/api-reference/sso/remove-sso-configuration-for-organization"},{"title":"Update SSO metadata configuration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/sso","href":"/api-reference/sso/update-sso-metadata-configuration"},{"title":"Proxy SAML metadata to avoid CORS issues","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/sso/metadata","href":"/api-reference/sso/proxy-saml-metadata-to-avoid-cors-issues"},{"title":"Get Supabase SAML service-provider URLs","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/sso/service-provider-details","href":"/api-reference/sso/get-supabase-saml-service-provider-urls"}]},{"group":"task-data","pages":[{"title":"Analyze flow definition and extract schemas","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/task-data","href":"/api-reference/task-data/analyze-flow-definition-and-extract-schemas"}]},{"group":"task-executions","pages":[{"title":"List task executions with filtering","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-executions","href":"/api-reference/task-executions/list-task-executions-with-filtering"},{"title":"Update task execution and optionally re-execute flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/task-executions","href":"/api-reference/task-executions/update-task-execution-and-optionally-re-execute-flow"},{"title":"Create a task execution record","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/task-executions","href":"/api-reference/task-executions/create-a-task-execution-record"},{"title":"Retrieve a specific task execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-executions/{task_execution_id}","href":"/api-reference/task-executions/retrieve-a-specific-task-execution"}]},{"group":"task-executors","pages":[{"title":"List all available task executors","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-executors","href":"/api-reference/task-executors/list-all-available-task-executors"}]},{"group":"task-outputs","pages":[{"title":"List all task outputs","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-outputs","href":"/api-reference/task-outputs/list-all-task-outputs"},{"title":"Create task output","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/task-outputs","href":"/api-reference/task-outputs/create-task-output"},{"title":"Get task output by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-outputs/{task_output_id}","href":"/api-reference/task-outputs/get-task-output-by-id"}]},{"group":"task-tags","pages":[{"title":"List active task tags for a flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-tags","href":"/api-reference/task-tags/list-active-task-tags-for-a-flow-execution"},{"title":"Add or remove task tags in batch","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/task-tags","href":"/api-reference/task-tags/add-or-remove-task-tags-in-batch"}]}]}]},{"tab":"Changelog","icon":"bullhorn","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Record the caller's acceptance of one or more documents - SuperAI Flows","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}