OrgPulse

Salesforce API version retirement: find old integrations

API versions 21.0 to 30.0 were retired in Summer '25 and now fail outright. Versions 31.0 to 40.0 are unsupported from Summer '27 and retired in Summer '28, and SOAP login() is retired in Summer '27 even on recent versions. The free API Total Usage log shows who calls which version, but it keeps only 24 hours, so capture it daily.

Checked against Salesforce documentation on 11 October 2026.

What retired versions return

  • REST: 410 GONE
  • SOAP: 500 UNSUPPORTED_API_VERSION
  • Bulk: 400 InvalidVersion

Apex classes, Visualforce pages and Flow API versions are not affected; this is about clients calling Salesforce's APIs. Typical culprits are old Data Loader installs, Outbound Messaging set up before 2014, AJAX Toolkit pages and older third-party connectors.

What retires next

WhatWhen
API 31.0 to 40.0 unsupportedSummer '27
SOAP login() in API 31.0 to 64.0 retiredSummer '27
API 31.0 to 40.0 retiredSummer '28

Salesforce supports each version for at least three years and gives at least a year's notice before support ends. The SOAP login() retirement can be tested early from Release Updates; the replacement is an External Client App with an OAuth flow. Dates are on the Salesforce deadlines calendar.

Find the callers

  1. Setup, Event Monitoring, Event Log Browser. API Total Usage files cover the last 24 hours (30 days with Event Monitoring).
  2. Or query the log files and download them:
SELECT Id, LogFile, EventType, CreatedDate
FROM EventLogFile
WHERE EventType = 'ApiTotalUsage'

Each row has API_VERSION, CLIENT_NAME, CONNECTED_APP_NAME, USER_NAME and STATUS_CODE. Filter for versions 40.0 and below. Reading the logs needs the View Event Log Files and API Enabled permissions.

Also check Setup, Bulk Data Load Jobs (the API Version field) and Login History (API Type SOAP Enterprise or SOAP Partner, with its API Version column).

Fix it

  1. Raise the version in the client's endpoint (/services/data/vXX.X/).
  2. Upgrade Data Loader and connectors; ask vendors for their supported version.
  3. Update AJAX Toolkit paths and recreate very old Outbound Messages.
  4. Move SOAP login() integrations to an External Client App before Summer '27.

Common mistakes

  1. Checking the log once. The free log holds a day, so weekly and monthly jobs are missed unless it is captured every day.
  2. Assuming Apex class versions are in scope. They are not.
  3. Treating 31.0 to 40.0 as safe because the last retirement passed.
  4. Missing the SOAP login() retirement, which hits recent versions too.

Or let OrgPulse watch it

OrgPulse checks your org every day and alerts you by email or Slack before these dates arrive. It only reads your org, and the first org is free.

Sources

  1. Legacy API versions 21.0 to 30.0 retirement
  2. SOAP API login() in versions 31.0 to 64.0 is being retired (release update)
  3. REST API Developer Guide (API end-of-life policy), PDF
  4. Object Reference (EventLogFile and API Total Usage), PDF