API Docs

Changelog & versioning

The API is versioned by date. Your integration is pinned to a single date-stamped version. We won't change anything about that version's behaviour without you opting in.

How versioning works

The version pinned to your integration is visible at Settings → API version and on every response as the X-API-Version header. It's also embedded in every webhook event:

{
  "id": "evt_…",
  "object": "event",
  "type": "listing.published",
  "api_version": "2026-05-07",

}

Newly-created integrations always pin to the latest dated version at creation time. To roll an existing integration forward (to opt into breaking changes from a newer version), email support@watchtraderhub.com. We don't auto-roll because we don't want to break your production integration on our schedule.

X-API-Version is response-only

You do not need to send X-API-Version on outbound requests; we do not read it. Version pinning happens at integration creation time and is enforced server-side. The header on every response and on every webhook envelope's api_version field is the canonical value, set entirely by us. Send the header defensively if you like (some integrators do for forward-compat breadcrumbs), but it has no effect.

What counts as a breaking change

Breaking changes (mint a new dated version):

  • Removing an endpoint, field, or event type.
  • Renaming an endpoint, field, or event type.
  • Tightening a validation rule (a payload that used to be accepted is now rejected).
  • Changing the meaning of a field, e.g. a status enum value being repurposed.
  • Changing the algorithm of webhook signing or any header format.
  • Changing the cursor format or pagination semantics.

Non-breaking changes (ship continuously, pinned versions automatically benefit):

  • Adding a new endpoint.
  • Adding a new optional field to a request body.
  • Adding a new field to a response body.
  • Adding a new event type. Existing subscriptions still apply; the wildcard * picks it up.
  • Adding a new error code (existing codes keep their meaning).
  • Improving error message wording.

Match codes, not messages

We only consider error.code values part of the contract. error.message wording can change at any time in the name of better diagnostics. Branch on code.

Versions

2026-05-07

Current

Initial public release of the Custom Integration API. Includes the full REST surface (listings, customers, orders, integration metadata, test utilities) and the outbound webhook surface (10 event types, HMAC-SHA256 signing, retry + replay + dead-letter).