# Legacy APIs and terms versus current equivalents

*Slack Developer Study Guide · Design Your Workflows: Spotlight on Slack's APIs · Last updated October 21, 2026 · https://www.certifyforce.com/study-guide/slack-developer/design-your-workflows-spotlight-on-slacks-apis/legacy-apis-and-terms-versus-current-equivalents*

How to recognise legacy Slack platform language and replace it: Conversations API instead of channels/groups/im/mpim methods, Events API or Socket Mode instead of RTM, granular bot scopes and xoxb tokens instead of custom bots, the umbrella bot scope and workspace tokens, plus as_user, ID prefixes, files.upload, Steps from Apps and exam-era product names.

- Certification: Salesforce Slack Developer
- Exam section: Design Your Workflows: Spotlight on Slack's APIs
- Study guide: https://www.certifyforce.com/study-guide/slack-developer

**Official exam objective:**

> Differentiate between current Slack terms and legacy language in the APIs.

## What the exam expects

- Replace `channels.*`, `groups.*`, `im.*` and `mpim.*` methods with their `conversations.*` equivalents.
- Flag the RTM API, workspace apps and workspace tokens, legacy custom bots, the umbrella `bot` scope and legacy token-generator tokens as legacy, and name the current replacement.
- Remove legacy arguments such as `as_user` and stop inferring privacy from channel ID prefixes.
- Replace retired features: `files.upload` with the external upload methods, Steps from Apps with custom workflow steps.
- Translate exam-era names (Enterprise Grid, Slack App Directory) into current ones (Enterprise org, Slack Marketplace).

Key terms: **legacy** (still documented, expected to be deprecated), **deprecated** (scheduled to stop), **retired** (no longer works), **classic app** (an app on the old, non-granular scope model), **granular bot scopes** (individual permissions such as `chat:write` on an `xoxb-` token), **Conversations API** (the unified `conversations.*` family).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Workspace apps | Deprecated and retired; tokens not for new apps | [Legacy APIs, features, and frameworks](https://docs.slack.dev/legacy/) |
| History of any channel type | `conversations.history` | [Using the Conversations API](https://docs.slack.dev/apis/web-api/using-the-conversations-api) |
| Shared channel IDs | Prefix can change, G to C | [Using the Conversations API](https://docs.slack.dev/apis/web-api/using-the-conversations-api) |
| RTM API | Not usable by granular permission apps | [Legacy RTM API](https://docs.slack.dev/legacy/legacy-rtm-api) |
| Legacy custom bots | Stopped working March 31, 2025 | [Legacy custom bots and classic apps changelog](https://docs.slack.dev/changelog/2024-09-legacy-custom-bots-classic-apps-deprecation) |
| Classic apps | No new ones since June 2024; stop working November 16, 2026 | [Legacy custom bots and classic apps changelog](https://docs.slack.dev/changelog/2024-09-legacy-custom-bots-classic-apps-deprecation) |
| Umbrella `bot` scope | Legacy bot tokens only; use granular `xoxb-` tokens | [Tokens](https://docs.slack.dev/authentication/tokens/) |
| `as_user` | Legacy, classic apps only | [chat.postMessage method](https://docs.slack.dev/reference/methods/chat.postMessage) |
| `files.upload` | Sunset November 12, 2025 | [files.upload method](https://docs.slack.dev/reference/methods/files.upload) |
| Steps from Apps | Retired September 26, 2024 | [Workflow Steps from Apps step back](https://docs.slack.dev/legacy/legacy-steps-from-apps/) |

## Check yourself

- Why is a legacy feature the wrong answer even when it still runs?
- When can an app use the RTM API?
- Which methods replace `files.upload`?
- Why should code read `is_private` instead of the channel ID prefix?
- What replaced Steps from Apps?

## Sources

- [Legacy APIs, features, and frameworks](https://docs.slack.dev/legacy/)
- [Discontinuing support for legacy custom bots and classic apps](https://docs.slack.dev/changelog/2024-09-legacy-custom-bots-classic-apps-deprecation)
- [Legacy bot users](https://docs.slack.dev/legacy/legacy-bot-users/)
- [Legacy RTM API](https://docs.slack.dev/legacy/legacy-rtm-api)
- [Tokens](https://docs.slack.dev/authentication/tokens/)
- [Using the Conversations API](https://docs.slack.dev/apis/web-api/using-the-conversations-api)
- [Pagination](https://docs.slack.dev/apis/web-api/pagination)
- [chat.postMessage method](https://docs.slack.dev/reference/methods/chat.postMessage)
- [files.upload method](https://docs.slack.dev/reference/methods/files.upload)
- [Workflow Steps from Apps step back](https://docs.slack.dev/legacy/legacy-steps-from-apps/)
- [Workflow steps](https://docs.slack.dev/workflows/workflow-steps)
- [Enterprise Organizations](https://docs.slack.dev/enterprise/)
- [Slack Marketplace review process](https://docs.slack.dev/slack-marketplace/slack-marketplace-review-guide)
- [Using Socket Mode](https://docs.slack.dev/apis/events-api/using-socket-mode/)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 5 linked practice questions, and unlimited timed mock exams are included with the Slack Developer pack (USD $19): https://www.certifyforce.com/practice-exams
