---
title: "Finish Sign in with Slack"
method: POST
path: "/api/{org_id}/slack/connection/confirm"
tags: ["Slack"]
---

# Finish Sign in with Slack

`POST /api/{org_id}/slack/connection/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/connection/confirm`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/slack/connection/confirm/post.ts> (a function with typed inputs; its response is checked against the schema)

Redeems the Sign in with Slack code; the installation, the purpose and the organization come from the signed state, never from the path. Connects that organization or reports the test result.

## Path parameters

- `org_id` string, required

## Request body

- object

## Response `200`

`{"connected": true, "org_id"}` (the org of the signed state) or `{"test": "pass"}`

- object

## Other responses

- `400`: Bad or reused state, nonce mismatch
- `403`: Not an admin, another workspace, or the OSS build
- `404`: Slack is not enabled for this organization, or unknown installation
- `502`: Slack refused the code or the client secret

---

[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)
