> Documentation index for AI agents: https://docs.pagerduty.com/llms.txt

# Create a Status Page Post

`POST https://api.pagerduty.com/status_pages/{id}/posts`

Create a Post for a Status Page by Status Page ID.

Scoped OAuth requires: `status_pages.write`

## Authorization

- **api_key** (apiKey) — `Authorization` header. The API Key with format `Token token=<API_KEY>`

## Path parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `id` | string | yes | The ID of the resource. |

## Header parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `Accept` | string | yes | The `Accept` header is used as a versioning header. Default: `application/vnd.pagerduty+json;version=2`. |

## Request body (`application/json`)

| Field | Type | Required | Description |
|---|---|---|---|
| `post` | object | yes | Request schema for creating/updating a given Status Page Post resource. |
| `post.type` | string | yes | The type of the object returned by the API - in this case, a Status Page Post. One of: `status_page_post`. |
| `post.title` | string | yes | The title given to a Post. Min length: 1. Max length: 128. |
| `post.post_type` | string | yes | The type of the Post. One of: `incident`, `maintenance`. |
| `post.starts_at` | string \| null (date-time) | yes | The date and time the Post intent becomes effective - only for maintenance post type. |
| `post.ends_at` | string \| null (date-time) | yes | The date and time the Post intent is concluded - only for maintenance post type. |
| `post.updates` | array of object | yes | Post Updates to be associated with a Post. Min items: 1. Max items: 50. |
| `post.updates[].self` | string |  | The path to which the Post Update resource is accessible. Read-only. |
| `post.updates[].message` | string | yes | The message of the Post Update. Max length: 7500. |
| `post.updates[].status` | object | yes | Status Page Status. |
| `post.updates[].status.id` | string | yes | Status page Status unique identifier. |
| `post.updates[].status.type` | string | yes | A string that determines the schema of the object. |
| `post.updates[].severity` | object | yes | Status Page Severity. |
| `post.updates[].severity.id` | string | yes | Status page Severity unique identifier. |
| `post.updates[].severity.type` | string | yes | A string that determines the schema of the object. |
| `post.updates[].impacted_services` | array of object | yes | Impacted services represent the status page services affected by a post update, and its impact. Min items: 0. |
| `post.updates[].impacted_services[].service` | object | yes | Status Page Service. |
| `post.updates[].impacted_services[].service.id` | string | yes | An unique identifier within Status Page scope that defines a Service entry. |
| `post.updates[].impacted_services[].service.type` | string | yes | The type of the object - in this case, a Status Page Service. |
| `post.updates[].impacted_services[].impact` | object | yes | Status Page Impact. |
| `post.updates[].impacted_services[].impact.id` | string | yes | An unique identifier within Status Page scope that defines a Status Page Impact entry. |
| `post.updates[].impacted_services[].impact.type` | string | yes | The type of the object - in this case, a Status Page Impact. |
| `post.updates[].update_frequency_ms` | integer \| null | yes | The frequency of the next Post Update in milliseconds. |
| `post.updates[].notify_subscribers` | boolean | yes | Determines if the subscribers should be notified of the Post Update. |
| `post.updates[].reported_at` | string \| null (date-time) |  | The date and time the Post Update was reported. |
| `post.updates[].type` | string | yes | The type of the object returned by the API - in this case, a Status Page Post Update. |
| `post.status_page` | object | yes | Status Page. |
| `post.status_page.id` | string | yes | Status page unique identifier. |
| `post.status_page.type` | string | yes | A string that determines the schema of the object. |

Example: default

```json
{
  "post": {
    "ends_at": "2023-12-12T11:00:00.000Z",
    "post_type": "maintenance",
    "starts_at": "2023-12-12T11:00:00.000Z",
    "status_page": {
      "id": "PR5LMML",
      "type": "status_page"
    },
    "title": "maintenance window for database upgrade",
    "type": "status_page_post",
    "updates": [
      {
        "impacted_services": [
          {
            "impact": {
              "id": "PY5OM08",
              "type": "status_page_impact"
            },
            "service": {
              "id": "PYHMEI3",
              "type": "status_page_service"
            }
          }
        ],
        "message": "<p>Message</p>",
        "update_frequency_ms": null,
        "notify_subscribers": false,
        "severity": {
          "id": "PY5OM08",
          "type": "status_page_severity"
        },
        "status": {
          "id": "P0400H4",
          "type": "status_page_status"
        },
        "type": "status_page_post_update"
      }
    ]
  }
}
```

## Response 201

Created

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `post` | object |  | A Post represents a communication resource presented in the Status Page about certain aspects of one or more services associated. |
| `post.id` | string |  | An unique identifier within Status Page scope that defines a single Post resource. Read-only. |
| `post.self` | string |  | The API resource URL of the Post. Read-only. |
| `post.type` | string |  | The type of the object returned by the API - in this case, a Status Page Post. Read-only. Default: `status_page_post`. |
| `post.post_type` | string |  | The type of the Post. One of: `incident`, `maintenance`. |
| `post.status_page` | object |  | Status Page. |
| `post.status_page.id` | string | yes | Status page unique identifier. |
| `post.status_page.type` | string |  | A string that determines the schema of the object. |
| `post.linked_resource` | object |  | Linked resource. |
| `post.linked_resource.id` | string | yes | Linked resource unique identifier. |
| `post.linked_resource.type` | string |  | A string that determines the schema of the object. |
| `post.postmortem` | object |  | Postmortem. |
| `post.postmortem.id` | string | yes | Postmortem unique identifier. |
| `post.postmortem.type` | string |  | A string that determines the schema of the object. |
| `post.title` | string |  | The title given to a Post. |
| `post.starts_at` | string \| null (date-time) |  | The date and time the Post intent becomes effective - only for maintenance post type. |
| `post.ends_at` | string \| null (date-time) |  | The date and time the Post intent is concluded - only for maintenance post type. |
| `post.updates` | array of one of: object |  | List of status_page_post_update references associated to a Post. Min items: 1. Max items: 50. |
| `post.updates[].id` | string |  | (StatusPagePostUpdate) The ID of the Post Update. Read-only. |
| `post.updates[].self` | string |  | (StatusPagePostUpdate) The path to which the Post Update resource is accessible. Read-only. |
| `post.updates[].post` | object |  | (StatusPagePostUpdate) Status Page Post. |
| `post.updates[].post.id` | string | yes | Status page post unique identifier. |
| `post.updates[].post.type` | string |  | A string that determines the schema of the object. |
| `post.updates[].message` | string |  | (StatusPagePostUpdate) The message of the Post Update. |
| `post.updates[].reviewed_status` | string |  | (StatusPagePostUpdate) The status of the Post Updates to retrieve. One of: `approved`, `not_reviewed`. |
| `post.updates[].status` | object |  | (StatusPagePostUpdate) Status Page Status. |
| `post.updates[].status.id` | string | yes | Status page Status unique identifier. |
| `post.updates[].status.type` | string |  | A string that determines the schema of the object. |
| `post.updates[].severity` | object |  | (StatusPagePostUpdate) Status Page Severity. |
| `post.updates[].severity.id` | string | yes | Status page Severity unique identifier. |
| `post.updates[].severity.type` | string |  | A string that determines the schema of the object. |
| `post.updates[].impacted_services` | array of object |  | (StatusPagePostUpdate) Impacted services represent the status page services affected by a post update, and its impact. Min items: 0. |
| `post.updates[].impacted_services[].service` | object |  | Status Page Service. |
| `post.updates[].impacted_services[].service.id` | string |  | An unique identifier within Status Page scope that defines a Service entry. Read-only. |
| `post.updates[].impacted_services[].service.type` | string |  | The type of the object returned by the API - in this case, a Status Page Service. |
| `post.updates[].impacted_services[].impact` | object |  | Status Page Impact. |
| `post.updates[].impacted_services[].impact.id` | string |  | An unique identifier within Status Page scope that defines a Status Page Impact entry. Read-only. |
| `post.updates[].impacted_services[].impact.type` | string |  | The type of the object returned by the API - in this case, a Status Page Impact. |
| `post.updates[].update_frequency_ms` | integer \| null |  | (StatusPagePostUpdate) The frequency of the next Post Update in milliseconds. |
| `post.updates[].notify_subscribers` | boolean |  | (StatusPagePostUpdate) Determines if the subscribers should be notified of the Post Update. |
| `post.updates[].reported_at` | string \| null (date-time) |  | (StatusPagePostUpdate) The date and time the Post Update was reported. |
| `post.updates[].type` | string |  | (StatusPagePostUpdate) The type of the object returned by the API - in this case, a Status Page Post Update. |

Example: default

```json
{
  "post": {
    "ends_at": "2023-12-12T11:00:00.000Z",
    "id": "PIJ90N7",
    "post_type": "maintenance",
    "postmortem": {
      "id": "PWZ0PTR",
      "self": "https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7/postmortem",
      "type": "status_page_postmortem"
    },
    "self": "https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7",
    "starts_at": "2023-12-12T11:00:00.000Z",
    "status_page": {
      "id": "PR5LMML",
      "type": "status_page"
    },
    "title": "maintenance window for database upgrade",
    "type": "status_page_post",
    "updates": [
      {
        "id": "P7HUBBZ",
        "self": "https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7/post_updates/P7HUBBZ",
        "type": "status_page_post_update"
      }
    ]
  }
}
```

## Response 400

Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Response 401

Caller did not supply credentials or did not provide the correct credentials.
If you are using an API key, it may be invalid or your Authorization header may be malformed.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Response 403

Caller is not authorized to view the requested resource.
While your authentication is valid, the authenticated user or token does not have permission to perform this action.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Response 404

The requested resource was not found.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Response 429

Too many requests have been made, the rate limit has been reached.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Developer Agreement

Your access to and use of the PagerDuty Developer Services is governed by the [PagerDuty Developer Agreement](https://docs.pagerduty.com/developer/pagerduty-developer-agreement).
