Versions

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.

Major Versions

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.

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 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:

  • 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: 20200519

All Minor Versions

  • 20200519
  • 20200317
  • 20160316
  • 20151202
  • 20151014
  • 20150824
  • 20150416
  • 20150406
  • 20150217
  • 20150106
  • 20141204
  • 20141114
  • 20141027
  • 20141014
  • 20140805

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.