---
title: "Create an integration"
method: POST
path: "/v1/integrations"
tags: ["Integrations"]
---

# Create an integration

`POST /v1/integrations`

## Request

- Base URL: `https://api.upcheck.so`
- URL: `https://api.upcheck.so/v1/integrations`
- Auth: HTTP bearer

A webhook destination for one channel. Slack, Discord and Teams each get the payload shape their incoming webhooks expect; `webhook` receives a JSON event (`ssl.alert`, `domain.alert`, `http.alert`, `dns.alert`, `keyword.alert`, `content.alert`, `port.alert`, or the same with `.test`). Prove the URL with the test endpoint before relying on it.

## Request body

- object
  - `channel` 'slack' | 'discord' | 'teams' | 'webhook', required: Where an integration delivers. Email needs no integration; rules address recipients directly.
  - `label` string, required
  - `url` string, uri, required: The incoming-webhook URL the channel gave you.
  - `enabled` boolean

## Response `201`

Created.

- object
  - `id` string, required: Opaque identifier.
  - `organizationId` string, required: Opaque identifier.
  - `channel` 'email' | 'slack' | 'discord' | 'teams' | 'webhook', required
  - `label` string, required
  - `url` string, nullable, required
  - `enabled` boolean, required
  - `createdAt` number, required

## Other responses

- `400`: The request body or parameters are invalid. `error` names the first problem.
- `401`: The API key is missing, invalid, or revoked.
- `403`: The key's role does not allow this action.
- `429`: The key's rate limit was exceeded. Honour `Retry-After`.

---

[API](https://skmtc.dev/upcheck/apis/upcheck-api.md) · [All operations](https://skmtc.dev/upcheck/apis/upcheck-api/llms.txt) · [OpenAPI document](https://skmtc.dev/upcheck/apis/upcheck-api/revisions/56f55512eb8a?raw)
