openapi: 3.2.0 info: title: Sorry Status Page Subscribers API description: The Sorryâ„¢ REST API provides programmatic access to manage status pages, components, notices, notice updates, and subscribers. Build automated incident communication workflows that keep your customers informed during outages and maintenance windows. version: v1 contact: name: Sorry App Support url: https://docs.sorryapp.com/v1 license: name: Proprietary url: https://www.sorryapp.com/ servers: - url: https://api.sorryapp.com/v1 description: Sorry App REST API v1 security: - BearerAuth: [] tags: - name: Subscribers description: Manage subscriber lists for status page notifications paths: /pages/{page_id}/subscribers: get: operationId: listSubscribers summary: List Subscribers description: Displays a list of all subscribers for a status page (500 per page). tags: - Subscribers parameters: - name: page_id in: path required: true schema: type: string - name: page in: query description: Pagination page number (500 subscribers per page) required: false schema: type: integer - name: include in: query description: 'Related resources to include (valid value: components)' required: false schema: type: string responses: '200': description: Successful response with list of subscribers content: application/json: schema: $ref: '#/components/schemas/SubscribersResponse' '401': description: Unauthorized '404': description: Status page not found post: operationId: createSubscriber summary: Create Subscriber description: Add a new subscriber to a status page. tags: - Subscribers parameters: - name: page_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateSubscriberRequest' responses: '201': description: Subscriber created successfully content: application/json: schema: $ref: '#/components/schemas/SubscriberResponse' '400': description: Bad request '401': description: Unauthorized /pages/{page_id}/subscribers/{subscriber_id}: get: operationId: getSubscriber summary: Get Subscriber description: Retrieve details for a single subscriber. tags: - Subscribers parameters: - name: page_id in: path required: true schema: type: string - name: subscriber_id in: path required: true schema: type: string responses: '200': description: Successful response with subscriber details content: application/json: schema: $ref: '#/components/schemas/SubscriberResponse' '401': description: Unauthorized '404': description: Subscriber not found patch: operationId: updateSubscriber summary: Update Subscriber description: Update a subscriber's contact information or component subscriptions. tags: - Subscribers parameters: - name: page_id in: path required: true schema: type: string - name: subscriber_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateSubscriberRequest' responses: '200': description: Subscriber updated successfully content: application/json: schema: $ref: '#/components/schemas/SubscriberResponse' '400': description: Bad request '401': description: Unauthorized delete: operationId: deleteSubscriber summary: Delete Subscriber description: Remove a subscriber from a status page. tags: - Subscribers parameters: - name: page_id in: path required: true schema: type: string - name: subscriber_id in: path required: true schema: type: string responses: '204': description: Subscriber removed successfully '401': description: Unauthorized '404': description: Subscriber not found components: schemas: UpdateSubscriberRequest: type: object properties: email: type: string format: email phone_number: type: string first_name: type: string last_name: type: string nickname: type: string company: type: string tag_list: type: string SubscribersResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/Subscriber' count: type: integer CreateSubscriberRequest: type: object properties: email: type: string format: email phone_number: type: string first_name: type: string last_name: type: string nickname: type: string company: type: string tag_list: type: string component_ids: type: array items: type: integer SubscriberResponse: type: object properties: data: $ref: '#/components/schemas/Subscriber' Subscriber: type: object properties: id: type: string email: type: string format: email phone_number: type: string first_name: type: string last_name: type: string nickname: type: string company: type: string tag_list: type: array items: type: string created_at: type: string format: date-time updated_at: type: string format: date-time securitySchemes: BearerAuth: type: http scheme: bearer description: User-specific OAuth2 bearer token obtained from the Sorry app dashboard