{"openapi":"3.1.0","info":{"title":"POST /api/v1/notifications/mark-all-seen","version":"1.0.0","description":"Mark all matching notifications seen"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/notifications/mark-all-seen":{"post":{"tags":["notifications"],"summary":"Mark all matching notifications seen","description":"Server-authoritative: marks EVERY notification the caller can see that matches the optional scope/topic/severity filters as seen — not just the page the client has loaded.","operationId":"mark_all_seen_api_v1_notifications_mark_all_seen_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-business-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Business-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkAllRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkOpResponse"}}}},"400":{"description":"Bad Request - Invalid input","content":{"application/json":{"example":{"detail":"Invalid request parameters"}}}},"401":{"description":"Unauthorized - Authentication required","content":{"application/json":{"example":{"detail":"Not authenticated"}}}},"403":{"description":"Forbidden - Insufficient permissions","content":{"application/json":{"example":{"detail":"Not enough permissions"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BulkAllRequest":{"properties":{"scope":{"$ref":"#/components/schemas/NotificationScopeEnum","default":"me"},"scope_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope Id","description":"Required when scope is 'business' or 'firm'"},"topic":{"anyOf":[{"items":{"$ref":"#/components/schemas/NotificationTopicEnum"},"type":"array"},{"type":"null"}],"title":"Topic","description":"Restrict to one or more topics"},"severity":{"anyOf":[{"items":{"$ref":"#/components/schemas/NotificationSeverityEnum"},"type":"array"},{"type":"null"}],"title":"Severity","description":"Restrict to one or more severities"},"live_business_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Live Business Id","description":"When scope='me', also dismiss live alerts for this business id (dismiss-all only; ignored by mark-all-seen)."}},"type":"object","title":"BulkAllRequest","description":"Operate on *all* of the caller's matching notifications.\n\nServer-authoritative bulk action.  Unlike :class:`BulkIdsRequest`\n(which is capped at 200 explicit ids — i.e. the page the client has\nloaded), this applies to every notification the caller can see that\nmatches the optional scope/topic/severity filters.  Used by\n\"Mark all seen\" and \"Dismiss all\" so they stay correct regardless\nof pagination."},"BulkOpResponse":{"properties":{"updated":{"type":"integer","minimum":0.0,"title":"Updated"}},"type":"object","required":["updated"],"title":"BulkOpResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"NotificationScopeEnum":{"type":"string","enum":["me","business","firm"],"title":"NotificationScopeEnum","description":"Read scope for the list endpoint."},"NotificationSeverityEnum":{"type":"string","enum":["info","warning","urgent"],"title":"NotificationSeverityEnum"},"NotificationTopicEnum":{"type":"string","enum":["billing","ap_approval","anomaly","plaid","xero","plaid_sync","xero_sync","quickbooks","quickbooks_sync","month_end","ledger","notes","email_ingest","reconciliation","manual"],"title":"NotificationTopicEnum"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"API token authentication. Format: `Bearer dz_...`"}}},"security":[{"BearerAuth":[]}]}