https://api.indm.social/v1. Everything in these docs is v1.
Within v1, changes only add
Code you write againstv1 today keeps working. Within v1 we may:
- add endpoints
- add optional request fields
- add fields to responses
- add error codes, and caveat codes on write responses
- add values to fields documented as open, such as
reasonon an account
v1:
- remove or rename an endpoint, a field or an error code
- change a field’s type or meaning
- make an optional request field required
- reuse a code for a different reason
Build for additions
A few habits keep an integration steady as the API grows:- Ignore fields you don’t know. Don’t fail on an unexpected key in a response.
- Branch on
code, fall back ontype. An error code you’ve never seen still has atypethat tells you the status and the right response. See Errors. - Treat
messagetext as words, not data. It’s written for people and may be reworded.
Breaking changes
A change that would breakv1 ships as a new version in a new path, and the changelog announces it before it arrives.
Every change, additive or not, is recorded on the changelog.