# 상태 페이지 API 레퍼런스

Source: https://instatus.com/help/ko/api/status-pages

## 상태 페이지 목록 가져오기

**엔드포인트:**

```bash
GET /v2/pages?page=:page&per_page=:per_page
```

- 기본 page 번호는 1입니다.
- 기본 per_page 값은 50이며 페이지당 최대 100개입니다.

**응답 예시:**

```json
[
  {
    "id": "ckf01fonve9i40a32oas5b0uw",
    "subdomain": "nasa",
    "name": "Nasa",
    "logoUrl": null,
    "faviconUrl": null,
    "websiteUrl": null,
    "customDomain": null,
    "publicEmail": null,
    "twitter": null,
    "status": "UP",
    "subscribeBySms": null,
    "language": "en",
    "useLargeHeader": true,
    "brandColor": "#111",
    "okColor": "rgba(51, 177, 126, 1)",
    "disruptedColor": null,
    "degradedColor": null,
    "downColor": null,
    "noticeColor": null,
    "unknownColor": null,
    "googleAnalytics": null,
    "smsService": null,
    "htmlInMeta": null,
    "htmlAboveHeader": null,
    "htmlBelowHeader": null,
    "htmlAboveFooter": null,
    "htmlBelowFooter": null,
    "htmlBelowSummary": null,
    "launchDate": null,
    "cssGlobal": null,
    "onboarded": null,
    "createdAt": "2020-09-12T19:03:48.379Z",
    "updatedAt": "2020-09-12T19:04:03.731Z"
  }
]
```

## 상태 페이지 만들기

**엔드포인트:**

```bash
POST /v1/pages
```

**요청 예시:**

```json
{
  "email": "ali@instatus.com",
  "name": "Nasa",
  "subdomain": "nasa",
  "components": ["Website", "App", "API"],
  "logoUrl": "https://instatus.com/sample.png",
  "faviconUrl": "https://instatus.com/favicon-32x32.png",
  "websiteUrl": "https://instatus.com",
  "language": "en",
  "useLargeHeader": true,
  "brandColor": "#111",
  "okColor": "#33B17E",
  "disruptedColor": "#FF8C03",
  "degradedColor": "#ECC94B",
  "downColor": "#DC123D",
  "noticeColor": "#70808F",
  "unknownColor": "#DFE0E1",
  "googleAnalytics": "UA-00000000-1",
  "subscribeBySms": true,
  "smsService": "twilio",
  "twilioSid": "YOUR_TWILIO_SID",
  "twilioToken": "YOUR_TWILIO_TOKEN",
  "twilioSender": "YOUR_TWILIO_SENDER",
  "esendexUsername": "YOUR_ESENDEX_USERNAME",
  "esendexPassword": "YOUR_ESENDEX_PASSWORD",
  "esendexAccountRef": "YOUR_ESENDEX_ACCOUNT_REF",
  "nexmoKey": null,
  "nexmoSecret": null,
  "nexmoSender": null,
  "htmlInMeta": null,
  "htmlAboveHeader": null,
  "htmlBelowHeader": null,
  "htmlAboveFooter": null,
  "htmlBelowFooter": null,
  "htmlBelowSummary": null,
  "cssGlobal": null,
  "launchDate": null,
  "dateFormat": "MMMMMM d, yyyy",
  "dateFormatShort": "MMM yyyy",
  "timeFormat": "p"
}
```

**응답 예시:**

```json
{
  "id": "ckg8auvrglcx309501fcjb2vl",
  "createdAt": "2020-10-13T18:29:25.708Z",
  "subdomain": "nasa",
  "logoUrl": null,
  "faviconUrl": null,
  "websiteUrl": null,
  "name": "Nasa",
  "status": "UP",
  "color": null,
  "language": null,
  "googleAnalytics": null,
  "publicEmail": null,
  "customDomain": null,
  "useLargeHeader": true,
  "disableDarkMode": null,
  "twitter": null,
  "subscribeBySms": null,
  "brandColor": null,
  "okColor": null,
  "disruptedColor": null,
  "downColor": null,
  "degradedColor": null,
  "noticeColor": null,
  "htmlInMeta": null,
  "htmlAboveHeader": null,
  "htmlBelowHeader": null,
  "htmlAboveFooter": null,
  "htmlBelowFooter": null,
  "htmlBelowSummary": null,
  "cssGlobal": null,
  "onboarded": null,
  "launchDate": null,
  "dateFormat": "MMMMMM d, yyyy",
  "dateFormatShort": "MMM yyyy",
  "timeFormat": "p",
  "private": false,
  "useAllowList": false,
  "allowList": [],
  "components": [
    {
      "id": "ckg8auwlzlcxd09506r3g6y8z",
      "name": "Website",
      "status": "OPERATIONAL",
      "showUptime": true,
      "order": null,
      "group": null,
      "incidents": []
    },
    {
      "id": "ckg8auwv7lcxm09506jjate2o",
      "name": "App",
      "status": "OPERATIONAL",
      "showUptime": true,
      "order": null,
      "group": null,
      "incidents": []
    },
    {
      "id": "ckg8aux4oo3ik0a35parnbunk",
      "name": "API",
      "status": "OPERATIONAL",
      "showUptime": true,
      "order": null,
      "group": null,
      "incidents": []
    }
  ]
}
```

## 상태 페이지 업데이트하기

**엔드포인트:**

```bash
PUT /v2/:page_id
```

**요청 예시:**

```json
{
  "id": "ckg8auvrglcx309501fcjb2vl",
  "name": "Nasa",
  "status": "UP",
  "subdomain": "nasa",
  "logoUrl": "https://instatus.com/sample.png",
  "faviconUrl": "https://instatus.com/favicon-32x32.png",
  "websiteUrl": "https://instatus.com",
  "language": "en",
  "publicEmail": "hello@nasa.gov",
  "useLargeHeader": true,
  "brandColor": "#111",
  "okColor": "#33B17E",
  "disruptedColor": "#FF8C03",
  "degradedColor": "#ECC94B",
  "downColor": "#DC123D",
  "noticeColor": "#70808F",
  "unknownColor": "#DFE0E1",
  "googleAnalytics": "UA-00000000-1",
  "subscribeBySms": true,
  "smsService": "twilio",
  "twilioSid": "YOUR_TWILIO_SID",
  "twilioToken": "YOUR_TWILIO_TOKEN",
  "twilioSender": "YOUR_TWILIO_SENDER",
  "esendexUsername": "YOUR_ESENDEX_USERNAME",
  "esendexPassword": "YOUR_ESENDEX_PASSWORD",
  "esendexAccountRef": "YOUR_ESENDEX_ACCOUNT_REF",
  "nexmoKey": null,
  "nexmoSecret": null,
  "nexmoSender": null,
  "htmlInMeta": null,
  "htmlAboveHeader": null,
  "htmlBelowHeader": null,
  "htmlAboveFooter": null,
  "htmlBelowFooter": null,
  "htmlBelowSummary": null,
  "cssGlobal": null,
  "launchDate": null,
  "dateFormat": "MMMMMM d, yyyy",
  "dateFormatShort": "MMM yyyy",
  "timeFormat": "p",
  "private": false,
  "useAllowList": false,
  "subscriberConfirmationMode": "REQUIRED",
  "translations": {
    "name": {
      "fr": "nasa"
    }
  }
}
```

**확인 이메일**

누군가 구독할 때의 동작은 `subscriberConfirmationMode`로 제어합니다.

- `REQUIRED` — 구독자가 업데이트를 받기 전에 이메일로 확인해야 합니다. 기본값입니다.
- `WELCOME` — 구독자가 바로 추가되고 환영 이메일을 받습니다. Pro 전용입니다.
- `NONE` — 이메일 없이 구독자가 바로 추가됩니다. Pro 전용입니다.

`autoConfirmSubscribers`는 더 이상 사용되지 않습니다. 하위 호환을 위해 `true`는 `NONE`에, `false`는 `REQUIRED`에 대응됩니다.

**응답 예시:**

```json
{
  "id": "ckg8auvrglcx309501fcjb2vl",
  "createdAt": "2020-10-13T18:29:25.708Z",
  "subdomain": "nasa",
  "name": "Nasa",
  "status": "UP",
  "logoUrl": null,
  "faviconUrl": null,
  "websiteUrl": null,
  "color": null,
  "language": null,
  "googleAnalytics": null,
  "publicEmail": "hello@nasa.gov",
  "customDomain": null,
  "useLargeHeader": true,
  "disableDarkMode": null,
  "twitter": null,
  "subscribeBySms": null,
  "brandColor": null,
  "okColor": null,
  "disruptedColor": null,
  "downColor": null,
  "degradedColor": null,
  "noticeColor": null,
  "htmlInMeta": null,
  "htmlAboveHeader": null,
  "htmlBelowHeader": null,
  "htmlAboveFooter": null,
  "htmlBelowFooter": null,
  "htmlBelowSummary": null,
  "cssGlobal": null,
  "onboarded": null,
  "launchDate": null,
  "dateFormat": "MMMMMM d, yyyy",
  "dateFormatShort": "MMM yyyy",
  "timeFormat": "p",
  "private": false,
  "useAllowList": false,
  "allowList": [],
  "subscriberConfirmationMode": "REQUIRED",
  "components": [
    {
      "id": "ckg8auwlzlcxd09506r3g6y8z",
      "name": "Website",
      "status": "OPERATIONAL",
      "showUptime": true,
      "order": null,
      "group": null,
      "incidents": []
    },
    {
      "id": "ckg8auwv7lcxm09506jjate2o",
      "name": "App",
      "status": "OPERATIONAL",
      "showUptime": true,
      "order": null,
      "group": null,
      "incidents": []
    },
    {
      "id": "ckg8aux4oo3ik0a35parnbunk",
      "name": "API",
      "status": "OPERATIONAL",
      "showUptime": true,
      "order": null,
      "group": null,
      "incidents": []
    }
  ],
  "translations": {
    "name": {
      "fr": "nasa"
    }
  }
}
```

## 상태 페이지 삭제하기

**엔드포인트:**

```bash
DELETE /v2/:page_id
```

**응답 예시:**

```json
{
  "id": "ckf1d4f6a4aaf0a356vqg0rdm"
}
```
