As time passes and we upgrade and change our systems it becomes nesssery to make backwards incompatible changes to the api endpoints. So that we do not break your clients without notice the api supports versioning, this allows you to fix your client to a specific version so the behaviour remains consistent.
The major version is defined as part of the endpoints URI, E.g. /api/v1/oauth2/user/whoami, this should very rarely change. Ommiting the v1 part from the URI will default to the first version: 1.0.
The minor version is date based E.g. 20140101, new minor versions will be created whenever we release backwards incompatible changes.
To specify a minor version your client needs to send the version number in the dA-minor-version request header. If the header is not sent by default we return the latest version.
Example minor version request
GET /api/oauth2/user/whoami HTTP/1.1 User-Agent: curl/7.30.0 Host: www.deviantart.com dA-minor-version: 20140101
It is advised that before you release your app to the public, you set the minor version so that your client will continue working as new versions are released.
We only release new versions when we make some kind of backward incompatible change, however this does NOT mean that the request and response will remain exactly the same over time. Any backwards compatible change will be released without a version being created. We consider the following to be backwards compatible:
The current major version is: 1
The current minor version is: 20200519
All Minor Versions
Before May 2014 the API did not support versioning, with the release of the new versioning system older clients will be locked to V1.0.
If your client does not include the major version (E.g. /v1/) in the URI of the endpoint, your client will be automatically locked to V1.0 and the API will return legacy (pre versioning May 2014) errors and responses.