Updatesapi-slack

Slack Web API: 62 Breaking Changes in Channels.Archive, Channels.Create

3f1e8b4a0385dfea73e06d14Verified February 22, 2026

```mdx

TL;DR

  • All 15 channels.* API paths have been removed from the spec without a prior deprecation notice, meaning any code still calling these endpoints will break immediately.
  • The entire groups. family (16 endpoints) and all im. / mpim. conversation endpoints have been similarly hard-removed, completing the long-running consolidation into the conversations. namespace.
  • 34 new feature-level changes accompany the removals, spread across admin.conversations., calls., and workflow endpoints — so this is not purely a cleanup release.
  • No grace period or deprecation phase was observed in the diff; the paths are gone from the OpenAPI spec as of commit dfea73e06d14, which means client libraries that auto-generate from this spec will stop emitting these methods on next regeneration.
  • Endpoints such as /oauth.access, /migration.exchange, /users.lookupByEmail, and /workflows.stepCompleted are also touched, so the impact extends beyond channel management code.
  • Editor's Note: We want to be direct: removing 62 endpoints without a deprecation phase is an unusually abrupt move, even for a platform that has been nudging developers toward conversations.* for years. This diff represents the formal spec-level conclusion of a migration that Slack has communicated informally for some time, but the lack of a deprecation marker in the spec itself means automated tooling will not warn you — it will simply stop generating the old methods. Our practical tip: run grep -r "channels\.\|groups\.\|im\.\|mpim\." your-codebase/ right now and triage the results before your next dependency update pulls in a regenerated client.

    ---

    What Changed

    #### Breaking

    All 62 breaking changes share the same pattern: api path removed without deprecation. They fall into four legacy namespace families:

    *channels. — 15 endpoints removed**

    The following paths no longer exist in the spec:

    | Removed Path | Conversations Replacement |

    |---|---|

    | /channels.archive | /conversations.archive |

    | /channels.create | /conversations.create |

    | /channels.history | /conversations.history |

    | /channels.info | /conversations.info |

    | /channels.invite | /conversations.invite |

    | /channels.join | /conversations.join |

    | /channels.kick | /conversations.kick |

    | /channels.leave | /conversations.leave |

    | /channels.list | /conversations.list |

    | /channels.mark | /conversations.mark |

    | /channels.rename | /conversations.rename |

    | /channels.replies | /conversations.replies |

    | /channels.setPurpose | /conversations.setPurpose |

    | /channels.setTopic | /conversations.setTopic |

    | /channels.unarchive | /conversations.unarchive |

    The channels. namespace originally referred only to public channels. The conversations. equivalents handle public channels, private channels, DMs, and group DMs under a unified model — which is why the migration matters beyond a simple rename.

    *groups. — 16 endpoints removed**

    /groups.archive, /groups.create, /groups.createChild, /groups.history, /groups.info, /groups.invite, /groups.kick, /groups.leave, /groups.list, /groups.mark, /groups.open, /groups.rename, /groups.replies, /groups.setPurpose, /groups.setTopic, and /groups.unarchive are all gone. The groups. namespace historically mapped to private channels; conversations. with is_private: true is the current equivalent.

    *im. — 6 endpoints removed**

    /im.close, /im.history, /im.list, /im.mark, /im.open, and /im.replies are removed. These covered 1:1 direct messages; /conversations.* with is_im: true replaces them.

    *mpim. — 5+ endpoints removed**

    /mpim.close, /mpim.history, /mpim.list, /mpim.mark, and /mpim.open (and /mpim.replies) are removed. Multi-party DMs are now addressed via /conversations.* with is_mpim: true.

    Additional breaking removals

    Several endpoints outside the four legacy families are also affected in this diff, including /chat.meMessage, /oauth.access, /migration.exchange, /pins.add, /pins.list, /pins.remove, /reminders.add, /stars.remove, /users.setPhoto, and /admin.users.session.invalidate. The exact nature of each change (field removal vs. full path removal) should be confirmed against the full diff linked in Verification.

    ---

    #### Feature

    34 feature-level changes are recorded across the following resource groups:

    *admin.conversations.** — Endpoints including /admin.conversations.archive, /admin.conversations.convertToPrivate, /admin.conversations.create, /admin.conversations.delete, /admin.conversations.disconnectShared, /admin.conversations.ekm.listOriginalConnectedChannelInfo, /admin.conversations.getConversationPrefs, /admin.conversations.getTeams, /admin.conversations.invite, /admin.conversations.rename, /admin.conversations.restrictAccess.addGroup, /admin.conversations.restrictAccess.listGroups, /admin.conversations.restrictAccess.removeGroup, /admin.conversations.search, /admin.conversations.setConversationPrefs, and /admin.conversations.unarchive all received additions. These endpoints serve workspace admins managing channels at scale, and the additions likely reflect expanded parameter support or new response fields that enable finer-grained control.

    *admin.usergroups.** — /admin.usergroups.addChannels, /admin.usergroups.addTeams, /admin.usergroups.listChannels, and /admin.usergroups.removeChannels have feature additions, extending the surface area for programmatic user group management.

    *calls.** — /calls.add, /calls.end, /calls.info, /calls.participants.add, /calls.participants.remove, and /calls.update received feature changes, suggesting expanded capabilities for third-party call integrations.

    *workflows.** — /workflows.stepCompleted, /workflows.stepFailed, and /workflows.updateStep have additions, relevant to developers building Workflow Builder steps.

    Other/apps.event.authorizations.list, /conversations.create, /conversations.mark, /users.lookupByEmail, /users.profile.get, and /users.profile.set also carry feature-level changes.

    ---

    Who's Impacted

    If you are calling any channels., groups., im., or mpim. endpoint directly via HTTP or through a client library generated from the Slack OpenAPI spec, your integration will receive errors or your generated client will lose those methods on the next regeneration.

    If you use an auto-generated SDK that is rebuilt against this spec version, you may lose method stubs silently — no compile-time error will surface in dynamically typed languages, making runtime failures the first signal.

    If your application manages workspace channels through the admin.conversations.* family, you may gain access to new parameters or response fields introduced by the 34 feature additions, and reviewing the updated schema is worthwhile before your next release.

    If you build Workflow Builder steps using /workflows.stepCompleted, /workflows.stepFailed, or /workflows.updateStep, the feature changes in this diff could affect the shape of payloads your step handler sends or receives.

    If your app calls /oauth.access for the legacy OAuth v1 flow, this endpoint appears in the affected resources list and warrants immediate review to confirm whether the path itself or specific fields have changed.

    ---

    Action Checklist

  • ☐ Search your codebase for all references to channels.archive, channels.create, channels.history, channels.info, channels.invite, channels.join, channels.kick, channels.leave, channels.list, channels.mark, channels.rename, channels.replies, channels.setPurpose, channels.setTopic, and channels.unarchive
  • ☐ Replace each channels. call with its conversations. equivalent, updating any channel-type filtering logic (e.g., exclude_archived, types parameter)
  • ☐ Search for all groups. references and map them to conversations. calls, using is_private: true or the types=private_channel filter where needed
  • ☐ Replace im. calls with conversations. equivalents, filtering by is_im: true or types=im as appropriate
  • ☐ Replace mpim. calls with conversations. equivalents, filtering by is_mpim: true or types=mpim
  • ☐ Audit any SDK or client library that auto-generates from the Slack OpenAPI spec and pin the spec version until your migration is complete
  • ☐ Verify whether your use of /oauth.access is affected; if you are on the legacy OAuth v1 flow, cross-reference the diff to confirm field-level vs. path-level changes
  • ☐ Check /chat.meMessage usage in your app and confirm whether the endpoint path or its request/response schema changed
  • ☐ Review /migration.exchange calls if your app handles user ID migration between workspaces
  • ☐ Audit /pins.add, /pins.list, and /pins.remove integrations against the updated spec
  • ☐ Confirm /reminders.add behavior has not changed in ways that affect your reminder creation logic
  • ☐ Investigate /stars.remove changes if your app manages starred items on behalf of users
  • ☐ Review /users.setPhoto if your app programmatically sets user profile photos
  • ☐ Check /admin.users.session.invalidate if your admin tooling manages user sessions
  • ☐ Pull the updated schema for all admin.conversations.* endpoints and diff against your current integration to identify new optional or required fields
  • ☐ Review admin.usergroups.* additions to determine whether new parameters improve your user group management workflows
  • ☐ Examine calls.* feature additions if your app integrates third-party calling; new fields in /calls.add or /calls.update may be relevant
  • ☐ Update Workflow Builder step handlers to account for any payload shape changes in /workflows.stepCompleted, /workflows.stepFailed, and /workflows.updateStep
  • ☐ Review /apps.event.authorizations.list changes if your app queries event authorization data
  • ☐ Check /users.lookupByEmail, /users.profile.get, and /users.profile.set for new or removed fields that your user management code depends on
  • ☐ Update integration tests to assert against the conversations.* endpoints rather than the removed legacy paths
  • ☐ Add monitoring or alerting for method_not_found or unknown_method error codes from the Slack API as a canary for any missed migration points
  • ☐ Communicate the timeline of this migration to any downstream consumers of your Slack integration (e.g., internal teams using your bot)
  • ☐ Document which conversations.* parameters map to the legacy channel-type semantics your app relied on, so future maintainers understand the substitution
  • ☐ Re-run your full test suite against the Slack API after completing migrations to confirm no residual calls to removed endpoints remain
  • ---

    Verification

  • Commit dfea73e06d14 — [https://github.com/slackapi/slack-api-specs/commit/dfea73e06d146c368d7f94b52ac90796dc4e27e1](https://github.com/slackapi/slack-api-specs/commit/dfea73e06d146c368d7f94b52ac90796dc4e27e1)
  • Slack Web API Spec Diff (3f1e8b4a0385 → dfea73e06d14) — [https://github.com/slackapi/slack-api-specs/compare/3f1e8b4a03855cb29cffbfcaf60195e5867780ea...dfea73e06d146c368d7f94b52ac90796dc4e27e1](https://github.com/slackapi/slack-api-specs/compare/3f1e8b4a03855cb29cffbfcaf60195e5867780ea...dfea73e06d146c368d7f94b52ac90796dc4e27e1)
  • _Last verified: 2026-02-22T07:02:56Z_

    ```

    📎 Sources