# API

> The Conclude API lets your own systems work with Conclude. You can look up channels, manage connections between Slack and Microsoft Teams, and read the audit log. This page is for developers who connect a tool, such as an IT helpdesk system, to Conclude.

Canonical HTML page: https://conclude.io/doc/api/
Last updated: 2026-11-02

---

**The API is in beta.** API keys are available to organizations in the beta program. Requests and responses may still change, and we tell beta customers before they do. [Contact us](https://conclude.io/contact/) to get access.

The Conclude API lets your own systems work with Conclude. You can look up channels, manage connections between Slack and Microsoft Teams, and read the audit log. This page is for developers who connect a tool, such as an IT helpdesk system, to Conclude.

## What you can do

- Describe your organization and its Slack workspaces and Microsoft Teams tenants.
- Find channels by name or by their Slack or Teams ID.
- List, create, repair and remove connections, and change the settings of each side.
- Read the audit log.

The API follows the web app. More areas, such as activities and chats, become available one at a time.

## Beta

The API is in beta. The [**Admin console > Users and access > API keys**](https://conclude.io/admin/apikeys) page appears only for organizations in the beta program. [Contact us](https://conclude.io/contact/) to join.

During the beta, fields and error codes may still change. We tell beta customers before they do. After the beta, an endpoint only gains fields. Renaming or removing a field needs a new API version.

## Base URL

Send every request to `https://api.conclude.io`. Every path starts with the API version, `/v1`.

## How a request works

1. An admin issues an API key under [**Admin console > Users and access > API keys**](https://conclude.io/admin/apikeys).
2. Your tool exchanges the key for an access token at `POST /v1/oauth/token`.
3. Your tool sends the token in the `Authorization` header of each request.

```sh
curl https://api.conclude.io/v1/oauth/token \
  -d grant_type=client_credentials \
  -d client_id="$CLIENT_ID" \
  -d client_secret="$CLIENT_SECRET"

curl https://api.conclude.io/v1/connections \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

[Keys and tokens](https://conclude.io/doc/api/authentication/) explains keys, scopes and tokens.

## Conventions

These rules apply to every endpoint.

- Requests and responses are JSON. Send `Content-Type: application/json` with a request body.
- Names of fields and parameters use camelCase, with `ID` in capitals, as in `channelID`.
- Field names in a request body match regardless of case. Conclude ignores fields it doesn't know.
- A successful request returns `200`. A failed request returns an error status and an [error body](https://conclude.io/doc/api/errors/#error-body).
- A response leaves out fields that have no value. An empty list is `[]`.
- Times use RFC 3339 and UTC, for example `2026-10-27T14:03:12.52Z`.
- Call the API from a server. It doesn't support calls from a browser. Your key's secret must never reach a browser.

IDs are strings. Each one starts with a prefix for its type. Treat an ID as opaque, and don't build or parse one.

| Prefix | Type |
|---|---|
| `O-` | Organization |
| `T-` | Slack workspace, Microsoft Teams tenant or team |
| `C-` | Channel |
| `U-` | User |
| `Y-` | Connection |
| `B-` | Bridge |
| `J-` | API key |
| `N-` | Agent |

Slack and Microsoft Teams have their own IDs for the same things. Conclude calls them *sys IDs*, as in `sysChannelID`.

## Reference

- [Keys and tokens](https://conclude.io/doc/api/authentication/): API keys, scopes and access tokens.
- [Errors and limits](https://conclude.io/doc/api/errors/): the error body, error codes and rate limits.
- [Organization and channels](https://conclude.io/doc/api/organization/): your key, your organization and channel lookup.
- [Connections](https://conclude.io/doc/api/connections/): connections and their endpoints.
- [Audit log](https://conclude.io/doc/api/audit-log/): the organization's audit events.

To see the API at work, follow [Connect channels for a requester](https://conclude.io/doc/api/connect-channels/).

Web forms and inbound email use other endpoints, which need no API key. See [HTTP endpoints](https://conclude.io/doc/reference/endpoints/).

## Pages in this section

- [Keys and tokens](https://conclude.io/doc/api/authentication/index.html.md): Your tool signs in to the API with an API key. It exchanges the key for an access token and sends the token with every request. This page is for the admin who issues the key and the developer who builds the tool.
- [Errors and limits](https://conclude.io/doc/api/errors/index.html.md): When a request fails, the API answers with an HTTP status and a JSON error body. This page lists the error codes, the rate limits and when to retry a request.
- [Connect channels for a requester](https://conclude.io/doc/api/connect-channels/index.html.md): In this tutorial you connect a Slack channel and a Microsoft Teams channel for an employee who asked for it, as a helpdesk tool does. You use an API key that acts as Conclude, so each step runs with the employee’s access.
- [Organization and channels](https://conclude.io/doc/api/organization/index.html.md): These endpoints describe your key, your organization and its channels. Use them to find the IDs that other endpoints take.
- [Connections](https://conclude.io/doc/api/connections/index.html.md): A connection syncs messages between channels, usually a Slack channel and a Microsoft Teams channel. Each channel in a connection is an endpoint. The requests on this page list, create, repair and remove connections, and change the settings of each side.
- [Audit log](https://conclude.io/doc/api/audit-log/index.html.md): The audit log records changes to your organization and who made them. These endpoints read it, so you can send the events to your own security tools.

