openapi: 3.2.0 info: title: Phare Alert Rules API description: Learn how to use the phare.io API. Most of the things that can be done on the web platform can also be achieved with the API documented on this page. termsOfService: https://phare.io/legal/terms-of-service contact: name: Phare email: support@phare.io version: '1.0' servers: - url: https://api.phare.io security: - BearerAuth: [] tags: - name: Alert Rules description: Alert Rules paths: /alert-rules: get: tags: - Alert Rules summary: List alert rules description: Get a paginated list of alert rules. operationId: getAlertRules responses: '200': description: Success, alert rules retrieved content: application/json: schema: properties: data: type: array items: type: object properties: id: type: integer example: 1 project_id: description: The ID of a project to use as a scope type: - integer - 'null' example: 1 event: $ref: '#/components/schemas/Uptime.ProductEvents' integration_id: description: The ID of the integration used to send a notification when the alert rule is executed type: integer example: 1 rate_limit: description: Minimum time in minutes between two executions of the alert rule, used to minimized the number of alert received. type: integer example: 5 enum: - 0 - 5 - 10 - 30 - 60 - 180 - 720 - 1440 event_settings: description: Additional settings for the event anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings' - $ref: '#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings' integration_settings: description: Additional settings for the integration anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.App.Ntfy.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.Pushover.AlertRuleSettings' created_at: description: Date of creation for the entity type: string format: date-time updated_at: description: Date of last update for the entity type: string format: date-time required: - event - integration_id - rate_limit meta: $ref: '#/components/schemas/meta' links: $ref: '#/components/schemas/links' type: object '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/header_project_id' - $ref: '#/components/parameters/header_project_slug' post: tags: - Alert Rules summary: Create an alert rule operationId: createUptimeAlertRule requestBody: description: Alert rule request required: true content: application/json: schema: type: object properties: scope: description: Scoped of the alert rule type: string example: organization enum: - organization - project event: $ref: '#/components/schemas/Uptime.ProductEvents' integration_id: description: The ID of the integration used to send a notification when the alert rule is executed type: integer example: 1 rate_limit: description: Minimum time in minutes between two executions of the alert rule, used to minimized the number of alert received. type: integer example: 5 enum: - 0 - 5 - 10 - 30 - 60 - 180 - 720 - 1440 event_settings: description: Additional settings for the event anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings' - $ref: '#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings' integration_settings: description: Additional settings for the integration anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.App.Ntfy.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.Pushover.AlertRuleSettings' required: - event - integration_id - rate_limit responses: '201': description: Success, alert rule created content: application/json: schema: type: object properties: id: type: integer example: 1 project_id: description: The ID of a project to use as a scope type: - integer - 'null' example: 1 event: $ref: '#/components/schemas/Uptime.ProductEvents' integration_id: description: The ID of the integration used to send a notification when the alert rule is executed type: integer example: 1 rate_limit: description: Minimum time in minutes between two executions of the alert rule, used to minimized the number of alert received. type: integer example: 5 enum: - 0 - 5 - 10 - 30 - 60 - 180 - 720 - 1440 event_settings: description: Additional settings for the event anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings' - $ref: '#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings' integration_settings: description: Additional settings for the integration anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.App.Ntfy.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.Pushover.AlertRuleSettings' created_at: description: Date of creation for the entity type: string format: date-time updated_at: description: Date of last update for the entity type: string format: date-time required: - event - integration_id - rate_limit '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '422': $ref: '#/components/responses/422' parameters: - $ref: '#/components/parameters/header_project_id' - $ref: '#/components/parameters/header_project_slug' /alert-rules/{alertRuleId}: get: tags: - Alert Rules summary: Get an alert rule description: Get an alert rule by ID operationId: getAlertRule parameters: - name: alertRuleId in: path description: ID of the alert rule to show required: true schema: type: integer - $ref: '#/components/parameters/header_project_id' - $ref: '#/components/parameters/header_project_slug' responses: '200': description: Success, alert rule retrieved content: application/json: schema: type: object properties: id: type: integer example: 1 project_id: description: The ID of a project to use as a scope type: - integer - 'null' example: 1 event: $ref: '#/components/schemas/Uptime.ProductEvents' integration_id: description: The ID of the integration used to send a notification when the alert rule is executed type: integer example: 1 rate_limit: description: Minimum time in minutes between two executions of the alert rule, used to minimized the number of alert received. type: integer example: 5 enum: - 0 - 5 - 10 - 30 - 60 - 180 - 720 - 1440 event_settings: description: Additional settings for the event anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings' - $ref: '#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings' integration_settings: description: Additional settings for the integration anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.App.Ntfy.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.Pushover.AlertRuleSettings' created_at: description: Date of creation for the entity type: string format: date-time updated_at: description: Date of last update for the entity type: string format: date-time required: - event - integration_id - rate_limit '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' post: tags: - Alert Rules summary: Update an alert rule description: Update an alert rule by ID operationId: updateUptimeAlertRule parameters: - name: alertRuleId in: path description: ID of the alert rule to update required: true schema: type: integer - $ref: '#/components/parameters/header_project_id' - $ref: '#/components/parameters/header_project_slug' requestBody: description: Alert rule request required: true content: application/json: schema: type: object properties: scope: description: Scoped of the alert rule type: string example: organization enum: - organization - project event: $ref: '#/components/schemas/Uptime.ProductEvents' integration_id: description: The ID of the integration used to send a notification when the alert rule is executed type: integer example: 1 rate_limit: description: Minimum time in minutes between two executions of the alert rule, used to minimized the number of alert received. type: integer example: 5 enum: - 0 - 5 - 10 - 30 - 60 - 180 - 720 - 1440 event_settings: description: Additional settings for the event anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings' - $ref: '#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings' integration_settings: description: Additional settings for the integration anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.App.Ntfy.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.Pushover.AlertRuleSettings' responses: '200': description: Success, alert rule updated content: application/json: schema: type: object properties: id: type: integer example: 1 project_id: description: The ID of a project to use as a scope type: - integer - 'null' example: 1 event: $ref: '#/components/schemas/Uptime.ProductEvents' integration_id: description: The ID of the integration used to send a notification when the alert rule is executed type: integer example: 1 rate_limit: description: Minimum time in minutes between two executions of the alert rule, used to minimized the number of alert received. type: integer example: 5 enum: - 0 - 5 - 10 - 30 - 60 - 180 - 720 - 1440 event_settings: description: Additional settings for the event anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings' - $ref: '#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings' integration_settings: description: Additional settings for the integration anyOf: - title: Empty type: - object - 'null' - $ref: '#/components/schemas/Platform.App.Ntfy.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings' - $ref: '#/components/schemas/Platform.App.Pushover.AlertRuleSettings' created_at: description: Date of creation for the entity type: string format: date-time updated_at: description: Date of last update for the entity type: string format: date-time required: - event - integration_id - rate_limit '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '422': $ref: '#/components/responses/422' delete: tags: - Alert Rules summary: Delete an alert rule description: Delete an alert rule by ID operationId: deleteUptimeAlertRule parameters: - name: alertRuleId in: path description: ID of the alert rule to delete required: true schema: type: integer - $ref: '#/components/parameters/header_project_id' - $ref: '#/components/parameters/header_project_slug' responses: '204': description: Success, alert rule deleted content: {} '409': description: Error, alert rule cannot be deleted content: application/json: schema: description: Conflict error schema properties: message: type: string example: This alert rule is used by at least one entity and cannot be deleted. type: object '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' components: schemas: Platform.App.Pushover.AlertRuleSettings: title: Pushover properties: priority: description: Notification priority level type: string example: normal enum: - lowest - low - normal - high - emergency retry: description: Retry interval in seconds (required for emergency priority) type: - integer - 'null' example: 300 maximum: 86400 minimum: 30 expire: description: Expiration time in seconds (required for emergency priority) type: - integer - 'null' example: 3600 maximum: 10800 minimum: 30 type: object Platform.App.Ntfy.AlertRuleSettings: title: Ntfy required: - priority properties: priority: description: Notification priority level type: string example: default enum: - min - low - default - high - max type: object meta: description: Meta data for pagination properties: current_page: type: integer example: 2 from: type: integer example: 11 to: type: integer example: 20 per_page: type: integer example: 100 path: type: string example: https://api.phare.io/{resource}?page=2 type: object Platform.App.OutgoingWebhook.AlertRuleSettings: title: Outgoing Webhooks required: - schema properties: schema: description: JSON schema defining the webhook payload structure type: string format: json example: '{"id": "{{ alert_rule_request.id }}", "event": "{{ event.key }}"}' maxLength: 5000 type: object Platform.Event.UptimeIncident.AlertRuleSettings: title: Uptime incident required: - type properties: type: description: Type of incident to notify about type: string example: all enum: - all - monitor - manual type: object Uptime.ProductEvents: type: string enum: - uptime.monitor.created - uptime.monitor.deleted - uptime.monitor_certificate.discovered - uptime.monitor_certificate.expiring - uptime.incident.created - uptime.incident.propagated - uptime.incident.partially_recovered - uptime.incident.recovered - uptime.incident_comment.created - uptime.incident_update.published - uptime.maintenance_window.in_progress - uptime.maintenance_window.completed - uptime.maintenance_window.cancelled Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings: title: Uptime certificate expiring required: - days_before_expiry properties: days_before_expiry: description: Days to notify before the certificate expires type: integer example: 25 maximum: 60 minimum: 1 type: object links: description: Links for pagination properties: first: type: string format: url example: https://api.phare.io/{resource}?page=2 last: type: - string - 'null' format: url example: https://api.phare.io/{resource}?page=10 prev: type: - string - 'null' format: url example: https://api.phare.io/{resource}?page=1 next: type: - string - 'null' format: url example: https://api.phare.io/{resource}?page=1 type: object parameters: header_project_id: name: X-Phare-Project-Id in: header description: A project header is required when using an organization-scoped API key. required: false schema: type: integer example: 1 per_page: name: per_page in: query description: Number of resources to return per page required: false schema: type: integer example: 20 default: 20 maximum: 100 minimum: 1 header_project_slug: name: X-Phare-Project-Slug in: header description: A project header is required when using an organization-scoped API key. required: false schema: type: string example: luminous-guiding-tower page: name: page in: query description: Page number to show required: false schema: type: integer example: 1 default: 1 responses: '403': description: Error, access forbidden content: application/json: schema: description: Access forbidden error schema properties: message: type: string example: The platform:write permission is required to perform this action. type: object '401': description: Error, access unauthorized content: application/json: schema: description: Access unauthorized error schema properties: message: type: string example: Unauthorized type: object '404': description: Error, resource not found content: application/json: schema: description: Not found error schema properties: message: type: string example: Resource not found type: object '422': description: Error, unprocessable entity content: application/json: schema: description: Validation error schema properties: message: type: string errors: properties: key: type: array items: type: string example: The key field is required type: object type: object securitySchemes: BearerAuth: type: http description: 'Use a user token to access authenticated routes. The token must be specified in the Authorization HTTP header with the following format ''Authorization: Bearer ''.' scheme: bearer x-tagGroups: - name: Phare platform tags: - Users - Projects - Alert Rules - name: Phare uptime tags: - Monitors - Incidents - Status Pages - Reports x-provenance: method: harvested publisher: Phare source: https://docs.phare.io/openapi.json note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json); stamped by stamp-openapi-provenance.py (roadmap#793)