> 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/integrations.md).

# Integrations

Integrations endpoints

## GET /status\_pages/{subdomain}/integrations

> Get the integrations

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"tags":[{"name":"Integrations","description":"Integrations endpoints"}],"servers":[{"url":"https://statuspal.io/api/v2"},{"url":"https://statuspal.eu/api/v2"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"}},"parameters":{"StatusPageSubdomain":{"name":"subdomain","in":"path","description":"The subdomain of your status page.\n\nYou can find this under your status page settings, the Subdomain field is found under the \"Domain name\" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/`subdomain`).\n","required":true,"schema":{"type":"string"}}},"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"]}}}}},"UnauthorizedError":{"type":"object","properties":{"error":{"type":"integer","description":"Unauthorized"}}},"ForbiddenError":{"type":"object","properties":{"error":{"type":"string","description":"Forbidden"}}},"NotFoundError":{"type":"object","properties":{"error":{"type":"string","description":"Resource not found!"}}},"ServerError":{"type":"object","properties":{"error":{"type":"string","description":"Internal server error :("}}}},"responses":{"UnauthorizedError":{"description":"Authorization information is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenError":{"description":"You lack the necessary permissions to access this resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}},"NotFoundError":{"description":"A resource with the provided ID was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}},"ServerError":{"description":"Unexpected error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerError"}}}}}},"paths":{"/status_pages/{subdomain}/integrations":{"get":{"tags":["Integrations"],"summary":"Get the integrations","operationId":"getStatusPageIntegrations","parameters":[{"$ref":"#/components/parameters/StatusPageSubdomain"}],"responses":{"200":{"description":"A status page's integrations","content":{"application/json":{"schema":{"type":"object","properties":{"integrations":{"type":"array","items":{"$ref":"#/components/schemas/Integration"}}}}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"},"500":{"$ref":"#/components/responses/ServerError"}}}}}}
```

## POST /status\_pages/{subdomain}/integrations

> Adds a new integration

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"tags":[{"name":"Integrations","description":"Integrations endpoints"}],"servers":[{"url":"https://statuspal.io/api/v2"},{"url":"https://statuspal.eu/api/v2"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"}},"parameters":{"StatusPageSubdomain":{"name":"subdomain","in":"path","description":"The subdomain of your status page.\n\nYou can find this under your status page settings, the Subdomain field is found under the \"Domain name\" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/`subdomain`).\n","required":true,"schema":{"type":"string"}}},"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"]}}}}},"BadRequestError":{"type":"object","properties":{"error":{"type":"string","description":"Bad request!"}}},"UnauthorizedError":{"type":"object","properties":{"error":{"type":"integer","description":"Unauthorized"}}},"ForbiddenError":{"type":"object","properties":{"error":{"type":"string","description":"Forbidden"}}},"NotFoundError":{"type":"object","properties":{"error":{"type":"string","description":"Resource not found!"}}},"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"}}},"ServerError":{"type":"object","properties":{"error":{"type":"string","description":"Internal server error :("}}}},"responses":{"BadRequestError":{"description":"Bad request error. Probably JSON syntax is wrong, check with jsonlint.com.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"UnauthorizedError":{"description":"Authorization information is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenError":{"description":"You lack the necessary permissions to access this resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}},"NotFoundError":{"description":"A resource with the provided ID was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}},"ValidationError":{"description":"There was a validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"ServerError":{"description":"Unexpected error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerError"}}}}}},"paths":{"/status_pages/{subdomain}/integrations":{"post":{"tags":["Integrations"],"summary":"Adds a new integration","operationId":"addIntegration","parameters":[{"$ref":"#/components/parameters/StatusPageSubdomain"}],"requestBody":{"description":"The integration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationObj"}}},"required":true},"responses":{"201":{"description":"The integration created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationObj"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"},"422":{"$ref":"#/components/responses/ValidationError"},"500":{"$ref":"#/components/responses/ServerError"}}}}}}
```

## GET /status\_pages/{subdomain}/integrations/{integrationId}

> Get integration against given integration id

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"tags":[{"name":"Integrations","description":"Integrations endpoints"}],"servers":[{"url":"https://statuspal.io/api/v2"},{"url":"https://statuspal.eu/api/v2"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"}},"parameters":{"StatusPageSubdomain":{"name":"subdomain","in":"path","description":"The subdomain of your status page.\n\nYou can find this under your status page settings, the Subdomain field is found under the \"Domain name\" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/`subdomain`).\n","required":true,"schema":{"type":"string"}},"IntegrationId":{"name":"integrationId","in":"path","description":"The ID of integration","required":true,"schema":{"type":"integer"}}},"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"]}}}}},"UnauthorizedError":{"type":"object","properties":{"error":{"type":"integer","description":"Unauthorized"}}},"ForbiddenError":{"type":"object","properties":{"error":{"type":"string","description":"Forbidden"}}},"NotFoundError":{"type":"object","properties":{"error":{"type":"string","description":"Resource not found!"}}},"ServerError":{"type":"object","properties":{"error":{"type":"string","description":"Internal server error :("}}}},"responses":{"UnauthorizedError":{"description":"Authorization information is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenError":{"description":"You lack the necessary permissions to access this resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}},"NotFoundError":{"description":"A resource with the provided ID was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}},"ServerError":{"description":"Unexpected error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerError"}}}}}},"paths":{"/status_pages/{subdomain}/integrations/{integrationId}":{"get":{"operationId":"getIntegration","summary":"Get integration against given integration id","tags":["Integrations"],"parameters":[{"$ref":"#/components/parameters/StatusPageSubdomain"},{"$ref":"#/components/parameters/IntegrationId"}],"responses":{"200":{"description":"The integration details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationObj"}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"},"500":{"$ref":"#/components/responses/ServerError"}}}}}}
```

## PUT /status\_pages/{subdomain}/integrations/{integrationId}

> Updates existing integration

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"tags":[{"name":"Integrations","description":"Integrations endpoints"}],"servers":[{"url":"https://statuspal.io/api/v2"},{"url":"https://statuspal.eu/api/v2"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"}},"parameters":{"IntegrationId":{"name":"integrationId","in":"path","description":"The ID of integration","required":true,"schema":{"type":"integer"}},"StatusPageSubdomain":{"name":"subdomain","in":"path","description":"The subdomain of your status page.\n\nYou can find this under your status page settings, the Subdomain field is found under the \"Domain name\" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/`subdomain`).\n","required":true,"schema":{"type":"string"}}},"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"]}}}}},"BadRequestError":{"type":"object","properties":{"error":{"type":"string","description":"Bad request!"}}},"UnauthorizedError":{"type":"object","properties":{"error":{"type":"integer","description":"Unauthorized"}}},"ForbiddenError":{"type":"object","properties":{"error":{"type":"string","description":"Forbidden"}}},"NotFoundError":{"type":"object","properties":{"error":{"type":"string","description":"Resource not found!"}}},"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"}}},"ServerError":{"type":"object","properties":{"error":{"type":"string","description":"Internal server error :("}}}},"responses":{"BadRequestError":{"description":"Bad request error. Probably JSON syntax is wrong, check with jsonlint.com.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"UnauthorizedError":{"description":"Authorization information is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenError":{"description":"You lack the necessary permissions to access this resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}},"NotFoundError":{"description":"A resource with the provided ID was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}},"ValidationError":{"description":"There was a validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"ServerError":{"description":"Unexpected error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerError"}}}}}},"paths":{"/status_pages/{subdomain}/integrations/{integrationId}":{"put":{"tags":["Integrations"],"summary":"Updates existing integration","operationId":"updateIntegration","parameters":[{"$ref":"#/components/parameters/IntegrationId"},{"$ref":"#/components/parameters/StatusPageSubdomain"}],"requestBody":{"description":"The integration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationObj"}}},"required":true},"responses":{"200":{"description":"The integration updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationObj"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"},"422":{"$ref":"#/components/responses/ValidationError"},"500":{"$ref":"#/components/responses/ServerError"}}}}}}
```

## DELETE /status\_pages/{subdomain}/integrations/{integrationId}

> Deletes integration permanently

```json
{"openapi":"3.0.1","info":{"title":"StatusPal API Reference","version":"2.0.0"},"tags":[{"name":"Integrations","description":"Integrations endpoints"}],"servers":[{"url":"https://statuspal.io/api/v2"},{"url":"https://statuspal.eu/api/v2"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"}},"parameters":{"StatusPageSubdomain":{"name":"subdomain","in":"path","description":"The subdomain of your status page.\n\nYou can find this under your status page settings, the Subdomain field is found under the \"Domain name\" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/`subdomain`).\n","required":true,"schema":{"type":"string"}},"IntegrationId":{"name":"integrationId","in":"path","description":"The ID of integration","required":true,"schema":{"type":"integer"}}},"responses":{"UnauthorizedError":{"description":"Authorization information is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenError":{"description":"You lack the necessary permissions to access this resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}},"NotFoundError":{"description":"A resource with the provided ID was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}},"ServerError":{"description":"Unexpected error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerError"}}}}},"schemas":{"UnauthorizedError":{"type":"object","properties":{"error":{"type":"integer","description":"Unauthorized"}}},"ForbiddenError":{"type":"object","properties":{"error":{"type":"string","description":"Forbidden"}}},"NotFoundError":{"type":"object","properties":{"error":{"type":"string","description":"Resource not found!"}}},"ServerError":{"type":"object","properties":{"error":{"type":"string","description":"Internal server error :("}}}}},"paths":{"/status_pages/{subdomain}/integrations/{integrationId}":{"delete":{"operationId":"deleteIntegration","summary":"Deletes integration permanently","tags":["Integrations"],"parameters":[{"$ref":"#/components/parameters/StatusPageSubdomain"},{"$ref":"#/components/parameters/IntegrationId"}],"responses":{"200":{"description":"Integration deleted successfully","content":{}},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"},"500":{"$ref":"#/components/responses/ServerError"}}}}}}
```
