Create status page

POST https://api.ap1.datadoghq.com/api/v2/statuspageshttps://api.ap2.datadoghq.com/api/v2/statuspageshttps://api.datadoghq.eu/api/v2/statuspageshttps://api.ddog-gov.com/api/v2/statuspageshttps://api.us2.ddog-gov.com/api/v2/statuspageshttps://api.datadoghq.com/api/v2/statuspageshttps://api.us3.datadoghq.com/api/v2/statuspageshttps://api.us5.datadoghq.com/api/v2/statuspages

Overview

Creates a new status page in an unpublished state. Use the dedicated publish status page endpoint to publish the page after creation. This endpoint requires the status_pages_settings_write permission.

Arguments

Query Strings

Name

Type

Description

include

string

Comma-separated list of resources to include. Supported values: created_by_user, last_modified_by_user.

Request

Body Data (required)

Expand All

Field

Type

Description

data

object

The data object for creating a status page.

attributes [required]

object

The supported attributes for creating a status page.

company_logo

string

The base64-encoded image data displayed on the status page.

components

[object]

The components displayed on the status page.

components

[object]

If creating a component of type group, the components to create within the group.

id

uuid

The ID of the grouped component.

name

string

The name of the grouped component.

position

int64

The zero-indexed position of the grouped component. Relative to the other components in the group.

status

enum

The status of the component. Allowed enum values: operational,degraded,partial_outage,major_outage,maintenance

type

enum

The type of the component. Allowed enum values: component

id

uuid

The ID of the component.

name

string

The name of the component.

position

int64

The zero-indexed position of the component.

status

enum

The status of the component. Allowed enum values: operational,degraded,partial_outage,major_outage,maintenance

type

enum

The type of the component. Allowed enum values: component,group

domain_prefix [required]

string

The subdomain of the status page's url taking the form https://{domain_prefix}.statuspage.datadoghq.com. Globally unique across Datadog Status Pages.

email_header_image

string

Base64-encoded image data included in email notifications sent to status page subscribers.

favicon

string

Base64-encoded image data displayed in the browser tab.

name [required]

string

The name of the status page.

subscriptions_enabled

boolean

Whether users can subscribe to the status page.

type [required]

enum

The type of the status page controlling how the status page is accessed. Allowed enum values: public,internal

visualization_type [required]

enum

The visualization type of the status page. Allowed enum values: bars_and_uptime_percentage,bars_only,component_name_only

type [required]

enum

Status pages resource type. Allowed enum values: status_pages

default: status_pages

{
  "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"
  }
}

Response

Created

Response object for a single status page.

Expand All

Field

Type

Description

data

object

The data object for a status page.

attributes

object

The attributes of a status page.

company_logo

string

Base64-encoded image data displayed on the status page.

components

[object]

Components displayed on the status page.

components

[object]

If the component is of type group, the components within the group.

id

uuid

The ID of the component.

name

string

The name of the component.

position

int64

The zero-indexed position of the component. Relative to the other components in the group.

status

enum

The status of the component. Allowed enum values: operational,degraded,partial_outage,major_outage,maintenance

type

enum

The type of the component. Allowed enum values: component

id

uuid

The ID of the component.

name

string

The name of the component.

position

int64

The zero-indexed position of the component.

status

enum

The status of the component. Allowed enum values: operational,degraded,partial_outage,major_outage,maintenance

type

enum

The type of the component. Allowed enum values: component,group

created_at

date-time

Timestamp of when the status page was created.

custom_domain

string

If configured, the url that the status page is accessible at.

custom_domain_enabled

boolean

Whether the custom domain is configured.

domain_prefix

string

The subdomain of the status page's url taking the form https://{domain_prefix}.statuspage.datadoghq.com. Globally unique across Datadog Status Pages.

email_header_image

string

Base64-encoded image data included in email notifications sent to status page subscribers.

enabled

boolean

Whether the status page is enabled.

favicon

string

Base64-encoded image data displayed in the browser tab.

modified_at

date-time

Timestamp of when the status page was last modified.

name

string

The name of the status page.

page_url

string

The url that the status page is accessible at.

subscriptions_enabled

boolean

Whether users can subscribe to the status page.

type

enum

The type of the status page controlling how the status page is accessed. Allowed enum values: public,internal

visualization_type

enum

The visualization type of the status page. Allowed enum values: bars_and_uptime_percentage,bars_only,component_name_only

id

uuid

The ID of the status page.

relationships

object

The relationships of a status page.

created_by_user

object

The Datadog user who created the status page.

data [required]

object

The data object identifying the Datadog user who created the status page.

id [required]

string

The ID of the Datadog user who created the status page.

type [required]

enum

Users resource type. Allowed enum values: users

default: users

last_modified_by_user

object

The Datadog user who last modified the status page.

data [required]

object

The data object identifying the Datadog user who last modified the status page.

id [required]

string

The ID of the Datadog user who last modified the status page.

type [required]

enum

Users resource type. Allowed enum values: users

default: users

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.

Option 1

object

The included Datadog user resource.

attributes

object

Attributes of the Datadog user.

email

string

The email of the Datadog user.

handle

string

The handle of the Datadog user.

icon

string

The icon of the Datadog user.

name

string

The name of the Datadog user.

uuid

string

The UUID of the Datadog user.

id

uuid

The ID of the Datadog user.

type [required]

enum

Users resource type. Allowed enum values: users

default: users

{
  "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",
      "enabled": false,
      "favicon": "string",
      "modified_at": "2019-09-19T10:00:00.000Z",
      "name": "string",
      "page_url": "string",
      "subscriptions_enabled": false,
      "type": "public",
      "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"
    }
  ]
}

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example

                          ## default
# 

# Curl command
curl -X POST "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/statuspages" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "data": { "attributes": { "company_logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAIKMMMM", "components": [ { "name": "API", "position": 0, "type": "component" }, { "components": [ { "name": "Login", "position": 0, "type": "component" }, { "name": "Settings", "position": 1, "type": "component" } ], "name": "Web App", "position": 1, "type": "group" }, { "name": "Webhooks", "position": 2, "type": "component" } ], "domain_prefix": "status-page-us1", "email_header_image": "data:image/png;base64,pQSLAw0KGgoAAAANSUhEUgAAAQ4AASJKFF", "favicon": "data:image/png;base64,kWMRNw0KGgoAAAANSUhEUgAAAEAAAABACA", "name": "Status Page US1", "subscriptions_enabled": true, "type": "public", "visualization_type": "bars_and_uptime_percentage" }, "type": "status_pages" } } EOF
// 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())
	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 and then save the example to main.go and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
// 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();
    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 and then save the example to Example.java and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
"""
Create status page returns "Created" response
"""

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()
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 and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
# Create status page returns "Created" response

require "datadog_api_client"
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 and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// 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 and then save the example to src/main.rs and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * Create status page returns "Created" response
 */

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

const configuration = client.createConfiguration();
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 and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"