Slack Calls API

Slack's Calls API lets apps represent thirdparty voice or video calls inside Slack by creating a call object with a join URL and metadata, so users see a rich call message with a Join button, status, and participant list in channels or DMs. Through endpoints to create, update, and end callsand to add or remove participantsan app can keep that call message in sync as people join or leave and as the call progresses.

OpenAPI Specification

slack-calls-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: "1.0"
  title: Slack Calls API
  description: "Slack\x19s Calls API lets apps represent third\x11party voice or video calls inside Slack by creating a \x1Ccall\x1D object with a join URL and metadata, so users see a rich call message
    with a Join button, status, and participant list in channels or DMs. Through endpoints to create, update, and end calls\x14and to add or remove participants\x14an app can keep that call message in sync
    as people join or leave and as the call progresses. The API doesn\x19t handle the media itself; it\x19s for coordinating and rendering the Slack UI around calls hosted by services like Zoom or Webex,
    making it easy to start, find, and join those calls from Slack."
paths:
  /calls.add:
    post:
      tags:
      - Add
      - Calls
      - Post
      description: Registers a new Call.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/calls.add
      operationId: calls_add
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `calls:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - external_unique_id
              - join_url
              type: object
              properties:
                external_unique_id:
                  type: string
                  description: >-
                    An ID supplied by the 3rd-party Call provider. It must be
                    unique across all Calls from that service.
                external_display_id:
                  type: string
                  description: >-
                    An optional, human-readable ID supplied by the 3rd-party
                    Call provider. If supplied, this ID will be displayed in the
                    Call object.
                join_url:
                  type: string
                  description: The URL required for a client to join the Call.
                desktop_app_join_url:
                  type: string
                  description: >-
                    When supplied, available Slack clients will attempt to
                    directly launch the 3rd-party Call with this URL.
                date_start:
                  type: integer
                  description: Call start time in UTC UNIX timestamp format
                  format: int32
                title:
                  type: string
                  description: The name of the Call.
                created_by:
                  type: string
                  description: >-
                    The valid Slack user ID of the user who created this Call.
                    When this method is called with a user token, the
                    `created_by` field is optional and defaults to the authed
                    user of the token. Otherwise, the field is required.
                users:
                  type: string
                  description: >-
                    The list of users to register as participants in the Call.
                    [Read more on how to specify users here](/apis/calls#users).
          application/json:
            schema:
              required:
              - external_unique_id
              - join_url
              type: object
              properties:
                external_unique_id:
                  type: string
                  description: >-
                    An ID supplied by the 3rd-party Call provider. It must be
                    unique across all Calls from that service.
                external_display_id:
                  type: string
                  description: >-
                    An optional, human-readable ID supplied by the 3rd-party
                    Call provider. If supplied, this ID will be displayed in the
                    Call object.
                join_url:
                  type: string
                  description: The URL required for a client to join the Call.
                desktop_app_join_url:
                  type: string
                  description: >-
                    When supplied, available Slack clients will attempt to
                    directly launch the 3rd-party Call with this URL.
                date_start:
                  type: integer
                  description: Call start time in UTC UNIX timestamp format
                  format: int32
                title:
                  type: string
                  description: The name of the Call.
                created_by:
                  type: string
                  description: >-
                    The valid Slack user ID of the user who created this Call.
                    When this method is called with a user token, the
                    `created_by` field is optional and defaults to the authed
                    user of the token. Otherwise, the field is required.
                users:
                  type: string
                  description: >-
                    The list of users to register as participants in the Call.
                    [Read more on how to specify users here](/apis/calls#users).
        required: true
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: Default success template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _OK_ response or a
                  verbose schema is not available for this method.
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: Default error template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _not OK_ response or a
                  verbose schema is not available for this method.
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - calls:write
      summary: Slack Post Calls Add
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        PascalCaseOperationTags: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calls.end:
    post:
      tags:
      - Calls
      - End
      - Post
      description: Ends a Call.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/calls.end
      operationId: calls_end
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `calls:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - id
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    `id` returned when registering the call using the
                    [`calls.add`](/methods/calls.add) method.
                duration:
                  type: integer
                  description: Call duration in seconds
                  format: int32
          application/json:
            schema:
              required:
              - id
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    `id` returned when registering the call using the
                    [`calls.add`](/methods/calls.add) method.
                duration:
                  type: integer
                  description: Call duration in seconds
                  format: int32
        required: true
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: Default success template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _OK_ response or a
                  verbose schema is not available for this method.
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: Default error template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _not OK_ response or a
                  verbose schema is not available for this method.
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - calls:write
      summary: Slack Post Calls End
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        PascalCaseOperationTags: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calls.info:
    get:
      tags:
      - Calls
      - Get
      - Info
      description: Returns information about a Call.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/calls.info
      operationId: calls_info
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `calls:read`'
        required: true
        schema:
          type: string
      - name: id
        in: query
        description: >-
          `id` of the Call returned by the [`calls.add`](/methods/calls.add)
          method.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: Default success template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _OK_ response or a
                  verbose schema is not available for this method.
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: Default error template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _not OK_ response or a
                  verbose schema is not available for this method.
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - calls:read
      summary: Slack Get Calls Info
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        PascalCaseOperationTags: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calls.participants.add:
    post:
      tags:
      - Add
      - Calls
      - Participants
      - Post
      description: Registers new participants added to a Call.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/calls.participants.add
      operationId: calls_participants_add
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `calls:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - id
              - users
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    `id` returned by the [`calls.add`](/methods/calls.add)
                    method.
                users:
                  type: string
                  description: >-
                    The list of users to add as participants in the Call. [Read
                    more on how to specify users here](/apis/calls#users).
          application/json:
            schema:
              required:
              - id
              - users
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    `id` returned by the [`calls.add`](/methods/calls.add)
                    method.
                users:
                  type: string
                  description: >-
                    The list of users to add as participants in the Call. [Read
                    more on how to specify users here](/apis/calls#users).
        required: true
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: Default success template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _OK_ response or a
                  verbose schema is not available for this method.
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: Default error template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _not OK_ response or a
                  verbose schema is not available for this method.
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - calls:write
      summary: Slack Post Calls Participants Add
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        PascalCaseOperationTags: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calls.participants.remove:
    post:
      tags:
      - Calls
      - Participants
      - Post
      - Remove
      description: Registers participants removed from a Call.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/calls.participants.remove
      operationId: calls_participants_remove
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `calls:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - id
              - users
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    `id` returned by the [`calls.add`](/methods/calls.add)
                    method.
                users:
                  type: string
                  description: >-
                    The list of users to remove as participants in the Call.
                    [Read more on how to specify users here](/apis/calls#users).
          application/json:
            schema:
              required:
              - id
              - users
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    `id` returned by the [`calls.add`](/methods/calls.add)
                    method.
                users:
                  type: string
                  description: >-
                    The list of users to remove as participants in the Call.
                    [Read more on how to specify users here](/apis/calls#users).
        required: true
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: Default success template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _OK_ response or a
                  verbose schema is not available for this method.
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: Default error template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _not OK_ response or a
                  verbose schema is not available for this method.
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - calls:write
      summary: Slack Post Calls Participants Remove
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        PascalCaseOperationTags: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calls.update:
    post:
      tags:
      - Calls
      - Post
      - Update
      description: Updates information about a Call.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/calls.update
      operationId: calls_update
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `calls:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - id
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    `id` returned by the [`calls.add`](/methods/calls.add)
                    method.
                title:
                  type: string
                  description: The name of the Call.
                join_url:
                  type: string
                  description: The URL required for a client to join the Call.
                desktop_app_join_url:
                  type: string
                  description: >-
                    When supplied, available Slack clients will attempt to
                    directly launch the 3rd-party Call with this URL.
          application/json:
            schema:
              required:
              - id
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    `id` returned by the [`calls.add`](/methods/calls.add)
                    method.
                title:
                  type: string
                  description: The name of the Call.
                join_url:
                  type: string
                  description: The URL required for a client to join the Call.
                desktop_app_join_url:
                  type: string
                  description: >-
                    When supplied, available Slack clients will attempt to
                    directly launch the 3rd-party Call with this URL.
        required: true
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: Default success template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _OK_ response or a
                  verbose schema is not available for this method.
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: Default error template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _not OK_ response or a
                  verbose schema is not available for this method.
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - calls:write
      summary: Slack Post Calls Update
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        PascalCaseOperationTags: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas: {}
tags:
- name: Add
- name: Calls
- name: End
- name: Get
- name: Info
- name: Participants
- name: Post
- name: Remove
- name: Update