Error reference
Every error is RFC-9457 problem+json; type is https://relmcrm.com/errors/<code>.
| code | status | meaning |
|---|---|---|
unauthorized | 401 | Missing or invalid API key. Send Authorization: Bearer relm_live_... (or relm_test_...). |
forbidden | 403 | This key is not permitted to perform that action. |
plan_limit | 403 | A plan cap was reached (e.g. Free allows 2 automations / 1 sequence). Upgrade to add more. |
not_found | 404 | No such record in this workspace and mode. |
validation_failed | 422 | The input was well-formed but invalid; see detail and field. |
unknown_value | 422 | A value is not in the live set. Read valid_options and either use a listed value or create it (POST /v1/enums, or relm_create_enum_value). |
unknown_field | 422 | An unrecognized top-level field. Read valid_options + suggestion, or register it as a custom field (POST /v1/fields) and send it under custom_fields. |
invalid_reference | 422 | A foreign-key field points at something that does not exist. Create it first, or pass an existing id in this workspace/mode. |
identifier_required | 422 | A contact needs at least one of email, phone or linkedin_url (or a name/company/custom field). |
conflict | 409 | A uniqueness conflict (e.g. a duplicate contact email — the existing record is returned). |
idempotency_key_reused | 409 | This Idempotency-Key was used with a different request body. |
idempotency_in_progress | 409 | A request with this Idempotency-Key is still processing. Retry shortly. |
version_conflict | 412 | The record changed since you read it. Re-fetch and reapply your change (optimistic concurrency via If-Match). |
bad_request | 400 | Malformed JSON or an unrecognized query parameter/filter (see valid_options). |
invalid_cursor | 400 | The pagination cursor is invalid. Restart the list without a cursor. |
rate_limited | 429 | Too many requests this minute. Back off and retry (see Retry-After). |
quota_exceeded | 429 | The monthly request quota was reached. Check GET /v1/usage; upgrade to continue. |
spend_cap_reached | 429 | The monthly overage spend cap was reached. Raise or clear it: PATCH /v1/settings {"overage_cap_usd": null}. |
payload_too_large | 413 | The request body exceeds the size limit. |
internal_error | 500 | An unexpected server error. Safe to retry; if it persists, contact support. |