API changelog
Last updated 2026-11-02What changed in the HyperDM API, newest first. Anything being retired is announced here, under the deprecation policy.
The API isn't open to every workspace yet. It's switched on one workspace at a time, and there's no public sign-up. Where it's on, the workspace's owner and admins see Developers under Settings.
Policy
This changelog and a written deprecation policy
The API now has a public record of what changed and a written promise about how anything gets retired. No endpoint changed.
Changed
start_refused can mean a WhatsApp message may have arrived
When HyperDM can't confirm whether a WhatsApp first message reached the person, a start answers 422 start_refused and the message says so. It is never sent again, so check the conversation before starting that automation for them again.
POST /api/v1/automations/{id}/starts
Changed
Email addresses left the contacts list
An email address now lives under the person it was captured from, so GET /contacts leaves those rows out and a page is always that many people. channel=email on GET /contacts or GET /automations answers 400 invalid_request rather than an empty list.
GET /api/v1/contactsGET /api/v1/automations
Added
Version 1 of the API
API keys and installable apps with OAuth 2.0 authorization code, plus contacts, tags, custom fields and live automations. Read and change permissions are separate. Errors share one shape with a request id, lists use cursors, and writes take an Idempotency-Key (required on automation starts).
GET /api/v1/meGET /api/v1/contactsGET /api/v1/contacts/{id}PATCH /api/v1/contacts/{id}/fieldsPOST /api/v1/contacts/{id}/tagsDELETE /api/v1/contacts/{id}/tags/{tag_id}GET /api/v1/tagsPOST /api/v1/tagsGET /api/v1/fieldsPOST /api/v1/fieldsGET /api/v1/automationsPOST /api/v1/automations/{id}/starts