Versioning

To support the ongoing development of the API whilst ensuring that existing clients have sufficient time to take advantage of improvements or make necessary changes, the API is versioned using a semantic versioning approach (see http://semver.org for background information). The version is specified as part of the URL used for API calls. For example:

https://api.englishlanguageitutoring.com/v2.3.0/account/YOUR_ACCOUNT_ID/text/1234/results

The version string takes the form vX.Y.Z where X is the major number, Y is the minor number and Z is the patch number. API versions with the same major number are compatible.

At any time, the latest and immediately previous major versions of the API will be available for use. For example, if the latest API version is v4.Y.Z, version v3.Y.Z will still be available.

Compatibility

Semantic versioning enables the introduction of changes in a controlled way and makes it clear whether changes are designed to be backwards compatible (meaning API client code changes should not be necessary when upgrading the API version being called), or whether changes break backwards compatibility (breaking changes mean API client code must be changed when upgrading the API version being called). However, it is possible to envisage that a particular change to the API could be classed as either a backwards-compatible change or a breaking change from the point of view of an API client, depending on the details of how the client is implemented. For greater clarity, various possible changes are outlined here and grouped into backwards-compatible or breaking changes.

Backwards-compatible changes

These would result in a new minor API release.

  • Addition of a new API endpoint
  • Addition of an optional attribute in a JSON request body
  • Addition of further possible string values for an attribute in a JSON response body
  • Addition of an attribute in a JSON response body

Breaking changes

These would result in a new major API release.

  • Removal of an API endpoint
  • Addition of a required attribute in a JSON request body
  • Removal of a non-optional attribute in a JSON response body
  • A change to the type or format of a value in a JSON request or response body
  • A change to the semantics of a value in a JSON response body, for example, if the CEFR score range changes from 0.0-13.0 to 0.0-25.0

Discovering supported versions

A versions endpoint is provided to enable programmatic determination of available versions. Unlike the other API endpoints, the versions endpoint does not need a version specified as part of the URL.

Request

Method and URI:

GET /account/ACCOUNT_ID/versions

Request parameters:

Parameter Required? Format Description
account_id Yes Your API account ID.

Response

HTTP status code: 200

Response body JSON:

{"type": "success", "code": 200, "versions": ["0.1.0", "0.2.0", "0.3.0", "1.0.0", "2.0.0", "2.1.0"]}

results matching ""

    No results matching ""