Install component

View as MarkdownOpen in Claude
Installs a plugin or theme from the wordpress.org repository on the selection: one `manager.install` Site Action per accepted website. Body parameters: - `type` (string, required): `plugin` | `theme`. - `from` (string, required): only `repository` is accepted on this surface (`url`/`upload` answer 422). - `value` (string, max 200, required): the wordpress.org slug, as in its URL (e.g. `woocommerce`). - `sites` (integer array, required): exact ids, 1 to 200. - `activate` (boolean `1`/`0`, default `0`): activate right after installing. - `overwrite` (boolean `1`/`0`, default `0`): reinstall over an existing copy instead of skipping the website. - `clean_cache` (boolean `1`/`0`, default `0`): clear each website's cache after installing. 202 with the created `site-actions` documents under `data` and `meta.skipped`: one entry per website the preflight refused, `{site_id, site_name, site_action_id, reason_code, message}`. `site_action_id` is always null in these entries; `site_name` is null for `PERMISSION_DENIED`. A disconnected website answers `reason_code: SITE_UNREACHABLE`. `data: []` is still a 202. - **422**: `sites` missing/empty/over 200/unknown id; `from` other than `repository`; `value` not a slug wordpress.org resolves. - **403**: a read-only token.

Authentication

AuthorizationBearer

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

Request

This endpoint expects an object.
activatedoubleOptional
fromstringOptional
siteslist of doublesOptional
typestringOptional
valuestringOptional

Response

202 Accepted - one install launched, one website skipped

datalist of objectsOptional
jsonapiobjectOptional
metaobjectOptional