Full API and Integration Documentation

Incidents

Incidents are critical events that have occurred with your product or service that you want to communicate to your users. They come in three flavors: historical, realtime, and scheduled.

Historical: historical incidents are submitted to accuractely reflect past incidents from your infrastructure that occurred before you created your Statuspage account. (get in touch if you need help backfilling a large volume of incidents from another system.)

Realtime: realtime incidents are created when something unexpected is affecting your infrastructure. Notifications are sent out to your subscribers informing them of the incident, and it is displayed prominently at the top of your status page. This is the most common incident type.

Scheduled: scheduled incidents are planned outages or maintenance periods coming up in the future. Notifications are sent out to your subscribers informing them of the planned incident, and additional options are available to remind subscribers 60 minutes before the incident start and to automatically transition the incident to In Progress at the start of the incident maintenance period.

Contents

Get a list of all incidents
ENDPOINT
  GET /pages/[page_id]/incidents.json

SAMPLE CALL
  curl https://api.statuspage.io/v1/pages/qfn30z5r6s5h/incidents.json \
    -H "Authorization: OAuth 2a7b9d4aac30956d537ac76850f4d78de30994703680056cc103862d53cf8074"

RESPONSE CODES
  200 - Successful call

SAMPLE RESPONSE
  [
    {
      "backfilled": false,
      "created_at": "2013-04-21T11:45:33-06:00",
      "id": "tks5n8x7w24h",
      "impact": "none",
      "impact_override": null,
      "incident_updates": [
        {
          "body": "We will be performing a data layer migration from our existing Postgres system over to our new, multi-region, distributed Riak cluster. The application will be taken offline during the entirety of this migration. We apologize in advance for the inconvenience",
          "created_at": "2013-04-21T11:45:33-06:00",
          "display_at": "2013-04-21T11:45:33-06:00",
          "id": "kb4fpktpqm0l",
          "incident_id": "tks5n8x7w24h",
          "status": "scheduled",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:45:33-06:00",
          "wants_twitter_update": false
        }
      ],
      "monitoring_at": null,
      "name": "Data Layer Migration",
      "page_id": "jcm87b8scw0b",
      "postmortem_body": null,
      "postmortem_body_last_updated_at": null,
      "postmortem_ignored": true,
      "postmortem_notified_subscribers": false,
      "postmortem_notified_twitter": false,
      "postmortem_published_at": null,
      "resolved_at": null,
      "scheduled_auto_in_progress": false,
      "scheduled_auto_completed": false,
      "scheduled_for": "2013-05-04T01:00:00-06:00",
      "scheduled_remind_prior": false,
      "scheduled_reminded_at": null,
      "scheduled_until": "2013-05-04T03:00:00-06:00",
      "shortlink": "http://j.mp/13peHgA",
      "status": "scheduled",
      "updated_at": "2013-04-21T11:45:33-06:00"
    },
    {
      "backfilled": false,
      "created_at": "2013-04-21T11:04:28-06:00",
      "id": "cz46ym8qbvwv",
      "impact": "critical",
      "impact_override": null,
      "incident_updates": [
        {
          "body": "A postmortem analysis has been posted for this incident.",
          "created_at": "2013-04-21T11:42:31-06:00",
          "display_at": "2013-04-21T11:42:31-06:00",
          "id": "dn051mnj579k",
          "incident_id": "cz46ym8qbvwv",
          "status": "postmortem",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:42:31-06:00",
          "wants_twitter_update": false
        },
        {
          "body": "The application has returned to it's normal performance profile. We will be following up with a postmortem about future plans to guard against additional master database failure.",
          "created_at": "2013-04-21T11:16:38-06:00",
          "display_at": "2013-04-21T14:07:00-06:00",
          "id": "ppdqv1grhm64",
          "incident_id": "cz46ym8qbvwv",
          "status": "resolved",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:36:15-06:00",
          "wants_twitter_update": false
        },
        {
          "body": "The slave database has been successfully promoted, but is running slow due to a cold query cache. The application is open and available for requests, but should will be performing in a degraded state for the next few hours. We will continue to monitor the situation.",
          "created_at": "2013-04-21T11:14:46-06:00",
          "display_at": "2013-04-21T11:14:46-06:00",
          "id": "j7ql87ktwnys",
          "incident_id": "cz46ym8qbvwv",
          "status": "monitoring",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:14:46-06:00",
          "wants_twitter_update": false
        },
        {
          "body": "The slave database is 60% through it's recovery process. We will provide another update once the application is back up.",
          "created_at": "2013-04-21T11:08:42-06:00",
          "display_at": "2013-04-21T11:08:42-06:00",
          "id": "xzgd3y9zdzt9",
          "incident_id": "cz46ym8qbvwv",
          "status": "identified",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:08:42-06:00",
          "wants_twitter_update": false
        },
        {
          "body": "The master database server could not boot due to a corrupted EBS volume. We are in the process of failing over to the slave database. ETA for the application recovering is 5 minutes.",
          "created_at": "2013-04-21T11:06:27-06:00",
          "display_at": "2013-04-21T11:06:27-06:00",
          "id": "9307nsfg3dxd",
          "incident_id": "cz46ym8qbvwv",
          "status": "identified",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:06:27-06:00",
          "wants_twitter_update": false
        },
        {
          "body": "We're investigating an outage with our master database server.",
          "created_at": "2013-04-21T11:04:28-06:00",
          "display_at": "2013-04-21T11:04:28-06:00",
          "id": "dz959yz2nd4l",
          "incident_id": "cz46ym8qbvwv",
          "status": "investigating",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:04:29-06:00",
          "wants_twitter_update": false
        }
      ],
      "monitoring_at": "2013-04-21T11:14:46-06:00",
      "name": "Master Database Failure",
      "page_id": "jcm87b8scw0b",
      "postmortem_body": "##### Issue\r\n\r\nAt approximately 17:02 UTC on 2013-04-21, our master database server unexpectedly went unresponsive to all network traffic. A reboot of the machine at 17:05 UTC resulted in a failed mount of a corrupted EBS volume, and we made the decision at that time to fail over the slave database.\r\n\r\n##### Resolution\r\n\r\nAt 17:12 UTC, the slave database had been successfully promoted to master and the application recovered enough to accept web traffic again. A new slave database node was created and placed into the rotation to guard against future master failures. The promoted slave database performed slowly for the next couple of hours as the query cache began to warm up, and eventually settled into a reasonable performance profile around 20:00 UTC.\r\n\r\n##### Future Mitigation Plans\r\n\r\nOver the past few months, we've been working on an overhaul to our data storage layer with a migration from a Postgres setup to a distributed, fault-tolerant, multi-region data layer using Riak. This initiative has been prioritized, and the migration will be performed in the coming weeks. We will notify our clients of the scheduled downtime via an incident on this status site, and via a blog post.",
      "postmortem_body_last_updated_at": "2013-04-21T17:41:00Z",
      "postmortem_ignored": false,
      "postmortem_notified_subscribers": false,
      "postmortem_notified_twitter": false,
      "postmortem_published_at": "2013-04-21T17:42:31Z",
      "resolved_at": "2013-04-21T14:07:00-06:00",
      "scheduled_auto_in_progress": false,
      "scheduled_auto_completed": false,
      "scheduled_for": null,
      "scheduled_remind_prior": false,
      "scheduled_reminded_at": null,
      "scheduled_until": null,
      "shortlink": "http://j.mp/ZdABVb",
      "status": "postmortem",
      "updated_at": "2013-04-21T11:42:31-06:00"
    },
    {
      "backfilled": true,
      "created_at": "2013-04-01T12:00:00-06:00",
      "id": "2ggpd60zvx3c",
      "impact": "none",
      "impact_override": null,
      "incident_updates": [
        {
          "body": "At approximately 6:55 PM, our network provider at ServerCo experienced a brief network outage at their New Jersey data center. The network outage lasted approximately 14 minutes, and all web requests during that time were not received. No data was lost, and the system recovered once the network outage at ServerCo was repaired.",
          "created_at": "2013-04-21T11:02:00-06:00",
          "display_at": "2013-04-21T11:02:00-06:00",
          "id": "mkfzp9swbk4z",
          "incident_id": "2ggpd60zvx3c",
          "status": "investigating",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:02:00-06:00",
          "wants_twitter_update": false
        }
      ],
      "monitoring_at": null,
      "name": "Brief Network Outage",
      "page_id": "jcm87b8scw0b",
      "postmortem_body": null,
      "postmortem_body_last_updated_at": null,
      "postmortem_ignored": false,
      "postmortem_notified_subscribers": false,
      "postmortem_notified_twitter": false,
      "postmortem_published_at": null,
      "resolved_at": null,
      "scheduled_auto_in_progress": false,
      "scheduled_auto_completed": false,
      "scheduled_for": null,
      "scheduled_remind_prior": false,
      "scheduled_reminded_at": null,
      "scheduled_until": null,
      "shortlink": "http://j.mp/11tOsnN",
      "status": "resolved",
      "updated_at": "2013-04-01T12:00:00-06:00"
    }
  ]

Back to top

List Unresolved Only
ENDPOINT
  GET /pages/[page_id]/incidents/unresolved.json

SAMPLE CALL
  curl https://api.statuspage.io/v1/pages/qfn30z5r6s5h/incidents/unresolved.json \
    -H "Authorization: OAuth 2a7b9d4aac30956d537ac76850f4d78de30994703680056cc103862d53cf8074"

RESPONSE CODES
  200 - Successful call

SAMPLE RESPONSE
  [
    {
      "backfilled": false,
      "created_at": "2013-04-21T11:04:28-06:00",
      "id": "cz46ym8qbvwv",
      "impact": "critical",
      "impact_override": null,
      "incident_updates": [
        {
          "body": "The slave database has been successfully promoted, but is running slow due to a cold query cache. The application is open and available for requests, but should will be performing in a degraded state for the next few hours. We will continue to monitor the situation.",
          "created_at": "2013-04-21T11:14:46-06:00",
          "display_at": "2013-04-21T11:14:46-06:00",
          "id": "j7ql87ktwnys",
          "incident_id": "cz46ym8qbvwv",
          "status": "monitoring",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:14:46-06:00",
          "wants_twitter_update": false
        },
        {
          "body": "The slave database is 60% through it's recovery process. We will provide another update once the application is back up.",
          "created_at": "2013-04-21T11:08:42-06:00",
          "display_at": "2013-04-21T11:08:42-06:00",
          "id": "xzgd3y9zdzt9",
          "incident_id": "cz46ym8qbvwv",
          "status": "identified",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:08:42-06:00",
          "wants_twitter_update": false
        },
        {
          "body": "The master database server could not boot due to a corrupted EBS volume. We are in the process of failing over to the slave database. ETA for the application recovering is 5 minutes.",
          "created_at": "2013-04-21T11:06:27-06:00",
          "display_at": "2013-04-21T11:06:27-06:00",
          "id": "9307nsfg3dxd",
          "incident_id": "cz46ym8qbvwv",
          "status": "identified",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:06:27-06:00",
          "wants_twitter_update": false
        },
        {
          "body": "We're investigating an outage with our master database server.",
          "created_at": "2013-04-21T11:04:28-06:00",
          "display_at": "2013-04-21T11:04:28-06:00",
          "id": "dz959yz2nd4l",
          "incident_id": "cz46ym8qbvwv",
          "status": "investigating",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:04:29-06:00",
          "wants_twitter_update": false
        }
      ],
      "monitoring_at": "2013-04-21T11:14:46-06:00",
      "name": "Master Database Failure",
      "page_id": "jcm87b8scw0b",
      "postmortem_body": "##### Issue\r\n\r\nAt approximately 17:02 UTC on 2013-04-21, our master database server unexpectedly went unresponsive to all network traffic. A reboot of the machine at 17:05 UTC resulted in a failed mount of a corrupted EBS volume, and we made the decision at that time to fail over the slave database.\r\n\r\n##### Resolution\r\n\r\nAt 17:12 UTC, the slave database had been successfully promoted to master and the application recovered enough to accept web traffic again. A new slave database node was created and placed into the rotation to guard against future master failures. The promoted slave database performed slowly for the next couple of hours as the query cache began to warm up, and eventually settled into a reasonable performance profile around 20:00 UTC.\r\n\r\n##### Future Mitigation Plans\r\n\r\nOver the past few months, we've been working on an overhaul to our data storage layer with a migration from a Postgres setup to a distributed, fault-tolerant, multi-region data layer using Riak. This initiative has been prioritized, and the migration will be performed in the coming weeks. We will notify our clients of the scheduled downtime via an incident on this status site, and via a blog post.",
      "postmortem_body_last_updated_at": "2013-04-21T17:41:00Z",
      "postmortem_ignored": false,
      "postmortem_notified_subscribers": false,
      "postmortem_notified_twitter": false,
      "postmortem_published_at": "2013-04-21T17:42:31Z",
      "resolved_at": null,
      "scheduled_auto_in_progress": false,
      "scheduled_auto_completed": false,
      "scheduled_for": null,
      "scheduled_remind_prior": false,
      "scheduled_reminded_at": null,
      "scheduled_until": null,
      "shortlink": "http://j.mp/ZdABVb",
      "status": "monitoring",
      "updated_at": "2013-04-21T11:42:31-06:00"
    }
  ]

Back to top

List Scheduled only
ENDPOINT
  GET /pages/[page_id]/incidents/scheduled.json

SAMPLE CALL
  curl https://api.statuspage.io/v1/pages/qfn30z5r6s5h/incidents/scheduled.json \
    -H "Authorization: OAuth 2a7b9d4aac30956d537ac76850f4d78de30994703680056cc103862d53cf8074"

RESPONSE CODES
  200 - Successful call

SAMPLE RESPONSE
  [
    {
      "backfilled": false,
      "created_at": "2013-04-21T11:45:33-06:00",
      "id": "tks5n8x7w24h",
      "impact": "none",
      "impact_override": null,
      "incident_updates": [
        {
          "body": "We will be performing a data layer migration from our existing Postgres system over to our new, multi-region, distributed Riak cluster. The application will be taken offline during the entirety of this migration. We apologize in advance for the inconvenience",
          "created_at": "2013-04-21T11:45:33-06:00",
          "display_at": "2013-04-21T11:45:33-06:00",
          "id": "kb4fpktpqm0l",
          "incident_id": "tks5n8x7w24h",
          "status": "scheduled",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:45:33-06:00",
          "wants_twitter_update": false
        }
      ],
      "monitoring_at": null,
      "name": "Data Layer Migration",
      "page_id": "jcm87b8scw0b",
      "postmortem_body": null,
      "postmortem_body_last_updated_at": null,
      "postmortem_ignored": true,
      "postmortem_notified_subscribers": false,
      "postmortem_notified_twitter": false,
      "postmortem_published_at": null,
      "resolved_at": null,
      "scheduled_auto_in_progress": false,
      "scheduled_auto_completed": false,
      "scheduled_for": "2013-05-04T01:00:00-06:00",
      "scheduled_remind_prior": false,
      "scheduled_reminded_at": null,
      "scheduled_until": "2013-05-04T03:00:00-06:00",
      "shortlink": "http://j.mp/13peHgA",
      "status": "scheduled",
      "updated_at": "2013-04-21T11:45:33-06:00"
    }
  ]

Back to top

ENDPOINT
  GET /pages/[page_id]/incidents.json?q=

SAMPLE CALL
  curl https://api.statuspage.io/v1/pages/qfn30z5r6s5h/incidents.json?q=migration
    -H "Authorization: OAuth 2a7b9d4aac30956d537ac76850f4d78de30994703680056cc103862d53cf8074"

RESPONSE CODES
  200 - Successful call

SAMPLE RESPONSE
  [
    {
      "backfilled": false,
      "created_at": "2013-04-21T11:45:33-06:00",
      "id": "tks5n8x7w24h",
      "impact": "none",
      "impact_override": null,
      "incident_updates": [
        {
          "body": "We will be performing a data layer migration from our existing Postgres system over to our new, multi-region, distributed Riak cluster. The application will be taken offline during the entirety of this migration. We apologize in advance for the inconvenience",
          "created_at": "2013-04-21T11:45:33-06:00",
          "display_at": "2013-04-21T11:45:33-06:00",
          "id": "kb4fpktpqm0l",
          "incident_id": "tks5n8x7w24h",
          "status": "scheduled",
          "twitter_updated_at": null,
          "updated_at": "2013-04-21T11:45:33-06:00",
          "wants_twitter_update": false
        }
      ],
      "monitoring_at": null,
      "name": "Data Layer Migration",
      "page_id": "jcm87b8scw0b",
      "postmortem_body": null,
      "postmortem_body_last_updated_at": null,
      "postmortem_ignored": true,
      "postmortem_notified_subscribers": false,
      "postmortem_notified_twitter": false,
      "postmortem_published_at": null,
      "resolved_at": null,
      "scheduled_auto_in_progress": false,
      "scheduled_auto_completed": false,
      "scheduled_for": "2013-05-04T01:00:00-06:00",
      "scheduled_remind_prior": false,
      "scheduled_reminded_at": null,
      "scheduled_until": "2013-05-04T03:00:00-06:00",
      "shortlink": "http://j.mp/13peHgA",
      "status": "scheduled",
      "updated_at": "2013-04-21T11:45:33-06:00"
    }
  ]

Back to top

Create a realtime incident
ENDPOINT
  POST /pages/[page_id]/incidents.json

MUTABLE ATTRIBUTES
  incident[name] - The name of the incident
  incident[status] - The status, one of investigating|identified|monitoring|resolved (optional, defaults to investigating if left blank)
  incident[body] - The initial message, created as the first incident update (optional. NOTE: incident[message] has been deprecated, but is also a valid key for this value)
  incident[wants_twitter_update] - Post the new incident to twitter (t or f, defaults to f)
  incident[impact_override] - Override calculated impact value, one of none|minor|major|critical (optional)
  incident[component_ids] - List of components whose subscribers should be notified (only applicable for pages with component subscriptions enabled)
  incident[deliver_notifications] - Control whether notifications should be delivered for the initial incident update (optional, default: true)

SAMPLE CALL
  curl https://api.statuspage.io/v1/pages/qfn30z5r6s5h/incidents.json \
    -H "Authorization: OAuth 2a7b9d4aac30956d537ac76850f4d78de30994703680056cc103862d53cf8074" \
    -X POST \
    -d "incident[name]=Slow API Response Times" \
    -d "incident[status]=identified" \
    -d "incident[wants_twitter_update]=t" \
    -d "incident[body]=We've identified an issue with and are rolling back a recent code push that is causing slow API response times." \
    -d "incident[component_ids][]=4g812xxgm6ws" \
    -d "incident[component_ids][]=gynp8g27p5xw" \
    -d "incident[deliver_notifications]=true"
    

RESPONSE CODES
  201 - Successful incident creation
  422 - Validation failed (see errors in response body)

SAMPLE RESPONSE
  {
    "backfilled": false,
    "created_at": "2013-04-21T13:07:16-06:00",
    "id": "21w20wsvz5kv",
    "impact": "minor",
    "impact_override": null,
    "incident_updates": [
      {
        "body": "We've identified an issue with and are rolling back a recent code push that is causing slow API response times.",
        "created_at": "2013-04-21T13:07:17-06:00",
        "display_at": "2013-04-21T13:07:17-06:00",
        "id": "fbt48twx0lzh",
        "incident_id": "21w20wsvz5kv",
        "status": "identified",
        "twitter_updated_at": null,
        "updated_at": "2013-04-21T13:07:17-06:00",
        "wants_twitter_update": false
      }
    ],
    "monitoring_at": null,
    "name": "Slow API Response Times",
    "page_id": "jcm87b8scw0b",
    "postmortem_body": null,
    "postmortem_body_last_updated_at": null,
    "postmortem_ignored": false,
    "postmortem_notified_subscribers": false,
    "postmortem_notified_twitter": false,
    "postmortem_published_at": null,
    "resolved_at": null,
    "scheduled_auto_in_progress": false,
    "scheduled_auto_completed": false,
    "scheduled_for": null,
    "scheduled_remind_prior": false,
    "scheduled_reminded_at": null,
    "scheduled_until": null,
    "shortlink": "http://j.mp/11AsbTS",
    "status": "identified",
    "updated_at": "2013-04-21T13:07:17-06:00",
    "components": [ # this key only present if component subscriptions are enabled
      {
        "created_at": "2014-01-18T01:15:08Z",
        "description": null,
        "id": "4g812xxgm6ws",
        "name": "API",
        "page_id": "kz6x7zrrmrpk",
        "position": 1,
        "status": "major_outage",
        "updated_at": "2014-01-18T01:15:12Z"
      },
      {
        "created_at": "2014-01-18T01:15:08Z",
        "description": null,
        "id": "gynp8g27p5xw",
        "name": "Management Portal",
        "page_id": "kz6x7zrrmrpk",
        "position": 2,
        "status": "major_outage",
        "updated_at": "2014-01-18T01:15:12Z"
      }
    ]
  }

Back to top

Create a scheduled incident
ENDPOINT
  POST /pages/[page_id]/incidents.json

MUTABLE ATTRIBUTES
  incident[name] - The name of the incident
  incident[status] - The status, one of scheduled|in_progress|verifying|completed
  incident[scheduled_for] - time the scheduled maintenance should begin (ISO8601 format)
  incident[scheduled_until] - time the scheduled maintenance should end (ISO8601 format)
  incident[body] - The initial message, created as the first incident update (optional. NOTE: incident[message] has been deprecated, but is also a valid key for this value)
  incident[wants_twitter_update] - Post the new incident to twitter (optional, t or f, defaults to f)
  incident[scheduled_remind_prior] - Remind subscribers 60 minutes before scheduled start (optional, t or f, defaults to f)
  incident[scheduled_auto_in_progress] - Automatically transition incident to 'In Progress' at start (optional, t or f, defaults to f)
  incident[scheduled_auto_completed] - Automatically transition incident to 'Completed' at end (optional, t or f, defaults to f)
  incident[impact_override] - Override calculated impact value, one of none|minor|major|critical (optional)
  incident[component_ids] - List of components whose subscribers should be notified (only applicable for pages with component subscriptions enabled)
  incident[deliver_notifications] - Control whether notifications should be delivered for the initial incident update (optional, default: true)

SAMPLE CALL
  curl https://api.statuspage.io/v1/pages/qfn30z5r6s5h/incidents.json \
    -H "Authorization: OAuth 2a7b9d4aac30956d537ac76850f4d78de30994703680056cc103862d53cf8074" \
    -X POST \
    -d "incident[name]=Data Layer Migration" \
    -d "incident[status]=scheduled" \
    -d "incident[scheduled_for]=2013-04-22T01:00:00Z" \
    -d "incident[scheduled_until]=2013-04-22T03:00:00Z" \
    -d "incident[wants_twitter_update]=f" \
    -d "incident[body]=We will be performing a migration from our legacy Postgres system to our new distributed Riak cluster." \
    -d "incident[component_ids][]=gynp8g27p5xw" \
    -d "incident[component_ids][]=4g812xxgm6ws" \
    -d "incident[deliver_notifications]=true"
    

RESPONSE CODES
  201 - Successful incident creation
  422 - Validation failed (see errors in response body)

SAMPLE RESPONSE
  {
    "backfilled": false,
    "created_at": "2013-04-21T13:11:06-06:00",
    "id": "xjhs28vvpmb1",
    "impact": "none",
    "impact_override": null,
    "incident_updates": [
      {
        "body": "We will be performing a migration from our legacy Postgres system to our new distributed Riak cluster.",
        "created_at": "2013-04-21T13:11:06-06:00",
        "display_at": "2013-04-21T13:11:06-06:00",
        "id": "zmsvrxl4ss1t",
        "incident_id": "xjhs28vvpmb1",
        "status": "scheduled",
        "twitter_updated_at": null,
        "updated_at": "2013-04-21T13:11:06-06:00",
        "wants_twitter_update": false
      }
    ],
    "monitoring_at": null,
    "name": "Data Layer Migration",
    "page_id": "jcm87b8scw0b",
    "postmortem_body": null,
    "postmortem_body_last_updated_at": null,
    "postmortem_ignored": false,
    "postmortem_notified_subscribers": false,
    "postmortem_notified_twitter": false,
    "postmortem_published_at": null,
    "resolved_at": null,
    "scheduled_auto_in_progress": false,
    "scheduled_auto_completed": false,
    "scheduled_for": "2013-04-21T19:00:00-06:00",
    "scheduled_remind_prior": false,
    "scheduled_reminded_at": null,
    "scheduled_until": "2013-04-21T21:00:00-06:00",
    "shortlink": "http://j.mp/11szNKK",
    "status": "scheduled",
    "updated_at": "2013-04-21T13:11:06-06:00",
    "components": [ # this key only present if component subscriptions are enabled
      {
        "created_at": "2014-01-18T01:15:08Z",
        "description": null,
        "id": "4g812xxgm6ws",
        "name": "API",
        "page_id": "kz6x7zrrmrpk",
        "position": 1,
        "status": "major_outage",
        "updated_at": "2014-01-18T01:15:12Z"
      },
      {
        "created_at": "2014-01-18T01:15:08Z",
        "description": null,
        "id": "gynp8g27p5xw",
        "name": "Management Portal",
        "page_id": "kz6x7zrrmrpk",
        "position": 2,
        "status": "major_outage",
        "updated_at": "2014-01-18T01:15:12Z"
      }
    ]
  }

Back to top

Create a historical incident
ENDPOINT
  POST /pages/[page_id]/incidents.json

MUTABLE ATTRIBUTES
  incident[name] - The name of the incident
  incident[body] - The full incident report (optional. NOTE: incident[message] has been deprecated, but is also a valid key for this value)
  incident[backfilled] - Must be set to t
  incident[backfill_date] - Date of incident in YYYY-MM-DD format. Any other format, or any date in the future, will trigger a 422 response.
  incident[impact_override] - Override calculated impact value, one of none|minor|major|critical (optional)

SAMPLE CALL
  curl https://api.statuspage.io/v1/pages/qfn30z5r6s5h/incidents.json \
    -H "Authorization: OAuth 2a7b9d4aac30956d537ac76850f4d78de30994703680056cc103862d53cf8074" \
    -X POST \
    -d "incident[name]=Brief Network Outage" \
    -d "incident[backfilled]=t" \
    -d "incident[backfill_date]=2013-04-01" \
    -d "incident[body]=At approximately 6:55 PM, our network provider at ServerCo experienced a brief network outage at their New Jersey data center. The network outage lasted approximately 14 minutes, and all web requests during that time were not received. No data was lost, and the system recovered once the network outage at ServerCo was repaired."
    

RESPONSE CODES
  201 - Successful incident creation
  422 - Validation failed (see errors in response body)

SAMPLE RESPONSE
  {
    "backfilled": true,
    "created_at": "2013-04-01T12:00:00-06:00",
    "id": "5qswlm205fq8",
    "impact": "none",
    "impact_override": null,
    "incident_updates": [
      {
        "body": "At approximately 6:55 PM, our network provider at ServerCo experienced a brief network outage at their New Jersey data center. The network outage lasted approximately 14 minutes, and all web requests during that time were not received. No data was lost, and the system recovered once the network outage at ServerCo was repaired.",
        "created_at": "2013-04-21T13:18:07-06:00",
        "display_at": "2013-04-21T13:18:07-06:00",
        "id": "78cy5cbrlbqd",
        "incident_id": "5qswlm205fq8",
        "status": "investigating",
        "twitter_updated_at": null,
        "updated_at": "2013-04-21T13:18:07-06:00",
        "wants_twitter_update": false
      }
    ],
    "monitoring_at": null,
    "name": "Brief Network Outage",
    "page_id": "jcm87b8scw0b",
    "postmortem_body": null,
    "postmortem_body_last_updated_at": null,
    "postmortem_ignored": false,
    "postmortem_notified_subscribers": false,
    "postmortem_notified_twitter": false,
    "postmortem_published_at": null,
    "resolved_at": null,
    "scheduled_auto_in_progress": false,
    "scheduled_auto_completed": false,
    "scheduled_for": null,
    "scheduled_remind_prior": false,
    "scheduled_reminded_at": null,
    "scheduled_until": null,
    "shortlink": "http://j.mp/15wlfOk",
    "status": "resolved",
    "updated_at": "2013-04-01T12:00:00-06:00"
  }

Back to top

Update an incident (only applies to realtime and scheduled incidents)

NOTE: if either of status or message is modified, a new incident update will be generated. You should update both of these attributes at the same time to avoid two separate incident updates being generated.

ENDPOINT
  PATCH /pages/[page_id]/incidents/[incident_id].json

MUTABLE ATTRIBUTES
  incident[name] - The name of the incident
  incident[status] - The status, one of investigating|identified|monitoring|resolved (if realtime) or scheduled|in_progress|verifying|completed (if scheduled)
  incident[body] - The body of the new incident update that will be created (optional. NOTE: incident[message] has been deprecated, but is also a valid key for this value)
  incident[wants_twitter_update] - Post the new incident update to twitter (t or f, defaults to f)
  incident[impact_override] - Override calculated impact value, one of none|minor|major|critical (optional)
  incident[component_ids] - List of components whose subscribers should be notified (only applicable for pages with component subscriptions enabled)
  incident[deliver_notifications] - Control whether notifications should be delivered for the incident update (optional, default: true)

SAMPLE CALL
  curl https://api.statuspage.io/v1/pages/qfn30z5r6s5h/incidents/21w20wsvz5kv.json \
    -H "Authorization: OAuth 2a7b9d4aac30956d537ac76850f4d78de30994703680056cc103862d53cf8074" \
    -X PATCH \
    -d "incident[status]=resolved" \
    -d "incident[wants_twitter_update]=f" \
    -d "incident[body]=Please open up a support ticket if any errors reappear." \
    -d "incident[impact_override]=major" \
    -d "incident[component_ids][]=4g812xxgm6ws" \
    -d "incident[deliver_notifications]=true"
    

RESPONSE CODES
  200 - Successful call
  422 - Validation failed (see errors in response body)

SAMPLE RESPONSE
  {
    "backfilled": false,
    "created_at": "2013-04-21T13:07:16-06:00",
    "id": "21w20wsvz5kv",
    "impact": "minor",
    "impact_override": "major",
    "incident_updates": [
      {
        "body": "Please open up a support ticket if any errors reappear.",
        "created_at": "2013-04-21T14:41:11-06:00",
        "display_at": "2013-04-21T14:41:11-06:00",
        "id": "n44k9011llqm",
        "incident_id": "21w20wsvz5kv",
        "status": "resolved",
        "twitter_updated_at": null,
        "updated_at": "2013-04-21T14:41:11-06:00",
        "wants_twitter_update": false
      },
      {
        "body": "We've identified an issue with and are rolling back a recent code push that is causing slow API response times.",
        "created_at": "2013-04-21T13:07:17-06:00",
        "display_at": "2013-04-21T13:07:17-06:00",
        "id": "fbt48twx0lzh",
        "incident_id": "21w20wsvz5kv",
        "status": "identified",
        "twitter_updated_at": null,
        "updated_at": "2013-04-21T13:07:17-06:00",
        "wants_twitter_update": false
      }
    ],
    "monitoring_at": null,
    "name": "Slow API Response Times",
    "page_id": "jcm87b8scw0b",
    "postmortem_body": null,
    "postmortem_body_last_updated_at": null,
    "postmortem_ignored": false,
    "postmortem_notified_subscribers": false,
    "postmortem_notified_twitter": false,
    "postmortem_published_at": null,
    "resolved_at": "2013-04-21T14:41:11-06:00",
    "scheduled_auto_in_progress": false,
    "scheduled_auto_completed": false,
    "scheduled_for": null,
    "scheduled_remind_prior": false,
    "scheduled_reminded_at": null,
    "scheduled_until": null,
    "shortlink": "http://j.mp/11AsbTS",
    "status": "resolved",
    "updated_at": "2013-04-21T14:41:11-06:00",
    "components": [ # this key only present if component subscriptions are enabled
      {
        "created_at": "2014-01-18T01:15:08Z",
        "description": null,
        "id": "4g812xxgm6ws",
        "name": "API",
        "page_id": "kz6x7zrrmrpk",
        "position": 1,
        "status": "major_outage",
        "updated_at": "2014-01-18T01:15:12Z"
      }
    ]
  }
SAMPLE CALL
  curl https://api.statuspage.io/v1/pages/qfn30z5r6s5h/incidents/xjhs28vvpmb1.json \
    -H "Authorization: OAuth 2a7b9d4aac30956d537ac76850f4d78de30994703680056cc103862d53cf8074" \
    -X PATCH \
    -d "incident[status]=in_progress" \
    -d "incident[scheduled_until]=2013-04-22T04:30:00Z" \
    -d "incident[body]=This maintenance is now in progress. We will be keeping the servers down an additional 90 minutes unexpectedly."

SAMPLE RESPONSE
  {
    "backfilled": false,
    "created_at": "2013-04-21T13:11:06-06:00",
    "id": "xjhs28vvpmb1",
    "impact": "none",
    "impact_override": null,
    "incident_updates": [
      {
        "body": "This maintenance is now in progress. We will be keeping the servers down an additional 90 minutes unexpectedly.",
        "created_at": "2013-04-21T18:59:51-06:00",
        "display_at": "2013-04-21T18:59:51-06:00",
        "id": "zmsvrxl4ss1t",
        "incident_id": "xjhs28vvpmb1",
        "status": "in_progress",
        "twitter_updated_at": null,
        "updated_at": "2013-04-21T18:59:51-06:00",
        "wants_twitter_update": false
      },
      {
        "body": "We will be performing a migration from our legacy Postgres system to our new distributed Riak cluster.",
        "created_at": "2013-04-21T13:11:06-06:00",
        "display_at": "2013-04-21T13:11:06-06:00",
        "id": "zmsvrxl4ss1t",
        "incident_id": "xjhs28vvpmb1",
        "status": "scheduled",
        "twitter_updated_at": null,
        "updated_at": "2013-04-21T13:11:06-06:00",
        "wants_twitter_update": false
      }
    ],
    "monitoring_at": null,
    "name": "Data Layer Migration",
    "page_id": "jcm87b8scw0b",
    "postmortem_body": null,
    "postmortem_body_last_updated_at": null,
    "postmortem_ignored": false,
    "postmortem_notified_subscribers": false,
    "postmortem_notified_twitter": false,
    "postmortem_published_at": null,
    "resolved_at": null,
    "scheduled_auto_in_progress": false,
    "scheduled_auto_completed": false,
    "scheduled_for": "2013-04-21T19:00:00-06:00",
    "scheduled_remind_prior": false,
    "scheduled_reminded_at": null,
    "scheduled_until": "2013-04-21T22:30:00-06:00",
    "shortlink": "http://j.mp/11szNKK",
    "status": "in_progress",
    "updated_at": "2013-04-21T18:59:51-06:00"
  }

Back to top

Delete an incident
ENDPOINT
  DELETE /pages/[page_id]/incidents/[incident_id].json

SAMPLE CALL
  curl https://api.statuspage.io/v1/pages/qfn30z5r6s5h/incidents/21w20wsvz5kv.json \
    -H "Authorization: OAuth 2a7b9d4aac30956d537ac76850f4d78de30994703680056cc103862d53cf8074" \
    -X DELETE
    

RESPONSE CODES
  200 - Successful call

SAMPLE RESPONSE
  {
    "backfilled": false,
    "created_at": "2013-04-21T13:07:16-06:00",
    "id": "21w20wsvz5kv",
    "impact": "minor",
    "impact_override": "major",
    "incident_updates": [
      {
        "body": "Please open up a support ticket if any errors reappear.",
        "created_at": "2013-04-21T14:41:11-06:00",
        "display_at": "2013-04-21T14:41:11-06:00",
        "id": "n44k9011llqm",
        "incident_id": "21w20wsvz5kv",
        "status": "resolved",
        "twitter_updated_at": null,
        "updated_at": "2013-04-21T14:41:11-06:00",
        "wants_twitter_update": false
      },
      {
        "body": "We've identified an issue with and are rolling back a recent code push that is causing slow API response times.",
        "created_at": "2013-04-21T13:07:17-06:00",
        "display_at": "2013-04-21T13:07:17-06:00",
        "id": "fbt48twx0lzh",
        "incident_id": "21w20wsvz5kv",
        "status": "identified",
        "twitter_updated_at": null,
        "updated_at": "2013-04-21T13:07:17-06:00",
        "wants_twitter_update": false
      }
    ],
    "monitoring_at": null,
    "name": "Slow API Response Times",
    "page_id": "jcm87b8scw0b",
    "postmortem_body": null,
    "postmortem_body_last_updated_at": null,
    "postmortem_ignored": false,
    "postmortem_notified_subscribers": false,
    "postmortem_notified_twitter": false,
    "postmortem_published_at": null,
    "resolved_at": "2013-04-21T14:41:11-06:00",
    "scheduled_auto_in_progress": false,
    "scheduled_auto_completed": false,
    "scheduled_for": null,
    "scheduled_remind_prior": false,
    "scheduled_reminded_at": null,
    "scheduled_until": null,
    "shortlink": "http://j.mp/11AsbTS",
    "status": "resolved",
    "updated_at": "2013-04-21T14:41:11-06:00"
  }

Back to top

Tune an Incident Update
ENDPOINT
  PATCH /pages/[page_id]/incidents/[incident_id]/incident_updates/[incident_update_id].json

MUTABLE ATTRIBUTES
  incident_update[body] - The body of the incident update (optional. NOTE: incident[message] has been deprecated, but is also a valid key for this value)
  incident_update[display_at] - The timestamp by which to display the incident update (optional)

SAMPLE CALL
  curl https://api.statuspage.io/v1/pages/qfn30z5r6s5h/incidents/21w20wsvz5kv/incident_updates/fbt48twx0lzh.json \
    -H "Authorization: OAuth 2a7b9d4aac30956d537ac76850f4d78de30994703680056cc103862d53cf8074" \
    -X PATCH \
    -d "incident_update[body]=We are rolling back a recent code push that is causing slow web response times." \
    -d "incident_update[display_at]=2013-04-21T13:05:00-06:00"

RESPONSE CODES
  200 - Successful call
  422 - Validation failed (see errors in response body)

SAMPLE RESPONSE
  {
    "body": "We are rolling back a recent code push that is causing slow web response times.",
    "created_at": "2013-04-21T13:07:17-06:00",
    "display_at": "2013-04-21T13:05:00-06:00",
    "id": "fbt48twx0lzh",
    "incident_id": "21w20wsvz5kv",
    "status": "identified",
    "twitter_updated_at": null,
    "updated_at": "2013-04-21T15:32:42-06:00",
    "wants_twitter_update": false
  }