{"openapi":"3.1.0","info":{"title":"GET /api/v1/notifications","version":"1.0.0","description":"List notifications"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/notifications":{"get":{"tags":["notifications"],"summary":"List notifications","description":"Get the caller's notification feed across all scopes","operationId":"list_notifications_api_v1_notifications_get","parameters":[{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/NotificationScopeEnum","description":"Scope: 'me' (default), 'business', or 'firm'","default":"me"},"description":"Scope: 'me' (default), 'business', or 'firm'"},{"name":"scope_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Required when scope is 'business' or 'firm'","title":"Scope Id"},"description":"Required when scope is 'business' or 'firm'"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/NotificationStatusEnum"}},{"type":"null"}],"description":"Filter to one or more statuses","title":"Status"},"description":"Filter to one or more statuses"},{"name":"topic","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/NotificationTopicEnum"}},{"type":"null"}],"description":"Filter to one or more topics","title":"Topic"},"description":"Filter to one or more topics"},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/NotificationSeverityEnum"}},{"type":"null"}],"description":"Filter to one or more severities","title":"Severity"},"description":"Filter to one or more severities"},{"name":"include_terminal","in":"query","required":false,"schema":{"type":"boolean","description":"Include resolved + dismissed rows","default":false,"title":"Include Terminal"},"description":"Include resolved + dismissed rows"},{"name":"include_snoozed","in":"query","required":false,"schema":{"type":"boolean","description":"Include snoozed rows whose timer hasn't elapsed","default":false,"title":"Include Snoozed"},"description":"Include snoozed rows whose timer hasn't elapsed"},{"name":"include_live","in":"query","required":false,"schema":{"type":"boolean","description":"Merge live alerts (low cash, plaid stale, etc.) as virtual rows when a business context is available.","default":true,"title":"Include Live"},"description":"Merge live alerts (low cash, plaid stale, etc.) as virtual rows when a business context is available."},{"name":"live_business_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When scope='me', merge live alerts for this specific business id.  Ignored for scope='business' which uses scope_id as the business context.","title":"Live Business Id"},"description":"When scope='me', merge live alerts for this specific business id.  Ignored for scope='business' which uses scope_id as the business context."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination cursor","title":"Cursor"},"description":"Pagination cursor"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Page size","default":50,"title":"Limit"},"description":"Page size"},{"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"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationListResponse"}}}},"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":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"NotificationListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/NotificationResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_next":{"type":"boolean","title":"Has Next","default":false}},"type":"object","required":["items"],"title":"NotificationListResponse"},"NotificationResponse":{"properties":{"id":{"type":"string","title":"Id"},"recipient_kind":{"$ref":"#/components/schemas/RecipientKindEnum"},"recipient_id":{"type":"string","title":"Recipient Id"},"scope_business_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope Business Id"},"scope_firm_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope Firm Id"},"source":{"$ref":"#/components/schemas/NotificationSourceEnum"},"topic":{"$ref":"#/components/schemas/NotificationTopicEnum"},"severity":{"$ref":"#/components/schemas/NotificationSeverityEnum"},"status":{"$ref":"#/components/schemas/NotificationStatusEnum"},"snoozed_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Snoozed Until"},"pinned":{"type":"boolean","title":"Pinned","default":false},"title":{"type":"string","title":"Title"},"body":{"type":"string","title":"Body","default":""},"action_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Label"},"action_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Url"},"has_action":{"type":"boolean","title":"Has Action","default":false},"attachments":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Attachments"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id"},"channels":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Channels"},"is_virtual":{"type":"boolean","title":"Is Virtual","default":false},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"status_changed_at":{"type":"string","format":"date-time","title":"Status Changed At"}},"type":"object","required":["id","recipient_kind","recipient_id","source","topic","severity","status","title","created_at","updated_at","status_changed_at"],"title":"NotificationResponse","description":"Single notification row."},"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"},"NotificationSourceEnum":{"type":"string","enum":["alert","task","system","digest","announcement","message"],"title":"NotificationSourceEnum"},"NotificationStatusEnum":{"type":"string","enum":["new","seen","snoozed","resolved","dismissed"],"title":"NotificationStatusEnum"},"NotificationTopicEnum":{"type":"string","enum":["billing","ap_approval","anomaly","plaid","month_end","ledger","notes","email_ingest","reconciliation","manual"],"title":"NotificationTopicEnum"},"RecipientKindEnum":{"type":"string","enum":["user","business","firm"],"title":"RecipientKindEnum"},"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":[]}]}