# Create Google Chat endpoint

Add a single pre-verified outbound Google Chat endpoint to a dashboard.

Source: https://statusdashboard.com/docs/api/integrations/gchat/endpoints/create

`POST /app/integrations/gchat/endpoints`

Creates one pre-verified Google Chat endpoint. Admin-trusted — no verification email is sent.

Requires the `admin` or `subscriber` role and the **integrations** feature entitlement.

***

## Request
See [API Basics](/docs/api) for required headers.

### Body
| Field             | Type    | Required | Description                                                                                                                                                                                                                                           |
| ----------------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `dashboardId`     | uuid    | Yes      | Target dashboard                                                                                                                                                                                                                                      |
| `url`             | string  | Yes      | Absolute HTTPS endpoint URL (max 2048 chars). Must use `https://` on port 443 with no embedded credentials. Must be a Google Chat webhook URL: `https://chat.googleapis.com/v1/spaces/{space}/messages` with both `key` and `token` query parameters. |
| `managementEmail` | string  | Yes      | Management contact email (max 254 chars). Receives verify/manage flows for public endpoints and delivery-failure alerts.                                                                                                                              |
| `componentIds`    | uuid\[] | Yes      | At least one component on that dashboard                                                                                                                                                                                                              |
| `locked`          | boolean | No       | Admin-managed flag. When `true`, blocks dashboard self-service subscribe/manage. Default: `false`.                                                                                                                                                    |

***

## Sample request
```bash
curl -X POST https://api.statusdashboard.com/app/integrations/gchat/endpoints \
  -H "Authorization: Bearer bcf847abf5c6:def456" \
  -H "Content-Type: application/json" \
  -d '{
    "dashboardId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "url": "https://chat.googleapis.com/v1/spaces/AAAA/messages?key=example&token=example",
    "managementEmail": "ops@acme.com",
    "componentIds": ["b2c3d4e5-f6a7-8901-bcde-f12345678901"],
    "locked": false
  }'
```

## Sample response
**Status: `201 Created`**

The create response includes the full `url` once. Subsequent list/update responses expose only `urlDisplay`.

```json
{
  "endpoint": {
    "channel": "gchat",
    "dashboardId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "dashboardName": "Acme Status",
    "urlHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "url": "https://chat.googleapis.com/v1/spaces/AAAA/messages?key=example&token=example",
    "urlDisplay": "chat.googleapis.com/v1?…",
    "managementEmail": "ops@acme.com",
    "verified": true,
    "verifiedAt": "2026-06-01T14:22:00.000Z",
    "paused": false,
    "locked": false,
    "suppressed": false,
    "componentIds": ["b2c3d4e5-f6a7-8901-bcde-f12345678901"],
    "consecutiveFailures": 0,
    "createdAt": "2026-06-01T14:22:00.000Z",
    "updatedAt": "2026-06-01T14:22:00.000Z"
  }
}
```

***

## Error responses
| Status | When                                                                                                             |
| ------ | ---------------------------------------------------------------------------------------------------------------- |
| `400`  | Invalid body, invalid URL, or component not on dashboard                                                         |
| `403`  | Requires admin or subscriber role, integrations feature disabled, or unique-endpoint organization limit exceeded |
| `404`  | Dashboard not found                                                                                              |
| `409`  | Endpoint already subscribed on this dashboard                                                                    |
