> 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"}},"auto_translate":{"type":"boolean","default":true,"description":"When true (default) and the status page has auto-translations enabled, empty translations are filled automatically when the template is saved. Set to false to keep them empty so the incident is translated from its final text when the template is applied."},"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"}},"auto_translate":{"type":"boolean","default":true,"description":"When true (default) and the status page has auto-translations enabled, empty translations are filled automatically when the template is saved. Set to false to keep them empty so the incident is translated from its final text when the template is applied."},"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"}}}}}}
```
