API referenceSlack

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.

Endpoint
POST https://api.dairo.app/v1/slack/apps/{appId}/install-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

cURL
curl -X POST "https://api.dairo.app/v1/slack/apps/3fa85f64-5717-4562-b3fc-2c963f66afa6/install-url" \
  -H "Authorization: Bearer $DAIRO_API_KEY"

Path parameters

NameTypeRequiredDescription
appIdstringyesThe Slack app id (e.g. A012ABCD0A0).

Response

200 Success. Body: application/json, SlackOauthStartResponse.

FieldTypeRequiredDescription
urlstringyeshttps://slack.com/oauth/v2/authorize URL carrying the app's bot scopes and a signed, single-use state (10-minute expiry).
200
{
  "url": "https://yourapp.com/webhooks/dairo"
}

Errors

Every error has the same body, {"error": {"type", "code", "message", "param"}}; branch on code. Errors lists every code.

StatusMeaning
400The request is malformed or a value is invalid (invalid_request, invalid_domain, idempotency_key_mismatch).
401The API key is missing or invalid.
403The key lacks the scope this endpoint needs (scope_missing) or may not do this (not_permitted).
404No such resource in this account (resource_not_found).
429Rate limit, plan limit, budget or spend cap reached (rate_limited, plan_limit_reached, budget_exceeded, spend_cap_reached).
500An unexpected error; retry with backoff, then contact support (internal_error).

On this page