Assign websites to a malware scan configuration

View as MarkdownOpen in Claude
Assigns an explicit selection of websites to one Malware Scanner global configuration. Answers **200** with `meta.status` (`applied` when at least one website changed, `skipped` when none did), `meta.updated` and `meta.skipped`; the change is immediate, there is nothing to poll. **Body** (JSON): - `sites` (array of website ids, required, 1 to 200). What happens to each website: - A website with no Malware Scanner configuration gets this one; the scanning provider registers it in the background. A website that used another one moves to this one, taking the new tier; if it was already registered, its plan is pushed to the provider. - Every assigned website is left scanning **enabled**, even if it was paused. To move one website and keep it paused, use "Update malware scan service" instead. - Websites left out of the selection are never unassigned: a website leaves a configuration by moving to another one. - A website that already uses this configuration, or that the token cannot reach, is answered in `meta.skipped` with a `reason_code` (`ALREADY_APPLIED`, `PERMISSION_DENIED`) and a message instead of failing the call. `meta.updated` entries carry `site_id`, `site_name` and `site_preset_malware_scan_id`, the id "Show malware scan service" and "Update malware scan service" take. Requires a full-access token (read-only tokens answer 403). An id that is not a website answers 422.

Authentication

AuthorizationBearer

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

Path parameters

preset_malware_scanstringRequired

Request

This endpoint expects an object.
siteslist of doublesOptional

Response

200 - Websites assigned, one skipped

jsonapiobjectOptional
metaobjectOptional