{"openapi":"3.1.1","info":{"title":"Questionnaires API","version":"1.0.0","description":"JSON API for survey authoring and responses. Browser writes use a session cookie, same-origin Origin, and x-csrf-token. HTTPS deployments use the __Host-questionnaires_session cookie; HTTP development uses questionnaires_session. Bearer tokens use explicit scopes. Validation and publication POSTs have no request body."},"paths":{"/api/health":{"get":{"summary":"Check API and database health","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/openapi.json":{"get":{"summary":"Download generated API contract","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApi"}}}}}}},"/api/openapi.yaml":{"get":{"summary":"Download generated API contract in YAML compatible JSON","responses":{"200":{"description":"Successful response","content":{"application/yaml":{"schema":{"$ref":"#/components/schemas/OpenApi"}}}}}}},"/api/v1/public/{workspace}/{project}/{survey}":{"get":{"summary":"Read published survey","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyDefinition"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string"}},{"name":"project","in":"path","required":true,"schema":{"type":"string"}},{"name":"survey","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","required":false,"description":"Published version; omit for latest","schema":{"type":"integer","minimum":1}},{"name":"via","in":"query","required":false,"description":"Tracked link code; required when direct responses are disabled.","schema":{"type":"string"}},{"name":"embed","in":"query","required":false,"schema":{"type":"string","format":"uuid"},"description":"Enabled embed ID. Its configured tracked link must match via."}]}},"/api/v1/public/{workspace}/{project}/{survey}/page":{"get":{"summary":"Read published introduction page","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyPage"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string"}},{"name":"project","in":"path","required":true,"schema":{"type":"string"}},{"name":"survey","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","required":false,"description":"Published version; omit for latest","schema":{"type":"integer","minimum":1}},{"name":"via","in":"query","required":false,"description":"Tracked link code; required when direct responses are disabled.","schema":{"type":"string"}},{"name":"embed","in":"query","required":false,"schema":{"type":"string","format":"uuid"},"description":"Enabled embed ID. Its configured tracked link must match via."}]}},"/api/v1/me":{"get":{"summary":"Read signed in account","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/me/avatar":{"put":{"summary":"Upload or remove account image","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvatarResult"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvatarInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}],"parameters":[{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}]}},"/api/v1/me/profile":{"put":{"summary":"Edit public profile defaults","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileResult"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}],"parameters":[{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}]}},"/api/v1/workspaces/{id}/billing/checkout":{"post":{"summary":"Create or resume Stripe Checkout (owner session only)","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingRedirect"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,128}$"},"description":"Stable for retries of the same billing intention."},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyInput"}}}},"description":"Workspace owner session and CSRF required; authoring tokens cannot initiate billing. Explicit account/mode configuration; live requires guarded activation and a managed catalog. Purchase pause does not disable the existing-customer portal. Supply an empty JSON object and a new idempotency key for a new intention; reuse on retry. Customer, price, quote, and return URLs are server controlled. A Stripe return never grants Pro. Ambiguous provider requests retain their identity and may require operator recovery.","security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/workspaces/{id}/billing/portal":{"post":{"summary":"Open Stripe customer portal (owner session only)","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingRedirect"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,128}$"},"description":"Stable for retries of the same billing intention."},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyInput"}}}},"description":"Workspace owner session and CSRF required; authoring tokens cannot initiate billing. Explicit account/mode configuration; live requires guarded activation and a managed catalog. Purchase pause does not disable the existing-customer portal. Supply an empty JSON object and a new idempotency key for a new intention; reuse on retry. Customer, price, quote, and return URLs are server controlled. A Stripe return never grants Pro. Ambiguous provider requests retain their identity and may require operator recovery.","security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/workspaces/{id}/billing":{"get":{"summary":"Read workspace plan and saved-start usage (owner or admin session)","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceUsage"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/workspaces":{"get":{"summary":"List accessible spaces","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceList"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/workspaces/personal":{"post":{"summary":"Create personal space","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreated"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreate"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}],"parameters":[{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}]}},"/api/v1/workspaces/team":{"post":{"summary":"Create team space","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreated"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamWorkspaceCreate"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}],"parameters":[{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}]}},"/api/v1/workspaces/{workspaceId}":{"patch":{"summary":"Rename space","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceRenamed"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceRename"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/workspaces/{workspaceId}/members":{"get":{"summary":"List members","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Members"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/workspaces/{workspaceId}/members/{userId}":{"patch":{"summary":"Change member role","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberRoleResult"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberRoleInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]},"delete":{"summary":"Remove a member or leave a team","responses":{"204":{"description":"No content"},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/workspaces/{workspaceId}/invitations":{"get":{"summary":"List invitations","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Invitations"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]}]},"post":{"summary":"Create invitation","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationCreated"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/workspaces/{workspaceId}/audit":{"get":{"summary":"Read workspace audit history","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Audit"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/invitations/accept":{"post":{"summary":"Accept invitation","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationAccepted"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationAccept"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}],"parameters":[{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}]}},"/api/v1/workspaces/{workspaceId}/tokens":{"get":{"summary":"List API tokens","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tokens"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]}]},"post":{"summary":"Issue API token","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenCreated"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/workspaces/{workspaceId}/tokens/{tokenId}":{"delete":{"summary":"Revoke API token","responses":{"204":{"description":"No content"},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tokenId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/projects":{"get":{"summary":"List projects","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Projects"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]},"post":{"summary":"Create project","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCreated"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}],"parameters":[{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}]}},"/api/v1/projects/{projectId}":{"patch":{"summary":"Update project details","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResult"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpdate"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]},"get":{"summary":"Read project","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResult"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/projects/{projectId}/surveys":{"get":{"summary":"List surveys","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Surveys"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]},"post":{"summary":"Create survey","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyCreated"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":false,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyCreate"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}":{"get":{"summary":"Read survey draft","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyDraft"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/draft":{"get":{"summary":"Read survey draft by explicit draft path","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyDraft"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]},"put":{"summary":"Save survey draft","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DraftSaved"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":false,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DraftInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/validate":{"post":{"summary":"Validate survey draft","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Validated"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":false,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/publish":{"post":{"summary":"Publish survey","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Published"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":false,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/protection":{"get":{"summary":"Read live survey protection","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectionSettings"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]}]},"put":{"summary":"Set live survey protection","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectionSettings"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectionInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/surveys/{surveyId}/embeds":{"get":{"summary":"Read inline embed settings","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbedSettings"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]}]},"put":{"summary":"Configure inline embed","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbedSettings"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbedInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/surveys/{surveyId}/research-deletions":{"get":{"summary":"Preview owner research deletion","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionPreview"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Workspace owner session only; all tokens are denied. Browser writes require Origin and CSRF. Confirmed intent closes collection; POST advance commits one bounded purge batch and can be retried. No response payload is retained in receipts. Completed capacity is not reset.","security":[{"cookieSession":[]},{"secureCookieSession":[]}]},"post":{"summary":"Request owner research deletion","responses":{"202":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionJob"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,128}$"},"description":"Stable request identity; reuse for retries. A different scope or reason with this key returns 409."},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionInput"}}}},"description":"Workspace owner session only; all tokens are denied. Browser writes require Origin and CSRF. Confirmed intent closes collection; POST advance commits one bounded purge batch and can be retried. No response payload is retained in receipts. Completed capacity is not reset.","security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/surveys/{surveyId}/research-deletions/{deletionId}":{"get":{"summary":"Read sanitized deletion receipt","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionJob"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"deletionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Workspace owner session only; all tokens are denied. Browser writes require Origin and CSRF. Confirmed intent closes collection; POST advance commits one bounded purge batch and can be retried. No response payload is retained in receipts. Completed capacity is not reset.","security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/surveys/{surveyId}/research-deletions/{deletionId}/advance":{"post":{"summary":"Resume bounded owner deletion","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionJob"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"deletionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyInput"}}}},"description":"Workspace owner session only; all tokens are denied. Browser writes require Origin and CSRF. Confirmed intent closes collection; POST advance commits one bounded purge batch and can be retried. No response payload is retained in receipts. Completed capacity is not reset.","security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/projects/{projectId}/research-deletions":{"get":{"summary":"Preview owner research deletion","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionPreview"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Workspace owner session only; all tokens are denied. Browser writes require Origin and CSRF. Confirmed intent closes collection; POST advance commits one bounded purge batch and can be retried. No response payload is retained in receipts. Completed capacity is not reset.","security":[{"cookieSession":[]},{"secureCookieSession":[]}]},"post":{"summary":"Request owner research deletion","responses":{"202":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionJob"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,128}$"},"description":"Stable request identity; reuse for retries. A different scope or reason with this key returns 409."},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionInput"}}}},"description":"Workspace owner session only; all tokens are denied. Browser writes require Origin and CSRF. Confirmed intent closes collection; POST advance commits one bounded purge batch and can be retried. No response payload is retained in receipts. Completed capacity is not reset.","security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/projects/{projectId}/research-deletions/{deletionId}":{"get":{"summary":"Read sanitized deletion receipt","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionJob"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"deletionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Workspace owner session only; all tokens are denied. Browser writes require Origin and CSRF. Confirmed intent closes collection; POST advance commits one bounded purge batch and can be retried. No response payload is retained in receipts. Completed capacity is not reset.","security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/projects/{projectId}/research-deletions/{deletionId}/advance":{"post":{"summary":"Resume bounded owner deletion","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionJob"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"deletionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyInput"}}}},"description":"Workspace owner session only; all tokens are denied. Browser writes require Origin and CSRF. Confirmed intent closes collection; POST advance commits one bounded purge batch and can be retried. No response payload is retained in receipts. Completed capacity is not reset.","security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/surveys/{surveyId}/research-brief":{"get":{"summary":"Read project research brief","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchBriefResult"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Private workspace/project-scoped research. Reads and CSV exports require responses:read. Writes additionally require reports:write and an editor role. Saved runs freeze versions, event manifest, filters, brief and engine; they remain independent of the 24-hour snapshot cache. Employee aggregate suppression does not remove authorized raw access.","security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]},"put":{"summary":"Save project research brief","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchBriefResult"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":false,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchBriefInput"}}}},"description":"Private workspace/project-scoped research. Reads and CSV exports require responses:read. Writes additionally require reports:write and an editor role. Saved runs freeze versions, event manifest, filters, brief and engine; they remain independent of the 24-hour snapshot cache. Employee aggregate suppression does not remove authorized raw access.","security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/analysis-runs":{"get":{"summary":"List saved private reports","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRunList"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"after","in":"query","required":false,"schema":{"type":"string","format":"uuid"},"description":"Opaque nextCursor from the prior page, up to 50 runs in descending UUID order."}],"description":"Private workspace/project-scoped research. Reads and CSV exports require responses:read. Writes additionally require reports:write and an editor role. Saved runs freeze versions, event manifest, filters, brief and engine; they remain independent of the 24-hour snapshot cache. Employee aggregate suppression does not remove authorized raw access.","security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]},"post":{"summary":"Save immutable private report","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRun"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,128}$"},"description":"Reuse for retries of the same snapshot/title; changed parameters return 409."},{"name":"x-csrf-token","in":"header","required":false,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRunInput"}}}},"description":"Private workspace/project-scoped research. Reads and CSV exports require responses:read. Writes additionally require reports:write and an editor role. Saved runs freeze versions, event manifest, filters, brief and engine; they remain independent of the 24-hour snapshot cache. Employee aggregate suppression does not remove authorized raw access.","security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/analysis-runs/{runId}":{"get":{"summary":"Read saved private report","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRun"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"runId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Private workspace/project-scoped research. Reads and CSV exports require responses:read. Writes additionally require reports:write and an editor role. Saved runs freeze versions, event manifest, filters, brief and engine; they remain independent of the 24-hour snapshot cache. Employee aggregate suppression does not remove authorized raw access.","security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/exports/responses.csv":{"get":{"summary":"Export complete raw response dataset","responses":{"200":{"description":"Successful response","content":{"text/csv":{"schema":{"$ref":"#/components/schemas/Csv"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshot","in":"query","required":false,"schema":{"type":"string","format":"uuid"},"description":"Exactly one of snapshot or run is required. Snapshot must belong to this actor and be unexpired."},{"name":"run","in":"query","required":false,"schema":{"type":"string","format":"uuid"},"description":"Exactly one of snapshot or run is required. Snapshot must belong to this actor and be unexpired."}],"description":"Private workspace/project-scoped research. Reads and CSV exports require responses:read. Writes additionally require reports:write and an editor role. Saved runs freeze versions, event manifest, filters, brief and engine; they remain independent of the 24-hour snapshot cache. Employee aggregate suppression does not remove authorized raw access.","security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/exports/codebook.csv":{"get":{"summary":"Export versioned question codebook","responses":{"200":{"description":"Successful response","content":{"text/csv":{"schema":{"$ref":"#/components/schemas/Csv"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshot","in":"query","required":false,"schema":{"type":"string","format":"uuid"},"description":"Exactly one of snapshot or run is required. Snapshot must belong to this actor and be unexpired."},{"name":"run","in":"query","required":false,"schema":{"type":"string","format":"uuid"},"description":"Exactly one of snapshot or run is required. Snapshot must belong to this actor and be unexpired."}],"description":"Private workspace/project-scoped research. Reads and CSV exports require responses:read. Writes additionally require reports:write and an editor role. Saved runs freeze versions, event manifest, filters, brief and engine; they remain independent of the 24-hour snapshot cache. Employee aggregate suppression does not remove authorized raw access.","security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/exports/aggregates.csv":{"get":{"summary":"Export protected descriptive aggregates","responses":{"200":{"description":"Successful response","content":{"text/csv":{"schema":{"$ref":"#/components/schemas/Csv"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshot","in":"query","required":false,"schema":{"type":"string","format":"uuid"},"description":"Exactly one of snapshot or run is required. Snapshot must belong to this actor and be unexpired."},{"name":"run","in":"query","required":false,"schema":{"type":"string","format":"uuid"},"description":"Exactly one of snapshot or run is required. Snapshot must belong to this actor and be unexpired."}],"description":"Private workspace/project-scoped research. Reads and CSV exports require responses:read. Writes additionally require reports:write and an editor role. Saved runs freeze versions, event manifest, filters, brief and engine; they remain independent of the 24-hour snapshot cache. Employee aggregate suppression does not remove authorized raw access.","security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/results":{"get":{"summary":"Read survey responses","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Results"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"description":"Bounded response page size; aggregates always use the complete cohort.","in":"query","required":false},{"name":"snapshot","schema":{"type":"string","format":"uuid"},"description":"Snapshot ID returned by the first request; omit to refresh.","in":"query","required":false},{"name":"after","schema":{"type":"string","format":"uuid"},"description":"Opaque nextCursor returned by the previous page; requires snapshot.","in":"query","required":false},{"name":"version","schema":{"type":"integer","minimum":1},"description":"Published version. Omit for all, analyzed separately.","in":"query","required":false},{"name":"outcome","schema":{"type":"string","enum":["complete","screened_out","partial","in_progress"]},"description":"Latest accepted session outcome.","in":"query","required":false},{"name":"link","schema":{"type":"string"},"description":"Tracked link UUID or direct; omitted means all links.","in":"query","required":false},{"name":"from","schema":{"type":"string","format":"date-time"},"description":"Latest accepted event time, inclusive.","in":"query","required":false},{"name":"to","schema":{"type":"string","format":"date-time"},"description":"Latest accepted event time, exclusive.","in":"query","required":false}],"description":"Complete latest-event dataset, captured atomically. Each version is analyzed separately. Snapshot is private to the current user or token, expires after 24 hours, and only ten snapshots per actor/survey are retained. Recheck permissions on every page. Refresh without snapshot for new events or filters.","security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/links":{"get":{"summary":"List tracked survey links","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyLinks"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]},"post":{"summary":"Create a tracked survey link","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyLink"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyLinkInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/survey-links/{linkId}":{"patch":{"summary":"Rename a tracked survey link","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyLink"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"linkId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyLinkRename"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/surveys/{surveyId}/link-results":{"get":{"summary":"Read saved starts and outcomes by tracked link","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkResults"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"version","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/survey-links/{linkId}/qr.svg":{"get":{"summary":"Download tracked link SVG QR","responses":{"200":{"description":"Successful response","content":{"image/svg+xml":{"schema":{"$ref":"#/components/schemas/QrSvg"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"linkId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/survey-links/{linkId}/qr.png":{"get":{"summary":"Download tracked link PNG QR","responses":{"200":{"description":"Successful response","content":{"image/png":{"schema":{"$ref":"#/components/schemas/QrPng"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"linkId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","enum":[1024,2048]}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]},{"bearerToken":[]}]}},"/api/v1/surveys/{surveyId}/collection":{"put":{"summary":"Set survey availability, direct entry and qualified-completion cap","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionWindow"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"surveyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionInput"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/plans":{"get":{"summary":"Read advertised plan features and base price (not a checkout quote)","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPlans"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/workspaces/{workspaceId}/features":{"get":{"summary":"Read effective workspace capabilities","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceFeatures"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/v1/workspaces/{workspaceId}/included-team":{"get":{"summary":"Read included-team selection","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncludedTeamDetails"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"security":[{"cookieSession":[]},{"secureCookieSession":[]}]},"put":{"summary":"Select the included team","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncludedTeamDetails"}}}},"400":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed; code and message explain the error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-csrf-token","in":"header","required":true,"description":"Required for browser session writes; omitted for bearer-token requests. Session writes also require a same-origin Origin header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncludedTeamSelection"}}}},"security":[{"cookieSession":[]},{"secureCookieSession":[]}]}},"/api/docs":{"get":{"summary":"View interactive API reference","responses":{"200":{"description":"Successful response","content":{"text/html":{"schema":{"$ref":"#/components/schemas/Html"}}}}}}}},"components":{"schemas":{"PublicPlans":{"type":"object","properties":{"features":{"type":"object","properties":{"free":{"type":"object","additionalProperties":{"type":"boolean"}},"pro":{"type":"object","additionalProperties":{"type":"boolean"}}},"required":["free","pro"],"additionalProperties":true},"baseCents":{"type":["integer","null"]},"currency":{"type":"string","enum":["usd"]}},"required":["features","baseCents","currency"],"additionalProperties":true},"IncludedTeamSelection":{"type":"object","properties":{"teamId":{"type":["string","null"],"format":"uuid"},"expectedTeamId":{"type":["string","null"],"format":"uuid"}},"required":["teamId","expectedTeamId"],"additionalProperties":false},"IncludedTeamDetails":{"type":"object","properties":{"activation":{"type":"string","enum":["active"]},"selectedTeamId":{"type":["string","null"],"format":"uuid"},"canSelect":{"type":"boolean"},"teams":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"reason":{"type":["string","null"]}},"required":["id","name","reason"],"additionalProperties":true}}},"required":["activation","selectedTeamId","canSelect","teams"],"additionalProperties":true},"WorkspaceFeatures":{"type":"object","properties":{"plan":{"type":"string","enum":["free","pro"]},"policyRevision":{"type":"string"},"features":{"type":"object","properties":{"api":{"type":"boolean"},"embeds":{"type":"boolean"},"theming":{"type":"boolean"},"teams":{"type":"boolean"},"mcp":{"type":"boolean"},"challenge":{"type":"boolean"},"removeBranding":{"type":"boolean"}},"required":["api","embeds","theming","teams","mcp","challenge","removeBranding"],"additionalProperties":true}},"required":["plan","policyRevision","features"],"additionalProperties":true},"Ok":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"],"additionalProperties":true},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}},"required":["error"],"additionalProperties":true},"Health":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"],"additionalProperties":true},"OpenApi":{"type":"object","properties":{"openapi":{"type":"string"},"info":{"type":"object","properties":{"title":{"type":"string"},"version":{"type":"string"},"description":{"type":"string"}},"required":["title","version","description"],"additionalProperties":true},"paths":{"type":"object"},"components":{"type":"object"}},"required":["openapi","info","paths","components"],"additionalProperties":true},"Html":{"type":"string","description":"Interactive Swagger UI HTML page."},"Workspace":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["personal","team"]},"role":{"type":"string","enum":["owner","admin","researcher","viewer"]}},"required":["id","slug","name","kind","role"],"additionalProperties":true},"User":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"contactEmail":{"type":["string","null"]},"websiteUrl":{"type":["string","null"]},"avatarDataUrl":{"type":["string","null"]}},"required":["id","email","name","contactEmail","websiteUrl","avatarDataUrl"],"additionalProperties":true},"Me":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"},"workspace":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"}},"required":["id","slug"],"additionalProperties":true},{"type":"null"}]},"workspaces":{"type":"array","items":{"$ref":"#/components/schemas/Workspace"}},"csrfToken":{"type":"string"},"staffRole":{"type":["string","null"],"enum":["support","operations","security",null]}},"required":["user","workspace","workspaces","csrfToken","staffRole"],"additionalProperties":true},"AvatarInput":{"type":"object","properties":{"avatarDataUrl":{"type":["string","null"]}},"required":["avatarDataUrl"],"additionalProperties":true},"AvatarResult":{"type":"object","properties":{"avatarDataUrl":{"type":["string","null"]}},"required":["avatarDataUrl"],"additionalProperties":true},"ProfileInput":{"type":"object","properties":{"name":{"type":"string"},"contactEmail":{"type":["string","null"]},"websiteUrl":{"type":["string","null"]}},"required":["name","contactEmail","websiteUrl"],"additionalProperties":true},"ProfileResult":{"type":"object","properties":{"name":{"type":"string"},"contactEmail":{"type":["string","null"]},"websiteUrl":{"type":["string","null"]}},"required":["name","contactEmail","websiteUrl"],"additionalProperties":true},"WorkspaceList":{"type":"object","properties":{"workspaces":{"type":"array","items":{"$ref":"#/components/schemas/Workspace"}}},"required":["workspaces"],"additionalProperties":true},"WorkspaceCreate":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}},"required":["slug"],"additionalProperties":true},"TeamWorkspaceCreate":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}},"required":["slug","name"],"additionalProperties":true},"WorkspaceCreated":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug"],"additionalProperties":true},"BillingRedirect":{"type":"object","properties":{"url":{"type":"string"},"mode":{"type":"string","enum":["sandbox","live"]}},"required":["url","mode"],"additionalProperties":true},"BillingOffer":{"type":"object","properties":{"available":{"type":"boolean"},"paused":{"type":"boolean"},"portalAvailable":{"type":"boolean"},"unavailableReason":{"type":["string","null"]},"mode":{"type":"string","enum":["sandbox","live"]},"currency":{"type":"string"},"baseCents":{"type":"integer"},"feeCents":{"type":["integer","null"]},"tax":{"type":"string"},"planRevision":{"type":"string"},"hasCustomer":{"type":"boolean"},"checkoutState":{"type":["string","null"]},"includedTeam":{"type":"boolean"}},"required":["available","paused","portalAvailable","unavailableReason","mode","currency","baseCents","feeCents","tax","planRevision","hasCustomer","checkoutState","includedTeam"],"additionalProperties":true},"WorkspaceUsage":{"type":"object","properties":{"usageScope":{"type":"string","enum":["workspace","personal_and_team"]},"billingState":{"type":["string","null"],"enum":["free","active","canceling","grace","verification_hold",null]},"billingDeadline":{"type":["string","null"],"format":"date-time"},"billing":{"$ref":"#/components/schemas/BillingOffer"},"plan":{"type":"string","enum":["free","pro"]},"planRevision":{"type":"string"},"periodStart":{"type":"string","format":"date-time"},"periodEnd":{"type":"string","format":"date-time"},"allowance":{"type":"integer"},"used":{"type":"integer"},"remaining":{"type":"integer"},"enforced":{"type":"boolean"}},"required":["usageScope","billingState","billingDeadline","billing","plan","planRevision","periodStart","periodEnd","allowance","used","remaining","enforced"],"additionalProperties":true},"WorkspaceRename":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"additionalProperties":true},"WorkspaceRenamed":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":true},"Member":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"display_name":{"type":"string"},"role":{"type":"string","enum":["owner","admin","researcher","viewer"]}},"required":["id","email","display_name","role"],"additionalProperties":true},"Members":{"type":"object","properties":{"members":{"type":"array","items":{"$ref":"#/components/schemas/Member"}}},"required":["members"],"additionalProperties":true},"MemberRoleInput":{"type":"object","properties":{"role":{"type":"string","enum":["owner","admin","researcher","viewer"]}},"required":["role"],"additionalProperties":true},"MemberRoleResult":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["owner","admin","researcher","viewer"]}},"required":["userId","role"],"additionalProperties":true},"Invitation":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","admin","researcher","viewer"]},"expires_at":{"type":"string","format":"date-time"},"accepted_at":{"type":["string","null"],"format":"date-time"},"revoked_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"email_status":{"type":["string","null"]}},"required":["id","email","role","expires_at","accepted_at","revoked_at","created_at","email_status"],"additionalProperties":true},"Invitations":{"type":"object","properties":{"invitations":{"type":"array","items":{"$ref":"#/components/schemas/Invitation"}}},"required":["invitations"],"additionalProperties":true},"InvitationInput":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["admin","researcher","viewer"]}},"required":["email","role"],"additionalProperties":true},"InvitationCreated":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"token":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"emailStatus":{"type":"string"}},"required":["id","token","expiresAt","emailStatus"],"additionalProperties":true},"InvitationAccept":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"],"additionalProperties":true},"InvitationAccepted":{"type":"object","properties":{"workspaceId":{"type":"string","format":"uuid"}},"required":["workspaceId"],"additionalProperties":true},"AuditEvent":{"type":"object","properties":{"id":{"type":"string"},"action":{"type":"string"},"resource_id":{"type":["string","null"],"format":"uuid"},"created_at":{"type":"string","format":"date-time"},"actor_name":{"type":["string","null"]},"reason":{"type":["string","null"]},"request_id":{"type":["string","null"],"format":"uuid"}},"required":["id","action","resource_id","created_at","actor_name","reason","request_id"],"additionalProperties":true},"Audit":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/AuditEvent"}}},"required":["events"],"additionalProperties":true},"Token":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["personal","service"]},"name":{"type":"string"},"prefix":{"type":"string"},"scopes":{"type":"array","items":{"type":"string","enum":["*","projects:read","reports:write","responses:read","surveys:*","surveys:create","surveys:publish","surveys:read","surveys:write"]}},"project_id":{"type":["string","null"],"format":"uuid"},"expires_at":{"type":"string","format":"date-time"},"revoked_at":{"type":["string","null"],"format":"date-time"},"last_used_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"}},"required":["id","kind","name","prefix","scopes","project_id","expires_at","revoked_at","last_used_at","created_at"],"additionalProperties":true},"Tokens":{"type":"object","properties":{"tokens":{"type":"array","items":{"$ref":"#/components/schemas/Token"}}},"required":["tokens"],"additionalProperties":true},"TokenInput":{"type":"object","properties":{"kind":{"type":"string","enum":["personal","service"]},"name":{"type":"string"},"scopes":{"type":"array","items":{"type":"string","enum":["*","projects:read","reports:write","responses:read","surveys:*","surveys:create","surveys:publish","surveys:read","surveys:write"]}},"expiresInDays":{"type":"integer"},"projectId":{"type":["string","null"],"format":"uuid"}},"required":["kind","name","scopes","expiresInDays"],"additionalProperties":true},"TokenCreated":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"secret":{"type":"string"},"prefix":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"scopes":{"type":"array","items":{"type":"string","enum":["*","projects:read","reports:write","responses:read","surveys:*","surveys:create","surveys:publish","surveys:read","surveys:write"]}}},"required":["id","secret","prefix","kind","name","scopes"],"additionalProperties":true},"Project":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"objective":{"type":"string"},"workspace_slug":{"type":"string"}},"required":["id","slug","title","objective"],"additionalProperties":true},"ProjectUpdate":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":160},"objective":{"type":"string","maxLength":2000}},"required":["title","objective"],"additionalProperties":true},"ProjectInput":{"type":"object","properties":{"workspaceId":{"type":"string","format":"uuid"},"title":{"type":"string"},"slug":{"type":"string"},"objective":{"type":"string"}},"required":["title","slug"],"additionalProperties":true},"ProjectCreated":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"objective":{"type":"string"}},"required":["id","slug","title","objective"],"additionalProperties":true},"Projects":{"type":"object","properties":{"projects":{"type":"array","items":{"$ref":"#/components/schemas/Project"}}},"required":["projects"],"additionalProperties":true},"ProjectResult":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/Project"}},"required":["project"],"additionalProperties":true},"SurveySummary":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"published_version":{"type":["integer","null"]},"draft_revision":{"type":"integer"},"started_count":{"type":"integer"},"completed_count":{"type":"integer"}},"required":["id","slug","title","published_version","draft_revision","started_count","completed_count"],"additionalProperties":true},"Surveys":{"type":"object","properties":{"surveys":{"type":"array","items":{"$ref":"#/components/schemas/SurveySummary"}}},"required":["surveys"],"additionalProperties":true},"SurveyCreate":{"type":"object","properties":{"title":{"type":"string"},"slug":{"type":"string"},"surveyDate":{"type":"string","format":"date","description":"Real calendar date YYYY-MM-DD; defaults to UTC creation date when omitted. Browser sends local creation date."}},"required":["title","slug"],"additionalProperties":true},"SurveyCreated":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"themeReset":{"type":"boolean","description":"True when a template appearance was reset to the default for current feature access."}},"required":["id","slug","title"],"additionalProperties":true},"Question":{"type":"object","properties":{"type":{"type":"string","enum":["single_choice","multiple_choice","yes_no","text","long_text","number","rating"]},"text":{"type":"string"},"description":{"type":"string"},"required":{"type":"boolean"},"options":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"allows_text":{"type":"boolean"},"imageDataUrl":{"type":"string"}},"required":["id","label"],"additionalProperties":true}},"validation":{"type":"object","additionalProperties":true},"rating":{"type":"object","properties":{"min":{"type":"integer"},"max":{"type":"integer"},"labels":{"type":"object","properties":{"min":{"type":"string"},"max":{"type":"string"}},"required":["min","max"],"additionalProperties":true}},"required":["min","max"],"additionalProperties":true},"presentation":{"type":"object","properties":{"placeholder":{"type":"string"},"help_text":{"type":"string"}},"required":[],"additionalProperties":true}},"required":["type","text","required"],"additionalProperties":true},"Transition":{"type":"object","properties":{"id":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"condition":{"type":"object","description":"Nested all/any conditions or question/operator/value comparison."},"default":{"type":"boolean"}},"required":["id","from","to"],"additionalProperties":true},"SurveyDefinition":{"type":"object","properties":{"id":{"type":"string"},"version":{"type":"integer"},"status":{"type":"string","enum":["draft","active","closed"]},"metadata":{"type":"object","properties":{"format":{"type":"string","enum":["survey","poll","evaluation"]},"template":{"description":"Read-only starter attribution maintained by the application."},"title":{"type":"string"},"description":{"type":"string"},"estimated_minutes":{"type":"integer"},"language":{"type":"string"}},"required":["title"],"additionalProperties":true},"settings":{"type":"object","properties":{"show_progress":{"type":"boolean"},"allow_back":{"type":"boolean"},"allow_resume":{"type":"boolean"},"persist_answers":{"type":"boolean"},"require_completion":{"type":"boolean"}},"required":["show_progress","allow_back","allow_resume","persist_answers","require_completion"],"additionalProperties":true},"intro":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"button_text":{"type":"string"}},"required":["title","description"],"additionalProperties":true},"questions":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Question"}},"flow":{"type":"object","properties":{"start":{"type":"string"},"transitions":{"type":"array","items":{"$ref":"#/components/schemas/Transition"}}},"required":["start","transitions"],"additionalProperties":true},"completion":{"type":"object","properties":{"completed":{"$ref":"#/components/schemas/Ending"},"screened_out":{"$ref":"#/components/schemas/Ending"},"screen_outs":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Ending"}}},"required":["completed","screened_out"],"additionalProperties":true}},"required":["id","version","status","metadata","settings","intro","questions","flow","completion"],"additionalProperties":true},"Ending":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"}},"required":["title","description"],"additionalProperties":true},"ThemePalette":{"type":"object","properties":{"accent":{"type":"string","pattern":"^#[A-Fa-f0-9]{6}$"},"background":{"type":"string","pattern":"^#[A-Fa-f0-9]{6}$"},"text":{"type":"string","pattern":"^#[A-Fa-f0-9]{6}$"}},"required":["accent","background","text"],"additionalProperties":true},"SurveyTheme":{"type":"object","properties":{"schemaVersion":{"type":"integer","enum":[1]},"preset":{"type":"string","enum":["clean"]},"mode":{"type":"string","enum":["system","light","dark"]},"light":{"$ref":"#/components/schemas/ThemePalette"},"dark":{"$ref":"#/components/schemas/ThemePalette"},"font":{"type":"string","enum":["system-sans","system-serif"]},"shape":{"type":"string","enum":["square","rounded","pill"]},"logo":{"type":"object","properties":{"src":{"type":"string"},"alt":{"type":"string"}},"required":["src","alt"],"additionalProperties":true},"showPlatformBranding":{"type":"boolean"}},"required":["schemaVersion","preset","mode","light","dark","font","shape","showPlatformBranding"],"additionalProperties":true},"ProtectionInput":{"type":"object","properties":{"mode":{"type":"string","enum":["standard","challenge"]},"revision":{"type":"integer"}},"required":["mode","revision"],"additionalProperties":true},"ProtectionSettings":{"type":"object","properties":{"mode":{"type":"string","enum":["standard","challenge"]},"revision":{"type":"integer"},"eligible":{"type":"boolean"},"configured":{"type":"boolean"}},"required":["mode","revision"],"additionalProperties":true},"EmbedInput":{"type":"object","properties":{"enabled":{"type":"boolean"},"origins":{"type":"array","items":{"type":"string"}},"linkId":{"type":["string","null"],"format":"uuid"},"completionEvents":{"type":"boolean"},"revision":{"type":"integer"}},"required":["enabled","origins","linkId","completionEvents","revision"],"additionalProperties":true},"EmbedSettings":{"type":"object","properties":{"eligible":{"type":"boolean"},"id":{"type":["string","null"],"format":"uuid"},"enabled":{"type":"boolean"},"origins":{"type":"array","items":{"type":"string"}},"linkId":{"type":["string","null"],"format":"uuid"},"completionEvents":{"type":"boolean"},"revision":{"type":"integer"}},"required":["eligible","id","enabled","origins","linkId","completionEvents","revision"],"additionalProperties":true},"SurveyPage":{"type":"object","properties":{"theme":{"$ref":"#/components/schemas/SurveyTheme"},"surveyDate":{"type":"string","format":"date","description":"Optional descriptive date, immutable per publication; does not control collection."},"preset":{"type":"string","enum":["research","simple"]},"organization":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"contactEmail":{"type":"string"},"avatarDataUrl":{"type":"string"}},"required":["name"],"additionalProperties":true},"purpose":{"type":"string"},"dataUse":{"type":"string"},"participation":{"type":"string"},"terms":{"type":"string"},"privacy":{"type":"string"},"images":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string"},"alt":{"type":"string"},"caption":{"type":"string"}},"required":["src","alt"],"additionalProperties":true}},"sections":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"text":{"type":"string"}},"required":["title","text"],"additionalProperties":true}}},"required":["preset","organization","purpose","dataUse","images"],"additionalProperties":true},"SurveyDraft":{"type":"object","properties":{"format":{"type":"string","enum":["survey","poll","evaluation"]},"template":{"description":"Read-only starter attribution maintained by the application."},"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"projectId":{"type":"string","format":"uuid"},"workspaceSlug":{"type":"string"},"projectSlug":{"type":"string"},"definition":{"$ref":"#/components/schemas/SurveyDefinition"},"page":{"$ref":"#/components/schemas/SurveyPage"},"draftRevision":{"type":"integer"},"publishedVersion":{"type":["integer","null"]},"collection":{"$ref":"#/components/schemas/CollectionWindow"}},"required":["format","template","id","slug","title","projectId","workspaceSlug","projectSlug","definition","page","draftRevision","publishedVersion","collection"],"additionalProperties":true},"PublishInput":{"type":"object","properties":{"draftRevision":{"type":"integer","minimum":1,"description":"Optional optimistic concurrency precondition: publish only this reviewed saved revision. A mismatch returns 409."}},"required":[],"additionalProperties":true},"DraftInput":{"type":"object","properties":{"definition":{"$ref":"#/components/schemas/DraftDefinition"},"page":{"$ref":"#/components/schemas/SurveyPage"},"draftRevision":{"type":"integer"},"format":{"type":"string","enum":["survey","poll","evaluation"]},"confirmFormatChange":{"type":"boolean","description":"Required true when format changes; changes guidance only and preserves the submitted graph."}},"required":["definition","page","draftRevision"],"additionalProperties":true},"DraftSaved":{"type":"object","properties":{"draftRevision":{"type":"integer"}},"required":["draftRevision"],"additionalProperties":true},"Validated":{"type":"object","properties":{"valid":{"type":"boolean"}},"required":["valid"],"additionalProperties":true},"Published":{"type":"object","properties":{"version":{"type":"integer"},"url":{"type":"string"}},"required":["version","url"],"additionalProperties":true},"CollectedResponse":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"sessionId":{"type":"string","format":"uuid"},"respondentId":{"type":"string","format":"uuid"},"version":{"type":"integer"},"revision":{"type":"integer"},"startedAt":{"type":"string","format":"date-time"},"via":{"type":"string"},"finished":{"type":"boolean"},"answers":{"type":"array","items":{"type":"object","properties":{"questionId":{"type":"string"},"answer":{"oneOf":[{"oneOf":[{"type":"string"},{"type":"object","properties":{"option":{"type":"string"},"text":{"type":"string"}},"required":["option","text"],"additionalProperties":true}]},{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"object","properties":{"option":{"type":"string"},"text":{"type":"string"}},"required":["option","text"],"additionalProperties":true}]}},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"answeredAt":{"type":"string","format":"date-time"}},"required":["questionId","answer","answeredAt"],"additionalProperties":true}}},"required":["eventId","sessionId","respondentId","version","revision","startedAt","finished","answers"],"additionalProperties":true},"CollectionInput":{"type":"object","properties":{"opensAt":{"type":["string","null"],"format":"date-time"},"closesAt":{"type":["string","null"],"format":"date-time"},"allowDirect":{"type":"boolean"},"maxQualifiedCompletions":{"type":["integer","null"],"minimum":1,"maximum":9007199254740991}},"required":["opensAt","closesAt","allowDirect"],"additionalProperties":true},"CollectionWindow":{"type":"object","properties":{"opensAt":{"type":["string","null"],"format":"date-time"},"closesAt":{"type":["string","null"],"format":"date-time"},"allowDirect":{"type":"boolean"},"maxQualifiedCompletions":{"type":["integer","null"]},"qualifiedCompletions":{"type":"integer"},"remaining":{"type":["integer","null"]},"state":{"type":"string","enum":["draft","paused","open","survey_not_open","survey_closed","survey_full"]}},"required":["opensAt","closesAt","allowDirect","maxQualifiedCompletions","qualifiedCompletions","remaining","state"],"additionalProperties":true},"SurveyLinkInput":{"type":"object","properties":{"name":{"type":"string"},"campaign":{"type":"string"},"placement":{"type":"string"}},"required":["name"],"additionalProperties":true},"SurveyLinkRename":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"additionalProperties":true},"SurveyLink":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string"},"name":{"type":"string"},"campaign":{"type":["string","null"]},"placement":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"url":{"type":"string"}},"required":["id","code","name","campaign","placement","created_at","url"],"additionalProperties":true},"SurveyLinks":{"type":"object","properties":{"links":{"type":"array","items":{"$ref":"#/components/schemas/SurveyLink"}}},"required":["links"],"additionalProperties":true},"LinkResult":{"type":"object","properties":{"linkId":{"type":["string","null"],"format":"uuid"},"version":{"type":"integer"},"kind":{"type":"string","enum":["tracked","direct"]},"name":{"type":"string"},"starts":{"type":"integer"},"completed":{"type":"integer"},"screenedOut":{"type":"integer"},"inProgress":{"type":"integer"},"partial":{"type":"integer"},"turnstileRejected":{"type":"integer"},"browserErrors":{"type":"integer"}},"required":["linkId","version","kind","name","starts","completed","screenedOut","inProgress","partial","turnstileRejected","browserErrors"],"additionalProperties":true},"LinkResults":{"type":"object","properties":{"rows":{"type":"array","items":{"$ref":"#/components/schemas/LinkResult"}},"suppressed":{"type":"string"}},"required":["rows"],"additionalProperties":true},"QrSvg":{"type":"string","description":"SVG QR image containing the tracked survey URL."},"QrPng":{"type":"string","format":"binary","description":"PNG QR image containing the tracked survey URL."},"ResultSession":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid"},"survey_version":{"type":"integer"},"status":{"type":"string"},"link_id":{"type":["string","null"],"format":"uuid"},"link_name":{"type":["string","null"]},"received_at":{"type":"string","format":"date-time"},"snapshot":{"$ref":"#/components/schemas/CollectedResponse"}},"required":["session_id","survey_version","status","link_id","link_name","received_at","snapshot"],"additionalProperties":true},"ResultFilters":{"type":"object","properties":{"version":{"type":["integer","null"]},"outcome":{"type":["string","null"]},"link":{"type":["string","null"]},"from":{"type":["string","null"],"format":"date-time"},"to":{"type":["string","null"],"format":"date-time"}},"required":["version","outcome","link","from","to"],"additionalProperties":true},"ResultSnapshot":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"filters":{"$ref":"#/components/schemas/ResultFilters"}},"required":["id","createdAt","expiresAt","filters"],"additionalProperties":true},"QuestionAggregate":{"type":"object","properties":{"id":{"type":"string"},"text":{"type":"string"},"type":{"type":"string"},"eligible":{"type":"integer"},"reached":{"type":"integer"},"answered":{"type":"integer"},"skipped":{"type":"integer"},"empty":{"type":"integer"},"notReached":{"type":"integer"},"pending":{"type":"integer"},"selections":{"type":"integer"},"mean":{"type":["number","null"]},"distribution":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"},"share":{"type":["number","null"]}},"required":["value","label","count","share"],"additionalProperties":true}}},"required":["id","text","type","eligible","reached","answered","skipped","empty","notReached","pending","selections","mean","distribution"],"additionalProperties":true},"VersionAggregate":{"type":"object","properties":{"version":{"type":"integer"},"starts":{"type":"integer"},"completed":{"type":"integer"},"screenedOut":{"type":"integer"},"partial":{"type":"integer"},"inProgress":{"type":"integer"},"completionRate":{"type":["number","null"]},"questions":{"type":"array","items":{"$ref":"#/components/schemas/QuestionAggregate"}}},"required":["version","starts","completed","screenedOut","partial","inProgress","completionRate","questions"],"additionalProperties":true},"EmptyInput":{"type":"object","properties":{},"required":[],"additionalProperties":true},"DeletionInput":{"type":"object","properties":{"surveyIds":{"type":"array","items":{"type":"string","format":"uuid"}},"confirmation":{"type":"string","const":"DELETE RESPONSE DATA"},"reason":{"type":"string","enum":["owner_request","privacy_request","test_cleanup"]}},"required":["confirmation","reason"],"additionalProperties":true},"DeletionJob":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"scope":{"type":"string","enum":["survey","project"]},"scopeId":{"type":"string","format":"uuid"},"reason":{"type":"string"},"state":{"type":"string","enum":["pending","running","waiting","failed","completed"]},"phase":{"type":"string"},"errorCode":{"type":["string","null"]},"requestedAt":{"type":"string","format":"date-time"},"completedAt":{"type":["string","null"],"format":"date-time"},"targets":{"type":"array","items":{"type":"object","properties":{"survey_id":{"type":"string","format":"uuid"},"through_version":{"type":"integer"},"complete":{"type":"boolean"}},"required":["survey_id","through_version","complete"],"additionalProperties":true}}},"required":["id","scope","scopeId","reason","state","phase","errorCode","requestedAt","completedAt","targets"],"additionalProperties":true},"DeletionPreview":{"type":"object","properties":{"scope":{"type":"string"},"scopeId":{"type":"string","format":"uuid"},"confirmation":{"type":"string"},"clearsProjectBrief":{"type":"boolean"},"counts":{"type":"object","properties":{"sessions":{"type":"integer"},"events":{"type":"integer"},"reports":{"type":"integer"}},"required":["sessions","events","reports"],"additionalProperties":true},"surveys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"published_version":{"type":["integer","null"]},"active_deletion_id":{"type":["string","null"],"format":"uuid"}},"required":["id","title","published_version","active_deletion_id"],"additionalProperties":true}},"jobs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":"string"},"phase":{"type":"string"},"requested_at":{"type":"string","format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"error_code":{"type":["string","null"]}},"required":["id","state","phase","requested_at","completed_at","error_code"],"additionalProperties":true}}},"required":["scope","scopeId","confirmation","clearsProjectBrief","counts","surveys","jobs"],"additionalProperties":true},"ResearchBrief":{"type":"object","properties":{"objective":{"type":"string"},"population":{"type":"string"},"recruitment":{"type":"string"},"comparisons":{"type":"string"},"limitations":{"type":"string"}},"required":[],"additionalProperties":true},"ResearchBriefInput":{"type":"object","properties":{"brief":{"$ref":"#/components/schemas/ResearchBrief"},"revision":{"type":"integer"}},"required":["brief","revision"],"additionalProperties":true},"ResearchBriefResult":{"type":"object","properties":{"brief":{"$ref":"#/components/schemas/ResearchBrief"},"revision":{"type":"integer"}},"required":["brief","revision"],"additionalProperties":true},"RecipeResult":{"type":"object","properties":{"name":{"type":"string"},"questionId":{"type":"string"},"statistic":{"type":"string"},"base":{"type":["integer","null"]},"value":{"type":["number","null"]},"note":{"type":"string"}},"required":["name","questionId","statistic","base","value","note"],"additionalProperties":true},"ReportVersion":{"type":"object","properties":{"version":{"type":"integer"},"suppressed":{"type":"boolean"},"reason":{"type":["string","null"]},"data":{"oneOf":[{"$ref":"#/components/schemas/VersionAggregate"},{"type":"null"}]},"recipes":{"type":"array","items":{"$ref":"#/components/schemas/RecipeResult"}},"limitations":{"type":"string"}},"required":["version","suppressed","reason","data","recipes","limitations"],"additionalProperties":true},"AnalysisRunInput":{"type":"object","properties":{"snapshotId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":160}},"required":["snapshotId","title"],"additionalProperties":true},"AnalysisRun":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"status":{"type":"string","enum":["ready","empty","failed"]},"errorCode":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"capturedAt":{"type":"string","format":"date-time"},"engineVersion":{"type":"string"},"config":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ResultFilters"},"briefRevision":{"type":"integer"},"snapshotId":{"type":"string","format":"uuid"},"versionPolicy":{"type":"string"},"suppression":{"type":"string"}},"required":["filters","briefRevision","snapshotId","versionPolicy","suppression"],"additionalProperties":true},"brief":{"$ref":"#/components/schemas/ResearchBrief"},"versions":{"type":"array","items":{"type":"object","properties":{"version":{"type":"integer"},"definition":{"$ref":"#/components/schemas/SurveyDefinition"}},"required":["version","definition"],"additionalProperties":true}},"report":{"type":"array","items":{"$ref":"#/components/schemas/ReportVersion"}}},"required":["id","title","status","errorCode","createdAt","capturedAt","engineVersion","config","brief","versions","report"],"additionalProperties":true},"AnalysisRunList":{"type":"object","properties":{"runs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"status":{"type":"string"},"errorCode":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"capturedAt":{"type":"string","format":"date-time"},"engineVersion":{"type":"string"}},"required":["id","title","status","errorCode","createdAt","capturedAt","engineVersion"],"additionalProperties":true}},"nextCursor":{"type":["string","null"],"format":"uuid"}},"required":["runs","nextCursor"],"additionalProperties":true},"Csv":{"type":"string","description":"Quoted UTF-8 CSV with formula-leading values escaped. Raw exports contain one row per session/question and explicit missingness."},"Results":{"type":"object","properties":{"snapshot":{"$ref":"#/components/schemas/ResultSnapshot"},"nextCursor":{"type":["string","null"],"format":"uuid"},"report":{"type":"array","items":{"$ref":"#/components/schemas/ReportVersion"}},"analysis":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/VersionAggregate"},{"type":"object","properties":{"version":{"type":"integer"},"suppressed":{"type":"string"}},"required":["version","suppressed"],"additionalProperties":true}]}},"totals":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string"},"count":{"type":"integer"}},"required":["status","count"],"additionalProperties":true}},"responses":{"type":"array","items":{"$ref":"#/components/schemas/ResultSession"}},"versions":{"type":"array","items":{"type":"object","properties":{"version":{"type":"integer"},"definition":{"$ref":"#/components/schemas/SurveyDefinition"}},"required":["version","definition"],"additionalProperties":true}}},"required":["snapshot","nextCursor","report","analysis","totals","responses","versions"],"additionalProperties":true},"DraftDefinition":{"type":"object","properties":{"id":{"type":"string"},"version":{"type":"integer"},"status":{"type":"string","enum":["draft","active","closed"]},"metadata":{"type":"object","properties":{"format":{"type":"string","enum":["survey","poll","evaluation"]},"template":{"description":"Server-owned provenance; supplied input is ignored."},"title":{"type":"string"},"description":{"type":"string"},"estimated_minutes":{"type":"integer"},"language":{"type":"string"}},"required":["title"],"additionalProperties":true},"settings":{"type":"object","properties":{"show_progress":{"type":"boolean"},"allow_back":{"type":"boolean"},"allow_resume":{"type":"boolean"},"persist_answers":{"type":"boolean"},"require_completion":{"type":"boolean"}},"required":["show_progress","allow_back","allow_resume","persist_answers","require_completion"],"additionalProperties":true},"intro":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"button_text":{"type":"string"}},"required":["title","description"],"additionalProperties":true},"questions":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Question"}},"flow":{"type":"object","properties":{"start":{"type":"string"},"transitions":{"type":"array","items":{"$ref":"#/components/schemas/Transition"}}},"required":["start","transitions"],"additionalProperties":true},"completion":{"type":"object","properties":{"completed":{"$ref":"#/components/schemas/Ending"},"screened_out":{"$ref":"#/components/schemas/Ending"},"screen_outs":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Ending"}}},"required":["completed","screened_out"],"additionalProperties":true}},"required":["metadata","settings","intro","questions","flow","completion"],"additionalProperties":true}},"securitySchemes":{"cookieSession":{"type":"apiKey","in":"cookie","name":"questionnaires_session"},"secureCookieSession":{"type":"apiKey","in":"cookie","name":"__Host-questionnaires_session"},"bearerToken":{"type":"http","scheme":"bearer"}}}}