> For the complete documentation index, see [llms.txt](https://docs.statuspal.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.statuspal.io/platform/api-reference/models.md).

# Models

## The OrganizationStatusPage object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"OrganizationStatusPage":{"description":"Represents the Status Page.","type":"object","required":["name","url","time_zone"],"properties":{"organization_id":{"type":"integer","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"name":{"type":"string","description":"Company, project or service name."},"url":{"type":"string","description":"The website to your company, project or service."},"time_zone":{"type":"string","description":"The primary timezone the status page uses to display incidents (e.g. \"Europe/Berlin\")."},"subdomain":{"type":"string","description":"Subdomain on statuspal."},"support_email":{"type":"string","description":"Your company's support email."},"twitter_public_screen_name":{"type":"string","nullable":true,"description":"Twitter handle name (e.g. yourcompany)."},"about":{"type":"string","nullable":true,"description":"Customize the about information displayed in your status page."},"display_about":{"type":"boolean","description":"Display about information."},"domain_config":{"type":"object","description":"Custom domain configuration. Set `provider` and `domain` to enable a custom domain,\nthen poll until `status` becomes `active`. See the [Status Pages tag description](#tag/Status-Pages)\nfor a step-by-step setup guide.\n","properties":{"provider":{"type":"string","enum":["cloudflare","bunny"],"description":"* `cloudflare`: provided by [Cloudflare](https://www.cloudflare.com)\n* `bunny`: provided by [Bunny.net](https://bunny.net)\n"},"domain":{"type":"string","description":"The custom domain name."},"previous_domain":{"type":"string","description":"The previous custom domain name.","readOnly":true},"status":{"type":"string","enum":["disabled","configuring","failed_to_configure","active"],"readOnly":true,"description":"* `disabled`: The custom domain is disabled.\n* `configuring`: We are configuring the custom domain.\n* `failed_to_configure`: Failed to configure the custom domain.\n* `active`: The custom domain is active.\n"},"validation_records":{"description":"To activate the custom hostname domain, please create a CNAME DNS record.\n* **Cloudflare**: As soon as the TXT listed, the SSL certificates will be issued and deployed. Please allow a few minutes after the TXT record has been added before attempting to connect via HTTPS.\n* **Bunny.net**: After the domain is activated, it will be automatically configured with SSL and linked to this Pull Zone.\n\n**Note (Bunny):** The `hostname_cname_value` field may be empty on the initial response while the pull zone is being created. Poll every 2–5 seconds until it is populated (typically a few seconds).\n","type":"object","readOnly":true,"properties":{"hostname_cname_name":{"type":"string","description":"The CNAME record name to add to your DNS provider in order to point your custom domain to StatusPal."},"hostname_cname_value":{"type":"string","description":"The CNAME record value to add to your DNS provider in order to point your custom domain to StatusPal."},"certificate_txt_name":{"type":"string","description":"The TXT record name to add to your DNS provider in order to validate the custom domain ownership. Only for Cloudflare provider."},"certificate_txt_value":{"type":"string","description":"The TXT record value to add to your DNS provider in order to validate the custom domain ownership. Only for Cloudflare provider."},"hostname_txt_name":{"type":"string","description":"The TXT record name to add to your DNS provider in order to verify custom hostname ownership. Only for Cloudflare provider."},"hostname_txt_value":{"type":"string","description":"The TXT record value to add to your DNS provider in order to verify custom hostname ownership. Only for Cloudflare provider."}}},"external_id":{"type":"string","description":"The custom hostname ID in the provider.","readOnly":true},"error":{"type":"string","description":"If something goes wrong during the custom domain setup, we show the errors here.","readOnly":true}}},"restricted_ips":{"type":"string","nullable":true,"description":"Your status page will be accessible only from this IPs (e.g. \"1.1.1.1, 2.2.2.2\")."},"member_restricted":{"description":"Only signed in members will be allowed to access your status page.","type":"boolean"},"scheduled_maintenance_days":{"type":"integer","description":"Display scheduled maintenance."},"custom_js":{"type":"string","nullable":true,"description":"We'll insert this content inside the `<script>` tag at the bottom of your status page `<body>` tag."},"head_code":{"type":"string","nullable":true,"description":"We'll insert this content inside the `<head>` tag."},"date_format":{"type":"string","nullable":true,"description":"Display timestamps of incidents and updates in this format."},"time_format":{"type":"string","nullable":true,"description":"Display timestamps of incidents and updates in this format."},"date_format_enforce_everywhere":{"type":"boolean","description":"The above date format will be used everywhere in the status page. Timezone conversion to client's will be disabled."},"display_calendar":{"type":"boolean","description":"Display uptime calendar at status page."},"hide_watermark":{"type":"boolean","description":"Hide \"Powered by Statuspal.io\"."},"minor_notification_hours":{"type":"integer","description":"Long-running incident notification (Minor incident)."},"major_notification_hours":{"type":"integer","description":"Long-running incident notification (Major incident)."},"maintenance_notification_hours":{"type":"integer","description":"Long-running incident notification (Maintenance)."},"history_limit_days":{"type":"integer","nullable":true,"description":"Incident history limit (use null for No Limit)."},"custom_incident_types_enabled":{"type":"boolean","description":"Enable custom incident types."},"info_notices_enabled":{"type":"boolean","description":"Enable information notices."},"locked_when_maintenance":{"type":"boolean","description":"Lock from adding incidents when under maintenance."},"noindex":{"type":"boolean","description":"Remove status page from being indexed by search engines (e.g. Google)."},"enable_auto_translations":{"type":"boolean","description":"Enable auto translations when creating incidents, maintenances and info notices."},"captcha_enabled":{"type":"boolean","description":"Enable captchas. (This option is only available when the status page is member restricted)."},"enable_embedding":{"type":"boolean","description":"Enable iframe embedding."},"strict_csp":{"type":"boolean","description":"Enable strict Content Security Policy headers."},"translations":{"type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"public_company_name":{"type":"string"},"header_logo_text":{"type":"string"}}}},"description":"A translations object. For example:\n```json\n{\n  \"en\": {\n    \"public_company_name\": \"Your company\",\n    \"header_logo_text\": \"Your company status page\"\n  },\n  \"fr\": {\n    \"public_company_name\": \"Votre entreprise\",\n    \"header_logo_text\": \"Page d'état de votre entreprise\"\n  }\n}\n```\n"},"header_logo_text":{"type":"string","description":"Displayed at the header of the status page."},"public_company_name":{"type":"string","nullable":true,"description":"Displayed at the footer of the status page."},"logo":{"type":"string","nullable":true,"description":"Logo url of the status page.","readOnly":true},"bg_image":{"type":"string","nullable":true,"description":"Background image url of the status page.","readOnly":true},"favicon":{"type":"string","nullable":true,"description":"Favicon url of the status page.","readOnly":true},"display_uptime_graph":{"type":"boolean","description":"Display the uptime graph in the status page."},"uptime_graph_days":{"type":"integer","description":"Uptime graph period."},"current_incidents_position":{"type":"string","enum":["below_services","above_services"],"description":"The incident position displayed in the status page."},"theme_selected":{"type":"string","description":"The selected theme for the status page."},"theme_configs":{"type":"object","nullable":true,"description":"Theme configuration for the status page."},"link_color":{"type":"string","description":"The links color in the status page."},"header_bg_color1":{"type":"string","description":"The background color at left side of the status page header."},"header_bg_color2":{"type":"string","description":"The background color at right side of the status page header."},"header_fg_color":{"type":"string","description":"The text color in the status page."},"incident_header_color":{"type":"string","description":"Incidents header color in the status page."},"incident_link_color":{"type":"string","nullable":true,"description":"Incidents link color in the status page."},"status_ok_color":{"type":"string","description":"The status page colors when there is no incident."},"status_minor_color":{"type":"string","description":"The status page colors when there is a minor incident."},"status_major_color":{"type":"string","description":"The status page colors when there is a major incident."},"status_maintenance_color":{"type":"string","description":"The status page colors when there is a maintenance incident."},"custom_css":{"type":"string","nullable":true,"description":"We'll insert this content inside the `<style>` tag."},"custom_header":{"type":"string","nullable":true,"description":"A custom header for the status page (e.g. \"`<header>...</header>`\")."},"custom_footer":{"type":"string","nullable":true,"description":"A custom footer for the status page (e.g. \"`<footer>...</footer>`\")."},"notify_by_default":{"type":"boolean","description":"Check the Notify subscribers checkbox by default."},"tweet_by_default":{"type":"boolean","description":"Check the Tweet checkbox by default."},"slack_subscriptions_enabled":{"type":"boolean","nullable":true,"description":"Allow your customers to subscribe via Slack to updates on your status page's status."},"discord_notifications_enabled":{"type":"boolean","description":"Allow your customers to receive notifications on a Discord channel."},"teams_notifications_enabled":{"type":"boolean","description":"Allow your customers to receive notifications on Microsoft Teams."},"google_chat_notifications_enabled":{"type":"boolean","description":"Allow your customers to receive notifications on Google Chat."},"mattermost_notifications_enabled":{"type":"boolean","description":"Allow your customers to receive notifications on Mattermost."},"sms_notifications_enabled":{"type":"boolean","nullable":true,"description":"Allow your customers to receive SMS notifications on your status page's status (to enable this you need to have a Twilio or Esendex integration)."},"feed_enabled":{"type":"boolean","description":"Allow your customers to receive updates as RSS and Atom feeds."},"calendar_enabled":{"type":"boolean","description":"Allow your customers to receive updates via iCalendar feed."},"google_calendar_enabled":{"type":"boolean","description":"Allow your customers to import Google Calendar with Status Pages maintenance (business only)."},"subscribers_enabled":{"type":"boolean","description":"Allow email customers to receive email notifications."},"notification_email":{"type":"string","nullable":true,"description":"Allow your customers to subscribe via email to updates on your status page's status."},"reply_to_email":{"type":"string","nullable":true,"description":"The email address we'll use in the 'reply_to' field in emails to your subscribers. So they can reply to your notification emails."},"tweeting_enabled":{"type":"boolean","description":"Allows to send tweets when creating or updating an incident."},"email_layout_template":{"type":"string","nullable":true,"description":"Custom email layout template, see the documentation: [Custom email templates](https://docs.statuspal.io/platform/subscriptions-and-notifications/custom-email-templates)."},"email_confirmation_template":{"type":"string","nullable":true,"description":"Custom confirmation email template, see the documentation: [Custom email templates](https://docs.statuspal.io/platform/subscriptions-and-notifications/custom-email-templates)."},"email_notification_template":{"type":"string","nullable":true,"description":"Custom email notification template, see the documentation: [Custom email templates](https://docs.statuspal.io/platform/subscriptions-and-notifications/custom-email-templates)."},"email_templates_enabled":{"type":"boolean","nullable":true,"description":"The templates won't be used until this is enabled, but you can send test emails."},"allowed_email_domains":{"type":"string","description":"Allowed email domains. Each domain should be separated by `\n`"},"zoom_notifications_enabled":{"type":"boolean","description":"Enables customers to receive notifications via Zoom for updates and alerts related to the services."}}}}}}
````

## The StatusPageStatus object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"StatusPageStatus":{"description":"Represents the status summary of a status page","type":"object","properties":{"status_page":{"type":"object","properties":{"url":{"type":"string","description":"The URL of the website the status page is about"},"time_zone":{"type":"string","description":"The primary timezone the status page uses to display incidents"},"subdomain":{"type":"string","description":"The `subdomain` that identified the status page"},"name":{"type":"string","description":"The name of the company or service the status page is about"},"current_incident_type":{"$ref":"#/components/schemas/IncidentType"}}}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]}}}}
```

## The StatusPageSummary object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"StatusPageSummary":{"description":"Represents the status summary of a status page","allOf":[{"$ref":"#/components/schemas/StatusPageStatus"},{"type":"object","properties":{"services":{"type":"array","items":{"$ref":"#/components/schemas/StatusService"}},"incidents":{"type":"array","description":"Active incidents","items":{"$ref":"#/components/schemas/Incident"}},"maintenances":{"type":"array","description":"Active maintenances","items":{"$ref":"#/components/schemas/Maintenance"}},"upcoming_maintenances":{"type":"array","description":"Upcoming maintenances","items":{"$ref":"#/components/schemas/Maintenance"}},"info_notices":{"type":"array","description":"Featured information notices","items":{"$ref":"#/components/schemas/InfoNotice"}},"current_status_type":{"type":"string","nullable":true,"enum":[null,"major","scheduled","minor"],"description":"The current status type of the status page"}}}]},"StatusPageStatus":{"description":"Represents the status summary of a status page","type":"object","properties":{"status_page":{"type":"object","properties":{"url":{"type":"string","description":"The URL of the website the status page is about"},"time_zone":{"type":"string","description":"The primary timezone the status page uses to display incidents"},"subdomain":{"type":"string","description":"The `subdomain` that identified the status page"},"name":{"type":"string","description":"The name of the company or service the status page is about"},"current_incident_type":{"$ref":"#/components/schemas/IncidentType"}}}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]},"StatusService":{"description":"Represents the status of a service","type":"object","properties":{"name":{"type":"string"},"id":{"type":"integer"},"current_incident_type":{"$ref":"#/components/schemas/IncidentType"},"children":{"type":"array","description":"Nested ServiceSummary children","items":{"$ref":"#/components/schemas/StatusService"}}}},"Incident":{"type":"object","description":"An incident, either major, minor or a scheduled maintenance","required":["service_ids","type","updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the incident"},"starts_at":{"type":"string","description":"The time at which the incident/maintenance started/will start.","format":"date-time"},"ends_at":{"type":"string","description":"The time at which the incident/maintenance ended/will end.","format":"date-time"},"type":{"$ref":"#/components/schemas/IncidentType"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The incident's updates. On incident creation you must pass exactly one update object in the array, if the incident is of type minor/major the update type `issue` is recommended, if a scheduled maintenance then use `scheduled`.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the incident"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Notify subscribers when creating an incident with `type` `major` or `minor`."},"maintenance_notify":{"type":"boolean","description":"Notify subscribers when creating an incident (maintenance) with `type` `scheduled`."},"maintenance_notify_settings":{"$ref":"#/components/schemas/MaintenanceNotifySettings"},"affects_uptime":{"readOnly":true,"description":"It's a boolean if the incident affects uptime.","type":"boolean"}}},"IncidentActivity":{"type":"object","description":"Communicates an update of an incident, the special type `resolved` will close an incident.","required":["type","description"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"posted_at":{"type":"string","description":"Editable datetime at which the record was posted","format":"date-time"},"type":{"type":"string","description":"The type of an incident update:\n * `investigating` - Investigating.\n * `issue` - Issue.\n * `monitoring` - Monitoring.\n * `resolved` - Resolved will close the associated incident by settings its `ends_at` to the current time.\n * `scheduled` - Scheduled Maintenance's first update shall have this type.\n * `essential` - Essential Maintenance's first update shall have this type.\n * `retroactive` - Retroactive.\n * `update` - Standard update on an incident.\n * `escalate` - Escalate will switch the incident type from `minor` to `major`.\n * `deescalate` - De-escalate will switch the incident type from `major` to `minor`.\n * `postmortem` - A Post-mortem update.\n"},"description":{"type":"string","description":"The provided update description (accepts Markdown format)"},"description_html":{"type":"string","readOnly":true,"description":"The provided update description rendered in HTML"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"description\": \"English description\" },\n  \"es\": { \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"description":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Should your subscribers be notified about this update?","writeOnly":true},"subscribers_notified_at":{"type":"string","description":"Datetime at which subscribers were notified for this update","format":"date-time","readOnly":true},"tweet":{"type":"boolean","description":"Tweet this update with your configured Twitter account?"}}},"MaintenanceNotifySettings":{"type":"object","description":"> ### Configure this field only if the `type` is set to `scheduled`. To take effect, the `maintenance_notify` must be set to `true`.\nOverrides the status page auto maintenance notification settings for this specific maintenance.\n","properties":{"before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers before the maintenance start.\n* `-1` - Immediately\n* `0` - Never\n* Positive integer (`4320`, `5760`, `10080`, ...) - Before the maintenance start minutes\n"},"second_before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers the second time before the maintenance start. It needs to be after the first \"before maintenance start\" notice.\n* `0` - Never\n* Positive integer (`720`, `1440`, `2880`, ...) - Before the maintenance start minutes\n"},"on_start":{"type":"boolean","description":"Notify subscribers when the maintenance starts."},"on_end":{"type":"boolean","description":"Notify subscribers when the maintenance ends."}}},"Maintenance":{"allOf":[{"$ref":"#/components/schemas/Incident"},{"type":"object","properties":{"type":{"$ref":"#/components/schemas/MaintenanceType"}}}]},"MaintenanceType":{"type":"string","description":"The type of the incident:\n * `scheduled` - Should be used for maintenances.\n","enum":["scheduled"]},"InfoNotice":{"type":"object","description":"An information notice","required":["updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the information notice"},"featured_from":{"type":"string","description":"The time at which the information notice will display on the status page.","format":"date-time"},"featured_until":{"type":"string","description":"The time at which the information notice will not display on the status page.","format":"date-time"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The information notice's updates. On information notice creation you must pass exactly one update object in the array.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the information notice"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}}}}}}}
````

## The ServiceStatus object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"ServiceStatus":{"type":"object","properties":{"service":{"$ref":"#/components/schemas/StatusService"}}},"StatusService":{"description":"Represents the status of a service","type":"object","properties":{"name":{"type":"string"},"id":{"type":"integer"},"current_incident_type":{"$ref":"#/components/schemas/IncidentType"},"children":{"type":"array","description":"Nested ServiceSummary children","items":{"$ref":"#/components/schemas/StatusService"}}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]}}}}
```

## The ServiceSummary object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"ServiceSummary":{"allOf":[{"$ref":"#/components/schemas/ServiceStatus"},{"type":"object","properties":{"incidents":{"type":"array","description":"Active incidents","items":{"$ref":"#/components/schemas/Incident"}},"maintenances":{"type":"array","description":"Active maintenances","items":{"$ref":"#/components/schemas/Maintenance"}},"upcoming_maintenances":{"type":"array","description":"Upcoming maintenances","items":{"$ref":"#/components/schemas/Maintenance"}},"info_notices":{"type":"array","description":"Featured information notices","items":{"$ref":"#/components/schemas/InfoNotice"}},"current_status_type":{"type":"string","nullable":true,"enum":[null,"major","scheduled","minor"],"description":"The current status type of the status page"}}}]},"ServiceStatus":{"type":"object","properties":{"service":{"$ref":"#/components/schemas/StatusService"}}},"StatusService":{"description":"Represents the status of a service","type":"object","properties":{"name":{"type":"string"},"id":{"type":"integer"},"current_incident_type":{"$ref":"#/components/schemas/IncidentType"},"children":{"type":"array","description":"Nested ServiceSummary children","items":{"$ref":"#/components/schemas/StatusService"}}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]},"Incident":{"type":"object","description":"An incident, either major, minor or a scheduled maintenance","required":["service_ids","type","updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the incident"},"starts_at":{"type":"string","description":"The time at which the incident/maintenance started/will start.","format":"date-time"},"ends_at":{"type":"string","description":"The time at which the incident/maintenance ended/will end.","format":"date-time"},"type":{"$ref":"#/components/schemas/IncidentType"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The incident's updates. On incident creation you must pass exactly one update object in the array, if the incident is of type minor/major the update type `issue` is recommended, if a scheduled maintenance then use `scheduled`.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the incident"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Notify subscribers when creating an incident with `type` `major` or `minor`."},"maintenance_notify":{"type":"boolean","description":"Notify subscribers when creating an incident (maintenance) with `type` `scheduled`."},"maintenance_notify_settings":{"$ref":"#/components/schemas/MaintenanceNotifySettings"},"affects_uptime":{"readOnly":true,"description":"It's a boolean if the incident affects uptime.","type":"boolean"}}},"IncidentActivity":{"type":"object","description":"Communicates an update of an incident, the special type `resolved` will close an incident.","required":["type","description"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"posted_at":{"type":"string","description":"Editable datetime at which the record was posted","format":"date-time"},"type":{"type":"string","description":"The type of an incident update:\n * `investigating` - Investigating.\n * `issue` - Issue.\n * `monitoring` - Monitoring.\n * `resolved` - Resolved will close the associated incident by settings its `ends_at` to the current time.\n * `scheduled` - Scheduled Maintenance's first update shall have this type.\n * `essential` - Essential Maintenance's first update shall have this type.\n * `retroactive` - Retroactive.\n * `update` - Standard update on an incident.\n * `escalate` - Escalate will switch the incident type from `minor` to `major`.\n * `deescalate` - De-escalate will switch the incident type from `major` to `minor`.\n * `postmortem` - A Post-mortem update.\n"},"description":{"type":"string","description":"The provided update description (accepts Markdown format)"},"description_html":{"type":"string","readOnly":true,"description":"The provided update description rendered in HTML"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"description\": \"English description\" },\n  \"es\": { \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"description":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Should your subscribers be notified about this update?","writeOnly":true},"subscribers_notified_at":{"type":"string","description":"Datetime at which subscribers were notified for this update","format":"date-time","readOnly":true},"tweet":{"type":"boolean","description":"Tweet this update with your configured Twitter account?"}}},"MaintenanceNotifySettings":{"type":"object","description":"> ### Configure this field only if the `type` is set to `scheduled`. To take effect, the `maintenance_notify` must be set to `true`.\nOverrides the status page auto maintenance notification settings for this specific maintenance.\n","properties":{"before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers before the maintenance start.\n* `-1` - Immediately\n* `0` - Never\n* Positive integer (`4320`, `5760`, `10080`, ...) - Before the maintenance start minutes\n"},"second_before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers the second time before the maintenance start. It needs to be after the first \"before maintenance start\" notice.\n* `0` - Never\n* Positive integer (`720`, `1440`, `2880`, ...) - Before the maintenance start minutes\n"},"on_start":{"type":"boolean","description":"Notify subscribers when the maintenance starts."},"on_end":{"type":"boolean","description":"Notify subscribers when the maintenance ends."}}},"Maintenance":{"allOf":[{"$ref":"#/components/schemas/Incident"},{"type":"object","properties":{"type":{"$ref":"#/components/schemas/MaintenanceType"}}}]},"MaintenanceType":{"type":"string","description":"The type of the incident:\n * `scheduled` - Should be used for maintenances.\n","enum":["scheduled"]},"InfoNotice":{"type":"object","description":"An information notice","required":["updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the information notice"},"featured_from":{"type":"string","description":"The time at which the information notice will display on the status page.","format":"date-time"},"featured_until":{"type":"string","description":"The time at which the information notice will not display on the status page.","format":"date-time"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The information notice's updates. On information notice creation you must pass exactly one update object in the array.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the information notice"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}}}}}}}
````

## The Incident object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"Incident":{"type":"object","description":"An incident, either major, minor or a scheduled maintenance","required":["service_ids","type","updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the incident"},"starts_at":{"type":"string","description":"The time at which the incident/maintenance started/will start.","format":"date-time"},"ends_at":{"type":"string","description":"The time at which the incident/maintenance ended/will end.","format":"date-time"},"type":{"$ref":"#/components/schemas/IncidentType"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The incident's updates. On incident creation you must pass exactly one update object in the array, if the incident is of type minor/major the update type `issue` is recommended, if a scheduled maintenance then use `scheduled`.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the incident"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Notify subscribers when creating an incident with `type` `major` or `minor`."},"maintenance_notify":{"type":"boolean","description":"Notify subscribers when creating an incident (maintenance) with `type` `scheduled`."},"maintenance_notify_settings":{"$ref":"#/components/schemas/MaintenanceNotifySettings"},"affects_uptime":{"readOnly":true,"description":"It's a boolean if the incident affects uptime.","type":"boolean"}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]},"IncidentActivity":{"type":"object","description":"Communicates an update of an incident, the special type `resolved` will close an incident.","required":["type","description"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"posted_at":{"type":"string","description":"Editable datetime at which the record was posted","format":"date-time"},"type":{"type":"string","description":"The type of an incident update:\n * `investigating` - Investigating.\n * `issue` - Issue.\n * `monitoring` - Monitoring.\n * `resolved` - Resolved will close the associated incident by settings its `ends_at` to the current time.\n * `scheduled` - Scheduled Maintenance's first update shall have this type.\n * `essential` - Essential Maintenance's first update shall have this type.\n * `retroactive` - Retroactive.\n * `update` - Standard update on an incident.\n * `escalate` - Escalate will switch the incident type from `minor` to `major`.\n * `deescalate` - De-escalate will switch the incident type from `major` to `minor`.\n * `postmortem` - A Post-mortem update.\n"},"description":{"type":"string","description":"The provided update description (accepts Markdown format)"},"description_html":{"type":"string","readOnly":true,"description":"The provided update description rendered in HTML"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"description\": \"English description\" },\n  \"es\": { \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"description":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Should your subscribers be notified about this update?","writeOnly":true},"subscribers_notified_at":{"type":"string","description":"Datetime at which subscribers were notified for this update","format":"date-time","readOnly":true},"tweet":{"type":"boolean","description":"Tweet this update with your configured Twitter account?"}}},"MaintenanceNotifySettings":{"type":"object","description":"> ### Configure this field only if the `type` is set to `scheduled`. To take effect, the `maintenance_notify` must be set to `true`.\nOverrides the status page auto maintenance notification settings for this specific maintenance.\n","properties":{"before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers before the maintenance start.\n* `-1` - Immediately\n* `0` - Never\n* Positive integer (`4320`, `5760`, `10080`, ...) - Before the maintenance start minutes\n"},"second_before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers the second time before the maintenance start. It needs to be after the first \"before maintenance start\" notice.\n* `0` - Never\n* Positive integer (`720`, `1440`, `2880`, ...) - Before the maintenance start minutes\n"},"on_start":{"type":"boolean","description":"Notify subscribers when the maintenance starts."},"on_end":{"type":"boolean","description":"Notify subscribers when the maintenance ends."}}}}}}
````

## The IncidentObj object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"IncidentObj":{"type":"object","properties":{"incident":{"$ref":"#/components/schemas/Incident"}}},"Incident":{"type":"object","description":"An incident, either major, minor or a scheduled maintenance","required":["service_ids","type","updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the incident"},"starts_at":{"type":"string","description":"The time at which the incident/maintenance started/will start.","format":"date-time"},"ends_at":{"type":"string","description":"The time at which the incident/maintenance ended/will end.","format":"date-time"},"type":{"$ref":"#/components/schemas/IncidentType"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The incident's updates. On incident creation you must pass exactly one update object in the array, if the incident is of type minor/major the update type `issue` is recommended, if a scheduled maintenance then use `scheduled`.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the incident"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Notify subscribers when creating an incident with `type` `major` or `minor`."},"maintenance_notify":{"type":"boolean","description":"Notify subscribers when creating an incident (maintenance) with `type` `scheduled`."},"maintenance_notify_settings":{"$ref":"#/components/schemas/MaintenanceNotifySettings"},"affects_uptime":{"readOnly":true,"description":"It's a boolean if the incident affects uptime.","type":"boolean"}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]},"IncidentActivity":{"type":"object","description":"Communicates an update of an incident, the special type `resolved` will close an incident.","required":["type","description"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"posted_at":{"type":"string","description":"Editable datetime at which the record was posted","format":"date-time"},"type":{"type":"string","description":"The type of an incident update:\n * `investigating` - Investigating.\n * `issue` - Issue.\n * `monitoring` - Monitoring.\n * `resolved` - Resolved will close the associated incident by settings its `ends_at` to the current time.\n * `scheduled` - Scheduled Maintenance's first update shall have this type.\n * `essential` - Essential Maintenance's first update shall have this type.\n * `retroactive` - Retroactive.\n * `update` - Standard update on an incident.\n * `escalate` - Escalate will switch the incident type from `minor` to `major`.\n * `deescalate` - De-escalate will switch the incident type from `major` to `minor`.\n * `postmortem` - A Post-mortem update.\n"},"description":{"type":"string","description":"The provided update description (accepts Markdown format)"},"description_html":{"type":"string","readOnly":true,"description":"The provided update description rendered in HTML"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"description\": \"English description\" },\n  \"es\": { \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"description":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Should your subscribers be notified about this update?","writeOnly":true},"subscribers_notified_at":{"type":"string","description":"Datetime at which subscribers were notified for this update","format":"date-time","readOnly":true},"tweet":{"type":"boolean","description":"Tweet this update with your configured Twitter account?"}}},"MaintenanceNotifySettings":{"type":"object","description":"> ### Configure this field only if the `type` is set to `scheduled`. To take effect, the `maintenance_notify` must be set to `true`.\nOverrides the status page auto maintenance notification settings for this specific maintenance.\n","properties":{"before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers before the maintenance start.\n* `-1` - Immediately\n* `0` - Never\n* Positive integer (`4320`, `5760`, `10080`, ...) - Before the maintenance start minutes\n"},"second_before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers the second time before the maintenance start. It needs to be after the first \"before maintenance start\" notice.\n* `0` - Never\n* Positive integer (`720`, `1440`, `2880`, ...) - Before the maintenance start minutes\n"},"on_start":{"type":"boolean","description":"Notify subscribers when the maintenance starts."},"on_end":{"type":"boolean","description":"Notify subscribers when the maintenance ends."}}}}}}
````

## The Maintenance object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"Maintenance":{"allOf":[{"$ref":"#/components/schemas/Incident"},{"type":"object","properties":{"type":{"$ref":"#/components/schemas/MaintenanceType"}}}]},"Incident":{"type":"object","description":"An incident, either major, minor or a scheduled maintenance","required":["service_ids","type","updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the incident"},"starts_at":{"type":"string","description":"The time at which the incident/maintenance started/will start.","format":"date-time"},"ends_at":{"type":"string","description":"The time at which the incident/maintenance ended/will end.","format":"date-time"},"type":{"$ref":"#/components/schemas/IncidentType"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The incident's updates. On incident creation you must pass exactly one update object in the array, if the incident is of type minor/major the update type `issue` is recommended, if a scheduled maintenance then use `scheduled`.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the incident"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Notify subscribers when creating an incident with `type` `major` or `minor`."},"maintenance_notify":{"type":"boolean","description":"Notify subscribers when creating an incident (maintenance) with `type` `scheduled`."},"maintenance_notify_settings":{"$ref":"#/components/schemas/MaintenanceNotifySettings"},"affects_uptime":{"readOnly":true,"description":"It's a boolean if the incident affects uptime.","type":"boolean"}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]},"IncidentActivity":{"type":"object","description":"Communicates an update of an incident, the special type `resolved` will close an incident.","required":["type","description"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"posted_at":{"type":"string","description":"Editable datetime at which the record was posted","format":"date-time"},"type":{"type":"string","description":"The type of an incident update:\n * `investigating` - Investigating.\n * `issue` - Issue.\n * `monitoring` - Monitoring.\n * `resolved` - Resolved will close the associated incident by settings its `ends_at` to the current time.\n * `scheduled` - Scheduled Maintenance's first update shall have this type.\n * `essential` - Essential Maintenance's first update shall have this type.\n * `retroactive` - Retroactive.\n * `update` - Standard update on an incident.\n * `escalate` - Escalate will switch the incident type from `minor` to `major`.\n * `deescalate` - De-escalate will switch the incident type from `major` to `minor`.\n * `postmortem` - A Post-mortem update.\n"},"description":{"type":"string","description":"The provided update description (accepts Markdown format)"},"description_html":{"type":"string","readOnly":true,"description":"The provided update description rendered in HTML"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"description\": \"English description\" },\n  \"es\": { \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"description":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Should your subscribers be notified about this update?","writeOnly":true},"subscribers_notified_at":{"type":"string","description":"Datetime at which subscribers were notified for this update","format":"date-time","readOnly":true},"tweet":{"type":"boolean","description":"Tweet this update with your configured Twitter account?"}}},"MaintenanceNotifySettings":{"type":"object","description":"> ### Configure this field only if the `type` is set to `scheduled`. To take effect, the `maintenance_notify` must be set to `true`.\nOverrides the status page auto maintenance notification settings for this specific maintenance.\n","properties":{"before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers before the maintenance start.\n* `-1` - Immediately\n* `0` - Never\n* Positive integer (`4320`, `5760`, `10080`, ...) - Before the maintenance start minutes\n"},"second_before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers the second time before the maintenance start. It needs to be after the first \"before maintenance start\" notice.\n* `0` - Never\n* Positive integer (`720`, `1440`, `2880`, ...) - Before the maintenance start minutes\n"},"on_start":{"type":"boolean","description":"Notify subscribers when the maintenance starts."},"on_end":{"type":"boolean","description":"Notify subscribers when the maintenance ends."}}},"MaintenanceType":{"type":"string","description":"The type of the incident:\n * `scheduled` - Should be used for maintenances.\n","enum":["scheduled"]}}}}
````

## The InfoNotice object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"InfoNotice":{"type":"object","description":"An information notice","required":["updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the information notice"},"featured_from":{"type":"string","description":"The time at which the information notice will display on the status page.","format":"date-time"},"featured_until":{"type":"string","description":"The time at which the information notice will not display on the status page.","format":"date-time"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The information notice's updates. On information notice creation you must pass exactly one update object in the array.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the information notice"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}}}},"IncidentActivity":{"type":"object","description":"Communicates an update of an incident, the special type `resolved` will close an incident.","required":["type","description"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"posted_at":{"type":"string","description":"Editable datetime at which the record was posted","format":"date-time"},"type":{"type":"string","description":"The type of an incident update:\n * `investigating` - Investigating.\n * `issue` - Issue.\n * `monitoring` - Monitoring.\n * `resolved` - Resolved will close the associated incident by settings its `ends_at` to the current time.\n * `scheduled` - Scheduled Maintenance's first update shall have this type.\n * `essential` - Essential Maintenance's first update shall have this type.\n * `retroactive` - Retroactive.\n * `update` - Standard update on an incident.\n * `escalate` - Escalate will switch the incident type from `minor` to `major`.\n * `deescalate` - De-escalate will switch the incident type from `major` to `minor`.\n * `postmortem` - A Post-mortem update.\n"},"description":{"type":"string","description":"The provided update description (accepts Markdown format)"},"description_html":{"type":"string","readOnly":true,"description":"The provided update description rendered in HTML"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"description\": \"English description\" },\n  \"es\": { \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"description":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Should your subscribers be notified about this update?","writeOnly":true},"subscribers_notified_at":{"type":"string","description":"Datetime at which subscribers were notified for this update","format":"date-time","readOnly":true},"tweet":{"type":"boolean","description":"Tweet this update with your configured Twitter account?"}}}}}}
````

## The InfoNoticeObj object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"InfoNoticeObj":{"type":"object","properties":{"info_notice":{"$ref":"#/components/schemas/InfoNotice"}}},"InfoNotice":{"type":"object","description":"An information notice","required":["updates","title"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"title":{"type":"string","description":"The title of the information notice"},"featured_from":{"type":"string","description":"The time at which the information notice will display on the status page.","format":"date-time"},"featured_until":{"type":"string","description":"The time at which the information notice will not display on the status page.","format":"date-time"},"service_ids":{"type":"array","description":"An array of service Ids, at least 1 must be included","items":{"type":"integer"}},"updates":{"type":"array","description":"The information notice's updates. On information notice creation you must pass exactly one update object in the array.","items":{"$ref":"#/components/schemas/IncidentActivity"}},"url":{"readOnly":true,"type":"string","description":"URL to the information notice"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English Title\" },\n  \"es\": { \"title\": \"Spanish Title\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"}}}}}}},"IncidentActivity":{"type":"object","description":"Communicates an update of an incident, the special type `resolved` will close an incident.","required":["type","description"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"posted_at":{"type":"string","description":"Editable datetime at which the record was posted","format":"date-time"},"type":{"type":"string","description":"The type of an incident update:\n * `investigating` - Investigating.\n * `issue` - Issue.\n * `monitoring` - Monitoring.\n * `resolved` - Resolved will close the associated incident by settings its `ends_at` to the current time.\n * `scheduled` - Scheduled Maintenance's first update shall have this type.\n * `essential` - Essential Maintenance's first update shall have this type.\n * `retroactive` - Retroactive.\n * `update` - Standard update on an incident.\n * `escalate` - Escalate will switch the incident type from `minor` to `major`.\n * `deescalate` - De-escalate will switch the incident type from `major` to `minor`.\n * `postmortem` - A Post-mortem update.\n"},"description":{"type":"string","description":"The provided update description (accepts Markdown format)"},"description_html":{"type":"string","readOnly":true,"description":"The provided update description rendered in HTML"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"description\": \"English description\" },\n  \"es\": { \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"description":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Should your subscribers be notified about this update?","writeOnly":true},"subscribers_notified_at":{"type":"string","description":"Datetime at which subscribers were notified for this update","format":"date-time","readOnly":true},"tweet":{"type":"boolean","description":"Tweet this update with your configured Twitter account?"}}}}}}
````

## The Subscription object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"Subscription":{"required":["filter","service_ids","type"],"type":"object","properties":{"type":{"type":"string","description":"The type of Subscription (`email`, `slack`, `sms`, `discord`)."},"filter":{"type":"string","description":"Filter the notifications to subscribe to (`all`, `services`, `incident`)."},"service_ids":{"type":"array","description":"An array of service IDs to subscribe to, required if filter is `services`.","items":{"type":"integer"}},"incident_types":{"type":"array","description":"An array of incident type keys. If set, the subscriber will be notified only about this type of incidents/maintenance.","items":{"type":"string"}},"incident_id":{"type":"integer","description":"An incident ID to subscribe to, required if filter is `incident`."},"email":{"type":"string","description":"The email to send the notifications to, required if type is `email`."},"confirm":{"type":"boolean","description":"Set to false to skip sending confirmation email for email subscriptions."},"country_dial_code":{"type":"string","description":"The country code of the phone number to send the notifications to, required if type is `sms`."},"phone_number":{"type":"string","description":"The phone number to send the notifications to, required if type is `sms`."},"webhook_url":{"type":"string","description":"The Discord webhook URL, required if type is `discord`."},"locale":{"type":"string","description":"The subscriber's locale."},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"metadata":{"type":"object","description":"Additional metadata associated with the subscription."},"subscription_group_ids":{"type":"array","items":{"type":"integer"},"description":"IDs of the subscription groups this subscription belongs to. On update, the provided list replaces the previous one (not additive). Send `[]` to remove from all groups.\n"}}}}}}
```

## The SubscriptionObj object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"SubscriptionObj":{"type":"object","properties":{"subscription":{"$ref":"#/components/schemas/Subscription"}}},"Subscription":{"required":["filter","service_ids","type"],"type":"object","properties":{"type":{"type":"string","description":"The type of Subscription (`email`, `slack`, `sms`, `discord`)."},"filter":{"type":"string","description":"Filter the notifications to subscribe to (`all`, `services`, `incident`)."},"service_ids":{"type":"array","description":"An array of service IDs to subscribe to, required if filter is `services`.","items":{"type":"integer"}},"incident_types":{"type":"array","description":"An array of incident type keys. If set, the subscriber will be notified only about this type of incidents/maintenance.","items":{"type":"string"}},"incident_id":{"type":"integer","description":"An incident ID to subscribe to, required if filter is `incident`."},"email":{"type":"string","description":"The email to send the notifications to, required if type is `email`."},"confirm":{"type":"boolean","description":"Set to false to skip sending confirmation email for email subscriptions."},"country_dial_code":{"type":"string","description":"The country code of the phone number to send the notifications to, required if type is `sms`."},"phone_number":{"type":"string","description":"The phone number to send the notifications to, required if type is `sms`."},"webhook_url":{"type":"string","description":"The Discord webhook URL, required if type is `discord`."},"locale":{"type":"string","description":"The subscriber's locale."},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"metadata":{"type":"object","description":"Additional metadata associated with the subscription."},"subscription_group_ids":{"type":"array","items":{"type":"integer"},"description":"IDs of the subscription groups this subscription belongs to. On update, the provided list replaces the previous one (not additive). Send `[]` to remove from all groups.\n"}}}}}}
```

## The MetricEntry object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"MetricEntry":{"required":["time","value"],"type":"object","properties":{"time":{"type":"integer","description":"Unix timestamp"},"value":{"type":"number","format":"double"}}}}}}
```

## The MetricEntryObj object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"MetricEntryObj":{"type":"object","properties":{"entry":{"$ref":"#/components/schemas/MetricEntry"}}},"MetricEntry":{"required":["time","value"],"type":"object","properties":{"time":{"type":"integer","description":"Unix timestamp"},"value":{"type":"number","format":"double"}}}}}}
```

## The Metric object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"Metric":{"description":"Represents a metric object.","type":"object","required":["title","type","unit"],"properties":{"id":{"type":"integer","readOnly":true,"description":"The ID of the metric."},"title":{"type":"string","description":"The title or name of the metric, used to describe what the metric is measuring."},"unit":{"type":"string","description":"The unit of measurement for the metric. For example, this could be \"ms\" for milliseconds or \"requests/sec\"."},"type":{"$ref":"#/components/schemas/MetricType"},"enabled":{"type":"boolean","description":"Indicates whether the metric is currently enabled. When `true` system will actually pull data for this metric; when `false`, it does not."},"visible":{"type":"boolean","description":"Determines whether the metric is visible on the status page. If `true`, the metric's data is displayed; if `false`, it is hidden."},"remote_id":{"type":"string","description":"The identifier of the metric on the remote site. This is used to map the metric in the system to its counterpart on an external service or integration."},"remote_name":{"type":"string","description":"The name of the metric on the remote site. This is used to display the metric name as it appears on the external service."},"status":{"type":"string","readOnly":true,"description":"The current status of the metric, often represented as an HTTP status code or a descriptive string. This field indicates the latest state or response of the metric."},"latest_entry_time":{"type":"integer","readOnly":true,"description":"The Unix timestamp of the most recent entry recorded for this metric. This indicates the last time data was updated for the metric."},"threshold":{"type":"integer","description":"The threshold value for the metric. This is used to set limits or bounds, such as a threshold for triggering alerts or visual indicators in graphs."},"featured_number":{"$ref":"#/components/schemas/FeaturedNumber"},"order":{"type":"integer","readOnly":true,"description":"The order in which the metric appears on the status page or within a list. This helps determine the sorting and display sequence."},"integration_id":{"type":"string","description":"The identifier of the integration associated with this metric. This ties the metric to a specific integration."}}},"MetricType":{"type":"string","description":"The type of the metric. It can be one of the following:\n * `up` (Uptime): Represents the amount of time a service or system is operational and available.\n * `rt` (ResponseTime): Represents the time taken to respond to a request or query.\n","enum":["up","rt"]},"FeaturedNumber":{"type":"string","description":"Specifies the type of number to be featured prominently in the metric's display. Options might include \"average\", \"maximum\", or \"current/last\".\n","enum":["avg","max","last"]}}}}
```

## The StatusService object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"StatusService":{"description":"Represents the status of a service","type":"object","properties":{"name":{"type":"string"},"id":{"type":"integer"},"current_incident_type":{"$ref":"#/components/schemas/IncidentType"},"children":{"type":"array","description":"Nested ServiceSummary children","items":{"$ref":"#/components/schemas/StatusService"}}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]}}}}
```

## The MonitoringOptions object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"MonitoringOptions":{"type":"object","description":"Options for configuring monitoring behavior for services.","properties":{"method":{"type":"string","description":"The HTTP method to be used when sending requests for monitoring.\nThis should be set to a valid HTTP method (e.g. `GET` or `HEAD`)\nwhen monitoring type is `internal`.\nEnsure it aligns with the service's requirements for health checks.\n"},"headers":{"type":"array","description":"Custom headers to be included in the monitoring request.\nThis should be set when the monitoring type is `internal`\nto specify any necessary header fields for the request.\n","items":{"type":"object","properties":{"key":{"type":"string","description":"The name of the header field."},"value":{"type":"string","description":"The value for the header field."}}}},"keyword_down":{"type":"string","description":"A custom keyword that indicates a 'down' status when\nmonitoring a third-party service. This keyword is used\nto parse and understand service responses.\n"},"keyword_up":{"type":"string","description":"A custom keyword that indicates an 'up' status when\nmonitoring a third-party service. This keyword is used\nto parse and understand service responses.\n"}}}}}}
```

## The Service object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"Service":{"description":"Represents the service.","type":"object","required":["name"],"properties":{"id":{"type":"integer","readOnly":true,"description":"The ID of the service."},"name":{"type":"string","description":"The name of the service."},"description":{"type":"string","description":"The description of the service."},"private_description":{"type":"string","description":"The private description of the service."},"parent_id":{"type":"integer","description":"The service parent ID."},"current_incident_type":{"description":"The service's current incident type.","$ref":"#/components/schemas/IncidentType","readOnly":true},"monitoring":{"$ref":"#/components/schemas/MonitoringType"},"webhook_monitoring_service":{"$ref":"#/components/schemas/WebhookMonitoringService"},"webhook_custom_jsonpath_settings":{"$ref":"#/components/schemas/WebhookCustomJsonpathSettings"},"inbound_email_address":{"type":"string","description":"This is field is populated from `inbound_email_id`, if the `monitoring` is set to `3rd_party`.","readOnly":true},"incoming_webhook_url":{"type":"string","description":"This is field is populated from `inbound_email_id`, if the `monitoring` is set to `webhook` and the `webhook_monitoring_service` is set.","readOnly":true},"ping_url":{"type":"string","description":"We will send HTTP requests to this URL for monitoring every minute."},"incident_type":{"description":"Sets the incident type to this value when an incident is created via monitoring.","$ref":"#/components/schemas/MonitoringIncidentType"},"parent_incident_type":{"description":"Sets the parent's service incident type to this value when an incident is created via monitoring.","$ref":"#/components/schemas/MonitoringIncidentType"},"is_up":{"type":"boolean","readOnly":true,"description":"Is the monitored service up?"},"pause_monitoring_during_maintenances":{"type":"boolean","description":"Pause the service monitoring during maintenances?"},"inbound_email_id":{"type":"string","readOnly":true,"description":"The inbound email ID."},"auto_incident":{"type":"boolean","description":"Create an incident automatically when this service is down and close it if/when it comes back up."},"auto_notify":{"type":"boolean","description":"Automatically notify all your subscribers about automatically created and closed incidents."},"children_ids":{"readOnly":true,"type":"array","description":"IDs of the service's children.","items":{"type":"integer"}},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": {\n    \"name\": \"Your service\",\n    \"description\": \"This is your service's description...\"\n  },\n  \"fr\": {\n    \"name\": \"Votre service\",\n    \"description\": \"Voici la description de votre service...\"\n  }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}}}}},"private":{"type":"boolean","description":"Private service?"},"display_uptime_graph":{"type":"boolean","description":"Display uptime graph?"},"display_response_time_chart":{"type":"boolean","description":"Display response time chart?"},"order":{"type":"integer","description":"Service's position in the service list."},"notification_recipients":{"description":"Array of notification recipients:\n- In request: Array of recipient IDs (write-only).\n- In response: Array of recipient objects with `id` and `email` (read-only).\n","type":"array","items":{"oneOf":[{"type":"integer","description":"Recipient ID (write-only for request).","writeOnly":true},{"type":"object","description":"Recipient object (read-only for response).","readOnly":true,"properties":{"id":{"type":"integer","description":"The ID of the recipient."},"email":{"type":"string","description":"The email of the recipient."}}}]}},"monitoring_options":{"description":"Configuration options for monitoring the service. The options vary depending on whether\nthe monitoring type is `internal` or `3rd_party`.\n","$ref":"#/components/schemas/MonitoringOptions"}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]},"MonitoringType":{"type":"string","nullable":true,"description":"Monitoring types:\n * `null` - No monitoring\n * `internal` - StatusPal monitoring\n * `3rd_party` - 3rd Party monitoring\n * `webhook` - Incoming webhook monitoring\n","enum":[null,"internal","3rd_party","webhook"]},"WebhookMonitoringService":{"type":"string","description":"> ### Configure this field only if the `monitoring` is set to `webhook`.\n\nWebhook monitoring services:\n* `status-cake` - StatusCake monitoring service\n* `uptime-robot` - UptimeRobot monitoring service\n* `zabbix` - Zabbix monitoring service\n* `custom-jsonpath` - Custom JSONPath\n","enum":["status-cake","uptime-robot","zabbix","custom-jsonpath"]},"WebhookCustomJsonpathSettings":{"type":"object","description":"> ### Configure this field only if the `webhook_monitoring_service` is set to `custom-jsonpath`.","properties":{"jsonpath":{"type":"string","description":"The path in the JSON, e.g. `$.status`."},"expected_result":{"type":"string","description":"The expected result in the JSON, e.g. `\"up\"`."}}},"MonitoringIncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n","enum":["major","minor"]},"MonitoringOptions":{"type":"object","description":"Options for configuring monitoring behavior for services.","properties":{"method":{"type":"string","description":"The HTTP method to be used when sending requests for monitoring.\nThis should be set to a valid HTTP method (e.g. `GET` or `HEAD`)\nwhen monitoring type is `internal`.\nEnsure it aligns with the service's requirements for health checks.\n"},"headers":{"type":"array","description":"Custom headers to be included in the monitoring request.\nThis should be set when the monitoring type is `internal`\nto specify any necessary header fields for the request.\n","items":{"type":"object","properties":{"key":{"type":"string","description":"The name of the header field."},"value":{"type":"string","description":"The value for the header field."}}}},"keyword_down":{"type":"string","description":"A custom keyword that indicates a 'down' status when\nmonitoring a third-party service. This keyword is used\nto parse and understand service responses.\n"},"keyword_up":{"type":"string","description":"A custom keyword that indicates an 'up' status when\nmonitoring a third-party service. This keyword is used\nto parse and understand service responses.\n"}}}}}}
````

## The ServiceObj object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"ServiceObj":{"type":"object","properties":{"service":{"$ref":"#/components/schemas/Service"}}},"Service":{"description":"Represents the service.","type":"object","required":["name"],"properties":{"id":{"type":"integer","readOnly":true,"description":"The ID of the service."},"name":{"type":"string","description":"The name of the service."},"description":{"type":"string","description":"The description of the service."},"private_description":{"type":"string","description":"The private description of the service."},"parent_id":{"type":"integer","description":"The service parent ID."},"current_incident_type":{"description":"The service's current incident type.","$ref":"#/components/schemas/IncidentType","readOnly":true},"monitoring":{"$ref":"#/components/schemas/MonitoringType"},"webhook_monitoring_service":{"$ref":"#/components/schemas/WebhookMonitoringService"},"webhook_custom_jsonpath_settings":{"$ref":"#/components/schemas/WebhookCustomJsonpathSettings"},"inbound_email_address":{"type":"string","description":"This is field is populated from `inbound_email_id`, if the `monitoring` is set to `3rd_party`.","readOnly":true},"incoming_webhook_url":{"type":"string","description":"This is field is populated from `inbound_email_id`, if the `monitoring` is set to `webhook` and the `webhook_monitoring_service` is set.","readOnly":true},"ping_url":{"type":"string","description":"We will send HTTP requests to this URL for monitoring every minute."},"incident_type":{"description":"Sets the incident type to this value when an incident is created via monitoring.","$ref":"#/components/schemas/MonitoringIncidentType"},"parent_incident_type":{"description":"Sets the parent's service incident type to this value when an incident is created via monitoring.","$ref":"#/components/schemas/MonitoringIncidentType"},"is_up":{"type":"boolean","readOnly":true,"description":"Is the monitored service up?"},"pause_monitoring_during_maintenances":{"type":"boolean","description":"Pause the service monitoring during maintenances?"},"inbound_email_id":{"type":"string","readOnly":true,"description":"The inbound email ID."},"auto_incident":{"type":"boolean","description":"Create an incident automatically when this service is down and close it if/when it comes back up."},"auto_notify":{"type":"boolean","description":"Automatically notify all your subscribers about automatically created and closed incidents."},"children_ids":{"readOnly":true,"type":"array","description":"IDs of the service's children.","items":{"type":"integer"}},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": {\n    \"name\": \"Your service\",\n    \"description\": \"This is your service's description...\"\n  },\n  \"fr\": {\n    \"name\": \"Votre service\",\n    \"description\": \"Voici la description de votre service...\"\n  }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}}}}},"private":{"type":"boolean","description":"Private service?"},"display_uptime_graph":{"type":"boolean","description":"Display uptime graph?"},"display_response_time_chart":{"type":"boolean","description":"Display response time chart?"},"order":{"type":"integer","description":"Service's position in the service list."},"notification_recipients":{"description":"Array of notification recipients:\n- In request: Array of recipient IDs (write-only).\n- In response: Array of recipient objects with `id` and `email` (read-only).\n","type":"array","items":{"oneOf":[{"type":"integer","description":"Recipient ID (write-only for request).","writeOnly":true},{"type":"object","description":"Recipient object (read-only for response).","readOnly":true,"properties":{"id":{"type":"integer","description":"The ID of the recipient."},"email":{"type":"string","description":"The email of the recipient."}}}]}},"monitoring_options":{"description":"Configuration options for monitoring the service. The options vary depending on whether\nthe monitoring type is `internal` or `3rd_party`.\n","$ref":"#/components/schemas/MonitoringOptions"}}},"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]},"MonitoringType":{"type":"string","nullable":true,"description":"Monitoring types:\n * `null` - No monitoring\n * `internal` - StatusPal monitoring\n * `3rd_party` - 3rd Party monitoring\n * `webhook` - Incoming webhook monitoring\n","enum":[null,"internal","3rd_party","webhook"]},"WebhookMonitoringService":{"type":"string","description":"> ### Configure this field only if the `monitoring` is set to `webhook`.\n\nWebhook monitoring services:\n* `status-cake` - StatusCake monitoring service\n* `uptime-robot` - UptimeRobot monitoring service\n* `zabbix` - Zabbix monitoring service\n* `custom-jsonpath` - Custom JSONPath\n","enum":["status-cake","uptime-robot","zabbix","custom-jsonpath"]},"WebhookCustomJsonpathSettings":{"type":"object","description":"> ### Configure this field only if the `webhook_monitoring_service` is set to `custom-jsonpath`.","properties":{"jsonpath":{"type":"string","description":"The path in the JSON, e.g. `$.status`."},"expected_result":{"type":"string","description":"The expected result in the JSON, e.g. `\"up\"`."}}},"MonitoringIncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n","enum":["major","minor"]},"MonitoringOptions":{"type":"object","description":"Options for configuring monitoring behavior for services.","properties":{"method":{"type":"string","description":"The HTTP method to be used when sending requests for monitoring.\nThis should be set to a valid HTTP method (e.g. `GET` or `HEAD`)\nwhen monitoring type is `internal`.\nEnsure it aligns with the service's requirements for health checks.\n"},"headers":{"type":"array","description":"Custom headers to be included in the monitoring request.\nThis should be set when the monitoring type is `internal`\nto specify any necessary header fields for the request.\n","items":{"type":"object","properties":{"key":{"type":"string","description":"The name of the header field."},"value":{"type":"string","description":"The value for the header field."}}}},"keyword_down":{"type":"string","description":"A custom keyword that indicates a 'down' status when\nmonitoring a third-party service. This keyword is used\nto parse and understand service responses.\n"},"keyword_up":{"type":"string","description":"A custom keyword that indicates an 'up' status when\nmonitoring a third-party service. This keyword is used\nto parse and understand service responses.\n"}}}}}}
````

## The MetricObj object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"MetricObj":{"type":"object","properties":{"metric":{"$ref":"#/components/schemas/Metric"}}},"Metric":{"description":"Represents a metric object.","type":"object","required":["title","type","unit"],"properties":{"id":{"type":"integer","readOnly":true,"description":"The ID of the metric."},"title":{"type":"string","description":"The title or name of the metric, used to describe what the metric is measuring."},"unit":{"type":"string","description":"The unit of measurement for the metric. For example, this could be \"ms\" for milliseconds or \"requests/sec\"."},"type":{"$ref":"#/components/schemas/MetricType"},"enabled":{"type":"boolean","description":"Indicates whether the metric is currently enabled. When `true` system will actually pull data for this metric; when `false`, it does not."},"visible":{"type":"boolean","description":"Determines whether the metric is visible on the status page. If `true`, the metric's data is displayed; if `false`, it is hidden."},"remote_id":{"type":"string","description":"The identifier of the metric on the remote site. This is used to map the metric in the system to its counterpart on an external service or integration."},"remote_name":{"type":"string","description":"The name of the metric on the remote site. This is used to display the metric name as it appears on the external service."},"status":{"type":"string","readOnly":true,"description":"The current status of the metric, often represented as an HTTP status code or a descriptive string. This field indicates the latest state or response of the metric."},"latest_entry_time":{"type":"integer","readOnly":true,"description":"The Unix timestamp of the most recent entry recorded for this metric. This indicates the last time data was updated for the metric."},"threshold":{"type":"integer","description":"The threshold value for the metric. This is used to set limits or bounds, such as a threshold for triggering alerts or visual indicators in graphs."},"featured_number":{"$ref":"#/components/schemas/FeaturedNumber"},"order":{"type":"integer","readOnly":true,"description":"The order in which the metric appears on the status page or within a list. This helps determine the sorting and display sequence."},"integration_id":{"type":"string","description":"The identifier of the integration associated with this metric. This ties the metric to a specific integration."}}},"MetricType":{"type":"string","description":"The type of the metric. It can be one of the following:\n * `up` (Uptime): Represents the amount of time a service or system is operational and available.\n * `rt` (ResponseTime): Represents the time taken to respond to a request or query.\n","enum":["up","rt"]},"FeaturedNumber":{"type":"string","description":"Specifies the type of number to be featured prominently in the metric's display. Options might include \"average\", \"maximum\", or \"current/last\".\n","enum":["avg","max","last"]}}}}
```

## The Integration object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"Integration":{"description":"Represents an integration service.","type":"object","required":["name","settings"],"properties":{"id":{"type":"integer","readOnly":true,"description":"The ID of the integration."},"name":{"type":"string","description":"The integration type identifier. Must be one of the supported integration types.","enum":["pingdom","datadog","newrelic","twilio","mailgun","sendgrid","mandrill","smtp","zabbix"]},"user":{"type":"string","description":"Username or Account ID for the integration. Required for New Relic integrations."},"phone_number":{"type":"string","description":"Phone number for SMS notifications. Required for Twilio integration."},"domain":{"type":"string","description":"Domain name for the integration. Required for Mailgun and Zabbix integrations."},"email_from_address":{"type":"string","description":"Email address used as sender. Required for Mailgun, SendGrid, Mandrill, and SMTP integrations."},"key":{"type":"string","description":"API key or Service ID for the integration. Required for Pingdom, Twilio, Mailgun, Datadog, Zabbix, SendGrid, and Mandrill integrations."},"password":{"type":"string","writeOnly":true,"description":"Password or Auth Token for the integration. Required for Datadog, Twilio, and SMTP integrations."},"relay":{"type":"string","description":"SMTP relay server hostname or IP address. Required for SMTP integration."},"username":{"type":"string","description":"Username for SMTP authentication. Required for SMTP integration."},"port":{"type":"integer","description":"Port number for the integration connection. Required for SMTP integration."},"region":{"type":"string","description":"Region for the integration service:\n- New Relic & Mailgun: 'us' or 'eu'\n- Datadog: 'us' (East), 'us3' (West), 'us5' (Central), 'us-gov' (FedRamp), 'eu' (Europe)\n","enum":["us","eu","us3","us5","us-gov"]},"settings":{"type":"object","description":"Additional configuration settings specific to the integration type.","properties":{"__type__":{"type":"string","writeOnly":true,"description":"Configuration type identifier. Can be \"common\" for most integrations or \"mailgun\" for Mailgun-specific settings."},"enabled":{"type":"boolean","description":"Whether the integration is enabled and active. Required for all integrations."},"api_key_type":{"type":"string","description":"Type of API key for Mailgun integration. Determines the level of access and functionality.","enum":["private","sending"]}}}}}}}}
```

## The IntegrationObj object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"IntegrationObj":{"type":"object","properties":{"integration":{"$ref":"#/components/schemas/Integration"}}},"Integration":{"description":"Represents an integration service.","type":"object","required":["name","settings"],"properties":{"id":{"type":"integer","readOnly":true,"description":"The ID of the integration."},"name":{"type":"string","description":"The integration type identifier. Must be one of the supported integration types.","enum":["pingdom","datadog","newrelic","twilio","mailgun","sendgrid","mandrill","smtp","zabbix"]},"user":{"type":"string","description":"Username or Account ID for the integration. Required for New Relic integrations."},"phone_number":{"type":"string","description":"Phone number for SMS notifications. Required for Twilio integration."},"domain":{"type":"string","description":"Domain name for the integration. Required for Mailgun and Zabbix integrations."},"email_from_address":{"type":"string","description":"Email address used as sender. Required for Mailgun, SendGrid, Mandrill, and SMTP integrations."},"key":{"type":"string","description":"API key or Service ID for the integration. Required for Pingdom, Twilio, Mailgun, Datadog, Zabbix, SendGrid, and Mandrill integrations."},"password":{"type":"string","writeOnly":true,"description":"Password or Auth Token for the integration. Required for Datadog, Twilio, and SMTP integrations."},"relay":{"type":"string","description":"SMTP relay server hostname or IP address. Required for SMTP integration."},"username":{"type":"string","description":"Username for SMTP authentication. Required for SMTP integration."},"port":{"type":"integer","description":"Port number for the integration connection. Required for SMTP integration."},"region":{"type":"string","description":"Region for the integration service:\n- New Relic & Mailgun: 'us' or 'eu'\n- Datadog: 'us' (East), 'us3' (West), 'us5' (Central), 'us-gov' (FedRamp), 'eu' (Europe)\n","enum":["us","eu","us3","us5","us-gov"]},"settings":{"type":"object","description":"Additional configuration settings specific to the integration type.","properties":{"__type__":{"type":"string","writeOnly":true,"description":"Configuration type identifier. Can be \"common\" for most integrations or \"mailgun\" for Mailgun-specific settings."},"enabled":{"type":"boolean","description":"Whether the integration is enabled and active. Required for all integrations."},"api_key_type":{"type":"string","description":"Type of API key for Mailgun integration. Determines the level of access and functionality.","enum":["private","sending"]}}}}}}}}
```

## The Webhook object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"Webhook":{"required":["enabled","events","url"],"type":"object","properties":{"url":{"type":"string","description":"The endpoint URL of the webhook to send the POST request to when the specified events occur."},"events":{"type":"array","description":"Available events:\n* `service.monitored_status.updated` - Triggered when a service configured with our internal monitoring goes up/down.\n* `incident.created`, `incident.updated`, `incident.deleted` - Triggered during the lifecycle of an incident, they all send the same payload.\n","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Toggles the webhook's state."}}}}}}
```

## The WebhookObj object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"WebhookObj":{"type":"object","properties":{"webhook":{"$ref":"#/components/schemas/Webhook"}}},"Webhook":{"required":["enabled","events","url"],"type":"object","properties":{"url":{"type":"string","description":"The endpoint URL of the webhook to send the POST request to when the specified events occur."},"events":{"type":"array","description":"Available events:\n* `service.monitored_status.updated` - Triggered when a service configured with our internal monitoring goes up/down.\n* `incident.created`, `incident.updated`, `incident.deleted` - Triggered during the lifecycle of an incident, they all send the same payload.\n","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Toggles the webhook's state."}}}}}}
```

## The AccessGroup object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"AccessGroup":{"required":["name","service_ids"],"type":"object","properties":{"id":{"type":"integer","description":"The access group's id.","readOnly":true},"name":{"type":"string","description":"The name of the access group."},"service_ids":{"type":"array","items":{"type":"integer"},"description":"An array of service Ids, at least 1 must be included"},"users_status_pages":{"type":"array","items":{"type":"integer"},"description":"An array of status page member Ids"}}}}}}
```

## The AccessGroupObj object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"AccessGroupObj":{"type":"object","properties":{"access_group":{"$ref":"#/components/schemas/AccessGroup"}}},"AccessGroup":{"required":["name","service_ids"],"type":"object","properties":{"id":{"type":"integer","description":"The access group's id.","readOnly":true},"name":{"type":"string","description":"The name of the access group."},"service_ids":{"type":"array","items":{"type":"integer"},"description":"An array of service Ids, at least 1 must be included"},"users_status_pages":{"type":"array","items":{"type":"integer"},"description":"An array of status page member Ids"}}}}}}
```

## The StatusPageMember object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"StatusPageMember":{"type":"object","properties":{"id":{"type":"integer","description":"The member's id.","readOnly":true},"email":{"type":"string","description":"The member's email address.","readOnly":true},"role":{"type":"string","description":"The membership role.\nAvailable roles:\n* `c` - Editor\n* `v` - Viewer\n* `a` - Admin\n"},"enabled":{"type":"boolean","description":"Toggles the membership's state."},"user":{"type":"object","properties":{"id":{"type":"integer","description":"The user's id.","readOnly":true},"last_sign_in_at":{"type":"string","description":"The date and time the user signed in before their current session","format":"date-time","readOnly":true},"current_sign_in_at":{"type":"string","description":"The date and time the user signed in for their current session","format":"date-time","readOnly":true}},"description":"The related User object (if there is one).","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true}}}}}}
```

## The StatusPageMemberObj object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"StatusPageMemberObj":{"type":"object","properties":{"member":{"$ref":"#/components/schemas/StatusPageMember"}}},"StatusPageMember":{"type":"object","properties":{"id":{"type":"integer","description":"The member's id.","readOnly":true},"email":{"type":"string","description":"The member's email address.","readOnly":true},"role":{"type":"string","description":"The membership role.\nAvailable roles:\n* `c` - Editor\n* `v` - Viewer\n* `a` - Admin\n"},"enabled":{"type":"boolean","description":"Toggles the membership's state."},"user":{"type":"object","properties":{"id":{"type":"integer","description":"The user's id.","readOnly":true},"last_sign_in_at":{"type":"string","description":"The date and time the user signed in before their current session","format":"date-time","readOnly":true},"current_sign_in_at":{"type":"string","description":"The date and time the user signed in for their current session","format":"date-time","readOnly":true}},"description":"The related User object (if there is one).","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true}}}}}}
```

## The OrganizationMember object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"OrganizationMember":{"type":"object","properties":{"id":{"type":"integer","description":"The member's id.","readOnly":true},"email":{"type":"string","description":"The member's email address.","readOnly":true},"role":{"type":"string","description":"The membership role.\nAvailable roles:\n* `c` - Editor\n* `v` - Viewer\n* `a` - Admin\n* `o` - Owner\n"},"user":{"type":"object","properties":{"id":{"type":"integer","description":"The user's id.","readOnly":true},"last_sign_in_at":{"type":"string","description":"The date and time the user signed in before their current session","format":"date-time","readOnly":true},"current_sign_in_at":{"type":"string","description":"The date and time the user signed in for their current session","format":"date-time","readOnly":true}},"description":"The related User object (if there is one).","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true}}}}}}
```

## The OrganizationMemberObj object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"OrganizationMemberObj":{"type":"object","properties":{"member":{"$ref":"#/components/schemas/OrganizationMember"}}},"OrganizationMember":{"type":"object","properties":{"id":{"type":"integer","description":"The member's id.","readOnly":true},"email":{"type":"string","description":"The member's email address.","readOnly":true},"role":{"type":"string","description":"The membership role.\nAvailable roles:\n* `c` - Editor\n* `v` - Viewer\n* `a` - Admin\n* `o` - Owner\n"},"user":{"type":"object","properties":{"id":{"type":"integer","description":"The user's id.","readOnly":true},"last_sign_in_at":{"type":"string","description":"The date and time the user signed in before their current session","format":"date-time","readOnly":true},"current_sign_in_at":{"type":"string","description":"The date and time the user signed in for their current session","format":"date-time","readOnly":true}},"description":"The related User object (if there is one).","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true}}}}}}
```

## The MaintenanceType object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"MaintenanceType":{"type":"string","description":"The type of the incident:\n * `scheduled` - Should be used for maintenances.\n","enum":["scheduled"]}}}}
```

## The IncidentType object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"IncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n * `scheduled` - A scheduled maintenance is currently taking place.\n","enum":["major","minor","scheduled"]}}}}
```

## The IncidentTemplate object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"IncidentTemplate":{"description":"Represents the incident template.","type":"object","required":["title","description"],"properties":{"id":{"type":"integer","readOnly":true,"description":"The ID of the incident template."},"name":{"type":"string","nullable":true,"description":"The template's own name/label as shown in the dashboard. This is separate from `title`, which is the incident title the template produces when applied. Blank or whitespace-only values are stored as null."},"title":{"type":"string","description":"The title of the incident template."},"description":{"type":"string","description":"The description of the incident template."},"service_ids":{"type":"array","description":"An array of service Ids.","items":{"type":"integer"}},"incident_types":{"type":"array","description":"An array of incident type keys. If set, the incident template will only work with the given incident types.","items":{"type":"string"}},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English title\", \"description\": \"English description\" },\n  \"es\": { \"title\": \"Spanish title\", \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"}}}}}}}}}}
````

## The IncidentTemplateObj object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"IncidentTemplateObj":{"type":"object","properties":{"incident_template":{"$ref":"#/components/schemas/IncidentTemplate"}}},"IncidentTemplate":{"description":"Represents the incident template.","type":"object","required":["title","description"],"properties":{"id":{"type":"integer","readOnly":true,"description":"The ID of the incident template."},"name":{"type":"string","nullable":true,"description":"The template's own name/label as shown in the dashboard. This is separate from `title`, which is the incident title the template produces when applied. Blank or whitespace-only values are stored as null."},"title":{"type":"string","description":"The title of the incident template."},"description":{"type":"string","description":"The description of the incident template."},"service_ids":{"type":"array","description":"An array of service Ids.","items":{"type":"integer"}},"incident_types":{"type":"array","description":"An array of incident type keys. If set, the incident template will only work with the given incident types.","items":{"type":"string"}},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"title\": \"English title\", \"description\": \"English description\" },\n  \"es\": { \"title\": \"Spanish title\", \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"}}}}}}}}}}
````

## The MetricType object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"MetricType":{"type":"string","description":"The type of the metric. It can be one of the following:\n * `up` (Uptime): Represents the amount of time a service or system is operational and available.\n * `rt` (ResponseTime): Represents the time taken to respond to a request or query.\n","enum":["up","rt"]}}}}
```

## The FeaturedNumber object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"FeaturedNumber":{"type":"string","description":"Specifies the type of number to be featured prominently in the metric's display. Options might include \"average\", \"maximum\", or \"current/last\".\n","enum":["avg","max","last"]}}}}
```

## The IncidentActivity object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"IncidentActivity":{"type":"object","description":"Communicates an update of an incident, the special type `resolved` will close an incident.","required":["type","description"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"posted_at":{"type":"string","description":"Editable datetime at which the record was posted","format":"date-time"},"type":{"type":"string","description":"The type of an incident update:\n * `investigating` - Investigating.\n * `issue` - Issue.\n * `monitoring` - Monitoring.\n * `resolved` - Resolved will close the associated incident by settings its `ends_at` to the current time.\n * `scheduled` - Scheduled Maintenance's first update shall have this type.\n * `essential` - Essential Maintenance's first update shall have this type.\n * `retroactive` - Retroactive.\n * `update` - Standard update on an incident.\n * `escalate` - Escalate will switch the incident type from `minor` to `major`.\n * `deescalate` - De-escalate will switch the incident type from `major` to `minor`.\n * `postmortem` - A Post-mortem update.\n"},"description":{"type":"string","description":"The provided update description (accepts Markdown format)"},"description_html":{"type":"string","readOnly":true,"description":"The provided update description rendered in HTML"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"description\": \"English description\" },\n  \"es\": { \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"description":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Should your subscribers be notified about this update?","writeOnly":true},"subscribers_notified_at":{"type":"string","description":"Datetime at which subscribers were notified for this update","format":"date-time","readOnly":true},"tweet":{"type":"boolean","description":"Tweet this update with your configured Twitter account?"}}}}}}
````

## The IncidentActivityObj object

````json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"IncidentActivityObj":{"type":"object","properties":{"update":{"$ref":"#/components/schemas/IncidentActivity"}}},"IncidentActivity":{"type":"object","description":"Communicates an update of an incident, the special type `resolved` will close an incident.","required":["type","description"],"properties":{"id":{"type":"integer","description":"ID of the record","readOnly":true},"inserted_at":{"type":"string","description":"Datetime at which the record was inserted","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Datetime at which the record was last updated","format":"date-time","readOnly":true},"posted_at":{"type":"string","description":"Editable datetime at which the record was posted","format":"date-time"},"type":{"type":"string","description":"The type of an incident update:\n * `investigating` - Investigating.\n * `issue` - Issue.\n * `monitoring` - Monitoring.\n * `resolved` - Resolved will close the associated incident by settings its `ends_at` to the current time.\n * `scheduled` - Scheduled Maintenance's first update shall have this type.\n * `essential` - Essential Maintenance's first update shall have this type.\n * `retroactive` - Retroactive.\n * `update` - Standard update on an incident.\n * `escalate` - Escalate will switch the incident type from `minor` to `major`.\n * `deescalate` - De-escalate will switch the incident type from `major` to `minor`.\n * `postmortem` - A Post-mortem update.\n"},"description":{"type":"string","description":"The provided update description (accepts Markdown format)"},"description_html":{"type":"string","readOnly":true,"description":"The provided update description rendered in HTML"},"translations":{"description":"A translations object. For example:\n```json\n{\n  \"en\": { \"description\": \"English description\" },\n  \"es\": { \"description\": \"Spanish description\" }\n}\n```\n","type":"object","additionalProperties":true,"properties":{"[lang]":{"description":"e.g. `en`.","type":"object","properties":{"description":{"type":"string"}}}}},"notify":{"type":"boolean","description":"Should your subscribers be notified about this update?","writeOnly":true},"subscribers_notified_at":{"type":"string","description":"Datetime at which subscribers were notified for this update","format":"date-time","readOnly":true},"tweet":{"type":"boolean","description":"Tweet this update with your configured Twitter account?"}}}}}}
````

## The MonitoringIncidentType object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"MonitoringIncidentType":{"type":"string","description":"The type of the (current) incident:\n * `minor` - A minor incident is currently taking place.\n * `major` - A major incident is currently taking place.\n","enum":["major","minor"]}}}}
```

## The MonitoringType object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"MonitoringType":{"type":"string","nullable":true,"description":"Monitoring types:\n * `null` - No monitoring\n * `internal` - StatusPal monitoring\n * `3rd_party` - 3rd Party monitoring\n * `webhook` - Incoming webhook monitoring\n","enum":[null,"internal","3rd_party","webhook"]}}}}
```

## The WebhookMonitoringService object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"WebhookMonitoringService":{"type":"string","description":"> ### Configure this field only if the `monitoring` is set to `webhook`.\n\nWebhook monitoring services:\n* `status-cake` - StatusCake monitoring service\n* `uptime-robot` - UptimeRobot monitoring service\n* `zabbix` - Zabbix monitoring service\n* `custom-jsonpath` - Custom JSONPath\n","enum":["status-cake","uptime-robot","zabbix","custom-jsonpath"]}}}}
```

## The WebhookCustomJsonpathSettings object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"WebhookCustomJsonpathSettings":{"type":"object","description":"> ### Configure this field only if the `webhook_monitoring_service` is set to `custom-jsonpath`.","properties":{"jsonpath":{"type":"string","description":"The path in the JSON, e.g. `$.status`."},"expected_result":{"type":"string","description":"The expected result in the JSON, e.g. `\"up\"`."}}}}}}
```

## The MaintenanceNotifySettings object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"MaintenanceNotifySettings":{"type":"object","description":"> ### Configure this field only if the `type` is set to `scheduled`. To take effect, the `maintenance_notify` must be set to `true`.\nOverrides the status page auto maintenance notification settings for this specific maintenance.\n","properties":{"before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers before the maintenance start.\n* `-1` - Immediately\n* `0` - Never\n* Positive integer (`4320`, `5760`, `10080`, ...) - Before the maintenance start minutes\n"},"second_before_notice_minutes":{"type":"integer","description":"The number of minutes to notify the subscribers the second time before the maintenance start. It needs to be after the first \"before maintenance start\" notice.\n* `0` - Never\n* Positive integer (`720`, `1440`, `2880`, ...) - Before the maintenance start minutes\n"},"on_start":{"type":"boolean","description":"Notify subscribers when the maintenance starts."},"on_end":{"type":"boolean","description":"Notify subscribers when the maintenance ends."}}}}}}
```

## The ValidationError object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"ValidationError":{"type":"object","properties":{"errors":{"type":"object","description":"A dictionary where each key contains the name of a field with a validation error and the value an array with the validation errors"}}}}}}
```

## The UnauthorizedError object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"UnauthorizedError":{"type":"object","properties":{"error":{"type":"integer","description":"Unauthorized"}}}}}}
```

## The ServerError object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"ServerError":{"type":"object","properties":{"error":{"type":"string","description":"Internal server error :("}}}}}}
```

## The BadRequestError object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"BadRequestError":{"type":"object","properties":{"error":{"type":"string","description":"Bad request!"}}}}}}
```

## The NotFoundError object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"NotFoundError":{"type":"object","properties":{"error":{"type":"string","description":"Resource not found!"}}}}}}
```

## The ForbiddenError object

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"components":{"schemas":{"ForbiddenError":{"type":"object","properties":{"error":{"type":"string","description":"Forbidden"}}}}}}
```
