Skip to main content
Every slack.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
New to Corsair? See API access, authentication, and error handling.

Channels

archive

channels.archive Archive a Slack channel [DESTRUCTIVE] Risk: destructive
await corsair.slack.api.channels.archive({});
Input
NameTypeRequiredDescription
channelstringYes
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
{
  next_cursor?: string,
  messages?: string[]
}

close

channels.close Close a direct message or multi-party DM Risk: write
await corsair.slack.api.channels.close({});
Input
NameTypeRequiredDescription
channelstringYes
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
no_opbooleanNo
already_closedbooleanNo
{
  next_cursor?: string,
  messages?: string[]
}

create

channels.create Create a new Slack channel Risk: write
await corsair.slack.api.channels.create({});
Input
NameTypeRequiredDescription
namestringYes
is_privatebooleanNo
team_idstringNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  name?: string,
  is_channel?: boolean,
  is_group?: boolean,
  is_im?: boolean,
  is_mpim?: boolean,
  is_private?: boolean,
  created?: number,
  is_archived?: boolean,
  is_general?: boolean,
  unlinked?: number,
  name_normalized?: string,
  is_shared?: boolean,
  is_org_shared?: boolean,
  is_pending_ext_shared?: boolean,
  pending_shared?: string[],
  context_team_id?: string,
  updated?: number,
  creator?: string,
  is_member?: boolean,
  num_members?: number,
  topic?: {
    value: string,
    creator: string,
    last_set: number
  },
  purpose?: {
    value: string,
    creator: string,
    last_set: number
  }
}

get

channels.get Get info about a channel Risk: read
await corsair.slack.api.channels.get({});
Input
NameTypeRequiredDescription
channelstringYes
include_localebooleanNo
include_num_membersbooleanNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  name?: string,
  is_channel?: boolean,
  is_group?: boolean,
  is_im?: boolean,
  is_mpim?: boolean,
  is_private?: boolean,
  created?: number,
  is_archived?: boolean,
  is_general?: boolean,
  unlinked?: number,
  name_normalized?: string,
  is_shared?: boolean,
  is_org_shared?: boolean,
  is_pending_ext_shared?: boolean,
  pending_shared?: string[],
  context_team_id?: string,
  updated?: number,
  creator?: string,
  is_member?: boolean,
  num_members?: number,
  topic?: {
    value: string,
    creator: string,
    last_set: number
  },
  purpose?: {
    value: string,
    creator: string,
    last_set: number
  }
}

getHistory

channels.getHistory Fetch message history for a channel Risk: read
await corsair.slack.api.channels.getHistory({});
Input
NameTypeRequiredDescription
channelstringYes
lateststringNo
oldeststringNo
inclusivebooleanNo
include_all_metadatabooleanNo
cursorstringNo
limitnumberNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
messagesobject[]No
has_morebooleanNo
pin_countnumberNo
channel_actions_countnumberNo
channel_actions_tsnumberNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  type?: string,
  subtype?: string,
  text?: string,
  ts?: string,
  user?: string,
  bot_id?: string,
  app_id?: string,
  team?: string,
  username?: string,
  icons?: {
    emoji?: string,
    image_36?: string,
    image_48?: string,
    image_72?: string
  },
  blocks?: {
    type: string
  }[],
  attachments?: {
  }[],
  thread_ts?: string,
  parent_user_id?: string,
  reply_count?: number,
  reply_users_count?: number,
  latest_reply?: string,
  reply_users?: string[],
  is_locked?: boolean,
  subscribed?: boolean,
  reactions?: {
    name: string,
    count: number,
    users: string[]
  }[],
  edited?: {
    user: string,
    ts: string
  }
}[]

getMembers

channels.getMembers List members of a channel Risk: read
await corsair.slack.api.channels.getMembers({});
Input
NameTypeRequiredDescription
channelstringYes
cursorstringNo
limitnumberNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
membersstring[]No
{
  next_cursor?: string,
  messages?: string[]
}

getReplies

channels.getReplies Fetch replies for a thread Risk: read
await corsair.slack.api.channels.getReplies({});
Input
NameTypeRequiredDescription
channelstringYes
tsstringYes
lateststringNo
oldeststringNo
inclusivebooleanNo
include_all_metadatabooleanNo
cursorstringNo
limitnumberNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
messagesobject[]No
has_morebooleanNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  type?: string,
  subtype?: string,
  text?: string,
  ts?: string,
  user?: string,
  bot_id?: string,
  app_id?: string,
  team?: string,
  username?: string,
  icons?: {
    emoji?: string,
    image_36?: string,
    image_48?: string,
    image_72?: string
  },
  blocks?: {
    type: string
  }[],
  attachments?: {
  }[],
  thread_ts?: string,
  parent_user_id?: string,
  reply_count?: number,
  reply_users_count?: number,
  latest_reply?: string,
  reply_users?: string[],
  is_locked?: boolean,
  subscribed?: boolean,
  reactions?: {
    name: string,
    count: number,
    users: string[]
  }[],
  edited?: {
    user: string,
    ts: string
  }
}[]

invite

channels.invite Invite users to a channel Risk: write
await corsair.slack.api.channels.invite({});
Input
NameTypeRequiredDescription
channelstringYes
usersstringYes
forcebooleanNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  name?: string,
  is_channel?: boolean,
  is_group?: boolean,
  is_im?: boolean,
  is_mpim?: boolean,
  is_private?: boolean,
  created?: number,
  is_archived?: boolean,
  is_general?: boolean,
  unlinked?: number,
  name_normalized?: string,
  is_shared?: boolean,
  is_org_shared?: boolean,
  is_pending_ext_shared?: boolean,
  pending_shared?: string[],
  context_team_id?: string,
  updated?: number,
  creator?: string,
  is_member?: boolean,
  num_members?: number,
  topic?: {
    value: string,
    creator: string,
    last_set: number
  },
  purpose?: {
    value: string,
    creator: string,
    last_set: number
  }
}

join

channels.join Join a channel Risk: write
await corsair.slack.api.channels.join({});
Input
NameTypeRequiredDescription
channelstringYes
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelobjectNo
warningstringNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  name?: string,
  is_channel?: boolean,
  is_group?: boolean,
  is_im?: boolean,
  is_mpim?: boolean,
  is_private?: boolean,
  created?: number,
  is_archived?: boolean,
  is_general?: boolean,
  unlinked?: number,
  name_normalized?: string,
  is_shared?: boolean,
  is_org_shared?: boolean,
  is_pending_ext_shared?: boolean,
  pending_shared?: string[],
  context_team_id?: string,
  updated?: number,
  creator?: string,
  is_member?: boolean,
  num_members?: number,
  topic?: {
    value: string,
    creator: string,
    last_set: number
  },
  purpose?: {
    value: string,
    creator: string,
    last_set: number
  }
}

kick

channels.kick Remove a user from a channel Risk: write
await corsair.slack.api.channels.kick({});
Input
NameTypeRequiredDescription
channelstringYes
userstringYes
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
{
  next_cursor?: string,
  messages?: string[]
}

leave

channels.leave Leave a channel Risk: write
await corsair.slack.api.channels.leave({});
Input
NameTypeRequiredDescription
channelstringYes
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
not_in_channelbooleanNo
{
  next_cursor?: string,
  messages?: string[]
}

list

channels.list List all channels in the workspace Risk: read
await corsair.slack.api.channels.list({});
Input
NameTypeRequiredDescription
exclude_archivedbooleanNo
typesstringNo
team_idstringNo
cursorstringNo
limitnumberNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelsobject[]No
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  name?: string,
  is_channel?: boolean,
  is_group?: boolean,
  is_im?: boolean,
  is_mpim?: boolean,
  is_private?: boolean,
  created?: number,
  is_archived?: boolean,
  is_general?: boolean,
  unlinked?: number,
  name_normalized?: string,
  is_shared?: boolean,
  is_org_shared?: boolean,
  is_pending_ext_shared?: boolean,
  pending_shared?: string[],
  context_team_id?: string,
  updated?: number,
  creator?: string,
  is_member?: boolean,
  num_members?: number,
  topic?: {
    value: string,
    creator: string,
    last_set: number
  },
  purpose?: {
    value: string,
    creator: string,
    last_set: number
  }
}[]

open

channels.open Open a direct message or multi-party DM Risk: write
await corsair.slack.api.channels.open({});
Input
NameTypeRequiredDescription
channelstringNo
usersstringNo
prevent_creationbooleanNo
return_imbooleanNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelobjectNo
no_opbooleanNo
already_openbooleanNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  name?: string,
  is_channel?: boolean,
  is_group?: boolean,
  is_im?: boolean,
  is_mpim?: boolean,
  is_private?: boolean,
  created?: number,
  is_archived?: boolean,
  is_general?: boolean,
  unlinked?: number,
  name_normalized?: string,
  is_shared?: boolean,
  is_org_shared?: boolean,
  is_pending_ext_shared?: boolean,
  pending_shared?: string[],
  context_team_id?: string,
  updated?: number,
  creator?: string,
  is_member?: boolean,
  num_members?: number,
  topic?: {
    value: string,
    creator: string,
    last_set: number
  },
  purpose?: {
    value: string,
    creator: string,
    last_set: number
  }
}

rename

channels.rename Rename a channel Risk: write
await corsair.slack.api.channels.rename({});
Input
NameTypeRequiredDescription
channelstringYes
namestringYes
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  name?: string,
  is_channel?: boolean,
  is_group?: boolean,
  is_im?: boolean,
  is_mpim?: boolean,
  is_private?: boolean,
  created?: number,
  is_archived?: boolean,
  is_general?: boolean,
  unlinked?: number,
  name_normalized?: string,
  is_shared?: boolean,
  is_org_shared?: boolean,
  is_pending_ext_shared?: boolean,
  pending_shared?: string[],
  context_team_id?: string,
  updated?: number,
  creator?: string,
  is_member?: boolean,
  num_members?: number,
  topic?: {
    value: string,
    creator: string,
    last_set: number
  },
  purpose?: {
    value: string,
    creator: string,
    last_set: number
  }
}

setPurpose

channels.setPurpose Set the purpose of a channel Risk: write
await corsair.slack.api.channels.setPurpose({});
Input
NameTypeRequiredDescription
channelstringYes
purposestringYes
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelobjectNo
purposestringNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  name?: string,
  is_channel?: boolean,
  is_group?: boolean,
  is_im?: boolean,
  is_mpim?: boolean,
  is_private?: boolean,
  created?: number,
  is_archived?: boolean,
  is_general?: boolean,
  unlinked?: number,
  name_normalized?: string,
  is_shared?: boolean,
  is_org_shared?: boolean,
  is_pending_ext_shared?: boolean,
  pending_shared?: string[],
  context_team_id?: string,
  updated?: number,
  creator?: string,
  is_member?: boolean,
  num_members?: number,
  topic?: {
    value: string,
    creator: string,
    last_set: number
  },
  purpose?: {
    value: string,
    creator: string,
    last_set: number
  }
}

setTopic

channels.setTopic Set the topic of a channel Risk: write
await corsair.slack.api.channels.setTopic({});
Input
NameTypeRequiredDescription
channelstringYes
topicstringYes
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelobjectNo
topicstringNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  name?: string,
  is_channel?: boolean,
  is_group?: boolean,
  is_im?: boolean,
  is_mpim?: boolean,
  is_private?: boolean,
  created?: number,
  is_archived?: boolean,
  is_general?: boolean,
  unlinked?: number,
  name_normalized?: string,
  is_shared?: boolean,
  is_org_shared?: boolean,
  is_pending_ext_shared?: boolean,
  pending_shared?: string[],
  context_team_id?: string,
  updated?: number,
  creator?: string,
  is_member?: boolean,
  num_members?: number,
  topic?: {
    value: string,
    creator: string,
    last_set: number
  },
  purpose?: {
    value: string,
    creator: string,
    last_set: number
  }
}

unarchive

channels.unarchive Unarchive a channel Risk: write
await corsair.slack.api.channels.unarchive({});
Input
NameTypeRequiredDescription
channelstringYes
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
{
  next_cursor?: string,
  messages?: string[]
}

Files

get

files.get Get info about a file Risk: read
await corsair.slack.api.files.get({});
Input
NameTypeRequiredDescription
filestringYes
cursorstringNo
limitnumberNo
pagenumberNo
countnumberNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
fileobjectNo
commentsobject[]No
pagingobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  created?: number,
  timestamp?: number,
  name?: string,
  title?: string,
  mimetype?: string,
  filetype?: string,
  pretty_type?: string,
  user?: string,
  user_team?: string,
  editable?: boolean,
  size?: number,
  mode?: string,
  is_external?: boolean,
  external_type?: string,
  is_public?: boolean,
  public_url_shared?: boolean,
  display_as_bot?: boolean,
  username?: string,
  url_private?: string,
  url_private_download?: string,
  permalink?: string,
  permalink_public?: string,
  channels?: string[],
  groups?: string[],
  ims?: string[]
}
{
  id: string,
  timestamp: number,
  user: string,
  comment: string
}[]
{
  count: number,
  total: number,
  page: number,
  pages: number
}

list

files.list List files in the workspace Risk: read
await corsair.slack.api.files.list({});
Input
NameTypeRequiredDescription
channelstringNo
userstringNo
typesstringNo
ts_fromstringNo
ts_tostringNo
show_files_hidden_by_limitbooleanNo
team_idstringNo
pagenumberNo
countnumberNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
filesobject[]No
pagingobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  created?: number,
  timestamp?: number,
  name?: string,
  title?: string,
  mimetype?: string,
  filetype?: string,
  pretty_type?: string,
  user?: string,
  user_team?: string,
  editable?: boolean,
  size?: number,
  mode?: string,
  is_external?: boolean,
  external_type?: string,
  is_public?: boolean,
  public_url_shared?: boolean,
  display_as_bot?: boolean,
  username?: string,
  url_private?: string,
  url_private_download?: string,
  permalink?: string,
  permalink_public?: string,
  channels?: string[],
  groups?: string[],
  ims?: string[]
}[]
{
  count: number,
  total: number,
  page: number,
  pages: number
}

upload

files.upload Upload a file to Slack Risk: write
await corsair.slack.api.files.upload({});
Input
NameTypeRequiredDescription
channelsstringNo
contentstringNo
fileanyNo
filenamestringNo
filetypestringNo
initial_commentstringNo
thread_tsstringNo
titlestringNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
fileobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  created?: number,
  timestamp?: number,
  name?: string,
  title?: string,
  mimetype?: string,
  filetype?: string,
  pretty_type?: string,
  user?: string,
  user_team?: string,
  editable?: boolean,
  size?: number,
  mode?: string,
  is_external?: boolean,
  external_type?: string,
  is_public?: boolean,
  public_url_shared?: boolean,
  display_as_bot?: boolean,
  username?: string,
  url_private?: string,
  url_private_download?: string,
  permalink?: string,
  permalink_public?: string,
  channels?: string[],
  groups?: string[],
  ims?: string[]
}

Messages

delete

messages.delete Delete a message [DESTRUCTIVE] Risk: destructive
await corsair.slack.api.messages.delete({});
Input
NameTypeRequiredDescription
channelstringYes
tsstringYes
as_userbooleanNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelstringNo
tsstringNo
{
  next_cursor?: string,
  messages?: string[]
}

messages.getPermalink Get a permalink for a message Risk: read
await corsair.slack.api.messages.getPermalink({});
Input
NameTypeRequiredDescription
channelstringYes
message_tsstringYes
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelstringNo
permalinkstringNo
{
  next_cursor?: string,
  messages?: string[]
}

post

messages.post Post a message to a channel Risk: write
await corsair.slack.api.messages.post({});
Input
NameTypeRequiredDescription
channelstringYes
textstringNo
blocksobject[]No
attachmentsobject[]No
thread_tsstringNo
reply_broadcastbooleanNo
parsefull | noneNo
link_namesbooleanNo
unfurl_linksbooleanNo
unfurl_mediabooleanNo
mrkdwnbooleanNo
as_userbooleanNo
icon_emojistringNo
icon_urlstringNo
usernamestringNo
metadataobjectNo
{
  type: string
}[]
{
}[]
{
  event_type: string,
  event_payload: {
  }
}
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelstringNo
tsstringNo
messageobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  type?: string,
  subtype?: string,
  text?: string,
  ts?: string,
  user?: string,
  bot_id?: string,
  app_id?: string,
  team?: string,
  username?: string,
  icons?: {
    emoji?: string,
    image_36?: string,
    image_48?: string,
    image_72?: string
  },
  blocks?: {
    type: string
  }[],
  attachments?: {
  }[],
  thread_ts?: string,
  parent_user_id?: string,
  reply_count?: number,
  reply_users_count?: number,
  latest_reply?: string,
  reply_users?: string[],
  is_locked?: boolean,
  subscribed?: boolean,
  reactions?: {
    name: string,
    count: number,
    users: string[]
  }[],
  edited?: {
    user: string,
    ts: string
  }
}

messages.search Search messages in the workspace Risk: read
await corsair.slack.api.messages.search({});
Input
NameTypeRequiredDescription
querystringYes
sortscore | timestampNo
sort_dirasc | descNo
highlightbooleanNo
team_idstringNo
cursorstringNo
limitnumberNo
pagenumberNo
countnumberNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
querystringNo
messagesobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  total?: number,
  pagination?: {
    total_count?: number,
    page?: number,
    per_page?: number,
    page_count?: number,
    first?: number,
    last?: number
  },
  paging?: {
    count: number,
    total: number,
    page: number,
    pages: number
  },
  matches?: {
    type?: string,
    subtype?: string,
    text?: string,
    ts?: string,
    user?: string,
    bot_id?: string,
    app_id?: string,
    team?: string,
    username?: string,
    icons?: {
      emoji?: string,
      image_36?: string,
      image_48?: string,
      image_72?: string
    },
    blocks?: {
      type: string
    }[],
    attachments?: {
    }[],
    thread_ts?: string,
    parent_user_id?: string,
    reply_count?: number,
    reply_users_count?: number,
    latest_reply?: string,
    reply_users?: string[],
    is_locked?: boolean,
    subscribed?: boolean,
    reactions?: {
      name: string,
      count: number,
      users: string[]
    }[],
    edited?: {
      user: string,
      ts: string
    },
    channel?: {
      id: string,
      name?: string
    },
    permalink?: string
  }[]
}

update

messages.update Update an existing message Risk: write
await corsair.slack.api.messages.update({});
Input
NameTypeRequiredDescription
channelstringYes
tsstringYes
textstringNo
blocksobject[]No
attachmentsobject[]No
parsefull | noneNo
link_namesbooleanNo
as_userbooleanNo
file_idsstring[]No
reply_broadcastbooleanNo
metadataobjectNo
{
  type: string
}[]
{
}[]
{
  event_type: string,
  event_payload: {
  }
}
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
channelstringNo
tsstringNo
textstringNo
messageobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  type?: string,
  subtype?: string,
  text?: string,
  ts?: string,
  user?: string,
  bot_id?: string,
  app_id?: string,
  team?: string,
  username?: string,
  icons?: {
    emoji?: string,
    image_36?: string,
    image_48?: string,
    image_72?: string
  },
  blocks?: {
    type: string
  }[],
  attachments?: {
  }[],
  thread_ts?: string,
  parent_user_id?: string,
  reply_count?: number,
  reply_users_count?: number,
  latest_reply?: string,
  reply_users?: string[],
  is_locked?: boolean,
  subscribed?: boolean,
  reactions?: {
    name: string,
    count: number,
    users: string[]
  }[],
  edited?: {
    user: string,
    ts: string
  }
}

Reactions

add

reactions.add Add a reaction emoji to a message Risk: write
await corsair.slack.api.reactions.add({});
Input
NameTypeRequiredDescription
channelstringYes
timestampstringYes
namestringYes
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
{
  next_cursor?: string,
  messages?: string[]
}

get

reactions.get Get reactions for a message Risk: read
await corsair.slack.api.reactions.get({});
Input
NameTypeRequiredDescription
channelstringNo
timestampstringNo
filestringNo
file_commentstringNo
fullbooleanNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
typestringNo
channelstringNo
messageobjectNo
fileobjectNo
commentobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  type?: string,
  subtype?: string,
  text?: string,
  ts?: string,
  user?: string,
  bot_id?: string,
  app_id?: string,
  team?: string,
  username?: string,
  icons?: {
    emoji?: string,
    image_36?: string,
    image_48?: string,
    image_72?: string
  },
  blocks?: {
    type: string
  }[],
  attachments?: {
  }[],
  thread_ts?: string,
  parent_user_id?: string,
  reply_count?: number,
  reply_users_count?: number,
  latest_reply?: string,
  reply_users?: string[],
  is_locked?: boolean,
  subscribed?: boolean,
  reactions?: {
    name: string,
    count: number,
    users: string[]
  }[],
  edited?: {
    user: string,
    ts: string
  }
}
{
  id: string,
  created?: number,
  timestamp?: number,
  name?: string,
  title?: string,
  mimetype?: string,
  filetype?: string,
  pretty_type?: string,
  user?: string,
  user_team?: string,
  editable?: boolean,
  size?: number,
  mode?: string,
  is_external?: boolean,
  external_type?: string,
  is_public?: boolean,
  public_url_shared?: boolean,
  display_as_bot?: boolean,
  username?: string,
  url_private?: string,
  url_private_download?: string,
  permalink?: string,
  permalink_public?: string,
  channels?: string[],
  groups?: string[],
  ims?: string[]
}
{
  id: string,
  comment: string,
  reactions?: {
    name: string,
    count: number,
    users: string[]
  }[]
}

remove

reactions.remove Remove a reaction emoji from a message Risk: write
await corsair.slack.api.reactions.remove({});
Input
NameTypeRequiredDescription
namestringYes
channelstringNo
timestampstringNo
filestringNo
file_commentstringNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
{
  next_cursor?: string,
  messages?: string[]
}

Stars

add

stars.add Star an item Risk: write
await corsair.slack.api.stars.add({});
Input
NameTypeRequiredDescription
channelstringNo
timestampstringNo
filestringNo
file_commentstringNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
{
  next_cursor?: string,
  messages?: string[]
}

list

stars.list List starred items for the authenticated user Risk: read
await corsair.slack.api.stars.list({});
Input
NameTypeRequiredDescription
team_idstringNo
cursorstringNo
limitnumberNo
pagenumberNo
countnumberNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
itemsobject[]No
pagingobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  type: string,
  channel?: string,
  message?: {
    type?: string,
    subtype?: string,
    text?: string,
    ts?: string,
    user?: string,
    bot_id?: string,
    app_id?: string,
    team?: string,
    username?: string,
    icons?: {
      emoji?: string,
      image_36?: string,
      image_48?: string,
      image_72?: string
    },
    blocks?: {
      type: string
    }[],
    attachments?: {
    }[],
    thread_ts?: string,
    parent_user_id?: string,
    reply_count?: number,
    reply_users_count?: number,
    latest_reply?: string,
    reply_users?: string[],
    is_locked?: boolean,
    subscribed?: boolean,
    reactions?: {
      name: string,
      count: number,
      users: string[]
    }[],
    edited?: {
      user: string,
      ts: string
    }
  },
  file?: {
    id: string,
    created?: number,
    timestamp?: number,
    name?: string,
    title?: string,
    mimetype?: string,
    filetype?: string,
    pretty_type?: string,
    user?: string,
    user_team?: string,
    editable?: boolean,
    size?: number,
    mode?: string,
    is_external?: boolean,
    external_type?: string,
    is_public?: boolean,
    public_url_shared?: boolean,
    display_as_bot?: boolean,
    username?: string,
    url_private?: string,
    url_private_download?: string,
    permalink?: string,
    permalink_public?: string,
    channels?: string[],
    groups?: string[],
    ims?: string[]
  },
  comment?: {
    id: string,
    comment: string
  },
  date_create?: number
}[]
{
  count: number,
  total: number,
  page: number,
  pages: number
}

remove

stars.remove Unstar an item Risk: write
await corsair.slack.api.stars.remove({});
Input
NameTypeRequiredDescription
channelstringNo
timestampstringNo
filestringNo
file_commentstringNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
{
  next_cursor?: string,
  messages?: string[]
}

User Groups

create

userGroups.create Create a user group Risk: write
await corsair.slack.api.userGroups.create({});
Input
NameTypeRequiredDescription
namestringYes
channelsstringNo
descriptionstringNo
handlestringNo
include_countbooleanNo
team_idstringNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
usergroupobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  team_id?: string,
  is_usergroup?: boolean,
  is_subteam?: boolean,
  name?: string,
  description?: string,
  handle?: string,
  is_external?: boolean,
  date_create?: number,
  date_update?: number,
  date_delete?: number,
  auto_type?: string | null,
  auto_provision?: boolean,
  enterprise_subteam_id?: string,
  created_by?: string,
  updated_by?: string,
  deleted_by?: string | null,
  prefs?: {
    channels?: string[],
    groups?: string[]
  },
  users?: string[],
  user_count?: number,
  channel_count?: number
}

disable

userGroups.disable Disable a user group Risk: write
await corsair.slack.api.userGroups.disable({});
Input
NameTypeRequiredDescription
userGroupstringYes
include_countbooleanNo
team_idstringNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
usergroupobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  team_id?: string,
  is_usergroup?: boolean,
  is_subteam?: boolean,
  name?: string,
  description?: string,
  handle?: string,
  is_external?: boolean,
  date_create?: number,
  date_update?: number,
  date_delete?: number,
  auto_type?: string | null,
  auto_provision?: boolean,
  enterprise_subteam_id?: string,
  created_by?: string,
  updated_by?: string,
  deleted_by?: string | null,
  prefs?: {
    channels?: string[],
    groups?: string[]
  },
  users?: string[],
  user_count?: number,
  channel_count?: number
}

enable

userGroups.enable Enable a user group Risk: write
await corsair.slack.api.userGroups.enable({});
Input
NameTypeRequiredDescription
userGroupstringYes
include_countbooleanNo
team_idstringNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
usergroupobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  team_id?: string,
  is_usergroup?: boolean,
  is_subteam?: boolean,
  name?: string,
  description?: string,
  handle?: string,
  is_external?: boolean,
  date_create?: number,
  date_update?: number,
  date_delete?: number,
  auto_type?: string | null,
  auto_provision?: boolean,
  enterprise_subteam_id?: string,
  created_by?: string,
  updated_by?: string,
  deleted_by?: string | null,
  prefs?: {
    channels?: string[],
    groups?: string[]
  },
  users?: string[],
  user_count?: number,
  channel_count?: number
}

list

userGroups.list List user groups in the workspace Risk: read
await corsair.slack.api.userGroups.list({});
Input
NameTypeRequiredDescription
include_countbooleanNo
include_disabledbooleanNo
include_usersbooleanNo
team_idstringNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
userGroupsobject[]No
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  team_id?: string,
  is_usergroup?: boolean,
  is_subteam?: boolean,
  name?: string,
  description?: string,
  handle?: string,
  is_external?: boolean,
  date_create?: number,
  date_update?: number,
  date_delete?: number,
  auto_type?: string | null,
  auto_provision?: boolean,
  enterprise_subteam_id?: string,
  created_by?: string,
  updated_by?: string,
  deleted_by?: string | null,
  prefs?: {
    channels?: string[],
    groups?: string[]
  },
  users?: string[],
  user_count?: number,
  channel_count?: number
}[]

update

userGroups.update Update a user group Risk: write
await corsair.slack.api.userGroups.update({});
Input
NameTypeRequiredDescription
userGroupstringYes
namestringNo
channelsstringNo
descriptionstringNo
handlestringNo
include_countbooleanNo
team_idstringNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
usergroupobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  team_id?: string,
  is_usergroup?: boolean,
  is_subteam?: boolean,
  name?: string,
  description?: string,
  handle?: string,
  is_external?: boolean,
  date_create?: number,
  date_update?: number,
  date_delete?: number,
  auto_type?: string | null,
  auto_provision?: boolean,
  enterprise_subteam_id?: string,
  created_by?: string,
  updated_by?: string,
  deleted_by?: string | null,
  prefs?: {
    channels?: string[],
    groups?: string[]
  },
  users?: string[],
  user_count?: number,
  channel_count?: number
}

Users

get

users.get Get info about a user Risk: read
await corsair.slack.api.users.get({});
Input
NameTypeRequiredDescription
userstringYes
include_localebooleanNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
userobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  team_id?: string,
  name?: string,
  deleted?: boolean,
  color?: string,
  real_name?: string,
  tz?: string,
  tz_label?: string,
  tz_offset?: number,
  profile?: {
    avatar_hash?: string,
    status_text?: string,
    status_emoji?: string,
    status_expiration?: number,
    real_name?: string,
    display_name?: string,
    real_name_normalized?: string,
    display_name_normalized?: string,
    email?: string,
    image_24?: string,
    image_32?: string,
    image_48?: string,
    image_72?: string,
    image_192?: string,
    image_512?: string,
    team?: string,
    title?: string,
    phone?: string,
    skype?: string,
    first_name?: string,
    last_name?: string
  },
  is_admin?: boolean,
  is_owner?: boolean,
  is_primary_owner?: boolean,
  is_restricted?: boolean,
  is_ultra_restricted?: boolean,
  is_bot?: boolean,
  is_app_user?: boolean,
  updated?: number,
  is_email_confirmed?: boolean,
  who_can_share_contact_card?: string,
  locale?: string
}

getPresence

users.getPresence Get the presence status of a user Risk: read
await corsair.slack.api.users.getPresence({});
Input
NameTypeRequiredDescription
userstringNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
presencestringNo
onlinebooleanNo
auto_awaybooleanNo
manual_awaybooleanNo
connection_countnumberNo
last_activitynumberNo
{
  next_cursor?: string,
  messages?: string[]
}

getProfile

users.getProfile Get a user profile Risk: read
await corsair.slack.api.users.getProfile({});
Input
NameTypeRequiredDescription
userstringNo
include_labelsbooleanNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
profileobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  avatar_hash?: string,
  status_text?: string,
  status_emoji?: string,
  status_expiration?: number,
  real_name?: string,
  display_name?: string,
  real_name_normalized?: string,
  display_name_normalized?: string,
  email?: string,
  image_24?: string,
  image_32?: string,
  image_48?: string,
  image_72?: string,
  image_192?: string,
  image_512?: string,
  team?: string,
  title?: string,
  phone?: string,
  skype?: string,
  first_name?: string,
  last_name?: string
}

list

users.list List all users in the workspace Risk: read
await corsair.slack.api.users.list({});
Input
NameTypeRequiredDescription
include_localebooleanNo
team_idstringNo
cursorstringNo
limitnumberNo
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
membersobject[]No
cache_tsnumberNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  id: string,
  team_id?: string,
  name?: string,
  deleted?: boolean,
  color?: string,
  real_name?: string,
  tz?: string,
  tz_label?: string,
  tz_offset?: number,
  profile?: {
    avatar_hash?: string,
    status_text?: string,
    status_emoji?: string,
    status_expiration?: number,
    real_name?: string,
    display_name?: string,
    real_name_normalized?: string,
    display_name_normalized?: string,
    email?: string,
    image_24?: string,
    image_32?: string,
    image_48?: string,
    image_72?: string,
    image_192?: string,
    image_512?: string,
    team?: string,
    title?: string,
    phone?: string,
    skype?: string,
    first_name?: string,
    last_name?: string
  },
  is_admin?: boolean,
  is_owner?: boolean,
  is_primary_owner?: boolean,
  is_restricted?: boolean,
  is_ultra_restricted?: boolean,
  is_bot?: boolean,
  is_app_user?: boolean,
  updated?: number,
  is_email_confirmed?: boolean,
  who_can_share_contact_card?: string,
  locale?: string
}[]

updateProfile

users.updateProfile Update the authenticated user’s profile Risk: write
await corsair.slack.api.users.updateProfile({});
Input
NameTypeRequiredDescription
profileobjectNo
userstringNo
namestringNo
valuestringNo
{
}
Output
NameTypeRequiredDescription
okbooleanYes
errorstringNo
neededstringNo
providedstringNo
response_metadataobjectNo
profileobjectNo
{
  next_cursor?: string,
  messages?: string[]
}
{
  avatar_hash?: string,
  status_text?: string,
  status_emoji?: string,
  status_expiration?: number,
  real_name?: string,
  display_name?: string,
  real_name_normalized?: string,
  display_name_normalized?: string,
  email?: string,
  image_24?: string,
  image_32?: string,
  image_48?: string,
  image_72?: string,
  image_192?: string,
  image_512?: string,
  team?: string,
  title?: string,
  phone?: string,
  skype?: string,
  first_name?: string,
  last_name?: string
}