{"openapi":"3.1.0","info":{"title":"AgentPrizm V2 support and feedback API","version":"1.0.0","description":"Public contact and feedback reading plus browser-session customer and platform workflows. Browser cookies, not request parameters, establish account authority. MCP credentials confer no support-account or platform permissions."},"servers":[{"url":"/"}],"paths":{"/api/contact":{"post":{"operationId":"createContactRequest","summary":"Create a durable public contact request","description":"The receipt confirms durable acceptance, not email delivery. Public contact email is submitted contact data, not a verified account identity.","security":[],"parameters":[{"name":"Origin","in":"header","required":true,"description":"Must exactly match the configured public origin for browser mutations.","schema":{"type":"string","format":"uri"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactInput"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MutationResult"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/support/requests":{"post":{"operationId":"createSupportRequest","summary":"Create a customer support or feedback request","security":[{"BrowserSession":[]}],"parameters":[{"name":"Origin","in":"header","required":true,"description":"Must exactly match the configured public origin for browser mutations.","schema":{"type":"string","format":"uri"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerRequestInput"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MutationResult"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"operationId":"listCustomerSupportRequests","summary":"List the current account support history","security":[{"BrowserSession":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"before","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"beforeId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerPage"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"before and beforeId form one seek cursor and must be supplied together."}},"/api/support/requests/{id}":{"get":{"operationId":"getCustomerSupportRequest","summary":"Read one request owned by the current account","security":[{"BrowserSession":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Canonical support request identifier.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDetail"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"redactCustomerSupportRequest","summary":"Redact an owned request and cancel pending delivery","security":[{"BrowserSession":[]}],"parameters":[{"name":"Origin","in":"header","required":true,"description":"Must exactly match the configured public origin for browser mutations.","schema":{"type":"string","format":"uri"}},{"name":"id","in":"path","required":true,"description":"Canonical support request identifier.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedactInput"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedactionResult"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/support/email":{"post":{"operationId":"createLegacySupportEmail","summary":"Create support through the legacy email producer","security":[{"BrowserSession":[]}],"parameters":[{"name":"Origin","in":"header","required":true,"description":"Must exactly match the configured public origin for browser mutations.","schema":{"type":"string","format":"uri"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacySupportEmailInput"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacySupportEmailResult"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"deprecated":true,"description":"Deprecated compatibility producer with a 256 KiB HTTP body limit. subject is capped at 200 characters, message at 10,000, and chatHistory at 50,000. The route generates an operation ID, so a caller cannot rely on canonical replay deduplication. The receipt says queued, never delivered."}},"/api/platform/feedback":{"get":{"operationId":"listPlatformFeedback","summary":"List the platform support queue","security":[{"BrowserSession":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"enum":["all","pending","approved","spam","duplicate","addressed","archived"],"default":"pending"}},{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SupportType"}},{"name":"source","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SupportSource"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":100000,"default":0}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformPage"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Requires a separately authorized platform browser session. MCP permissions grant no access."}},"/api/platform/feedback/{id}":{"get":{"operationId":"getPlatformFeedback","summary":"Read private platform support detail","security":[{"BrowserSession":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Canonical support request identifier.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformDetail"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"changePlatformFeedback","summary":"Moderate or respond to a support request","security":[{"BrowserSession":[]}],"parameters":[{"name":"Origin","in":"header","required":true,"description":"Must exactly match the configured public origin for browser mutations.","schema":{"type":"string","format":"uri"}},{"name":"id","in":"path","required":true,"description":"Canonical support request identifier.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformPatchInput"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MutationResult"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Platform authority is revalidated. Publication is consent-gated; sendEmail=true requires adminResponse and uses only the stored recipient."},"delete":{"operationId":"redactPlatformFeedback","summary":"Redact a support request as a platform actor","security":[{"BrowserSession":[]}],"parameters":[{"name":"Origin","in":"header","required":true,"description":"Must exactly match the configured public origin for browser mutations.","schema":{"type":"string","format":"uri"}},{"name":"id","in":"path","required":true,"description":"Canonical support request identifier.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedactInput"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedactionResult"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/platform/feedback/{id}/deliveries/{jobId}/retry":{"post":{"operationId":"retryPlatformSupportDelivery","summary":"Retry one safe frozen delivery","security":[{"BrowserSession":[]}],"parameters":[{"name":"Origin","in":"header","required":true,"description":"Must exactly match the configured public origin for browser mutations.","schema":{"type":"string","format":"uri"}},{"name":"id","in":"path","required":true,"description":"Canonical support request identifier.","schema":{"type":"string","format":"uuid"}},{"name":"jobId","in":"path","required":true,"description":"Canonical delivery job identifier.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedactInput"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MutationResult"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Retries only the same frozen message and provider key inside the bounded safe window."}},"/api/admin/feedback":{"get":{"operationId":"listLegacyAdminFeedback","summary":"List feedback through the legacy administrator alias","security":[{"BrowserSession":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"enum":["all","pending","approved","spam","duplicate","addressed","archived"],"default":"pending"}},{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SupportType"}},{"name":"source","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SupportSource"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":100000,"default":0}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformPage"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"deprecated":true,"description":"Deprecated alias. Requires separately authorized platform administration; MCP credentials and ordinary account sessions grant no access."},"patch":{"operationId":"changeLegacyAdminFeedback","summary":"Moderate feedback through the legacy administrator alias","security":[{"BrowserSession":[]}],"parameters":[{"name":"Origin","in":"header","required":true,"description":"Must exactly match the configured public origin for browser mutations.","schema":{"type":"string","format":"uri"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyAdminPatchInput"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyAdminPatchResult"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"deprecated":true,"description":"Deprecated platform-administrator-only alias. The adapter resolves the current revision and generates an operation ID, so callers cannot rely on canonical replay deduplication."},"delete":{"operationId":"redactLegacyAdminFeedback","summary":"Redact feedback through the legacy administrator alias","deprecated":true,"description":"Deprecated platform-administrator-only alias. This is audited redaction, not permanent deletion. The request may be bodyless; if supplied, its JSON body must be an empty object. The adapter resolves the current revision and generates an operation ID, so callers cannot rely on canonical replay deduplication.","security":[{"BrowserSession":[]}],"parameters":[{"name":"Origin","in":"header","required":true,"description":"Must exactly match the configured public origin for browser mutations.","schema":{"type":"string","format":"uri"}},{"name":"id","in":"query","required":true,"description":"Canonical support request identifier.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyEmptyInput"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyAdminRedactionResult"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/feedback":{"get":{"operationId":"listPublicFeedback","summary":"List approved consenting public feedback","security":[],"description":"before and beforeId form one seek cursor and must be supplied together. Names, emails, accounts, notes, and delivery data are excluded.","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"before","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"beforeId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPage"}}}},"400":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"A bounded support error; never private content or credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"BrowserSession":{"type":"apiKey","in":"cookie","name":"__Host-agentprizm_v2_session","description":"Secure HttpOnly same-site browser session. The raw value is never an API parameter. Mutations additionally require an exact Origin header."}},"schemas":{"Error":{"type":"object","required":["error"],"additionalProperties":false,"properties":{"error":{"type":"string"}}},"SupportKind":{"enum":["contact","support","feedback"]},"SupportType":{"enum":["feature_request","bug_report","improvement","question","praise","complaint","other"]},"SupportSource":{"enum":["roadmap_page","onboarding","email","digest_reply","in_app","support","api"]},"SupportStatus":{"enum":["pending","approved","spam","duplicate","addressed","archived"]},"SupportLevel":{"enum":["community","email","priority"]},"DeliveryState":{"enum":["queued","leased","sent","failed","reconciliation_required","canceled"]},"DeliveryError":{"enum":["provider_unavailable","provider_rejected","configuration_changed","reconciliation_required","attempt_limit"]},"ContactInput":{"type":"object","required":["name","email","message"],"additionalProperties":false,"properties":{"operationId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":200,"pattern":".*\\S.*"},"email":{"type":"string","format":"email","maxLength":254},"company":{"type":"string","maxLength":200},"topic":{"type":"string","maxLength":200},"message":{"type":"string","minLength":1,"maxLength":5000,"pattern":"[\\s\\S]*\\S[\\s\\S]*"},"_website":{"type":"string","maxLength":200}}},"LegacySupportEmailInput":{"type":"object","required":["subject","message"],"additionalProperties":false,"properties":{"subject":{"type":"string","minLength":1,"maxLength":200,"pattern":"[\\s\\S]*\\S[\\s\\S]*"},"message":{"type":"string","minLength":1,"maxLength":10000,"pattern":"[\\s\\S]*\\S[\\s\\S]*"},"chatHistory":{"type":"string","maxLength":50000}}},"LegacySupportEmailResult":{"type":"object","required":["id","status","revision","replayed","deliveryStatus","success","message"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/SupportStatus"},"revision":{"type":"integer","minimum":0},"replayed":{"type":"boolean"},"deliveryStatus":{"anyOf":[{"$ref":"#/components/schemas/DeliveryState"},{"type":"null"}]},"success":{"const":true},"message":{"const":"Support request queued"}}},"LegacyAdminPatchInput":{"type":"object","required":["feedbackId"],"additionalProperties":false,"anyOf":[{"required":["status"]},{"required":["moderationNote"]},{"required":["adminResponse"]},{"required":["isPublic"]}],"properties":{"feedbackId":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/SupportStatus"},"moderationNote":{"type":"string","maxLength":5000},"adminResponse":{"type":"string","minLength":1,"maxLength":5000,"pattern":"[\\s\\S]*\\S[\\s\\S]*"},"isPublic":{"type":"boolean"}}},"LegacyAdminPatchResult":{"type":"object","required":["success","feedback"],"additionalProperties":false,"properties":{"success":{"const":true},"feedback":{"type":"object","required":["id","status","revision","moderatedAt","adminResponse","isPublic"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/SupportStatus"},"revision":{"type":"integer","minimum":0},"moderatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"adminResponse":{"type":"string","maxLength":5000},"isPublic":{"type":"boolean"}}}}},"LegacyEmptyInput":{"type":"object","required":[],"additionalProperties":false,"properties":{}},"LegacyAdminRedactionResult":{"type":"object","required":["success","message","receiptId","contentSha256"],"additionalProperties":false,"properties":{"success":{"const":true},"message":{"const":"Feedback redacted"},"receiptId":{"type":"string","format":"uuid"},"contentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"SupportRequestInput":{"type":"object","required":["operationId","kind","type","title","content"],"additionalProperties":false,"properties":{"operationId":{"type":"string","format":"uuid"},"kind":{"const":"support"},"type":{"$ref":"#/components/schemas/SupportType"},"title":{"type":"string","minLength":1,"maxLength":200,"pattern":".*\\S.*"},"content":{"type":"string","minLength":1,"maxLength":10000,"pattern":"[\\s\\S]*\\S[\\s\\S]*"},"useCase":{"type":"string","maxLength":1000},"publicConsent":{"const":false}}},"FeedbackRequestInput":{"type":"object","required":["operationId","kind","type","title","content"],"additionalProperties":false,"properties":{"operationId":{"type":"string","format":"uuid"},"kind":{"const":"feedback"},"type":{"$ref":"#/components/schemas/SupportType"},"title":{"type":"string","minLength":1,"maxLength":200,"pattern":".*\\S.*"},"content":{"type":"string","minLength":1,"maxLength":5000,"pattern":"[\\s\\S]*\\S[\\s\\S]*"},"useCase":{"type":"string","maxLength":1000},"publicConsent":{"type":"boolean"}}},"CustomerRequestInput":{"oneOf":[{"$ref":"#/components/schemas/SupportRequestInput"},{"$ref":"#/components/schemas/FeedbackRequestInput"}]},"RedactInput":{"type":"object","required":["operationId","revision","reason"],"additionalProperties":false,"properties":{"operationId":{"type":"string","format":"uuid"},"revision":{"type":"integer","minimum":0},"reason":{"type":"string","minLength":1,"maxLength":500,"pattern":".*\\S.*"}}},"PlatformPatchInput":{"type":"object","required":["operationId","revision","reason"],"additionalProperties":false,"anyOf":[{"required":["status"]},{"required":["moderationNote"]},{"required":["adminResponse"]},{"required":["sendEmail"]},{"required":["isPublic"]}],"properties":{"operationId":{"type":"string","format":"uuid"},"revision":{"type":"integer","minimum":0},"reason":{"type":"string","minLength":1,"maxLength":500,"pattern":".*\\S.*"},"status":{"$ref":"#/components/schemas/SupportStatus"},"moderationNote":{"type":"string","maxLength":5000},"adminResponse":{"type":"string","minLength":1,"maxLength":5000,"pattern":"[\\s\\S]*\\S[\\s\\S]*"},"sendEmail":{"type":"boolean"},"isPublic":{"type":"boolean"}}},"MutationResult":{"type":"object","required":["id","status","revision","replayed","deliveryStatus"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/SupportStatus"},"revision":{"type":"integer","minimum":0},"replayed":{"type":"boolean"},"deliveryStatus":{"anyOf":[{"$ref":"#/components/schemas/DeliveryState"},{"type":"null"}]}}},"RedactionResult":{"type":"object","required":["id","revision","replayed","receiptId","contentSha256"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"revision":{"type":"integer","minimum":0},"replayed":{"type":"boolean"},"receiptId":{"type":"string","format":"uuid"},"contentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"Summary":{"type":"object","required":["id","kind","type","source","status","title","createdAt","updatedAt","revision","redactedAt","isPublic","publicConsent","supportLevel"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"kind":{"$ref":"#/components/schemas/SupportKind"},"type":{"$ref":"#/components/schemas/SupportType"},"source":{"$ref":"#/components/schemas/SupportSource"},"status":{"$ref":"#/components/schemas/SupportStatus"},"title":{"type":"string","maxLength":200},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"revision":{"type":"integer","minimum":0},"redactedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"isPublic":{"type":"boolean"},"publicConsent":{"type":"boolean"},"supportLevel":{"$ref":"#/components/schemas/SupportLevel"}}},"Message":{"type":"object","required":["id","author","content","createdAt","redactedAt"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"author":{"enum":["customer","platform"]},"content":{"type":"string","maxLength":10000},"createdAt":{"type":"string","format":"date-time"},"redactedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}}},"Delivery":{"type":"object","required":["id","kind","state","attempt","errorCode","firstAttemptAt","completedAt"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"kind":{"enum":["notification","reply"]},"state":{"$ref":"#/components/schemas/DeliveryState"},"attempt":{"type":"integer","minimum":0},"errorCode":{"anyOf":[{"$ref":"#/components/schemas/DeliveryError"},{"type":"null"}]},"firstAttemptAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}}},"CustomerDetail":{"type":"object","required":["id","kind","type","source","status","title","createdAt","updatedAt","revision","redactedAt","isPublic","publicConsent","supportLevel","name","email","content","company","topic","useCase","chatHistory","adminResponse","adminRespondedAt","messages","deliveries"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"kind":{"$ref":"#/components/schemas/SupportKind"},"type":{"$ref":"#/components/schemas/SupportType"},"source":{"$ref":"#/components/schemas/SupportSource"},"status":{"$ref":"#/components/schemas/SupportStatus"},"title":{"type":"string","maxLength":200},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"revision":{"type":"integer","minimum":0},"redactedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"isPublic":{"type":"boolean"},"publicConsent":{"type":"boolean"},"supportLevel":{"$ref":"#/components/schemas/SupportLevel"},"name":{"type":"string","maxLength":200},"email":{"type":"string","maxLength":254},"content":{"type":"string","maxLength":10000},"company":{"type":"string","maxLength":200},"topic":{"type":"string","maxLength":200},"useCase":{"type":"string","maxLength":1000},"chatHistory":{"type":"string","maxLength":50000},"adminResponse":{"type":"string","maxLength":5000},"adminRespondedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"messages":{"type":"array","items":{"$ref":"#/components/schemas/Message"}},"deliveries":{"type":"array","items":{"$ref":"#/components/schemas/Delivery"}}}},"Event":{"type":"object","required":["id","action","revision","reason","contentSha256","createdAt"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"action":{"enum":["created","changed","redacted","delivery_sent","delivery_failed","delivery_retried","delivery_canceled"]},"revision":{"type":"integer","minimum":0},"reason":{"type":"string","minLength":1,"maxLength":500},"contentSha256":{"anyOf":[{"type":"string","pattern":"^[a-f0-9]{64}$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}}},"PlatformDetail":{"type":"object","required":["id","kind","type","source","status","title","createdAt","updatedAt","revision","redactedAt","isPublic","publicConsent","supportLevel","name","email","content","company","topic","useCase","chatHistory","adminResponse","adminRespondedAt","messages","deliveries","accountId","tenantId","moderationNote","moderatedAt","moderatedBy","events"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"kind":{"$ref":"#/components/schemas/SupportKind"},"type":{"$ref":"#/components/schemas/SupportType"},"source":{"$ref":"#/components/schemas/SupportSource"},"status":{"$ref":"#/components/schemas/SupportStatus"},"title":{"type":"string","maxLength":200},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"revision":{"type":"integer","minimum":0},"redactedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"isPublic":{"type":"boolean"},"publicConsent":{"type":"boolean"},"supportLevel":{"$ref":"#/components/schemas/SupportLevel"},"name":{"type":"string","maxLength":200},"email":{"type":"string","maxLength":254},"content":{"type":"string","maxLength":10000},"company":{"type":"string","maxLength":200},"topic":{"type":"string","maxLength":200},"useCase":{"type":"string","maxLength":1000},"chatHistory":{"type":"string","maxLength":50000},"adminResponse":{"type":"string","maxLength":5000},"adminRespondedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"messages":{"type":"array","items":{"$ref":"#/components/schemas/Message"}},"deliveries":{"type":"array","items":{"$ref":"#/components/schemas/Delivery"}},"accountId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"tenantId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"moderationNote":{"type":"string","maxLength":5000},"moderatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"moderatedBy":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"events":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}}},"Cursor":{"type":"object","required":["createdAt","id"],"additionalProperties":false,"properties":{"createdAt":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"}}},"CustomerPage":{"type":"object","required":["items","nextCursor"],"additionalProperties":false,"properties":{"items":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/Summary"}},"nextCursor":{"anyOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}}},"PlatformFeedback":{"type":"object","required":["id","kind","type","source","status","title","createdAt","updatedAt","revision","redactedAt","isPublic","publicConsent","supportLevel","name","email","accountId"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"kind":{"$ref":"#/components/schemas/SupportKind"},"type":{"$ref":"#/components/schemas/SupportType"},"source":{"$ref":"#/components/schemas/SupportSource"},"status":{"$ref":"#/components/schemas/SupportStatus"},"title":{"type":"string","maxLength":200},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"revision":{"type":"integer","minimum":0},"redactedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"isPublic":{"type":"boolean"},"publicConsent":{"type":"boolean"},"supportLevel":{"$ref":"#/components/schemas/SupportLevel"},"name":{"type":"string","maxLength":200},"email":{"type":"string","maxLength":254},"accountId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}}},"StatusCounts":{"type":"object","required":["pending","approved","spam","duplicate","addressed","archived"],"additionalProperties":false,"properties":{"pending":{"type":"integer","minimum":0},"approved":{"type":"integer","minimum":0},"spam":{"type":"integer","minimum":0},"duplicate":{"type":"integer","minimum":0},"addressed":{"type":"integer","minimum":0},"archived":{"type":"integer","minimum":0}}},"PlatformPage":{"type":"object","required":["feedback","total","limit","offset","statusCounts"],"additionalProperties":false,"properties":{"feedback":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/PlatformFeedback"}},"total":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0,"maximum":100000},"statusCounts":{"$ref":"#/components/schemas/StatusCounts"}}},"PublicFeedback":{"type":"object","required":["id","type","title","content","useCase","adminResponse","createdAt","updatedAt"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"type":{"$ref":"#/components/schemas/SupportType"},"title":{"type":"string","maxLength":200},"content":{"type":"string","maxLength":5000},"useCase":{"type":"string","maxLength":1000},"adminResponse":{"type":"string","maxLength":5000},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PublicPage":{"type":"object","required":["items","nextCursor"],"additionalProperties":false,"properties":{"items":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/PublicFeedback"}},"nextCursor":{"anyOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}}}}}}