One key challenge is backwards compatibility.
Another is identifying the client version making the API request.
And using a consistent version numbering format.
I am reminded of an often frustrating software incompatibility problem:
Your version 3.4.5LTS is not supported, version 3.3.0 or greater is required.
In this case the software could not evaluate if 5LTS >= 0.------------------------------
Brian LaVallee
INVITE Communications Co. Ltd
------------------------------