|
|
Image generated by ChatGPT 5.6 Sol based on a prompt by Bob Buzzard
Introduction
The Winter '27 Salesforce release includes a developer quality-of-life improvement, the option to always target the latest supported version of the REST API by using the alias latest in place of the explicit version number. For example, if I want to hit the latest version in my developer edition, rather than specifying API version 68.0 for Winter '27:
https://kabtutorial-dev-ed.my.salesforce.com/services/data/v68.0/sobjects/Account
I can use latest:
https://kabtutorial-dev-ed.my.salesforce.com/services/data/latest/sobjects/Account
No more updating the REST API versions of my integrations every 4 months just to keep them on the latest version, and I can stop worrying about API version retirement as I'll always be on the latest and greatest. What's not to like?
Convenience versus Control
There's no argument that this is more convenient. My integrations automatically use whatever Salesforce considers current, no action required. This also represents a loss of control though, as my integrations automatically use whatever Salesforce considers current. Even if that causes problems.
My code remains the same, but a dependency changes underneath it, for good or bad. In a few months time latest will mean v69.0 whether I'm ready for it or not. This doesn't mean that I'd expect failure, but new API versions can introduce behavioural differences, new fields, updated metadata, which an integration may not be able to handle. The key point is that I've surrendered control over when I consume the new version.
When I use a fixed API version, upgrading is a planned event with testing. When I use latest, the upgrade comes as part of the release and the effort moves to my release preview testing. The responsibility to test still lies with me, all I've handed off is the decision to upgrade.
When latest is greatest
Salesforce's recommendation is to use a fixed API version for production integrations dependent on a specific contract, while scripts and internal tools can work with latest. If this sounds like common sense, that's because it is. If your integration depends on something not changing, then don't allow that dependency to change!
Fixed is the safe option?
Fixed certainly gives more control, but it can't really be described as truly safe. Once API v68.0 (Winter '27) went live, it actually impacted all earlier API versions. If you have an integration fixed at API v67.0 (Summer '26), Salesforce doesn't spin up a frozen-in-time Summer '26 release for you to work against. You hit the current, Winter '27, version of the platform which implements backward compatibility to preserve the contracted behaviour of API v67.0/Summer '26. So even if your REST API version doesn't change, the Salesforce platform you depend on does, and you should still regression test accordingly.
Of course not many of us formally carry out this regression testing in preview sandboxes every release. Some of that is because Salesforce carry out extensive testing themselves, and they've got a good track record so we just trust them to get it right. Most of it, in my view anyway, is complacency! Salesforce releases don't feel like that kind of change - they are more like infrastructure maintenance than an application upgrade. Plus regression testing is expensive, and if nothing broke in the last 10 years it's easy to get lulled into a false sense of security?
Conclusion
So to sum up, feel free to use latest for things that aren't critical, but it's best to stick with fixed API versions for things that are critical. And if those things really are critical, make sure you regression test them every release regardless of which version they target.








