Versioning policy
What changes in v1, and how we deprecate.
Version in the path
The API lives under /v1. A version number appears only in the path, never in a header or parameter.
What stays the same within v1
Changes to v1 are additive only. We may add:
- new endpoints
- new optional request fields
- new fields in responses
- new error codes within an existing status
We will not remove or rename a field, change a type, make an optional field required or change a status code in v1. Write your client to ignore response fields it does not know.
Breaking changes
A breaking change ships as /v2, alongside v1. When we deprecate a version, every response from it carries:
Deprecation: the version is deprecated.Sunset: the date it stops working.Link: a link to the migration guide, withrel="deprecation".
A path with a version we do not have returns 404 with the code unknown_api_version.
Where things live
Each service has its own host. The host and path of these are permanent and do not change with the API version:
- API:
https://api.virdify.com. All endpoints are under/v1. - Badges and verification pages:
https://badger.virdify.com/badge/*andhttps://badger.virdify.com/v/*. Badges are embedded on other people's pages, so these URLs never move. - Sign-in and dashboard:
https://badger.virdify.com/loginandhttps://badger.virdify.com/dashboard. - Documentation:
https://docs.virdify.com, including/llms.txtand/changelog.
The machine-readable description of v1 is at https://api.virdify.com/v1/openapi.json, and every change is in the changelog.