---
title: "Finish linking a Slack account"
method: POST
path: "/api/{org_id}/slack/link-requests/confirm"
tags: ["Slack"]
---

# Finish linking a Slack account

`POST /api/{org_id}/slack/link-requests/confirm`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/slack/link-requests/confirm`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/slack/link-requests/confirm/post.ts> (a function with typed inputs; its response is checked against the schema)

Redeems the Sign in with Slack code; the link request comes from the signed state. Checks that the Slack user is the one the link was sent to, links, and returns where to go back in Slack.

## Path parameters

- `org_id` string, required

## Request body

- object

## Response `200`

`{"linked_as", "org_id", "orgs", "return_url"}`

- object

## Other responses

- `400`: Bad or reused state, nonce mismatch
- `403`: Another Slack account, team or Grid org (`error_detail` `wrong_account`), no O2 account in a connected organization (`no_access`), or the OSS build
- `404`: Slack is not enabled for this organization, or unknown request
- `410`: Expired, redeemed or discarded
- `429`: More than 10 start or confirm calls in a minute

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
