Statuspages

Statuspages provide a centralized platform for organizations to communicate the operational status of their services and components to customers. This service is designed to enhance transparency and trust by offering real-time updates on service availability, performance, and incident responses. Through the statuspages, organizations can manage multiple components and their respective statuses, ensuring users are informed about any ongoing issues or scheduled maintenance. Key features include:

  • Real-time updates: Instantly notify users of outages, maintenance, and performance issues.
  • Component management: Monitor and manage individual service components to ensure clear communication.
  • Custom branding: Tailor the status page to reflect the organization’s branding and design.
  • Subscription options: Allow users to subscribe for notifications on specific incidents or updates related to their services.
  • Historical data: Access past incident reports and performance metrics to improve future incident management.

With statuspages, organizations can effectively communicate with their users, ensuring they have access to accurate information during critical moments.
ENDPOINTS
Expand all
  • Statuspage management
    GET/statuspages
    GET/statuspage/{id}
    GET/statuspage/{id}/components
    GET/component/{id}/statistics
    GET/statuspage/{id}/unified
    GET/domain/{domain}/cname
    POST/statuspage
    PUT/statuspage/{id}
    DELETE/statuspage/{id}
    PUT/statuspage/{id}/status
  • Subscription management
Get Status Pages for Organisation
Retrieves all status pages associated with a specific organisation. This endpoint allows platform administrators and external systems to programmatically list and manage the organisation’s public and private status pages. It is ideal for environments where multiple status pages are used to represent different services or departments. The data returned helps synchronize status communication across platforms, automate visibility checks, and support unified status dashboards. Each status page object includes identifying information such as the name, subdomain, optional custom domain, visibility status, and timestamps for creation. This enables precise management and monitoring of organisational status page configurations. This endpoint enhances operational transparency and is commonly used to support integrations, audit workflows, and centralized service health monitoring.

Authorization: Bearer YOUR_TOKEN


Expected Behavior:


  • On success, the system will return a list of organisation statuspages.
  • If the request is unauthorized, an error message will be returned specifying the issue.
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-query.api.pinghome.io/v1/statuspages";
axios.get(url, {
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Get Status Page
Fetches detailed information about a specific status page using its unique identifier. This endpoint is typically used to display or manage individual status pages in administrative interfaces or integrations. The returned data includes the page's name, subdomain, optional custom domain, visibility settings, and other details such as creation timestamps. It enables clients to retrieve a full snapshot of a status page’s configuration and presentation. This is useful for service status monitoring tools, dashboards, or auditing systems that need to access or verify the configuration of a single status page at any given time.

Authorization: Bearer YOUR_TOKEN


Expected Behavior:


  • On success, the system will return the statuspage details.
  • If the request is invalid, the system will return a 400 error message.
  • If authorization fails, a 401 error message will be returned.
  • If the statuspage is not found, a 404 error will be returned.
Path Parameters
  • id string
    The unique ID of the statuspage to be retrieved. Example: 'c03b02ec-244f-4d2c-8f68-3910071ed5c8'
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-query.api.pinghome.io/v1/statuspage/c03b02ec-244f-4d2c-8f68-3910071ed5c8";
axios.get(url, {
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Get Status Page Components
Retrieves a list of all components linked to a specific status page, identified by its unique ID. Components represent individual services or subsystems displayed on the status page and reflect their current operational state. This endpoint is essential for applications or dashboards that need to display real-time service health at a granular level. Each component object typically includes details such as the name, current status (e.g., operational, degraded, offline), description, and any grouping or dependency metadata. It is commonly used to dynamically populate UI sections with component statuses, perform health checks, or support automated incident workflows. This endpoint enables better visibility and control over service-level monitoring within the status page context.


Authorization: Bearer YOUR_TOKEN


Expected Behavior:


  • On success, the system will return a list of components.
  • If the request is invalid, a 400 error will be returned.
  • If authorization fails, a 401 error will be returned.
  • If the statuspage is not found, a 404 error will be returned.
Path Parameters
  • id string
    The unique ID of the statuspage for which components are being retrieved. Example: 'c03b02ec-244f-4d2c-8f68-3910071ed5c8'
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-query.api.pinghome.io/v1/statuspage/c03b02ec-244f-4d2c-8f68-3910071ed5c8/components";
axios.get(url, {
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Get Statistics for Status Page Component
This API endpoint retrieves statistics related to a specific component by its unique ID. The response includes details such as the status, duration, open incidents, and other related information.

Authorization: Bearer YOUR_TOKEN


Expected Behavior:


  • On success, the system will return the component statistics and any open incidents.
  • If the request is invalid, a 400 error will be returned.
  • If authorization fails, a 401 error will be returned.
  • If the component is not found, a 404 error will be returned.
Path Parameters
  • id string
    The unique ID of the component to retrieve statistics for. Example: 'c03b02ec-244f-4d2c-8f68-3910071ed5c8'
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-query.api.pinghome.io/v1/component/c03b02ec-244f-4d2c-8f68-3910071ed5c8/statistics";
axios.get(url, {
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Get Comprehensive Status Page Details
This API endpoint retrieves unified data for a specific statuspage by its unique ID. The unified data includes common details such as the name, subdomain, domain, and other related information. Additionally, it provides information about the page theme and associated components.

Authorization: Bearer YOUR_TOKEN


Expected Behavior:


  • On success, the system will return the unified statuspage data.
  • If the request is invalid, a 400 error will be returned.
  • If authorization fails, a 401 error will be returned.
  • If the statuspage is not found, a 404 error will be returned.
Path Parameters
  • id string
    The unique ID of the statuspage to be retrieved. Example: 'c03b02ec-244f-4d2c-8f68-3910071ed5c8'
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-query.api.pinghome.io/v1/statuspage/c03b02ec-244f-4d2c-8f68-3910071ed5c8/unified";
axios.get(url, {
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Get Domain CNAME Settings
This API endpoint retrieves the CNAME configuration details of a specific domain. The response includes the CNAME value and whether the domain is correctly configured.

Authorization: Bearer YOUR_TOKEN


Expected Behavior:


  • On success, the system will return the CNAME details.
  • If the request is invalid, a 400 error will be returned.
  • If authorization fails, a 401 error will be returned.
Path Parameters
  • domain string
    The domain for which CNAME data is being retrieved. Example: 'status.pinghome.dev'
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-query.api.pinghome.io/v1/domain/status.pinghome.dev/cname";
axios.get(url, {
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Create Status Page
This API endpoint allows creating a new status page in the system. The request body requires details such as the name, description, subdomain, and other relevant information.

Authorization: Bearer YOUR_TOKEN


Expected Behavior:


  • On success, the system will create a new status page and return its details.
  • If the request is invalid, the system will return an error message with details of the invalid fields.
Request Body Parameters
  • name string
    The name of the status page.
  • description string
  • subdomain string
  • type string
  • password (enabled for private) string
  • domain (optional) string
  • page_name (optional) string
  • dark_theme (optional) boolean
  • favicon (optional) string
  • logo (optional) string
  • redirect_to_https (optional) boolean
  • remove_branding (optional) boolean
  • robots_meta_contents (optional) array of strings
  • website_url (optional) string
  • privacy_url (optional) string
  • support_url (optional) string
  • ga_tracking (optional) string
  • ip_addresses (enabled for private) array of strings
  • subscription_enabled (optional) boolean
  • components array of objects
  • groups array of objects
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-cmd.api.pinghome.io/v1/statuspage";
const data = {
  name: 'Statuspage name',
  description: 'Statuspage description',
  subdomain: 'status',
  type: 'public',
  password: 'TestPassw0rd!',
  domain: 'status.pinghome.io',
  page_name: 'Example',
  dark_theme: false,
  favicon: 'org/f14340fc-3321-42c7-a93b-9befeea8871e/images/img-1705147439.jpg',
  logo: 'org/f14340fc-3321-42c7-a93b-9befeea8871e/images/img-1705147439.jpg',
  redirect_to_https: true,
  remove_branding: true,
  robots_meta_contents: ['index'],
  website_url: 'https://pinghome.io',
  privacy_url: 'https://pinghome.io/privacy-policy',
  support_url: 'https://pinghome.io/support',
  ga_tracking: 'UA-123123-1',
  ip_addresses: ['8.8.8.8'],
  subscription_enabled: true,
  components: [{
    name: 'Component name',
    description: 'Component description',
    status: 'operational',
    type: 'resource',
    resource_id: 'c03b02ec-244f-4d2c-8f68-3910071ed5c8'
  }],
  groups: [{
    name: 'Group name',
    components: [{
      name: 'Component name',
      description: 'Component description',
      status: 'operational',
      type: 'resource',
      resource_id: 'c03b02ec-244f-4d2c-8f68-3910071ed5c8'
    }]
  }]
};

axios.post(url, data, {
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Update Status Page
This API endpoint allows updating an existing statuspage in the system. The request body requires details such as the name, subdomain, type, and other related information.

Authorization: Bearer YOUR_TOKEN


Expected Behavior:


  • On success, the system will update the statuspage and return a success message.
  • If the request is invalid, the system will return an error message with details of the invalid fields.
  • If the statuspage is not found, a 404 error will be returned.
Path Parameters
  • id string
    The unique ID of the statuspage to be updated. Example: '445a5c1f-c0eb-403a-96d7-3976e5dc74ed'
Request Body Parameters
  • name string
    The name of the status page.
  • description string
  • subdomain string
  • type string
  • password (enabled for private) string
  • domain (optional) string
  • page_name (optional) string
  • dark_theme (optional) boolean
  • favicon (optional) string
  • logo (optional) string
  • redirect_to_https (optional) boolean
  • remove_branding (optional) boolean
  • robots_meta_contents (optional) array of strings
  • website_url (optional) string
  • privacy_url (optional) string
  • support_url (optional) string
  • ga_tracking (optional) string
  • ip_addresses (enabled for private) array of strings
  • subscription_enabled (optional) boolean
  • components array of objects
  • groups array of objects
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-cmd.api.pinghome.io/v1/statuspage/{id}";
const data = {
  name: 'Statuspage name',
  description: 'Statuspage description',
  subdomain: 'status',
  type: 'private',
  password: 'TestPassw0rd!',
  update_password: true,
  domain: 'status.pinghome.io',
  dark_theme: false,
  page_name: 'Name',
  favicon: 'org/f14340fc-3321-42c7-a93b-9befeea8871e/images/img-1705147439.jpg',
  logo: 'org/f14340fc-3321-42c7-a93b-9befeea8871e/image/img-1705147439.jpg',
  redirect_to_https: true,
  remove_branding: true,
  robots_meta_contents: ['index'],
  ip_addresses: ['8.8.8.8'],
  website_url: 'https://pinghome.io',
  privacy_url: 'https://pinghome.io/privacy-policy',
  support_url: 'https://pinghome.io/support',
  ga_tracking: 'UA-123123-1',
  subscription_enabled: true
};

axios.put(url, data, {
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Delete Status Page
This API endpoint allows deleting an existing statuspage. The path parameter requires the statuspage ID.

Authorization: Bearer YOUR_TOKEN


Expected Behavior:


  • On success, the system will delete the statuspage and return a success message.
  • If the statuspage is not found, a 404 error will be returned.
  • If the request is invalid, the system will return an error message with details of the invalid fields.
Path Parameters
  • id string
    The unique ID of the statuspage to be deleted. Example: '445a5c1f-c0eb-403a-96d7-3976e5dc74ed'
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-cmd.api.pinghome.io/v1/statuspage/445a5c1f-c0eb-403a-96d7-3976e5dc74ed";

axios.delete(url, {
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Update Status Page Status
This API endpoint allows updating the status of a statuspage. The path parameter requires the statuspage ID and the request body requires the enabled field to specify whether the statuspage should be enabled or disabled.

Authorization: Bearer YOUR_TOKEN


Expected Behavior:


  • On success, the system will update the status of the statuspage.
  • If the statuspage is not found, a 404 error will be returned.
  • If the request is invalid, the system will return an error message with details of the invalid fields.
Path Parameters
  • id string
    The unique ID of the statuspage to update. Example: '445a5c1f-c0eb-403a-96d7-3976e5dc74ed'
Request Body Parameters
  • enabled boolean
    A boolean value that indicates whether the statuspage should be enabled or disabled. Example: 'false'
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-cmd.api.pinghome.io/v1/statuspage/445a5c1f-c0eb-403a-96d7-3976e5dc74ed/status";
const data = { enabled: false };

axios.put(url, data, {
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Retrieve Status Page Subscriptions
This API endpoint retrieves the subscriptions for a specific status page. The id of the status page must be provided as a path parameter.

Authorization: Bearer YOUR_TOKEN


Expected Behavior:


  • On success, the system will return the subscription data associated with the specified status page.
  • If the request is unauthorized, the system will return an error message.
  • If the status page is not found, the system will return a 404 error with details.
Path Parameters
  • id string
    The ID of the status page for which subscriptions are being retrieved. Example: 'c03b02ec-244f-4d2c-8f68-3910071ed5c8'
JavaScript
Response codes
const axios = require('axios');

const url = 'https://statuspage-query.api.pinghome.io/v1/statuspage/c03b02ec-244f-4d2c-8f68-3910071ed5c8/subscriptions';

axios.get(url, {
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Create Subscription for Status Pages
This API endpoint allows you to create a new subscription for statuspage notifications. The request body requires details such as the channel_type and channel_value to subscribe for notifications.

Expected Behavior:


  • On success, the system will create a new subscription and return a success message.
  • If the request is invalid, the system will return an error message with details of the invalid fields.
Request Body Parameters
  • channel_type string
    The type of notification channel. Example: 'email'
  • channel_value string
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-cmd.api.pinghome.io/v1/subscriptions";
const data = { channel_type: 'email', channel_value: 'info@pinghome.dev' };

axios.post(url, data, {
  headers: {
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Verify Subscription
This API endpoint allows you to verify an existing subscription by providing the verification token.

Expected Behavior:


  • On success, the system will verify the subscription and return a success message.
  • If the request is invalid, the system will return an error message with details of the invalid fields.
Path Parameters
  • token string
    The unique subscription verification token.
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-cmd.api.pinghome.io/v1/subscription/{token}/verification";

axios.put(url)
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).
Delete Status Page Subscription
This API endpoint allows you to delete an existing subscription by providing the subscription token.

Expected Behavior:


  • On success, the system will delete the subscription and return a success message.
  • If the request is invalid, the system will return an error message with details of the invalid fields.
Path Parameters
  • token string
    The unique subscription token to be deleted.
JavaScript
Response codes
const axios = require('axios');

const url = "https://statuspage-cmd.api.pinghome.io/v1/subscription/{token}";

axios.delete(url)
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});
ResponseThis section is used to view the possible HTTP response codes returned by the API. These codes indicate the status of a request, such as 201 (Created), 401 (Unauthorized), 409 (Conflict), or 422 (Unprocessable Entity).