Changelog
Changes to the Public API (/v1) and the Partner API (/partner/v1). From 1.0.0 on, /v1 changes only by adding: new
endpoints, new optional request fields, new response fields, new enum values, new error codes and new event types. Anything
that would break a working integration waits for /v2. A field or endpoint that will be removed in /v2 is announced here
first, with a Deprecation and Sunset header on its responses.
1.0.0#
The first stable contract. The OpenAPI documents say info.version: 1.0.0, and the official packages that match it are
mycomm/mycomm-php 1.0.0, mycomm/mycomm-laravel 1.0.0 and @mycomm/connect 1.0.0.
What the contract is, in short:
- Requests. JSON with
Content-Type: application/json(415 UNSUPPORTED_MEDIA_TYPEotherwise), at most 1 MB; an emptyPOSTbody counts as{}. Unknown request fields are ignored. EveryPOSTtakes anIdempotency-Key. - Errors. One envelope,
{"error": {"code", "message", "details", "request_id", "doc_url"}}, with a fixed status per code and typeddetails. Branch oncode, never onmessage. The full list is the error reference. - Keys.
mc_live_andmc_partner_tokens with a checksum, so a mistyped key fails at once and secret scanners can recognise one. Keys can be rotated with a grace period (POST /v1/api-keys/{id}/rotate). - Webhooks. Every event carries
api_versionand a typedtype; signatures areMyComm-Signature: t=...,v1=...over<t>.<raw body>. The event catalogue lists every event with a sample payload. - Responses. Clients ignore response fields, enum values and error codes they do not know; the API only adds them within
v1.
Before 1.0.0#
The contract changed freely while it was a release candidate (1.0.0-rc.N), without aliases or deprecation windows. Those
changes are not listed here; an integration built against a release candidate should be checked against the
API reference and moved to the 1.0.0 packages.