MagicWP Docs
Account & Team

API endpoints

Every endpoint an API token can call, and the permission each needs

These are the 171 endpoints you can call with an API token on https://api.magicwp.io. Every path starts with /v1. Anything not listed here answers 404 on the API host: member management, payments, plan purchases and your account settings stay in the dashboard.

The Permission column is what the token must carry, and what your role in the workspace must allow. Any member means any role; any token means any valid token, for catalogue data that is the same for everyone. Site permissions apply to the site in the path.

Sites

EndpointWhat it doesPermission
GET /v1/sitesList the workspace's sitesany member; lists only the sites you reach
POST /v1/sitesCreate a new sitesites.create
POST /v1/sites/demoCreate the workspace's demo sitesites.create
GET /v1/sites/limitsCheck site creation limitsany member; plan figures only with billing.view; can_create needs sites.create
GET /v1/sites/{site_id}Get site detailssite.view
PATCH /v1/sites/{site_id}Update site settings (status 'deleted' deletes the site)site.view to reach; per field: site_label → site.notes, maintenance_mode → site.power, status: deleted → site.delete
GET /v1/sites/{site_id}/activityList activity for a sitesite.view; IP addresses only with activity.view
POST /v1/sites/{site_id}/cloneClone a site into a new sitesite.view on the source + sites.create
POST /v1/sites/{site_id}/clone-intoClone a site into an existing sitesite.view on the source + site.restore on the target
POST /v1/sites/{site_id}/fixFix the site (re-run Redis and MagicWP plugin setup)site.power
PATCH /v1/sites/{site_id}/notesEdit the site's notessite.notes
PATCH /v1/sites/{site_id}/quotaChange the site's storage quotasite.performance; the plan's storage check needs billing.view
POST /v1/sites/{site_id}/resetReset site (wipe data, reinstall WordPress)site.restore
POST /v1/sites/{site_id}/restartRestart the site's servicessite.power
GET /v1/sites/{site_id}/tasksList a site's tasks, newest firstsite.view

WordPress

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/wp/auto-updateGet WordPress core auto-update statussite.view
POST /v1/sites/{site_id}/wp/auto-updateEnable or disable WordPress core auto-updatewp.updates
POST /v1/sites/{site_id}/wp/auto-update/bulkBulk enable/disable theme/plugin auto-updatewp.updates
GET /v1/sites/{site_id}/wp/auto-update/extendedBulk theme/plugin auto-update statussite.view
POST /v1/sites/{site_id}/wp/cache/flushFlush cachesite.power
GET /v1/sites/{site_id}/wp/cache/redisGet Redis object-cache plugin statussite.view
POST /v1/sites/{site_id}/wp/cache/redisToggle Redis object cache (enable/disable)site.performance
POST /v1/sites/{site_id}/wp/cache/redis/installInstall Redis object-cache pluginsite.performance
GET /v1/sites/{site_id}/wp/core/checkCheck for WordPress updatessite.view
POST /v1/sites/{site_id}/wp/core/updateUpdate WordPress corewp.updates
POST /v1/sites/{site_id}/wp/core/verify-checksumsVerify WordPress core file checksumswp.updates
POST /v1/sites/{site_id}/wp/database/cleanupDelete database clutterdatabase.manage
POST /v1/sites/{site_id}/wp/database/optimizeOptimize database tablesdatabase.manage
GET /v1/sites/{site_id}/wp/database/statsTable sizes, overhead and cleanup countssite.view
POST /v1/sites/{site_id}/wp/db-prefixChange the database table prefixdatabase.manage
GET /v1/sites/{site_id}/wp/debugGet WordPress debug constantssite.view
POST /v1/sites/{site_id}/wp/debugSet WordPress debug constantswp.settings
GET /v1/sites/{site_id}/wp/magic-linkGenerate admin magic login linkwp.login
GET /v1/sites/{site_id}/wp/maintenanceGet WordPress maintenance mode statussite.view
POST /v1/sites/{site_id}/wp/maintenanceToggle WordPress maintenance modesite.power
GET /v1/sites/{site_id}/wp/pluginsList installed pluginssite.view
POST /v1/sites/{site_id}/wp/plugins/activateActivate a pluginwp.extensions
POST /v1/sites/{site_id}/wp/plugins/auto-updateEnable or disable auto-update for a pluginwp.updates
POST /v1/sites/{site_id}/wp/plugins/deactivateDeactivate a pluginwp.extensions
POST /v1/sites/{site_id}/wp/plugins/deleteDelete pluginswp.extensions
POST /v1/sites/{site_id}/wp/plugins/installInstall pluginswp.extensions
GET /v1/sites/{site_id}/wp/plugins/searchSearch WordPress.org plugin directorywp.extensions
POST /v1/sites/{site_id}/wp/plugins/updateUpdate plugin(s)wp.updates
POST /v1/sites/{site_id}/wp/search-replaceSearch and replace in databasedatabase.manage
POST /v1/sites/{site_id}/wp/search-replace/dry-runPreview search and replacedatabase.manage
GET /v1/sites/{site_id}/wp/settingsGet WordPress settingssite.view
PATCH /v1/sites/{site_id}/wp/settingsUpdate WordPress settingswp.settings
POST /v1/sites/{site_id}/wp/shuffle-saltsRegenerate wp-config.php keys and saltswp.settings
GET /v1/sites/{site_id}/wp/themesList installed themessite.view
POST /v1/sites/{site_id}/wp/themes/activateActivate a themewp.extensions
POST /v1/sites/{site_id}/wp/themes/auto-updateEnable or disable auto-update for a themewp.updates
POST /v1/sites/{site_id}/wp/themes/deleteDelete themeswp.extensions
POST /v1/sites/{site_id}/wp/themes/installInstall themeswp.extensions
GET /v1/sites/{site_id}/wp/themes/searchSearch WordPress.org theme directorywp.extensions
POST /v1/sites/{site_id}/wp/themes/updateUpdate theme(s)wp.updates
GET /v1/sites/{site_id}/wp/usersList WordPress userswp.users
POST /v1/sites/{site_id}/wp/usersCreate a WordPress userwp.users
POST /v1/sites/{site_id}/wp/users/reset-passwordReset WordPress user passwordwp.users
DELETE /v1/sites/{site_id}/wp/users/{wp_user_id}Delete a WordPress userwp.users
POST /v1/sites/{site_id}/wp/users/{wp_user_id}Update a WordPress userwp.users
POST /v1/sites/{site_id}/wp/users/{wp_user_id}/passwordSet a WordPress user's passwordwp.users
POST /v1/sites/{site_id}/wp/users/{wp_user_id}/roleSet a WordPress user's rolewp.users

PHP

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/phpGet current PHP versionsite.view
GET /v1/sites/{site_id}/php/extensionsList toggleable PHP extensions and their statesite.view
PATCH /v1/sites/{site_id}/php/extensionsEnable/disable PHP extensionssite.performance
GET /v1/sites/{site_id}/php/fpmGet PHP-FPM (www.conf) settingssite.view
PATCH /v1/sites/{site_id}/php/fpmUpdate PHP-FPM (www.conf) settingssite.performance
GET /v1/sites/{site_id}/php/iniGet php.ini settingssite.view
PATCH /v1/sites/{site_id}/php/iniUpdate php.ini settingssite.performance
GET /v1/sites/{site_id}/php/opcacheGet OPcache statussite.view
POST /v1/sites/{site_id}/php/opcache/resetReset (flush) OPcachesite.power
POST /v1/sites/{site_id}/php/resetReset php.ini and PHP-FPM config to defaultssite.performance
POST /v1/sites/{site_id}/php/versionChange PHP versionsite.performance

Caching (nginx)

EndpointWhat it doesPermission
POST /v1/sites/{site_id}/nginx/cache/flushFlush nginx FastCGI cachesite.power
GET /v1/sites/{site_id}/nginx/cache/ttlGet page cache expiration (TTL)site.view
POST /v1/sites/{site_id}/nginx/cache/ttlSet page cache expiration (TTL)site.performance
GET /v1/sites/{site_id}/nginx/featuresList nginx feature statusessite.view
POST /v1/sites/{site_id}/nginx/features/{feature}Toggle nginx featuresite.performance

Database

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/databaseGet database credentialscredentials.database
POST /v1/sites/{site_id}/database/change-passwordChange database passwordcredentials.database
DELETE /v1/sites/{site_id}/database/phpmyadminClose the temporary phpMyAdmin sessioncredentials.database
GET /v1/sites/{site_id}/database/phpmyadminGet temporary phpMyAdmin session statuscredentials.database
POST /v1/sites/{site_id}/database/phpmyadminOpen a temporary phpMyAdmin session (2 hours)credentials.database

SFTP

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/sftpGet SFTP credentialscredentials.sftp
POST /v1/sites/{site_id}/sftp/change-passwordChange SFTP passwordcredentials.sftp

Email

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/email-settingsGet email configurationemail.manage
POST /v1/sites/{site_id}/email-settings/activateSet active email provideremail.manage
POST /v1/sites/{site_id}/email-settings/disableDisable email sendingemail.manage
POST /v1/sites/{site_id}/email-settings/enableEnable email sendingemail.manage
POST /v1/sites/{site_id}/email-settings/providersAdd or update email provideremail.manage
PATCH /v1/sites/{site_id}/email-settings/providers/{provider_name}Update a provider (status='deleted' to remove)email.manage
POST /v1/sites/{site_id}/email-settings/testSend a test emailemail.manage

Domains

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/domainsList domains for a sitesite.view
POST /v1/sites/{site_id}/domainsAdd and verify custom domaindomains.manage
PATCH /v1/sites/{site_id}/domains/{domain_id}Update a domain (status='deleted' to remove)domains.manage
POST /v1/sites/{site_id}/domains/{domain_id}/connectConnect domain to sitedomains.manage
POST /v1/sites/{site_id}/domains/{domain_id}/disconnectDisconnect domain from sitedomains.manage
GET /v1/sites/{site_id}/domains/{domain_id}/recordsThe DNS records this domain needssite.view
POST /v1/sites/{site_id}/domains/{domain_id}/verifyRe-check a pending domain's DNSdomains.manage

Cloudflare

EndpointWhat it doesPermission
DELETE /v1/sites/{site_id}/cloudflareForget the Cloudflare tokendomains.manage
GET /v1/sites/{site_id}/cloudflareCloudflare connection, record and zone settingssite.view
GET /v1/sites/{site_id}/cloudflare/accountsCloudflare accounts this grant can seedomains.manage
POST /v1/sites/{site_id}/cloudflare/connectStore a Cloudflare API token and list its zonesdomains.manage
DELETE /v1/sites/{site_id}/cloudflare/dnsRemove the records we wrote, and keep the connectiondomains.manage
POST /v1/sites/{site_id}/cloudflare/dnsPoint a domain at this site, and toggle the proxydomains.manage
POST /v1/sites/{site_id}/cloudflare/oauth/revokeHand the Cloudflare grant backdomains.manage
POST /v1/sites/{site_id}/cloudflare/purgePurge the Cloudflare cache, or just some URLsdomains.manage
PATCH /v1/sites/{site_id}/cloudflare/settingsSSL mode, Always Use HTTPS, development modedomains.manage
GET /v1/sites/{site_id}/cloudflare/zonesZones this token can seedomains.manage

Redirects

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/redirectsList redirect rulessite.view
POST /v1/sites/{site_id}/redirectsAdd a redirect ruleredirects.manage
POST /v1/sites/{site_id}/redirects/bulkBulk import redirect rulesredirects.manage
POST /v1/sites/{site_id}/redirects/bulk-deleteDelete multiple redirect rulesredirects.manage
DELETE /v1/sites/{site_id}/redirects/{redirect_id}Delete a redirect ruleredirects.manage
PATCH /v1/sites/{site_id}/redirects/{redirect_id}Update a redirect ruleredirects.manage

Backups

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/backupsList backups for a sitesite.view; download URLs only with backups.manage
POST /v1/sites/{site_id}/backups/downloadCreate a download backupbackups.manage
DELETE /v1/sites/{site_id}/backups/{backup_id}Delete a download-type backupbackups.manage
PATCH /v1/sites/{site_id}/backups/{backup_id}Rename a snapshotbackups.manage
POST /v1/sites/{site_id}/backups/{backup_id}/downloadExport an existing backup for download (emailed link)backups.manage
POST /v1/sites/{site_id}/backups/{backup_id}/restoreRestore site from backupsite.restore
GET /v1/snapshotsList full backups (snapshots) across the workspace's sitesany member; the sites where you hold site.view
POST /v1/snapshots/{source_backup_id}/restoreRestore a snapshot onto another sitesite.view on the source + site.restore on the target

Staging

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/stagingThis site's staging copy, and whether it may have onesite.view
POST /v1/sites/{site_id}/stagingCreate this site's staging copysite.staging
POST /v1/sites/{site_id}/staging/extendExtend a staging site's expirysite.staging
POST /v1/sites/{site_id}/staging/pushPush a staging site over its live sitesite.restore
GET /v1/sites/{site_id}/staging/push-previewPreview what pushing staging to live will changesite.staging
GET /v1/sites/{site_id}/staging/revert-pointsBackups taken before each push to this sitesite.view

Updates

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/updatesUpdates for one sitesite.view
POST /v1/sites/{site_id}/updates/applyUpdate items on one sitewp.updates
PUT /v1/sites/{site_id}/updates/auto-updateSet auto-update on one sitewp.updates
POST /v1/sites/{site_id}/updates/checkCheck one site against WordPress.org nowwp.updates
POST /v1/sites/{site_id}/updates/refreshRe-read one site's local statesite.view
GET /v1/updatesUpdates across every sitesite.view on each site
POST /v1/updates/applyUpdate items across siteswp.updates on each site named
PUT /v1/updates/auto-updateSet auto-update across siteswp.updates on each site named
POST /v1/updates/checkCheck several sites against WordPress.org nowwp.updates on each site named
POST /v1/updates/refreshRe-read the local state of several sitessite.view on each site named

Metrics

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/metrics/dailyToday, ~40-min decimated samplessite.view
GET /v1/sites/{site_id}/metrics/liveLast 30 raw samples (5-min)site.view
GET /v1/sites/{site_id}/metrics/monthlyLast 30 days, daily averagesite.view

Transfers

EndpointWhat it doesPermission
GET /v1/sites/{site_id}/transferCurrent pending transfer for a sitesite.transfer
POST /v1/sites/{site_id}/transferInitiate a site transfersite.transfer
POST /v1/sites/{site_id}/transfer/{transfer_id}/cancelCancel a pending transfersite.transfer

Tasks

EndpointWhat it doesPermission
GET /v1/tasksRunning tasks across the sites I can reachany member
GET /v1/tasks/{task_id}Get task statussite.view on the task's site

Workspace

EndpointWhat it doesPermission
GET /v1/workspace/activityThe workspace activity logactivity.view
GET /v1/workspaces/currentThe current workspace, and what this caller may do in itany member; billing details only with billing.view

Billing

EndpointWhat it doesPermission
POST /v1/coupons/verifyVerify / preview couponbilling.manage
GET /v1/invoicesList invoicesbilling.view
GET /v1/invoices/{invoice_id}One invoicebilling.view
GET /v1/subscriptions/meThe workspace's subscriptionsbilling.view
POST /v1/subscriptions/previewPreview subscription price before purchasebilling.manage
GET /v1/subscriptions/trial-eligibilityWhether the workspace can start a free trialbilling.view
POST /v1/subscriptions/{sub_id}/addons/previewPreview addon price before purchasebilling.manage
POST /v1/subscriptions/{sub_id}/addons/{addon_record_id}/cancel/previewPreview addon cancellationbilling.manage
POST /v1/subscriptions/{sub_id}/cancel/previewPreview cancellation before confirmingbilling.manage
POST /v1/subscriptions/{sub_id}/upgrade/previewPreview upgrade pricing before confirmingbilling.manage

Support

EndpointWhat it doesPermission
GET /v1/ticketsList the workspace's ticketssupport.view
POST /v1/ticketsOpen a ticketsupport.manage
GET /v1/tickets/{ticket_id}One ticket with its repliessupport.view; IP addresses only to their author or with activity.view
POST /v1/tickets/{ticket_id}/repliesReply to a ticketsupport.manage

Catalogue

EndpointWhat it doesPermission
GET /v1/departmentsList support departmentsany token
GET /v1/plansList plans and their pricesany token
GET /v1/plans/addonsList add-onsany token
GET /v1/sites/domainsList available base domainsany token
GET /v1/sites/domains/randomPick a random base domain from the active listany token
GET /v1/sites/regionsList server regions available for new sitesany token
GET /v1/templatesTemplates the workspace can build fromany token
GET /v1/templates/{slug}One template by slugany token

Permission names

The names used above and when you create a token.

PermissionApplies toAllows
sites.createthe workspaceCreate sites (counts against the plan)
billing.viewthe workspaceSee subscription, plan, limits and invoices
billing.paythe workspacePay invoices with their own card
billing.managethe workspaceSubscribe, change plan, addons, coupons, cancel
support.viewthe workspaceSee the workspace's tickets
support.managethe workspaceOpen and reply to tickets
activity.viewthe workspaceSee the workspace activity log
members.viewthe workspaceSee members and pending invitations
site.viewevery site you can reachSee the site, its metrics, activity and settings
site.notesevery site you can reachEdit the site's label and notes
site.powerevery site you can reachRestart, fix, maintenance mode, flush caches
site.restoreevery site you can reachReset, restore backups, overwrite from another site or staging
site.stagingevery site you can reachCreate and extend staging
site.deleteevery site you can reachDelete the site
site.transferevery site you can reachTransfer the site out of the workspace
wp.loginevery site you can reachMagic login as a WordPress administrator
wp.extensionsevery site you can reachInstall, activate, deactivate and delete plugins and themes
wp.updatesevery site you can reachApply updates and change auto-updates
wp.settingsevery site you can reachWordPress settings, debug and salts
wp.usersevery site you can reachManage WordPress users
site.performanceevery site you can reachPHP settings, caching and Redis
domains.manageevery site you can reachDomains and Cloudflare
redirects.manageevery site you can reachManage redirects
email.manageevery site you can reachEmail provider settings (holds API keys)
backups.manageevery site you can reachCreate, download, rename and delete backups
credentials.sftpevery site you can reachSee and change SFTP credentials
credentials.databaseevery site you can reachSee and change database credentials, phpMyAdmin
database.manageevery site you can reachOptimize, clean up, change prefix, search-replace

On this page