Versioning
Versions
As time passes and we upgrade and change our systems it becomes necessary 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.
Major Versions
The major version is defined as part of the endpoint's URI, e.g. /api/v1/oauth2/user/whoami. This should very rarely change. Omitting the v1 part from the URI will default to the first version: 1.0.
Minor Versions
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.
Backwards Compatibility
We only release new versions when we make some kind of backwards-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:
- Adding new endpoints
- Adding optional request parameters
- Adding response properties
- Changing response property order
- Removing response properties documented as optional
Available Versions
The current major version is: 1
The current minor version is: 20240701
All Minor Versions
2024070120210526202005192020031720160316201512022015101420150824201504162015040620150217201501062014120420141114201410272014101420140805
Migration
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.
Updated 18 days ago
