Sync contacts

View as MarkdownOpen in Claude
Associates an explicit selection of Contacts with the configuration; adds to the existing selection, never removes one. Answers **200** with `meta.status`, `meta.updated` and `meta.skipped`, the same shape as \"Sync websites\" but the rows carry `contact_id` and no website (`site_id`/`site_name` are `null`).\n\n**Body** (JSON):\n- `contacts` (array of Contact ids, required, 1 to 50), validated for existence only - a Client id fails, exactly like the dashboard's replacement.\n\nA Contact already associated is answered in `meta.skipped` with `reason_code` `ALREADY_APPLIED`.\n\nRequires a full-access token (read-only tokens answer 403). Body validation runs before authorization: a foreign configuration with an invalid body (e.g. missing `contacts`) answers 422; only a foreign configuration with a valid body answers 404.

Authentication

AuthorizationBearer

Personal access token created in the Modular DS dashboard; read-only tokens can only call GET endpoints.

Path parameters

alert_idstringRequired

Response

200 - Contact added, one skipped

jsonapiobjectOptional
metaobjectOptional

Errors

422
Unprocessable Entity Error