Slack · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Slack Files API
12 actions
12 updates
phrasing
extends
openapi/slack-files-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Slack's API. It is a proposal applied on top of the contract, not a document Slack publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/files.info'].get
$.paths['/files.list'].get
$.paths['/files.remote.info'].get
$.paths['/files.remote.list'].get
$.paths['/files.remote.remove'].post
$.paths['/files.remote.share'].get
$.paths['/files.remote.update'].post
$.paths['/files.revokePublicURL'].post
$.paths['/files.sharedPublicURL'].post
$.paths['/files.upload'].post
$.paths['/files.delete'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Slack Files API
version: 1.0.0
extends: openapi/slack-files-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 11
- target: $.paths['/files.info'].get
update:
x-apievangelist-phrasing:
intent: Get details about a file
effect: read
questions:
- What are the details of a file that was uploaded, like its name, size and who shared it?
- Can I page through the comments on a file when I look it up?
instructions:
- text: Get details for file {file}.
slots:
file: query.file
- text: Show file {file} with the next {limit} comments after cursor {cursor}.
slots:
file: query.file
limit: query.limit
cursor: query.cursor
method: generated
generated: '2026-09-26'
- target: $.paths['/files.list'].get
update:
x-apievangelist-phrasing:
intent: List files shared in the workspace
effect: read
questions:
- Which files has a given user uploaded?
- Can I list only images or PDFs shared in one channel within a date range?
instructions:
- text: List files uploaded by user {user}.
slots:
user: query.user
- text: List files of type {types} in {channel} shared between {ts_from} and {ts_to}.
slots:
types: query.types
channel: query.channel
ts_from: query.ts_from
ts_to: query.ts_to
method: generated
generated: '2026-09-26'
- target: $.paths['/files.remote.info'].get
update:
x-apievangelist-phrasing:
intent: Get details about one remote file
effect: read
questions:
- How do I look up a remote file I added from my own service?
- Can I find a remote file by my own external ID instead of its file ID?
instructions:
- text: Get details of remote file {file}.
slots:
file: query.file
- text: Look up the remote file with external ID {external_id}.
slots:
external_id: query.external_id
method: generated
generated: '2026-09-26'
- target: $.paths['/files.remote.list'].get
update:
x-apievangelist-phrasing:
intent: List remote files added to the workspace
effect: read
questions:
- Which remote files from external services have been added to Slack?
- Can I list remote files shared in one channel during a time window?
instructions:
- text: List all remote files added to the workspace.
- text: List remote files in {channel} added between {ts_from} and {ts_to}.
slots:
channel: query.channel
ts_from: query.ts_from
ts_to: query.ts_to
method: generated
generated: '2026-09-26'
- target: $.paths['/files.remote.remove'].post
update:
x-apievangelist-phrasing:
intent: Remove a remote file
effect: destructive
questions:
- Can I remove a remote file my app added once it is deleted on our side?
- Is removing a remote file possible using only my external ID?
instructions:
- text: Remove remote file {file}.
slots:
file: requestBody.file
- text: Remove the remote file with external ID {external_id}.
slots:
external_id: requestBody.external_id
method: generated
generated: '2026-09-26'
- target: $.paths['/files.remote.share'].get
update:
x-apievangelist-phrasing:
intent: Share a remote file into channels
effect: write
questions:
- How do I post a remote file into a channel so people can see it?
- Can one remote file be shared into several channels at once?
instructions:
- text: Share remote file {file} into channels {channels}.
slots:
file: query.file
channels: query.channels
- text: Post the remote file with external ID {external_id} to {channels}.
slots:
external_id: query.external_id
channels: query.channels
method: generated
generated: '2026-09-26'
- target: $.paths['/files.remote.update'].post
update:
x-apievangelist-phrasing:
intent: Update an existing remote file
effect: write
questions:
- Can I change the title or URL of a remote file after adding it?
- What remote file details, like the preview image or searchable contents, can I update?
instructions:
- text: Rename remote file {file} to {title}.
slots:
file: requestBody.file
title: requestBody.title
- text: Point the remote file with external ID {external_id} to the new URL {external_url}.
slots:
external_id: requestBody.external_id
external_url: requestBody.external_url
method: generated
generated: '2026-09-26'
- target: $.paths['/files.revokePublicURL'].post
update:
x-apievangelist-phrasing:
intent: Revoke a file's public sharing link
effect: destructive
questions:
- How do I stop a file from being publicly accessible outside the workspace?
- Can I turn off an external link I created for a file earlier?
instructions:
- text: Revoke public sharing for file {file}.
slots:
file: requestBody.file
- text: Disable the external public link on {file}.
slots:
file: requestBody.file
method: generated
generated: '2026-09-26'
- target: $.paths['/files.sharedPublicURL'].post
update:
x-apievangelist-phrasing:
intent: Enable public sharing for a file
effect: write
questions:
- Can I create a public link to a file for people outside Slack?
- What is needed to make an uploaded file externally shareable?
instructions:
- text: Enable a public sharing URL for file {file}.
slots:
file: requestBody.file
- text: Make {file} shareable with people outside the workspace.
slots:
file: requestBody.file
method: generated
generated: '2026-09-26'
- target: $.paths['/files.upload'].post
update:
x-apievangelist-phrasing:
intent: Upload a file to channels
effect: write
questions:
- How do I upload a file and share it in a channel?
- Can I create a text snippet from content instead of uploading a file?
- Is it possible to upload a file straight into a thread with a comment?
instructions:
- text: Upload {filename} to channels {channels} titled {title}.
slots:
filename: requestBody.filename
channels: requestBody.channels
title: requestBody.title
- text: Create a snippet from {content} and post it in {channels}.
slots:
content: requestBody.content
channels: requestBody.channels
- text: Upload a file into thread {thread_ts} with the comment {initial_comment}.
slots:
thread_ts: requestBody.thread_ts
initial_comment: requestBody.initial_comment
method: generated
generated: '2026-09-26'
- target: $.paths['/files.delete'].post
update:
x-apievangelist-phrasing:
intent: Delete a file
effect: destructive
questions:
- How do I permanently delete a file from the workspace?
- Can my app delete a file someone uploaded by mistake?
instructions:
- text: Delete file {file}.
slots:
file: requestBody.file
- text: Permanently remove uploaded file {file} from the workspace.
slots:
file: requestBody.file
method: generated
generated: '2026-09-26'