All help articles

Versions: what is running

The release

Every build carries a release number from the VERSION file (such as 0.5.0), the git commit it was built from (with -dirty when it had uncommitted changes) and when it was built. See it with:

corpsuited version            # corpsuited 0.5.0 (99fe9ecae878, built 2026-10-08T02:01:22Z)
curl -s https://mail.example.com/api/version

The server also logs it at start-up, with the database schema. The admin panel shows it in the top bar and webmail at the bottom of Settings.

Releases follow semantic versioning: the patch number for fixes, the minor number for new features, and the major number for changes that need action when upgrading (they are called out in the changelog). Until 1.0 the minor number can also carry such changes.

GET /api/version

{
  "version": "3f9a1c2b4d5e",
  "release": "0.5.0",
  "commit": "99fe9ecae878",
  "built": "2026-10-08T02:01:22Z",
  "schema": "0025_signin_host",
  "interfaces": { "adminApi": "1.5.0", "teamApi": "1.5.0", "webmailApi": "1.6.0", "signupApi": "1.1.0", "jmap": "RFC 8620, RFC 8621" }
}

The API-Version header

Every answer from an API also says which interface and version gave it, in an API-Version header, errors included, so any call to a live server shows what it runs:

curl -sI https://mail.example.com/v1/tenants | grep -i api-version   # API-Version: admin 1.5.0
PathsHeader
/v1/...admin and the admin API version
/api/mail/...webmail and the webmail API version
/api/signup..., /api/join/...signup and the signup API version
/jmap..., /.well-known/jmapjmap RFC 8620, RFC 8621

Web pages and assets do not carry it; /api/version has everything at once.

The mail protocols (SMTP, IMAP, ManageSieve) do not announce the release, so strangers cannot tell which version a server runs.