Slack DND API

Slack's Do Not Disturb (DND) API lets apps read and manage users' notification quiet time so they don't get pinged when they've paused alerts. With the dnd:read and dnd:write scopes, an app can check a user's current DND state and scheduled quiet hours, retrieve team-wide DND summaries (where permitted), start or extend a snooze for a specified duration, and end snooze or active DND. Key methods include dnd.info, dnd.teamInfo, dnd.setSnooze, dnd.endSnooze, and dnd.endDnd.

OpenAPI Specification

slack-dnd-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: "1.0"
  title: Slack DND API
  description: "Slack\x19s Do Not Disturb (DND) API lets apps read and manage users\x19 notification quiet time so they don\x19t get pinged when they\x19ve paused alerts. With the dnd:read and dnd:write
    scopes, an app can check a user\x19s current DND state and scheduled quiet hours, retrieve team-wide DND summaries (where permitted), start or extend a snooze for a specified duration, and end snooze
    or active DND. Key methods include dnd.info, dnd.teamInfo, dnd.setSnooze, dnd.endSnooze, and dnd.endDnd. Responses provide whether DND is enabled and timestamps for when it starts and ends, enabling
    apps to defer messages, schedule work, or adjust notification behavior. The API is designed to respect user preferences and workspace policies; apps should handle rate limits and note that they can
    set temporary snoozes but cannot programmatically change a user\x19s full DND schedule."
paths:
  /dnd.endDnd:
    post:
      tags:
      - Disturb
      - Do
      - End
      - Post
      description: Ends the current user's Do Not Disturb session immediately.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/dnd.endDnd
      operationId: postDndEnddnd
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `dnd:write`'
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: dnd.endDnd schema
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: false
                description: Schema for successful response from dnd.endDnd method
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: dnd.endDnd error schema
                required:
                - error
                - ok
                type: object
                properties:
                  callstack:
                    type: string
                    description: 'Note: PHP callstack is only visible in dev/qa'
                  error:
                    type: string
                    enum:
                    - unknown_error
                    - not_authed
                    - invalid_auth
                    - account_inactive
                    - token_revoked
                    - no_permission
                    - org_login_required
                    - user_is_bot
                    - invalid_arg_name
                    - invalid_array_arg
                    - invalid_charset
                    - invalid_form_data
                    - invalid_post_type
                    - missing_post_type
                    - team_added_to_org
                    - invalid_json
                    - json_not_object
                    - request_timeout
                    - upgrade_required
                    - fatal_error
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from dnd.endDnd method
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - dnd:write
      summary: Slack Post End Do Not Disturb
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /dnd.endSnooze:
    post:
      tags:
      - Disturb
      - Do
      - End
      - Post
      - Snooze
      description: Ends the current user's snooze mode immediately.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/dnd.endSnooze
      operationId: postDndEndsnooze
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `dnd:write`'
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: dnd.endSnooze schema
                required:
                - dnd_enabled
                - next_dnd_end_ts
                - next_dnd_start_ts
                - ok
                - snooze_enabled
                type: object
                properties:
                  dnd_enabled:
                    type: boolean
                  next_dnd_end_ts:
                    type: integer
                  next_dnd_start_ts:
                    type: integer
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                  snooze_enabled:
                    type: boolean
                additionalProperties: false
                description: Schema for successful response from dnd.endSnooze method
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: dnd.endSnooze error schema
                required:
                - error
                - ok
                type: object
                properties:
                  callstack:
                    type: string
                    description: 'Note: PHP callstack is only visible in dev/qa'
                  error:
                    type: string
                    enum:
                    - snooze_not_active
                    - snooze_end_failed
                    - not_authed
                    - invalid_auth
                    - account_inactive
                    - token_revoked
                    - no_permission
                    - org_login_required
                    - user_is_bot
                    - invalid_arg_name
                    - invalid_array_arg
                    - invalid_charset
                    - invalid_form_data
                    - invalid_post_type
                    - missing_post_type
                    - team_added_to_org
                    - invalid_json
                    - json_not_object
                    - request_timeout
                    - upgrade_required
                    - fatal_error
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from dnd.endSnooze method
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - dnd:write
      summary: Slack Post End Do Not Disturb Snooze
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /dnd.info:
    get:
      tags:
      - Disturb
      - Do
      - Get
      - Info
      description: Retrieves a user's current Do Not Disturb status.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/dnd.info
      operationId: getDndInfo
      parameters:
      - name: token
        in: query
        description: 'Authentication token. Requires scope: `dnd:read`'
        schema:
          type: string
      - name: user
        in: query
        description: User to fetch status for (defaults to current user)
        schema:
          type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: dnd.info schema
                required:
                - dnd_enabled
                - next_dnd_end_ts
                - next_dnd_start_ts
                - ok
                type: object
                properties:
                  dnd_enabled:
                    type: boolean
                  next_dnd_end_ts:
                    type: integer
                  next_dnd_start_ts:
                    type: integer
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                  snooze_enabled:
                    type: boolean
                  snooze_endtime:
                    type: integer
                  snooze_remaining:
                    type: integer
                additionalProperties: false
                description: Schema for successful response from dnd.info method
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: dnd.info error schema
                required:
                - error
                - ok
                type: object
                properties:
                  callstack:
                    type: string
                    description: 'Note: PHP callstack is only visible in dev/qa'
                  error:
                    type: string
                    enum:
                    - user_not_found
                    - not_authed
                    - invalid_auth
                    - account_inactive
                    - token_revoked
                    - no_permission
                    - org_login_required
                    - invalid_arg_name
                    - invalid_array_arg
                    - invalid_charset
                    - invalid_form_data
                    - invalid_post_type
                    - missing_post_type
                    - team_added_to_org
                    - invalid_json
                    - json_not_object
                    - request_timeout
                    - upgrade_required
                    - fatal_error
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from dnd.info method
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - dnd:read
      summary: Slack Get Do Not Disturb Info
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /dnd.setSnooze:
    post:
      tags:
      - Disturb
      - Do
      - Post
      - Snooze
      description: >-
        Turns on Do Not Disturb mode for the current user, or changes its
        duration.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/dnd.setSnooze
      operationId: postDndSetsnooze
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - num_minutes
              - token
              type: object
              properties:
                token:
                  type: string
                  description: 'Authentication token. Requires scope: `dnd:write`'
                num_minutes:
                  type: string
                  description: Number of minutes, from now, to snooze until.
        required: true
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: dnd.setSnooze schema
                required:
                - ok
                - snooze_enabled
                - snooze_endtime
                - snooze_remaining
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                  snooze_enabled:
                    type: boolean
                  snooze_endtime:
                    type: integer
                  snooze_remaining:
                    type: integer
                additionalProperties: false
                description: Schema for successful response from dnd.setSnooze method
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: dnd.setSnooze error schema
                required:
                - error
                - ok
                type: object
                properties:
                  callstack:
                    type: string
                    description: 'Note: PHP callstack is only visible in dev/qa'
                  error:
                    type: string
                    enum:
                    - missing_duration
                    - snooze_failed
                    - not_authed
                    - invalid_auth
                    - account_inactive
                    - token_revoked
                    - no_permission
                    - org_login_required
                    - user_is_bot
                    - invalid_arg_name
                    - invalid_array_arg
                    - invalid_charset
                    - invalid_form_data
                    - invalid_post_type
                    - missing_post_type
                    - team_added_to_org
                    - invalid_json
                    - json_not_object
                    - request_timeout
                    - upgrade_required
                    - too_long
                    - fatal_error
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from dnd.setSnooze method
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - dnd:write
      summary: Slack Post Do Not Disturb Snooze
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /dnd.teamInfo:
    get:
      tags:
      - Disturb
      - Do
      - Get
      - Information
      - Teams
      description: Retrieves the Do Not Disturb status for up to 50 users on a team.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/dnd.teamInfo
      operationId: getDndTeaminfo
      parameters:
      - name: token
        in: query
        description: 'Authentication token. Requires scope: `dnd:read`'
        schema:
          type: string
      - name: users
        in: query
        description: Comma-separated list of users to fetch Do Not Disturb status for
        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
                users:
                  U023BECGF:
                    dnd_enabled: true
                    next_dnd_end_ts: 1450423800
                    next_dnd_start_ts: 1450387800
                  W058CJVAA:
                    dnd_enabled: false
                    next_dnd_end_ts: 1
                    next_dnd_start_ts: 1
        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:
        - dnd:read
      summary: Slack Get Do Not Disturb Team Information
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas: {}
tags:
- name: Disturb
- name: Do
- name: End
- name: Get
- name: Info
- name: Information
- name: Post
- name: Snooze
- name: Teams