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
This API endpoint retrieves the list of statuspages for a given organisation. The response contains details such as the name, subdomain, domain, and other relevant information.

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
This API endpoint retrieves the details of a specific statuspage by its unique ID. The response includes details such as the name, subdomain, domain, and other relevant information.

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
This API endpoint retrieves all components associated with a specific statuspage by its unique ID. The response includes component details such as the name, status, description, and other related information.

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).