DMLY uses conventional HTTP status codes. Anything in the 2xx range succeeded; 4xx
means the request was wrong; 5xx means something broke on our side.
Every error returns the same envelope:
Validation errors add a per-field breakdown:
Status codes
A note on 404
The API is workspace-scoped by the key. A resource that exists but belongs to a different
workspace returns 404, not 403 — from your key’s point of view it genuinely does not
exist. If you are certain an id is valid and still get 404, you are almost always using a
key from the wrong workspace.
Retrying safely
GET and DELETE are idempotent — retry freely.
POST is not. A create that times out may still have succeeded, so a blind retry can
produce a duplicate. When retrying a POST, search for the record first, or key off
something unique (a contact’s phone number) to check before recreating.
Retry 429 and 5xx with exponential backoff. Never retry 401, 403, or 422 — the
same request will fail identically every time.