Slack · Capability

Slack Files API — Files

Slack Files API — Files. 13 operations. Lead operation: Slack Post Files Comments Delete. Self-contained Naftiko capability covering one Slack business surface.

Run with Naftiko SlackFiles

What You Can Do

POST
Postfilescommentsdelete — Slack Post Files Comments Delete
/v1/files-comments-delete
POST
Postfilesdelete — Slack Post Files Delete
/v1/files-delete
GET
Getfilesinfo — Slack Get Files Info
/v1/files-info
GET
Getfileslist — Slack Get Files List
/v1/files-list
POST
Postfilesremoteadd — Slack Post Files Remote Add
/v1/files-remote-add
GET
Getfilesremoteinfo — Slack Get Files Remote Info
/v1/files-remote-info
GET
Getfilesremotelist — Slack Get Files Remote List
/v1/files-remote-list
POST
Postfilesremoteremove — Slack Post Files Remote Remove
/v1/files-remote-remove
GET
Getfilesremoteshare — Slack Get Files Remote Share
/v1/files-remote-share
POST
Postfilesremoteupdate — Slack Post Files Remote Update
/v1/files-remote-update
POST
Postfilesrevokepublicurl — Slack Post Files Revokepublicurl
/v1/files-revokepublicurl
POST
Postfilessharedpublicurl — Slack Post Files Sharedpublicurl
/v1/files-sharedpublicurl
POST
Postfilesupload — Slack Post Files Upload
/v1/files-upload

MCP Tools

slack-post-files-comments-delete

Slack Post Files Comments Delete

slack-post-files-delete

Slack Post Files Delete

slack-get-files-info

Slack Get Files Info

read-only idempotent
slack-get-files-list

Slack Get Files List

read-only idempotent
slack-post-files-remote-add

Slack Post Files Remote Add

slack-get-files-remote-info

Slack Get Files Remote Info

read-only idempotent
slack-get-files-remote-list

Slack Get Files Remote List

read-only idempotent
slack-post-files-remote-remove

Slack Post Files Remote Remove

slack-get-files-remote-share

Slack Get Files Remote Share

read-only idempotent
slack-post-files-remote-update

Slack Post Files Remote Update

slack-post-files-revokepublicurl

Slack Post Files Revokepublicurl

slack-post-files-sharedpublicurl

Slack Post Files Sharedpublicurl

slack-post-files-upload

Slack Post Files Upload

Capability Spec

files-files.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Slack Files API — Files
  description: 'Slack Files API — Files. 13 operations. Lead operation: Slack Post Files Comments Delete. Self-contained Naftiko
    capability covering one Slack business surface.'
  tags:
  - Slack
  - Files
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SLACK_API_KEY: SLACK_API_KEY
capability:
  consumes:
  - type: http
    namespace: files-files
    baseUri: ''
    description: Slack Files API — Files business capability. Self-contained, no shared references.
    resources:
    - name: files.comments.delete
      path: /files.comments.delete
      operations:
      - name: postfilescommentsdelete
        method: POST
        description: Slack Post Files Comments Delete
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token
          in: header
          type: string
          description: 'Authentication token. Requires scope: `files:write:user`'
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: files.delete
      path: /files.delete
      operations:
      - name: postfilesdelete
        method: POST
        description: Slack Post Files Delete
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token
          in: header
          type: string
          description: 'Authentication token. Requires scope: `files:write:user`'
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: files.info
      path: /files.info
      operations:
      - name: getfilesinfo
        method: GET
        description: Slack Get Files Info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token
          in: query
          type: string
          description: 'Authentication token. Requires scope: `files:read`'
        - name: file
          in: query
          type: string
          description: Specify a file by providing its ID.
        - name: count
          in: query
          type: string
        - name: page
          in: query
          type: string
        - name: limit
          in: query
          type: integer
          description: The maximum number of items to return. Fewer than the requested number of items may be returned, even
            if the end of the list hasn't been reached.
        - name: cursor
          in: query
          type: string
          description: Parameter for pagination. File comments are paginated for a single file. Set `cursor` equal to the
            `next_cursor` attribute returned by the previous request's `r
    - name: files.list
      path: /files.list
      operations:
      - name: getfileslist
        method: GET
        description: Slack Get Files List
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token
          in: query
          type: string
          description: 'Authentication token. Requires scope: `files:read`'
        - name: user
          in: query
          type: string
          description: Filter files created by a single user.
        - name: channel
          in: query
          type: string
          description: Filter files appearing in a specific channel, indicated by its ID.
        - name: ts_from
          in: query
          type: number
          description: Filter files created after this timestamp (inclusive).
        - name: ts_to
          in: query
          type: number
          description: Filter files created before this timestamp (inclusive).
        - name: types
          in: query
          type: string
          description: Filter files by type ([see below](#file_types)). You can pass multiple values in the types argument,
            like `types=spaces,snippets`.The default value is `all`, wh
        - name: count
          in: query
          type: string
        - name: page
          in: query
          type: string
        - name: show_files_hidden_by_limit
          in: query
          type: boolean
          description: Show truncated file info for files hidden due to being too old, and the team who owns the file being
            over the file limit.
    - name: files.remote.add
      path: /files.remote.add
      operations:
      - name: postfilesremoteadd
        method: POST
        description: Slack Post Files Remote Add
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: files.remote.info
      path: /files.remote.info
      operations:
      - name: getfilesremoteinfo
        method: GET
        description: Slack Get Files Remote Info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token
          in: query
          type: string
          description: 'Authentication token. Requires scope: `remote_files:read`'
        - name: file
          in: query
          type: string
          description: Specify a file by providing its ID.
        - name: external_id
          in: query
          type: string
          description: Creator defined GUID for the file.
    - name: files.remote.list
      path: /files.remote.list
      operations:
      - name: getfilesremotelist
        method: GET
        description: Slack Get Files Remote List
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token
          in: query
          type: string
          description: 'Authentication token. Requires scope: `remote_files:read`'
        - name: channel
          in: query
          type: string
          description: Filter files appearing in a specific channel, indicated by its ID.
        - name: ts_from
          in: query
          type: number
          description: Filter files created after this timestamp (inclusive).
        - name: ts_to
          in: query
          type: number
          description: Filter files created before this timestamp (inclusive).
        - name: limit
          in: query
          type: integer
          description: The maximum number of items to return.
        - name: cursor
          in: query
          type: string
          description: Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute
            returned by a previous request's `response_metadata`. Defaul
    - name: files.remote.remove
      path: /files.remote.remove
      operations:
      - name: postfilesremoteremove
        method: POST
        description: Slack Post Files Remote Remove
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: files.remote.share
      path: /files.remote.share
      operations:
      - name: getfilesremoteshare
        method: GET
        description: Slack Get Files Remote Share
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token
          in: query
          type: string
          description: 'Authentication token. Requires scope: `remote_files:share`'
        - name: file
          in: query
          type: string
          description: Specify a file registered with Slack by providing its ID. Either this field or `external_id` or both
            are required.
        - name: external_id
          in: query
          type: string
          description: The globally unique identifier (GUID) for the file, as set by the app registering the file with Slack.  Either
            this field or `file` or both are required.
        - name: channels
          in: query
          type: string
          description: Comma-separated list of channel IDs where the file will be shared.
    - name: files.remote.update
      path: /files.remote.update
      operations:
      - name: postfilesremoteupdate
        method: POST
        description: Slack Post Files Remote Update
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: files.revokePublicURL
      path: /files.revokePublicURL
      operations:
      - name: postfilesrevokepublicurl
        method: POST
        description: Slack Post Files Revokepublicurl
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token
          in: header
          type: string
          description: 'Authentication token. Requires scope: `files:write:user`'
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: files.sharedPublicURL
      path: /files.sharedPublicURL
      operations:
      - name: postfilessharedpublicurl
        method: POST
        description: Slack Post Files Sharedpublicurl
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token
          in: header
          type: string
          description: 'Authentication token. Requires scope: `files:write:user`'
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: files.upload
      path: /files.upload
      operations:
      - name: postfilesupload
        method: POST
        description: Slack Post Files Upload
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
  exposes:
  - type: rest
    namespace: files-files-rest
    port: 8080
    description: REST adapter for Slack Files API — Files. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/files-comments-delete
      name: files-comments-delete
      description: REST surface for files.comments.delete.
      operations:
      - method: POST
        name: postfilescommentsdelete
        description: Slack Post Files Comments Delete
        call: files-files.postfilescommentsdelete
        with:
          token: rest.token
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-delete
      name: files-delete
      description: REST surface for files.delete.
      operations:
      - method: POST
        name: postfilesdelete
        description: Slack Post Files Delete
        call: files-files.postfilesdelete
        with:
          token: rest.token
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-info
      name: files-info
      description: REST surface for files.info.
      operations:
      - method: GET
        name: getfilesinfo
        description: Slack Get Files Info
        call: files-files.getfilesinfo
        with:
          token: rest.token
          file: rest.file
          count: rest.count
          page: rest.page
          limit: rest.limit
          cursor: rest.cursor
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-list
      name: files-list
      description: REST surface for files.list.
      operations:
      - method: GET
        name: getfileslist
        description: Slack Get Files List
        call: files-files.getfileslist
        with:
          token: rest.token
          user: rest.user
          channel: rest.channel
          ts_from: rest.ts_from
          ts_to: rest.ts_to
          types: rest.types
          count: rest.count
          page: rest.page
          show_files_hidden_by_limit: rest.show_files_hidden_by_limit
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-remote-add
      name: files-remote-add
      description: REST surface for files.remote.add.
      operations:
      - method: POST
        name: postfilesremoteadd
        description: Slack Post Files Remote Add
        call: files-files.postfilesremoteadd
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-remote-info
      name: files-remote-info
      description: REST surface for files.remote.info.
      operations:
      - method: GET
        name: getfilesremoteinfo
        description: Slack Get Files Remote Info
        call: files-files.getfilesremoteinfo
        with:
          token: rest.token
          file: rest.file
          external_id: rest.external_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-remote-list
      name: files-remote-list
      description: REST surface for files.remote.list.
      operations:
      - method: GET
        name: getfilesremotelist
        description: Slack Get Files Remote List
        call: files-files.getfilesremotelist
        with:
          token: rest.token
          channel: rest.channel
          ts_from: rest.ts_from
          ts_to: rest.ts_to
          limit: rest.limit
          cursor: rest.cursor
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-remote-remove
      name: files-remote-remove
      description: REST surface for files.remote.remove.
      operations:
      - method: POST
        name: postfilesremoteremove
        description: Slack Post Files Remote Remove
        call: files-files.postfilesremoteremove
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-remote-share
      name: files-remote-share
      description: REST surface for files.remote.share.
      operations:
      - method: GET
        name: getfilesremoteshare
        description: Slack Get Files Remote Share
        call: files-files.getfilesremoteshare
        with:
          token: rest.token
          file: rest.file
          external_id: rest.external_id
          channels: rest.channels
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-remote-update
      name: files-remote-update
      description: REST surface for files.remote.update.
      operations:
      - method: POST
        name: postfilesremoteupdate
        description: Slack Post Files Remote Update
        call: files-files.postfilesremoteupdate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-revokepublicurl
      name: files-revokepublicurl
      description: REST surface for files.revokePublicURL.
      operations:
      - method: POST
        name: postfilesrevokepublicurl
        description: Slack Post Files Revokepublicurl
        call: files-files.postfilesrevokepublicurl
        with:
          token: rest.token
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-sharedpublicurl
      name: files-sharedpublicurl
      description: REST surface for files.sharedPublicURL.
      operations:
      - method: POST
        name: postfilessharedpublicurl
        description: Slack Post Files Sharedpublicurl
        call: files-files.postfilessharedpublicurl
        with:
          token: rest.token
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files-upload
      name: files-upload
      description: REST surface for files.upload.
      operations:
      - method: POST
        name: postfilesupload
        description: Slack Post Files Upload
        call: files-files.postfilesupload
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: files-files-mcp
    port: 9090
    transport: http
    description: MCP adapter for Slack Files API — Files. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: slack-post-files-comments-delete
      description: Slack Post Files Comments Delete
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: files-files.postfilescommentsdelete
      with:
        token: tools.token
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-post-files-delete
      description: Slack Post Files Delete
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: files-files.postfilesdelete
      with:
        token: tools.token
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-get-files-info
      description: Slack Get Files Info
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: files-files.getfilesinfo
      with:
        token: tools.token
        file: tools.file
        count: tools.count
        page: tools.page
        limit: tools.limit
        cursor: tools.cursor
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-get-files-list
      description: Slack Get Files List
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: files-files.getfileslist
      with:
        token: tools.token
        user: tools.user
        channel: tools.channel
        ts_from: tools.ts_from
        ts_to: tools.ts_to
        types: tools.types
        count: tools.count
        page: tools.page
        show_files_hidden_by_limit: tools.show_files_hidden_by_limit
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-post-files-remote-add
      description: Slack Post Files Remote Add
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: files-files.postfilesremoteadd
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-get-files-remote-info
      description: Slack Get Files Remote Info
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: files-files.getfilesremoteinfo
      with:
        token: tools.token
        file: tools.file
        external_id: tools.external_id
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-get-files-remote-list
      description: Slack Get Files Remote List
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: files-files.getfilesremotelist
      with:
        token: tools.token
        channel: tools.channel
        ts_from: tools.ts_from
        ts_to: tools.ts_to
        limit: tools.limit
        cursor: tools.cursor
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-post-files-remote-remove
      description: Slack Post Files Remote Remove
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: files-files.postfilesremoteremove
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-get-files-remote-share
      description: Slack Get Files Remote Share
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: files-files.getfilesremoteshare
      with:
        token: tools.token
        file: tools.file
        external_id: tools.external_id
        channels: tools.channels
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-post-files-remote-update
      description: Slack Post Files Remote Update
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: files-files.postfilesremoteupdate
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-post-files-revokepublicurl
      description: Slack Post Files Revokepublicurl
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: files-files.postfilesrevokepublicurl
      with:
        token: tools.token
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-post-files-sharedpublicurl
      description: Slack Post Files Sharedpublicurl
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: files-files.postfilessharedpublicurl
      with:
        token: tools.token
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: slack-post-files-upload
      description: Slack Post Files Upload
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: files-files.postfilesupload
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.