Guidance

Our responsibilities

These are the responsibilities we take on as the host of our APIs. We commit to:

  • Not make breaking changes without giving due notice (examples below)

  • Give at least 60 days notice of any upcoming breaking change, the end of which will include a period of at least 30 days where the old and new request structure will both work. In the rare event that we cannot keep to these timescales we will get in touch with you directly

  • Use standard HTTP response codes

  • Ensure that our APIs conform to the documentation that has been shared with you

Your responsibilities

These are the behaviours we expect you to stick to as the consumer of our APIs:

  • Give us least 60 days notice of any upcoming breaking change, the end of which will include a period of at least 30 days where the old and new request structure will both work. In the rare event that you cannot keep to these timescales please let us know

  • Use standard HTTP response codes

  • Ensure that your APIs conform to the documentation that has been shared with you

  • Allow non-breaking changes (examples below)

  • Tell us as soon as possible if you’re having a problem with one of our APIs, this includes problems such as:

    • Being unable to connect to our API

    • Being unable to process responses from our API

    • Getting errors from our API

  • Honour standard HTTP response codes (e.g. following redirects)

  • Get in touch with our support/dev team before making any significant change to your usage pattern (e.g. you intend increase the amount of data you are sending us by an order of magnitude)

Recommendations

We recommend that you:

  • Re-use access tokens; they’re valid for 12 hours

  • Retry failed requests if you want them to be actioned

    • e.g. network errors, HTTP 429, HTTP 5xx

  • Implement monitoring on your integration with our APIs

Examples of breaking changes

  • Addition of a new required parameter

  • Removal of an existing endpoint

  • Removal of any field in the response (either required or optional)

  • Removal of a query parameter

  • Restructuring of the input or output format, for example:

    • Making a top-level field a sub-field

    • Changing the location of errors to be in-line

  • Changing the name or data type of an existing input parameter or output value

  • Changing the name of a field

  • Changing the resource name

  • Changing a response code

  • Changing error types

  • Changes to existing permission requirements

Examples of non-breaking changes

  • Addition of a new endpoint

  • Addition of a new optional parameter on an endpoint

  • Addition of a new field in a response

  • Reordering of fields in a response

  • Changing text in error messages

Last updated