Versioning and compatibility
The /v1 contract
Section titled “The /v1 contract”All public MailerDash API endpoints live under the /v1/ prefix. This prefix represents the stable public contract: once an endpoint is documented under /v1/, we commit to not introducing breaking changes without a deprecation cycle.
Examples of changes that are not considered breaking (they are backward-compatible):
- Adding new optional fields to existing responses.
- Adding new endpoints.
- Adding new possible values to enums in non-critical fields.
- Changing human-readable error messages (the
messagefield).
Examples of changes that are breaking and would require /v2/:
- Removing or renaming existing response fields.
- Changing the type of a field (e.g. from string to array).
- Changing the semantics of an existing parameter.
- Modifying error codes (
type,code) in an incompatible way.
When /v2 appears
Section titled “When /v2 appears”A new /v2/ prefix is introduced only when breaking changes are necessary. There are no current plans to migrate to /v2/. When it happens, it will be announced in advance and both versions will coexist during the grace period.
Deprecation policy
Section titled “Deprecation policy”When an endpoint needs to change its path or behavior in a non-backward-compatible way, we follow this process:
- The new endpoint or behavior is published (with its new path or semantics).
- The previous endpoint is kept as a legacy alias — it continues working exactly as before.
- The alias is marked
deprecated: truein the OpenAPI spec (openapi.yaml). - Clients are notified of the grace period before the alias is removed.
Software version
Section titled “Software version”You can check the exact version of the software currently running in production at any time:
GET https://api.mailerdash.com/versionResponse:
{ "version": "0.11.22"}This endpoint is outside the /v1/ prefix and does not require authentication. The version follows SemVer: MAJOR.MINOR.PATCH.
There is also a health check endpoint:
GET https://api.mailerdash.com/healthReturns 200 OK when the server is active and operating normally.
OpenAPI spec versioning
Section titled “OpenAPI spec versioning”The openapi.yaml file is versioned alongside the software. You can access the interactive API reference at:
- /reference/transactional/ — transactional send endpoints
- /reference/bulk/ — campaign, contact, list, and sequence endpoints
- /reference/platform/ — keys, domains, webhooks, usage, suppressions
Summary
Section titled “Summary”| Concept | Policy |
|---|---|
| Stable prefix | /v1/ — does not change without a deprecation cycle |
| Breaking changes | Only under a new /v2/ prefix |
| Deprecation | Legacy alias + deprecated: true + grace period |
| Software version | GET /version (no auth) |
| Health check | GET /health (no auth) |