Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/magicbell:magicbell-slack-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: MagicBell Slack API
description: OpenAPI 3.1.0 Specification for MagicBell API.
contact:
name: MagicBell
url: https://wwww.magicbell.com
version: 2.0.0
servers:
- url: https://api.magicbell.com/v2
description: MagicBell API (v2) Base URL
tags:
- name: Slack
paths:
/channels/slack/magicbell_slackbot/tokens:
summary: MagicBell SlackBot token
description: Scoped APIs for MagicBell SlackBot (`magicbell_slackbot`).
get:
tags:
- Slack
summary: List all MagicBell SlackBot tokens
description: Lists all MagicBell SlackBot tokens belonging to the authenticated user. Returns a paginated list of tokens, including their status, creation dates, and associated metadata.
operationId: list_magicbell_slackbot_tokens
parameters:
- name: limit
in: query
description: 'defines the maximum number of items to return per page (default: 50)'
required: false
schema:
type: integer
- name: starting_after
in: query
description: a cursor for use in pagination, points to the last ID in previous page
required: false
schema:
type: string
- name: ending_before
in: query
description: a cursor for use in pagination, points to the first ID in next page
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackTokenCollection'
x-magicbell-auth-jwt-type: user
put:
tags:
- Slack
summary: Save a MagicBell SlackBot token
description: Saves the MagicBell SlackBot token for the authenticated user. This token serves as a credential for accessing channel-specific functionality. Each token is unique to the user and channel combination, allowing for direct communication with the user via the channel.
operationId: save_magicbell_slackbot_token
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SlackTokenPayload'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackTokenPayload'
x-forbid-unknown-cookie: true
x-forbid-unknown-header: true
x-forbid-unknown-path: true
x-forbid-unknown-query: true
x-magicbell-auth-jwt-type: user
/channels/slack/magicbell_slackbot/tokens/{token_id}:
summary: MagicBell SlackBot token
description: Scoped APIs for MagicBell SlackBot (`magicbell_slackbot`).
get:
tags:
- Slack
summary: Fetch a MagicBell SlackBot token
description: Fetches details of a specific MagicBell SlackBot token belonging to the authenticated user. Returns information about the token's status, creation date, and any associated metadata. Users can only access their own tokens.
operationId: fetch_magicbell_slackbot_token
parameters:
- name: token_id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackToken'
x-magicbell-auth-jwt-type: user
delete:
tags:
- Slack
summary: Delete a MagicBell SlackBot token
description: Deletes one of the authenticated user's MagicBell SlackBot tokens. This permanently invalidates the specified token, preventing it from being used for future channel access. This action cannot be undone. Users can only revoke their own tokens.
operationId: delete_magicbell_slackbot_token
parameters:
- name: token_id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DiscardResult'
x-magicbell-auth-jwt-type: user
/channels/slack/tokens:
summary: Slack tokens
description: Tokens tie a user to their Slack destination—devices, inboxes, or workspaces. Register them at login, list them for debugging, and revoke stale entries to keep delivery healthy.
get:
tags:
- Slack
summary: List all Slack tokens
description: Lists all Slack tokens belonging to the authenticated user. Returns a paginated list of tokens, including their status, creation dates, and associated metadata.
operationId: list_slack_tokens
parameters:
- name: limit
in: query
description: 'defines the maximum number of items to return per page (default: 50)'
required: false
schema:
type: integer
- name: starting_after
in: query
description: a cursor for use in pagination, points to the last ID in previous page
required: false
schema:
type: string
- name: ending_before
in: query
description: a cursor for use in pagination, points to the first ID in next page
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackTokenCollection'
x-magicbell-auth-jwt-type: user
put:
tags:
- Slack
summary: Save a Slack token
description: Saves the Slack token for the authenticated user. This token serves as a credential for accessing channel-specific functionality. Each token is unique to the user and channel combination, allowing for direct communication with the user via the channel.
operationId: save_slack_token
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SlackTokenPayload'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackTokenPayload'
x-forbid-unknown-cookie: true
x-forbid-unknown-header: true
x-forbid-unknown-path: true
x-forbid-unknown-query: true
x-magicbell-auth-jwt-type: user
/channels/slack/tokens/{token_id}:
summary: Slack tokens
description: Tokens tie a user to their Slack destination—devices, inboxes, or workspaces. Register them at login, list them for debugging, and revoke stale entries to keep delivery healthy.
get:
tags:
- Slack
summary: Fetch a Slack token
description: Fetches details of a specific Slack token belonging to the authenticated user. Returns information about the token's status, creation date, and any associated metadata. Users can only access their own tokens.
operationId: fetch_slack_token
parameters:
- name: token_id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackToken'
x-magicbell-auth-jwt-type: user
delete:
tags:
- Slack
summary: Delete a Slack token
description: Deletes one of the authenticated user's Slack tokens. This permanently invalidates the specified token, preventing it from being used for future channel access. This action cannot be undone. Users can only revoke their own tokens.
operationId: delete_slack_token
parameters:
- name: token_id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DiscardResult'
x-magicbell-auth-jwt-type: user
/integrations/slack:
summary: Slack workspace integration
description: Configure Slack so broadcasts can post rich updates into channels or DMs. The flow covers OAuth installation, workspace selection, and webhook delivery setup.
get:
tags:
- Slack
summary: List all Slack integrations
description: Retrieves the current Slack integration configurations for a specific integration type in the project. Returns configuration details and status information.
operationId: list_slack_integrations
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackConfigCollection'
x-magicbell-auth-jwt-type: project
x-meta:
channel: slack
displayName: Slack
name: slack
put:
tags:
- Slack
summary: Save a Slack integration
description: Updates or creates the Slack integration for the project.
operationId: save_slack_integration
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SlackConfigPayload'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackConfigPayload'
x-magicbell-auth-jwt-type: project
x-meta:
channel: slack
displayName: Slack
name: slack
delete:
tags:
- Slack
summary: Delete a Slack integration
description: Deletes the Slack integration configuration from the project. This will disable the integration's functionality within the project.
operationId: delete_slack_integration
parameters:
- name: id
in: query
description: the unique identifier of the integration to be deleted
required: false
schema:
type: string
responses:
'204':
description: No Content
x-magicbell-auth-jwt-type: project
x-meta:
channel: slack
displayName: Slack
name: slack
/integrations/slack/installations:
summary: Installation flow
description: High-level entry point for integrations that require multi-step authorization.
put:
tags:
- Slack
summary: Save a Slack installation
description: Creates a new installation of a Slack integration for a user. This endpoint is used when an integration needs to be set up with user-specific credentials or configuration.
operationId: save_slack_installation
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SlackInstallation'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackInstallation'
x-magicbell-auth-jwt-type: user
/integrations/slack/installations/finish:
summary: Finish installation
description: Completes the installation handshake after the user authorizes access, persisting tokens and validating the external connection.
post:
tags:
- Slack
summary: Finish a Slack installation
description: Completes the installation flow for the Slack integration. This endpoint is typically called after the user has completed any required authorization steps with Slack.
operationId: finish_slack_installation
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SlackFinishInstallResponse'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/SlackInstallation'
x-magicbell-auth-jwt-type: user
/integrations/slack/installations/start:
summary: Start installation
description: Begins the OAuth or credentials handshake for an integration, returning URLs or payloads needed to obtain user consent.
post:
tags:
- Slack
summary: Start a Slack installation
description: Initiates the installation flow for a Slack integration. This is the first step in a multi-step installation process where user authorization or external service configuration may be required.
operationId: start_slack_installation
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SlackStartInstall'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/SlackStartInstallResponseContent'
x-forbid-unknown-cookie: true
x-forbid-unknown-header: true
x-forbid-unknown-path: true
x-forbid-unknown-query: true
x-magicbell-auth-jwt-type: user
/users/{user_id}/channels/slack/magicbell_slackbot/tokens:
summary: MagicBell SlackBot token
description: Scoped APIs for MagicBell SlackBot (`magicbell_slackbot`).
get:
tags:
- Slack
summary: List an user's MagicBell SlackBot tokens
description: Lists all MagicBell SlackBot tokens associated with a specific user. This endpoint is available to project administrators and returns a paginated list of tokens, including both active and revoked tokens.
operationId: list_user_magicbell_slackbot_tokens
parameters:
- name: user_id
in: path
required: true
schema:
type: string
- name: limit
in: query
description: 'defines the maximum number of items to return per page (default: 50)'
required: false
schema:
type: integer
- name: starting_after
in: query
description: a cursor for use in pagination, points to the last ID in previous page
required: false
schema:
type: string
- name: ending_before
in: query
description: a cursor for use in pagination, points to the first ID in next page
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackTokenCollection'
x-magicbell-auth-jwt-type: project
/users/{user_id}/channels/slack/magicbell_slackbot/tokens/{token_id}:
summary: MagicBell SlackBot token
description: Scoped APIs for MagicBell SlackBot (`magicbell_slackbot`).
get:
tags:
- Slack
summary: Fetch a user's MagicBell SlackBot token
description: Fetches a specific MagicBell SlackBot token by its ID for a given user. This endpoint is available to project administrators and requires project-level authentication. Use this to inspect token details including its status, creation date, and associated metadata.
operationId: fetch_user_magicbell_slackbot_token
parameters:
- name: user_id
in: path
required: true
schema:
type: string
- name: token_id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackToken'
x-magicbell-auth-jwt-type: project
delete:
tags:
- Slack
summary: Delete an user's MagicBell SlackBot token
description: Deletes a specific user's MagicBell SlackBot token. This endpoint is available to project administrators and permanently invalidates the specified token. Once revoked, the token can no longer be used to access channel features. This action cannot be undone.
operationId: delete_user_magicbell_slackbot_token
parameters:
- name: user_id
in: path
required: true
schema:
type: string
- name: token_id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DiscardResult'
x-magicbell-auth-jwt-type: project
/users/{user_id}/channels/slack/tokens:
summary: Slack tokens
description: Tokens tie a user to their Slack destination—devices, inboxes, or workspaces. Register them at login, list them for debugging, and revoke stale entries to keep delivery healthy.
get:
tags:
- Slack
summary: List an user's Slack tokens
description: Lists all Slack tokens associated with a specific user. This endpoint is available to project administrators and returns a paginated list of tokens, including both active and revoked tokens.
operationId: list_user_slack_tokens
parameters:
- name: user_id
in: path
required: true
schema:
type: string
- name: limit
in: query
description: 'defines the maximum number of items to return per page (default: 50)'
required: false
schema:
type: integer
- name: starting_after
in: query
description: a cursor for use in pagination, points to the last ID in previous page
required: false
schema:
type: string
- name: ending_before
in: query
description: a cursor for use in pagination, points to the first ID in next page
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackTokenCollection'
x-magicbell-auth-jwt-type: project
/users/{user_id}/channels/slack/tokens/{token_id}:
summary: Slack tokens
description: Tokens tie a user to their Slack destination—devices, inboxes, or workspaces. Register them at login, list them for debugging, and revoke stale entries to keep delivery healthy.
get:
tags:
- Slack
summary: Fetch a user's Slack token
description: Fetches a specific Slack token by its ID for a given user. This endpoint is available to project administrators and requires project-level authentication. Use this to inspect token details including its status, creation date, and associated metadata.
operationId: fetch_user_slack_token
parameters:
- name: user_id
in: path
required: true
schema:
type: string
- name: token_id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SlackToken'
x-magicbell-auth-jwt-type: project
delete:
tags:
- Slack
summary: Delete an user's Slack token
description: Deletes a specific user's Slack token. This endpoint is available to project administrators and permanently invalidates the specified token. Once revoked, the token can no longer be used to access channel features. This action cannot be undone.
operationId: delete_user_slack_token
parameters:
- name: user_id
in: path
required: true
schema:
type: string
- name: token_id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DiscardResult'
x-magicbell-auth-jwt-type: project
components:
schemas:
SlackConfigCollection:
examples:
- data:
- config:
app_id: '12345678901'
client_id: '1.0'
client_secret: '12345678901234567890123456789012'
signing_secret: '12345678901234567890123456789012'
id: '123'
name: <provider-name>
links:
first: https://api.magicbell.com/v1/example
next: https://api.magicbell.com/v1/example?page_next=abc
prev: null
properties:
data:
items:
$ref: '#/components/schemas/SlackConfig'
type: array
links:
$ref: '#/components/schemas/Links'
type: object
SlackTokenPayload:
$id: slackToken
$schema: http://json-schema.org/draft-07/schema#
additionalProperties: false
examples:
- webhook:
url: https://example.com/webhook
minProperties: 1
properties:
oauth:
properties:
channel_id:
description: The ID of the Slack channel this installation is associated with
type: string
installation_id:
description: A unique identifier for this Slack workspace installation
type: string
scope:
description: The OAuth scope granted during installation
type: string
required:
- channel_id
- installation_id
type: object
webhook:
description: Obtained directly from the incoming_webhook object in the installation response from the Slack API.
properties:
url:
description: The URL for the incoming webhook from Slack
format: uri
minLength: 1
type: string
required:
- url
type: object
type: object
SlackStartInstallResponseContent:
examples:
- app_id: app-id
auth_url: https://slack.com/oauth/v2/authorize?client_id=app-id&scope=channels:read,chat:write
scopes:
- channels:read
- chat:write
properties:
app_id:
type: string
auth_url:
type: string
scopes:
items:
type: string
type: array
type: object
SlackInstallation:
$schema: http://json-schema.org/draft-07/schema#
examples:
- access_token: REDACTED_SLACK_TOKEN
app_id: A12345678
authed_user:
id: U12345678
scope: identify,commands
bot_user_id: U12345678
enterprise_id: E12345678
enterprise_name: Enterprise Grid, Inc.
id: A12345678-T123
incoming_webhook:
channel: C12345678
channel_id: C12345678
configuration_url: https://teamname.slack.com/services/B12345678
url: https://hooks.slack.com/services/REDACTED
scope: identify,commands,bot
team:
id: T123
name: Team Installing Your App
team_id: T12345678
team_name: Team Installing Your App
properties:
access_token:
description: Bot token returned from the Slack OAuth exchange.
type: string
app_id:
description: Slack app identifier for the installed app.
type: string
authed_user:
properties:
access_token:
description: User token returned from the OAuth exchange.
type: string
expires_in:
description: Seconds until the user token expires.
type: integer
id:
description: Slack user ID for the installer.
type: string
refresh_token:
description: Refresh token for the authed user.
type: string
scope:
description: Space-delimited OAuth scopes granted to the user token.
type: string
token_type:
description: Token type value provided by Slack.
type: string
required:
- id
type: object
bot_user_id:
description: Slack user ID of the installed bot.
type: string
enterprise:
properties:
id:
description: Enterprise grid identifier.
type: string
name:
description: Enterprise grid name.
type: string
required:
- name
- id
type: object
expires_in:
description: Seconds until the bot access token expires.
type: integer
id:
description: Unique identifier MagicBell assigns to the Slack installation.
pattern: ^[A-Z0-9]+-.*$
type: string
incoming_webhook:
properties:
channel:
description: Human readable name for the webhook channel.
type: string
configuration_url:
description: URL users can visit to manage the webhook.
type: string
url:
description: Webhook URL that Slack posts events to.
type: string
required:
- channel
- configuration_url
- url
type: object
is_enterprise_install:
description: Indicates whether the installation occurred on an enterprise grid.
type: boolean
refresh_token:
description: Refresh token for regenerating the bot access token.
type: string
scope:
description: Space-delimited OAuth scopes granted to the bot token.
type: string
team:
properties:
id:
description: Workspace ID where the app was installed.
type: string
name:
description: Workspace name where the app was installed.
type: string
required:
- id
type: object
token_type:
description: Type of bot token returned by Slack.
type: string
required:
- access_token
- authed_user
- team
- app_id
type: object
SlackFinishInstallResponse:
$schema: http://json-schema.org/draft-07/schema#
examples:
- app_id: '12345678901'
code: string
redirect_url: string
properties:
app_id:
description: The app ID of the Slack app that was originally configured at the project-level.
type: string
code:
description: The code that was returned from the OAuth flow, and found in the query string of the redirect URL.
type: string
redirect_url:
type: string
required:
- app_id
- code
type: object
Links:
properties:
first:
type: string
next:
type:
- string
- 'null'
prev:
type:
- string
- 'null'
type: object
DiscardResult:
examples:
- discarded_at: '2021-01-01T00:00:00Z'
id: '123'
properties:
discarded_at:
description: The timestamp when the token was discarded.
type: string
id:
description: The unique identifier for the discarded token.
type: string
type: object
SlackConfig:
properties:
config:
$ref: '#/components/schemas/SlackConfigPayload'
id:
type: string
name:
type: string
required:
- name
- id
- config
type: object
SlackStartInstall:
$schema: http://json-schema.org/draft-07/schema#
additionalProperties: false
examples:
- app_id: '12345678901'
auth_url: https://example.com/auth
extra_scopes:
- scope1
- scope2
redirect_url: https://example.com/redirect
properties:
app_id:
description: Slack app ID that the installation flow should use.
type: string
auth_url:
description: Optional override for the authorization URL returned to the client.
type: string
extra_scopes:
description: Additional OAuth scopes to request during installation.
items:
type: string
type: array
redirect_url:
description: Custom redirect URL to use after OAuth completes.
type: string
required:
- app_id
type: object
SlackConfigPayload:
$schema: http://json-schema.org/draft-07/schema#
examples:
- app_id: '12345678901'
client_id: '1.0'
client_secret: '12345678901234567890123456789012'
signing_secret: '12345678901234567890123456789012'
properties:
app_id:
description: The Slack app ID that can be found in the app's settings page of the Slack API dashboard.
pattern: ^[0-9A-Z]+$
type: string
client_id:
description: The Slack client ID that can be found in the app's settings page of the Slack API dashboard.
pattern: ^[0-9]+\.[0-9]+$
type: string
client_secret:
description: The Slack client secret that can be found in the app's settings page of the Slack API dashboard.
maxLength: 32
minLength: 32
type: string
signing_secret:
description: The Slack signing secret that can be found in the app's settings page of the Slack API dashboard.
maxLength: 32
minLength: 32
type: string
required:
- app_id
- client_id
- client_secret
- signing_secret
type: object
SlackTokenCollection:
examples:
- data:
- created_at: '2021-01-01T00:00:00Z'
discarded_at: '2021-01-01T00:00:00Z'
id: '123'
updated_at: '2021-01-01T00:00:00Z'
webhook:
url: https://example.com/webhook
links:
first: https://api.magicbell.com/v1/example
next: https://api.magicbell.com/v1/example?page_next=abc
prev: null
properties:
data:
items:
$ref: '#/components/schemas/SlackToken'
type: array
links:
$ref: '#/components/schemas/Links'
type: object
SlackToken:
examples:
- created_at: '2021-01-01T00:00:00Z'
discarded_at: '2021-01-01T00:00:00Z'
id: '123'
updated_at: '2021-01-01T00:00:00Z'
webhook:
url: https://example.com/webhook
properties:
created_at:
description: The timestamp when the token was created.
format: date-time
type: string
discarded_at:
description: The timestamp when the token was discarded, if applicable.
format: date-time
type:
- string
- 'null'
id:
description: The unique identifier for the token.
type: string
oauth:
properties:
channel_id:
description: The ID of the Slack channel this installation is associated with
type: string
installation_id:
description: A unique identifier for this Slack workspace installation
type: string
scope:
description: The OAuth scope granted during installation
type: string
required:
- channel_id
- installation_id
type: object
updated_at:
description: The timestamp when the token metadata last changed.
format: date-time
type:
- string
- 'null'
webhook:
description: Obtained directly from the incoming_webhook object in the installation response from the Slack API.
properties:
url:
description: The URL for the incoming webhook from Slack
format: uri
minLength: 1
type: string
required:
- url
type: object
required:
- created_at
- id
type: object
x-provenance:
method: harvested
publisher: MagicBell
source: https://www.magicbell.com/docs/api/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)