Skip to main content
MainWP Dashboard 6.3 registers 14 update management abilities into the WordPress Abilities API framework. These enable programmatic control over WordPress core, plugin, theme, and translation updates across your network.

What You’ll Learn

  • Listing available updates across all sites
  • Applying WordPress core, plugin, theme, and translation updates
  • Managing ignored updates
  • Batch update operations

Confirmation and Update Holds in 6.3

run-updates-v1, update-all-v1, and the four update-site-* abilities require either dry_run: true to preview or confirm: true to execute. A call with neither returns mainwp_confirmation_required with HTTP 400. Do not set both flags to true. Preview first, review the returned sites and update plan, then submit the same selection with confirm: true. A direct Abilities API request uses these flags; the separate one-time confirmation token used by MainWP MCP belongs to the MCP server’s confirmation flow. Previews return dry_run, would_affect, count, warnings, and errors. Confirmed immediate responses include dry_run: false, skipped, and summary.total_skipped. Inspect both errors and skipped; a successful HTTP request does not mean every update was installed. Queued responses return a job ID for status polling. These abilities respect site-level and global update holds. Pending items blocked by a hold appear as skipped, and queued jobs recheck holds, site access, and the job owner’s operation permissions when they execute. Translation updates also respect the site’s translation ignore setting. Adding an update hold remains available through the ignore abilities. Removing a site’s own holds uses the new mainwp/unignore-site-updates-v1 ability with preview or confirmation. The older action: unignore and action: remove paths return an error directing you to that ability.

mainwp/list-updates-v1

List available updates across all sites. Method: GET (readonly)
Input Parameters: Response:

mainwp/run-updates-v1

Execute updates on sites. Operations affecting more than 200 sites are queued for background processing. Method: POST
Input Parameters: Run a preview first with dry_run: true. The commands above show confirmed execution unless labeled as a preview. Response:

mainwp/get-site-updates-v1

Get available updates for a single site. Method: GET (readonly)
Input Parameters: Response:

mainwp/update-site-core-v1

Update WordPress core on a single site. Method: POST
Input Parameters: Run a preview first with dry_run: true. The commands above show confirmed execution unless labeled as a preview. Response:

mainwp/update-site-plugins-v1

Update plugins on a single site. Method: POST
Input Parameters: Run a preview first with dry_run: true. The commands above show confirmed execution unless labeled as a preview. Response:

mainwp/update-site-themes-v1

Update themes on a single site. Method: POST
Input Parameters: Run a preview first with dry_run: true. The commands above show confirmed execution unless labeled as a preview. Response:

mainwp/update-site-translations-v1

Update translations on a single site. Method: POST
Input Parameters: Run a preview first with dry_run: true. The commands above show confirmed execution unless labeled as a preview. Response:

mainwp/list-ignored-updates-v1

List updates marked as ignored. Method: GET (readonly)
Input Parameters: Response:

mainwp/set-ignored-updates-v1

Add an item to a site’s ignored updates list. In 6.3, use action: ignore here and unignore-site-updates-v1 to remove a hold. Method: POST
Input Parameters: Response:

mainwp/ignore-site-core-v1

Add a core update hold for a site. Use unignore-site-updates-v1 with type: core to remove it. Method: POST
Input Parameters: Response:

mainwp/ignore-site-plugins-v1

Add plugin update holds for a site. Use unignore-site-updates-v1 with type: plugin to remove them. Method: POST
Input Parameters: Response:

mainwp/ignore-site-themes-v1

Add theme update holds for a site. Use unignore-site-updates-v1 with type: theme to remove them. Method: POST
Input Parameters: Response:

mainwp/unignore-site-updates-v1

Preview or remove one site’s own update holds. Removing a hold can make an update eligible for later update runs, including queued runs; this ability does not install the update. Method: POST
A preview returns would_affect.holds, a count, warnings, and errors. A hold’s still_held_by field identifies a global or whole-site hold that will remain in effect. Execution returns removed, not_held, and count with dry_run: false:
Global holds and whole-site ignore flags remain unchanged. Site access and Ignore/Unignore Updates permissions apply.

mainwp/update-all-v1

Execute all available updates across sites. Use with caution on production environments. Method: POST
Input Parameters: Run a preview first with dry_run: true. The commands above show confirmed execution unless labeled as a preview. Response:
This ability applies all available updates including WordPress core. Test on staging sites before running against production environments.