Mint an install URL for a specific Slack app
Mints a signed https://slack.com/oauth/v2/authorize install URL — the "Add to Slack" button — for the specific app named in the path and returns it as url.
Mints a signed https://slack.com/oauth/v2/authorize install URL — the "Add to Slack" button — for the specific app named in the path and returns it as url. The signed state carries the app id and ties the resulting workspace binding to the calling account; on approval the callback creates or reconnects a slack inbox for that workspace. Use this when the account owns more than one Slack app; POST /v1/slack/oauth/start is the single-app convenience that mints the same URL. The state is single-use and expires after 10 minutes, so mint one per click. An app the caller does not own is a 404. Requires the inboxes:write scope.
Scope: inboxes:write. Send the API key as a bearer token; Scopes lists what each one reaches.
Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
appId | string | yes | The Slack app id (e.g. A012ABCD0A0). |
Response
200 Success. Body: application/json, SlackOauthStartResponse.
| Field | Type | Required | Description |
|---|---|---|---|
url | string | yes | https://slack.com/oauth/v2/authorize URL carrying the app's bot scopes and a signed, single-use state (10-minute expiry). |
Errors
Every error has the same body, {"error": {"type", "code", "message", "param"}}; branch on code. Errors lists every code.
| Status | Meaning |
|---|---|
400 | The request is malformed or a value is invalid (invalid_request, invalid_domain, idempotency_key_mismatch). |
401 | The API key is missing or invalid. |
403 | The key lacks the scope this endpoint needs (scope_missing) or may not do this (not_permitted). |
404 | No such resource in this account (resource_not_found). |
429 | Rate limit, plan limit, budget or spend cap reached (rate_limited, plan_limit_reached, budget_exceeded, spend_cap_reached). |
500 | An unexpected error; retry with backoff, then contact support (internal_error). |