---
title: "Slack Integrations API Reference"
description: "Endpoints for managing the Slack integration. Connect your Slack workspace to receive real-time notifications when events occur on your links."
canonical: "https://linkbreakers.com/help/api/slack-integrations"
---

# Slack Integrations

Endpoints for managing the Slack integration. Connect your Slack workspace to receive real-time notifications when events occur on your links.

## Slack Integrations

## [#](#slack-integrations-object)The A Slack channel available for notification delivery object

A Slack channel available for notification delivery

id

string

The Slack channel ID

isMember

boolean

Whether the bot is a member of this channel (can post to it)

isPrivate

boolean

Whether this is a private channel

name

string

The channel name

Example object

```json
{
  "id": "string",
  "isMember": false,
  "isPrivate": false,
  "name": "string"
}
```

GET

`/v1/slack-integrations`

Requires auth

## [#](#get-slack-integration)Get Slack integration

Retrieve the Slack integration configuration for the workspace. Requires the \`integrations:read\` scope.

### [#](#get-slack-integration-parameters)Parameters

This endpoint does not accept any parameters.

### [#](#get-slack-integration-response)Response

200

Everything worked as expected.

slackIntegration

object

Represents a connected Slack workspace integration that receives event notifications in a configured channel when workflow steps complete.

### [#](#get-slack-integration-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X GET "https://api.linkbreakers.com/v1/slack-integrations" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

Typical response

```json
{
  "slackIntegration": {
    "createdAt": "2026-10-29T07:16:38.675Z",
    "createdBy": "string",
    "failureCount": 0,
    "id": "d22f7bf1-83a9-4f3a-9b37-9a3a21b6ac11",
    "lastSentAt": "2026-10-29T07:16:38.675Z",
    "linkId": "d22f7bf1-83a9-4f3a-9b37-9a3a21b6ac11",
    "slackChannelId": "C01ABC123",
    "slackChannelName": "general",
    "slackTeamId": "T01ABC123",
    "slackTeamName": "My Company",
    "status": "SLACK_INTEGRATION_STATUS_UNSPECIFIED",
    "successCount": 0,
    "triggers": [
      "KIND_UNSPECIFIED"
    ],
    "updatedAt": "2026-10-29T07:16:38.675Z",
    "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
  }
}
```

Base URL: `https://api.linkbreakers.com`

GET

`/v1/slack-integrations/channels`

Requires auth

## [#](#list-slack-channels)List Slack channels

List available Slack channels the bot can send notifications to. Requires the \`integrations:read\` scope.

### [#](#list-slack-channels-parameters)Parameters

This endpoint does not accept any parameters.

### [#](#list-slack-channels-response)Response

200

Everything worked as expected.

channels

array<object>

Available channels the bot can post to

### [#](#list-slack-channels-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X GET "https://api.linkbreakers.com/v1/slack-integrations/channels" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

Typical response

```json
{
  "channels": [
    {
      "id": "string",
      "isMember": false,
      "isPrivate": false,
      "name": "string"
    }
  ]
}
```

Base URL: `https://api.linkbreakers.com`

GET

`/v1/slack-integrations/oauth-url`

Requires auth

## [#](#get-slack-oauth-url)Get Slack OAuth URL

Returns the Slack OAuth authorization URL to initiate the Add to Slack flow. Requires the \`integrations:write\` scope.

### [#](#get-slack-oauth-url-parameters)Parameters

This endpoint does not accept any parameters.

### [#](#get-slack-oauth-url-response)Response

200

Everything worked as expected.

oauthUrl

string

The full Slack OAuth authorization URL to redirect the user to

### [#](#get-slack-oauth-url-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X GET "https://api.linkbreakers.com/v1/slack-integrations/oauth-url" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

Typical response

```json
{
  "oauthUrl": "https://example.com"
}
```

Base URL: `https://api.linkbreakers.com`

POST

`/v1/slack-integrations/oauth/complete`

Requires auth

## [#](#complete-slack-oauth)Complete Slack OAuth

Exchanges the Slack authorization code for a bot token and creates the workspace integration. Requires the \`integrations:write\` scope.

### [#](#complete-slack-oauth-parameters)Parameters

#### header parameters

Idempotency-Key

string

header

Makes retrying this request safe. See components.parameters.IdempotencyKey.

### [#](#complete-slack-oauth-request)Request body

code

string

Required

The authorization code received from Slack

state

string

Required

The state parameter for CSRF validation

### [#](#complete-slack-oauth-response)Response

200

Everything worked as expected.

slackIntegration

object

Represents a connected Slack workspace integration that receives event notifications in a configured channel when workflow steps complete.

### [#](#complete-slack-oauth-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X POST "https://api.linkbreakers.com/v1/slack-integrations/oauth/complete" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  --data '{"code":"string","state":"string"}'
```

Sample payload (application/json)

```json
{
  "code": "string",
  "state": "string"
}
```

Typical response

```json
{
  "slackIntegration": {
    "createdAt": "2026-10-29T07:16:38.676Z",
    "createdBy": "string",
    "failureCount": 0,
    "id": "d22f7bf1-83a9-4f3a-9b37-9a3a21b6ac11",
    "lastSentAt": "2026-10-29T07:16:38.676Z",
    "linkId": "d22f7bf1-83a9-4f3a-9b37-9a3a21b6ac11",
    "slackChannelId": "C01ABC123",
    "slackChannelName": "general",
    "slackTeamId": "T01ABC123",
    "slackTeamName": "My Company",
    "status": "SLACK_INTEGRATION_STATUS_UNSPECIFIED",
    "successCount": 0,
    "triggers": [
      "KIND_UNSPECIFIED"
    ],
    "updatedAt": "2026-10-29T07:16:38.676Z",
    "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
  }
}
```

Base URL: `https://api.linkbreakers.com`

POST

`/v1/slack-integrations/test`

Requires auth

## [#](#test-slack-integration)Test Slack integration

Send a test notification to verify the Slack integration is working. Requires the \`integrations:write\` scope.

### [#](#test-slack-integration-parameters)Parameters

#### header parameters

Idempotency-Key

string

header

Makes retrying this request safe. See components.parameters.IdempotencyKey.

### [#](#test-slack-integration-request)Request body

No structured schema available for this section.

### [#](#test-slack-integration-response)Response

200

Everything worked as expected.

success

boolean

Whether the test notification was sent successfully

### [#](#test-slack-integration-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X POST "https://api.linkbreakers.com/v1/slack-integrations/test" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  --data '{}'
```

Sample payload (application/json)

```json
{}
```

Typical response

```json
{
  "success": false
}
```

Base URL: `https://api.linkbreakers.com`

PATCH

`/v1/slack-integrations`

Requires auth

## [#](#update-slack-integration)Update Slack integration

Update the Slack integration configuration (channel, triggers, status). Requires the \`integrations:write\` scope.

### [#](#update-slack-integration-parameters)Parameters

#### header parameters

Idempotency-Key

string

header

Makes retrying this request safe. See components.parameters.IdempotencyKey.

### [#](#update-slack-integration-request)Request body

linkId

string

Filter notifications by a specific link ID

slackChannelId

string

The Slack channel ID to send notifications to

slackChannelName

string

The Slack channel name

status

string (enum)

The status of a Slack integration

##### Allowed values

`SLACK_INTEGRATION_STATUS_UNSPECIFIED`

Status not specified

`SLACK_INTEGRATION_STATUS_ACTIVE`

Integration is active and sending notifications

`SLACK_INTEGRATION_STATUS_PAUSED`

Integration is paused by user action

`SLACK_INTEGRATION_STATUS_DISCONNECTED`

Integration is disconnected

triggers

array<string (enum)>

Filter notifications by workflow step kinds

### [#](#update-slack-integration-response)Response

200

Everything worked as expected.

slackIntegration

object

Represents a connected Slack workspace integration that receives event notifications in a configured channel when workflow steps complete.

### [#](#update-slack-integration-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X PATCH "https://api.linkbreakers.com/v1/slack-integrations" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  --data '{"linkId":"string","slackChannelId":"string","slackChannelName":"string","status":"SLACK_INTEGRATION_STATUS_UNSPECIFIED","triggers":["KIND_UNSPECIFIED"]}'
```

Sample payload (application/json)

```json
{
  "linkId": "string",
  "slackChannelId": "string",
  "slackChannelName": "string",
  "status": "SLACK_INTEGRATION_STATUS_UNSPECIFIED",
  "triggers": [
    "KIND_UNSPECIFIED"
  ]
}
```

Typical response

```json
{
  "slackIntegration": {
    "createdAt": "2026-10-29T07:16:38.675Z",
    "createdBy": "string",
    "failureCount": 0,
    "id": "d22f7bf1-83a9-4f3a-9b37-9a3a21b6ac11",
    "lastSentAt": "2026-10-29T07:16:38.675Z",
    "linkId": "d22f7bf1-83a9-4f3a-9b37-9a3a21b6ac11",
    "slackChannelId": "C01ABC123",
    "slackChannelName": "general",
    "slackTeamId": "T01ABC123",
    "slackTeamName": "My Company",
    "status": "SLACK_INTEGRATION_STATUS_UNSPECIFIED",
    "successCount": 0,
    "triggers": [
      "KIND_UNSPECIFIED"
    ],
    "updatedAt": "2026-10-29T07:16:38.675Z",
    "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
  }
}
```

Base URL: `https://api.linkbreakers.com`

DELETE

`/v1/slack-integrations`

Requires auth

## [#](#disconnect-slack-integration)Disconnect Slack integration

Disconnect and remove the Slack integration from the workspace. Requires the \`integrations:write\` scope.

### [#](#disconnect-slack-integration-parameters)Parameters

This endpoint does not accept any parameters.

### [#](#disconnect-slack-integration-response)Response

200

Everything worked as expected.

No structured schema available for this section.

### [#](#disconnect-slack-integration-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X DELETE "https://api.linkbreakers.com/v1/slack-integrations" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

Typical response

```json
{}
```

Base URL: `https://api.linkbreakers.com`

Cookies

We use cookies to measure our ads with Meta and Google and to record visits with PostHog. Our own analytics are cookie-free and run either way. [Privacy statement](https://linkbreakers.com/privacy#cookies)

---

Source: https://linkbreakers.com/help/api/slack-integrations
