---
title: Create status page
description: Creates a new status page in an unpublished state. Use the dedicated publish status page endpoint to publish the page after creation.
breadcrumbs: Docs > API > Create status page
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

# Create status page

## v2 (latest)

| Datadog site      | API endpoint                                          |
| ----------------- | ----------------------------------------------------- |
| app.datadoghq.com | POST https://api.datadoghq.com/api/v2/statuspages     |
| us3.datadoghq.com | POST https://api.us3.datadoghq.com/api/v2/statuspages |
| us5.datadoghq.com | POST https://api.us5.datadoghq.com/api/v2/statuspages |
| app.datadoghq.eu  | POST https://api.datadoghq.eu/api/v2/statuspages      |
| ap1.datadoghq.com | POST https://api.ap1.datadoghq.com/api/v2/statuspages |
| ap2.datadoghq.com | POST https://api.ap2.datadoghq.com/api/v2/statuspages |
| uk1.datadoghq.com | POST https://api.uk1.datadoghq.com/api/v2/statuspages |
| app.ddog-gov.com  | POST https://api.ddog-gov.com/api/v2/statuspages      |
| us2.ddog-gov.com  | POST https://api.us2.ddog-gov.com/api/v2/statuspages  |

### Overview

Creates a new status page in an unpublished state. Use the dedicated [publish](#publish-status-page) status page endpoint to publish the page after creation.

This endpoint requires the `status_pages_settings_write` permission.

OAuth apps require the `status_pages_settings_write` authorization [scope](https://docs.datadoghq.com/api/latest/scopes.md#status-pages) to access this endpoint.

### Arguments

#### Query Strings

| Field   | Type   | Description                                                                                             |
| ------- | ------ | ------------------------------------------------------------------------------------------------------- |
| include | string | Comma-separated list of resources to include. Supported values: created_by_user, last_modified_by_user. |

### Request

#### Body Data (required)

{% tabs %}
{% tab label="Model" %}
| Parent field | Field                           | Type     | Description                                                                                                                                                                                                                                                                                                                                                                   |
| ------------ | ------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|              | data                            | object   | The data object for creating a status page.                                                                                                                                                                                                                                                                                                                                   |
| data         | attributes [*required*]         | object   | The supported attributes for creating a status page.                                                                                                                                                                                                                                                                                                                          |
| attributes   | company_logo                    | string   | The base64-encoded image data displayed on the status page.                                                                                                                                                                                                                                                                                                                   |
| attributes   | components                      | [object] | The components displayed on the status page.                                                                                                                                                                                                                                                                                                                                  |
| components   | components                      | [object] | If creating a component of type `group`, the components to create within the group.                                                                                                                                                                                                                                                                                           |
| components   | name                            | string   | The name of the grouped component.                                                                                                                                                                                                                                                                                                                                            |
| components   | position                        | int64    | The zero-indexed position of the grouped component. Relative to the other components in the group.                                                                                                                                                                                                                                                                            |
| components   | type                            | enum     | The type of the component. Allowed enum values: `component`.                                                                                                                                                                                                                                                                                                                  |
| components   | name                            | string   | The name of the component.                                                                                                                                                                                                                                                                                                                                                    |
| components   | position                        | int64    | The zero-indexed position of the component.                                                                                                                                                                                                                                                                                                                                   |
| components   | type                            | enum     | The type of the component. Allowed enum values: `component`, `group`.                                                                                                                                                                                                                                                                                                         |
| attributes   | domain_prefix [*required*]      | string   | The subdomain of the status page URL. Public pages use `https://{domain_prefix}.statuspage.datadoghq.com`, while private pages use `https://{domain_prefix}.private.statuspage.datadoghq.com`. Globally unique across Datadog Status Pages.                                                                                                                                   |
| attributes   | email_header_image              | string   | Base64-encoded image data included in email notifications sent to status page subscribers.                                                                                                                                                                                                                                                                                    |
| attributes   | email_notifications_enabled     | boolean  | Whether email notifications are enabled for the status page. Must be enabled when `subscriptions_enabled` is `true`.                                                                                                                                                                                                                                                          |
| attributes   | favicon                         | string   | Base64-encoded image data displayed in the browser tab.                                                                                                                                                                                                                                                                                                                       |
| attributes   | ms_teams_subscriptions_enabled  | boolean  | Whether Microsoft Teams subscriptions are enabled for the status page.                                                                                                                                                                                                                                                                                                        |
| attributes   | name [*required*]               | string   | The name of the status page.                                                                                                                                                                                                                                                                                                                                                  |
| attributes   | rss_feed_enabled                | boolean  | Whether the RSS feed is enabled for the status page.                                                                                                                                                                                                                                                                                                                          |
| attributes   | slack_app_icon                  | string   | The base64-encoded image data used as the Slack app icon.                                                                                                                                                                                                                                                                                                                     |
| attributes   | slack_subscriptions_enabled     | boolean  | Whether Slack subscriptions are enabled for the status page.                                                                                                                                                                                                                                                                                                                  |
| attributes   | subscriptions_enabled           | boolean  | Whether users can subscribe to the status page.                                                                                                                                                                                                                                                                                                                               |
| attributes   | type [*required*]               | enum     | The type of the status page controlling how the status page is accessed. Public pages are accessible to anyone, internal pages are accessible to authenticated users in the Datadog organization, and private pages are accessible only to users matching an allow email access policy and no deny email access policy. Allowed enum values: `public`, `internal`, `private`. |
| attributes   | visualization_layout            | enum     | The layout of components on the status page. Defaults to `list`. `grid` requires `visualization_type` to be `component_name_only`; changing `visualization_type` to any other value resets the layout to `list`. Allowed enum values: `list`, `grid`.                                                                                                                         |
| attributes   | visualization_type [*required*] | enum     | The visualization type of the status page. Allowed enum values: `bars_and_uptime_percentage`, `bars_only`, `component_name_only`.                                                                                                                                                                                                                                             |
| data         | type [*required*]               | enum     | Status pages resource type. Allowed enum values: `status_pages`. Default: `status_pages`.                                                                                                                                                                                                                                                                                     |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "name": "A Status Page",
      "domain_prefix": "5e2fd69be33e79aa",
      "components": [
        {
          "name": "Login",
          "type": "component",
          "position": 0
        },
        {
          "name": "Settings",
          "type": "component",
          "position": 1
        }
      ],
      "type": "internal",
      "visualization_type": "bars_and_uptime_percentage"
    },
    "type": "status_pages"
  }
}
```
{% /tab %}
{% /tabs %}

### Response

{% tabs %}
{% tab label="201" %}
Created

{% tabs %}
{% tab label="Model" %}
Response object for a single status page.

| Parent field          | Field                          | Type      | Description                                                                                                                                                                                                                                                                                                                                                                   |
| --------------------- | ------------------------------ | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                       | data                           | object    | The data object for a status page.                                                                                                                                                                                                                                                                                                                                            |
| data                  | attributes                     | object    | The attributes of a status page.                                                                                                                                                                                                                                                                                                                                              |
| attributes            | company_logo                   | string    | Base64-encoded image data displayed on the status page.                                                                                                                                                                                                                                                                                                                       |
| attributes            | components                     | [object]  | Components displayed on the status page.                                                                                                                                                                                                                                                                                                                                      |
| components            | components                     | [object]  | If the component is of type `group`, the components within the group.                                                                                                                                                                                                                                                                                                         |
| components            | id                             | uuid      | The ID of the component.                                                                                                                                                                                                                                                                                                                                                      |
| components            | name                           | string    | The name of the component.                                                                                                                                                                                                                                                                                                                                                    |
| components            | position                       | int64     | The zero-indexed position of the component. Relative to the other components in the group.                                                                                                                                                                                                                                                                                    |
| components            | status                         | enum      | The status of the component. Read-only. Allowed enum values: `operational`, `degraded`, `partial_outage`, `major_outage`, `maintenance`.                                                                                                                                                                                                                                      |
| components            | type                           | enum      | The type of the component. Allowed enum values: `component`.                                                                                                                                                                                                                                                                                                                  |
| components            | id                             | uuid      | The ID of the component.                                                                                                                                                                                                                                                                                                                                                      |
| components            | name                           | string    | The name of the component.                                                                                                                                                                                                                                                                                                                                                    |
| components            | position                       | int64     | The zero-indexed position of the component.                                                                                                                                                                                                                                                                                                                                   |
| components            | status                         | enum      | The status of the component. Read-only. Allowed enum values: `operational`, `degraded`, `partial_outage`, `major_outage`, `maintenance`.                                                                                                                                                                                                                                      |
| components            | type                           | enum      | The type of the component. Allowed enum values: `component`, `group`.                                                                                                                                                                                                                                                                                                         |
| attributes            | created_at                     | date-time | Timestamp of when the status page was created.                                                                                                                                                                                                                                                                                                                                |
| attributes            | custom_domain                  | string    | If configured, the url that the status page is accessible at.                                                                                                                                                                                                                                                                                                                 |
| attributes            | custom_domain_enabled          | boolean   | Whether the custom domain is configured.                                                                                                                                                                                                                                                                                                                                      |
| attributes            | domain_prefix                  | string    | The subdomain of the status page URL. Public pages use `https://{domain_prefix}.statuspage.datadoghq.com`, while private pages use `https://{domain_prefix}.private.statuspage.datadoghq.com`. Globally unique across Datadog Status Pages.                                                                                                                                   |
| attributes            | email_header_image             | string    | Base64-encoded image data included in email notifications sent to status page subscribers.                                                                                                                                                                                                                                                                                    |
| attributes            | email_notifications_enabled    | boolean   | Whether email notifications are enabled for the status page. Must be enabled when `subscriptions_enabled` is `true`.                                                                                                                                                                                                                                                          |
| attributes            | enabled                        | boolean   | Whether the status page is enabled.                                                                                                                                                                                                                                                                                                                                           |
| attributes            | favicon                        | string    | Base64-encoded image data displayed in the browser tab.                                                                                                                                                                                                                                                                                                                       |
| attributes            | modified_at                    | date-time | Timestamp of when the status page was last modified.                                                                                                                                                                                                                                                                                                                          |
| attributes            | ms_teams_subscriptions_enabled | boolean   | Whether Microsoft Teams subscriptions are enabled for the status page.                                                                                                                                                                                                                                                                                                        |
| attributes            | name                           | string    | The name of the status page.                                                                                                                                                                                                                                                                                                                                                  |
| attributes            | page_url                       | string    | The url that the status page is accessible at.                                                                                                                                                                                                                                                                                                                                |
| attributes            | rss_feed_enabled               | boolean   | Whether the RSS feed is enabled for the status page.                                                                                                                                                                                                                                                                                                                          |
| attributes            | slack_app_icon                 | string    | The Slack app icon URL for the status page.                                                                                                                                                                                                                                                                                                                                   |
| attributes            | slack_subscriptions_enabled    | boolean   | Whether Slack subscriptions are enabled for the status page.                                                                                                                                                                                                                                                                                                                  |
| attributes            | subscriptions_enabled          | boolean   | Whether users can subscribe to the status page.                                                                                                                                                                                                                                                                                                                               |
| attributes            | type                           | enum      | The type of the status page controlling how the status page is accessed. Public pages are accessible to anyone, internal pages are accessible to authenticated users in the Datadog organization, and private pages are accessible only to users matching an allow email access policy and no deny email access policy. Allowed enum values: `public`, `internal`, `private`. |
| attributes            | visualization_layout           | enum      | The layout of components on the status page. Defaults to `list`. `grid` requires `visualization_type` to be `component_name_only`; changing `visualization_type` to any other value resets the layout to `list`. Allowed enum values: `list`, `grid`.                                                                                                                         |
| attributes            | visualization_type             | enum      | The visualization type of the status page. Allowed enum values: `bars_and_uptime_percentage`, `bars_only`, `component_name_only`.                                                                                                                                                                                                                                             |
| data                  | id                             | uuid      | The ID of the status page.                                                                                                                                                                                                                                                                                                                                                    |
| data                  | relationships                  | object    | The relationships of a status page.                                                                                                                                                                                                                                                                                                                                           |
| relationships         | created_by_user                | object    | The Datadog user who created the status page.                                                                                                                                                                                                                                                                                                                                 |
| created_by_user       | data [*required*]              | object    | The data object identifying the Datadog user who created the status page.                                                                                                                                                                                                                                                                                                     |
| data                  | id [*required*]                | string    | The ID of the Datadog user who created the status page.                                                                                                                                                                                                                                                                                                                       |
| data                  | type [*required*]              | enum      | Users resource type. Allowed enum values: `users`. Default: `users`.                                                                                                                                                                                                                                                                                                          |
| relationships         | last_modified_by_user          | object    | The Datadog user who last modified the status page.                                                                                                                                                                                                                                                                                                                           |
| last_modified_by_user | data [*required*]              | object    | The data object identifying the Datadog user who last modified the status page.                                                                                                                                                                                                                                                                                               |
| data                  | id [*required*]                | string    | The ID of the Datadog user who last modified the status page.                                                                                                                                                                                                                                                                                                                 |
| data                  | type [*required*]              | enum      | Users resource type. Allowed enum values: `users`. Default: `users`.                                                                                                                                                                                                                                                                                                          |
| data                  | type [*required*]              | enum      | Status pages resource type. Allowed enum values: `status_pages`. Default: `status_pages`.                                                                                                                                                                                                                                                                                     |
|                       | included                       | [<oneOf>] | The included related resources of a status page. Client must explicitly request these resources by name in the `include` query parameter.                                                                                                                                                                                                                                     |
| included              | <type=users>                   | object    | The included Datadog user resource.                                                                                                                                                                                                                                                                                                                                           |
| <type=users>          | attributes                     | object    | Attributes of the Datadog user.                                                                                                                                                                                                                                                                                                                                               |
| attributes            | email                          | string    | The email of the Datadog user.                                                                                                                                                                                                                                                                                                                                                |
| attributes            | handle                         | string    | The handle of the Datadog user.                                                                                                                                                                                                                                                                                                                                               |
| attributes            | icon                           | string    | The icon of the Datadog user.                                                                                                                                                                                                                                                                                                                                                 |
| attributes            | name                           | string    | The name of the Datadog user.                                                                                                                                                                                                                                                                                                                                                 |
| attributes            | uuid                           | string    | The UUID of the Datadog user.                                                                                                                                                                                                                                                                                                                                                 |
| <type=users>          | id                             | uuid      | The ID of the Datadog user.                                                                                                                                                                                                                                                                                                                                                   |
| <type=users>          | type [*required*]              | enum      | Users resource type. Allowed enum values: `users`. Default: `users`.                                                                                                                                                                                                                                                                                                          |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "company_logo": "string",
      "components": [
        {
          "components": [
            {
              "id": "string",
              "name": "string",
              "position": "integer",
              "status": "string",
              "type": "component"
            }
          ],
          "id": "string",
          "name": "string",
          "position": "integer",
          "status": "string",
          "type": "component"
        }
      ],
      "created_at": "2019-09-19T10:00:00.000Z",
      "custom_domain": "string",
      "custom_domain_enabled": false,
      "domain_prefix": "string",
      "email_header_image": "string",
      "email_notifications_enabled": false,
      "enabled": false,
      "favicon": "string",
      "modified_at": "2019-09-19T10:00:00.000Z",
      "ms_teams_subscriptions_enabled": false,
      "name": "string",
      "page_url": "string",
      "rss_feed_enabled": false,
      "slack_app_icon": "string",
      "slack_subscriptions_enabled": false,
      "subscriptions_enabled": false,
      "type": "public",
      "visualization_layout": "list",
      "visualization_type": "bars_and_uptime_percentage"
    },
    "id": "string",
    "relationships": {
      "created_by_user": {
        "data": {
          "id": "",
          "type": "users"
        }
      },
      "last_modified_by_user": {
        "data": {
          "id": "",
          "type": "users"
        }
      }
    },
    "type": "status_pages"
  },
  "included": [
    {
      "attributes": {
        "email": "string",
        "handle": "string",
        "icon": "string",
        "name": "string",
        "uuid": "string"
      },
      "id": "string",
      "type": "users"
    }
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="429" %}
Too many requests

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}
{% /tabs %}

### Code Example

{% tabs %}
{% tab label="Curl" %}
```bash
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X POST "https://api.${DD_SITE}/api/v2/statuspages" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
  "data": {
    "attributes": {
      "name": "A Status Page",
      "domain_prefix": "5e2fd69be33e79aa",
      "components": [
        {
          "name": "Login",
          "type": "component",
          "position": 0
        },
        {
          "name": "Settings",
          "type": "component",
          "position": 1
        }
      ],
      "type": "internal",
      "visualization_type": "bars_and_uptime_percentage"
    },
    "type": "status_pages"
  }
}
EOF
```
{% /tab %}

{% tab label="Go" %}
```go
// Create status page returns "Created" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	body := datadogV2.CreateStatusPageRequest{
		Data: &datadogV2.CreateStatusPageRequestData{
			Attributes: datadogV2.CreateStatusPageRequestDataAttributes{
				Name:         "A Status Page",
				DomainPrefix: "5e2fd69be33e79aa",
				Components: []datadogV2.CreateStatusPageRequestDataAttributesComponentsItems{
					{
						Name:     datadog.PtrString("Login"),
						Type:     datadogV2.CREATECOMPONENTREQUESTDATAATTRIBUTESTYPE_COMPONENT.Ptr(),
						Position: datadog.PtrInt64(0),
					},
					{
						Name:     datadog.PtrString("Settings"),
						Type:     datadogV2.CREATECOMPONENTREQUESTDATAATTRIBUTESTYPE_COMPONENT.Ptr(),
						Position: datadog.PtrInt64(1),
					},
				},
				Type:              datadogV2.CREATESTATUSPAGEREQUESTDATAATTRIBUTESTYPE_INTERNAL,
				VisualizationType: datadogV2.CREATESTATUSPAGEREQUESTDATAATTRIBUTESVISUALIZATIONTYPE_BARS_AND_UPTIME_PERCENTAGE,
			},
			Type: datadogV2.STATUSPAGEDATATYPE_STATUS_PAGES,
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewStatusPagesApi(apiClient)
	resp, r, err := api.CreateStatusPage(ctx, body, *datadogV2.NewCreateStatusPageOptionalParameters())

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `StatusPagesApi.CreateStatusPage`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `StatusPagesApi.CreateStatusPage`:\n%s\n", responseContent)
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
```
{% /tab %}

{% tab label="Java" %}
```java
// Create status page returns "Created" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.StatusPagesApi;
import com.datadog.api.client.v2.model.CreateComponentRequestDataAttributesType;
import com.datadog.api.client.v2.model.CreateStatusPageRequest;
import com.datadog.api.client.v2.model.CreateStatusPageRequestData;
import com.datadog.api.client.v2.model.CreateStatusPageRequestDataAttributes;
import com.datadog.api.client.v2.model.CreateStatusPageRequestDataAttributesComponentsItems;
import com.datadog.api.client.v2.model.CreateStatusPageRequestDataAttributesType;
import com.datadog.api.client.v2.model.CreateStatusPageRequestDataAttributesVisualizationType;
import com.datadog.api.client.v2.model.StatusPage;
import com.datadog.api.client.v2.model.StatusPageDataType;
import java.util.Arrays;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    StatusPagesApi apiInstance = new StatusPagesApi(defaultClient);

    CreateStatusPageRequest body =
        new CreateStatusPageRequest()
            .data(
                new CreateStatusPageRequestData()
                    .attributes(
                        new CreateStatusPageRequestDataAttributes()
                            .name("A Status Page")
                            .domainPrefix("5e2fd69be33e79aa")
                            .components(
                                Arrays.asList(
                                    new CreateStatusPageRequestDataAttributesComponentsItems()
                                        .name("Login")
                                        .type(CreateComponentRequestDataAttributesType.COMPONENT)
                                        .position(0L),
                                    new CreateStatusPageRequestDataAttributesComponentsItems()
                                        .name("Settings")
                                        .type(CreateComponentRequestDataAttributesType.COMPONENT)
                                        .position(1L)))
                            .type(CreateStatusPageRequestDataAttributesType.INTERNAL)
                            .visualizationType(
                                CreateStatusPageRequestDataAttributesVisualizationType
                                    .BARS_AND_UPTIME_PERCENTAGE))
                    .type(StatusPageDataType.STATUS_PAGES));

    try {
      StatusPage result = apiInstance.createStatusPage(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling StatusPagesApi#createStatusPage");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
```
{% /tab %}

{% tab label="Python" %}
```python
"""
Create status page returns "Created" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.status_pages_api import StatusPagesApi
from datadog_api_client.v2.model.create_component_request_data_attributes_type import (
    CreateComponentRequestDataAttributesType,
)
from datadog_api_client.v2.model.create_status_page_request import CreateStatusPageRequest
from datadog_api_client.v2.model.create_status_page_request_data import CreateStatusPageRequestData
from datadog_api_client.v2.model.create_status_page_request_data_attributes import CreateStatusPageRequestDataAttributes
from datadog_api_client.v2.model.create_status_page_request_data_attributes_components_items import (
    CreateStatusPageRequestDataAttributesComponentsItems,
)
from datadog_api_client.v2.model.create_status_page_request_data_attributes_type import (
    CreateStatusPageRequestDataAttributesType,
)
from datadog_api_client.v2.model.create_status_page_request_data_attributes_visualization_type import (
    CreateStatusPageRequestDataAttributesVisualizationType,
)
from datadog_api_client.v2.model.status_page_data_type import StatusPageDataType

body = CreateStatusPageRequest(
    data=CreateStatusPageRequestData(
        attributes=CreateStatusPageRequestDataAttributes(
            name="A Status Page",
            domain_prefix="5e2fd69be33e79aa",
            components=[
                CreateStatusPageRequestDataAttributesComponentsItems(
                    name="Login",
                    type=CreateComponentRequestDataAttributesType.COMPONENT,
                    position=0,
                ),
                CreateStatusPageRequestDataAttributesComponentsItems(
                    name="Settings",
                    type=CreateComponentRequestDataAttributesType.COMPONENT,
                    position=1,
                ),
            ],
            type=CreateStatusPageRequestDataAttributesType.INTERNAL,
            visualization_type=CreateStatusPageRequestDataAttributesVisualizationType.BARS_AND_UPTIME_PERCENTAGE,
        ),
        type=StatusPageDataType.STATUS_PAGES,
    ),
)

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
    api_instance = StatusPagesApi(api_client)
    response = api_instance.create_status_page(body=body)

    print(response)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
```
{% /tab %}

{% tab label="Ruby" %}
```ruby
# Create status page returns "Created" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::StatusPagesAPI.new

body = DatadogAPIClient::V2::CreateStatusPageRequest.new({
  data: DatadogAPIClient::V2::CreateStatusPageRequestData.new({
    attributes: DatadogAPIClient::V2::CreateStatusPageRequestDataAttributes.new({
      name: "A Status Page",
      domain_prefix: "5e2fd69be33e79aa",
      components: [
        DatadogAPIClient::V2::CreateStatusPageRequestDataAttributesComponentsItems.new({
          name: "Login",
          type: DatadogAPIClient::V2::CreateComponentRequestDataAttributesType::COMPONENT,
          position: 0,
        }),
        DatadogAPIClient::V2::CreateStatusPageRequestDataAttributesComponentsItems.new({
          name: "Settings",
          type: DatadogAPIClient::V2::CreateComponentRequestDataAttributesType::COMPONENT,
          position: 1,
        }),
      ],
      type: DatadogAPIClient::V2::CreateStatusPageRequestDataAttributesType::INTERNAL,
      visualization_type: DatadogAPIClient::V2::CreateStatusPageRequestDataAttributesVisualizationType::BARS_AND_UPTIME_PERCENTAGE,
    }),
    type: DatadogAPIClient::V2::StatusPageDataType::STATUS_PAGES,
  }),
})
p api_instance.create_status_page(body)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" ruby "example.rb"
```
{% /tab %}

{% tab label="Rust" %}
```rust
// Create status page returns "Created" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_status_pages::CreateStatusPageOptionalParams;
use datadog_api_client::datadogV2::api_status_pages::StatusPagesAPI;
use datadog_api_client::datadogV2::model::CreateComponentRequestDataAttributesType;
use datadog_api_client::datadogV2::model::CreateStatusPageRequest;
use datadog_api_client::datadogV2::model::CreateStatusPageRequestData;
use datadog_api_client::datadogV2::model::CreateStatusPageRequestDataAttributes;
use datadog_api_client::datadogV2::model::CreateStatusPageRequestDataAttributesComponentsItems;
use datadog_api_client::datadogV2::model::CreateStatusPageRequestDataAttributesType;
use datadog_api_client::datadogV2::model::CreateStatusPageRequestDataAttributesVisualizationType;
use datadog_api_client::datadogV2::model::StatusPageDataType;

#[tokio::main]
async fn main() {
    let body = CreateStatusPageRequest::new().data(CreateStatusPageRequestData::new(
        CreateStatusPageRequestDataAttributes::new(
            "5e2fd69be33e79aa".to_string(),
            "A Status Page".to_string(),
            CreateStatusPageRequestDataAttributesType::INTERNAL,
            CreateStatusPageRequestDataAttributesVisualizationType::BARS_AND_UPTIME_PERCENTAGE,
        )
        .components(vec![
            CreateStatusPageRequestDataAttributesComponentsItems::new()
                .name("Login".to_string())
                .position(0)
                .type_(CreateComponentRequestDataAttributesType::COMPONENT),
            CreateStatusPageRequestDataAttributesComponentsItems::new()
                .name("Settings".to_string())
                .position(1)
                .type_(CreateComponentRequestDataAttributesType::COMPONENT),
        ]),
        StatusPageDataType::STATUS_PAGES,
    ));
    let configuration = datadog::Configuration::new();
    let api = StatusPagesAPI::with_config(configuration);
    let resp = api
        .create_status_page(body, CreateStatusPageOptionalParams::default())
        .await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
```
{% /tab %}

{% tab label="TypeScript" %}
```typescript
/**
 * Create status page returns "Created" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
const apiInstance = new v2.StatusPagesApi(configuration);

const params: v2.StatusPagesApiCreateStatusPageRequest = {
  body: {
    data: {
      attributes: {
        name: "A Status Page",
        domainPrefix: "5e2fd69be33e79aa",
        components: [
          {
            name: "Login",
            type: "component",
            position: 0,
          },
          {
            name: "Settings",
            type: "component",
            position: 1,
          },
        ],
        type: "internal",
        visualizationType: "bars_and_uptime_percentage",
      },
      type: "status_pages",
    },
  },
};

apiInstance
  .createStatusPage(params)
  .then((data: v2.StatusPage) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" npx tsx "example.ts"
```
{% /tab %}
{% /tabs %}
