WPCentrify REST API and webhooks
Every action the platform takes is available programmatically. Query site state, trigger updates, pull activity history, and receive signed webhooks for anything that happens.
Included on every plan. No API surcharge.
Getting started
The API is a JSON REST API over HTTPS, and sits alongside the rest of the product documentation. Authenticate with a bearer token generated in the dashboard under Settings, then API tokens. Tokens carry the same role scoping as team members, so a read-only token cannot trigger an update.
curl https://api.wpcentrify.com/v1/sites \
-H "Authorization: Bearer $WPC_TOKEN" \
-H "Accept: application/json"
WordPress management API core resources
GET /v1/siteslist connected sites with health, versions and tagsGET /v1/sites/{id}full detail for a single siteGET /v1/updatespending updates across the portfolio, with risk scoresPOST /v1/updates/{id}/applyapply an update, optionally forcing staging validationGET /v1/backupsbackup inventory including restore-test statusPOST /v1/backups/{id}/restoretrigger a restore, full or selectiveGET /v1/incidentsavailability incidents with duration and cause contextGET /v1/vulnerabilitiesfindings matched to your installed versionsGET /v1/activitythe full activity log, filterable and paginatedGET /v1/reportsgenerated client reports and their underlying data
Webhooks
Register an endpoint and receive events as they happen. Every payload is signed with an HMAC-SHA256 signature in the X-WPC-Signature header, and failed deliveries are retried with exponential backoff for 24 hours.
{
"event": "update.rolled_back",
"occurred_at": "2026-08-25T03:41:12Z",
"site": { "id": "st_8fk2", "url": "harvest-collective.store" },
"update": { "plugin": "elementor", "from": "3.31.1", "to": "3.31.2" },
"reason": "visual_regression",
"detail": { "template": "product", "delta": 0.184, "threshold": 0.02 },
"restore_point": "bk_20260825_0339",
"duration_seconds": 41
}
Available events
update.applied,update.failed,update.rolled_back,update.heldbackup.completed,backup.failed,backup.restore_testedsite.down,site.recovered,site.degradedvulnerability.detected,vulnerability.patchedreport.generated,report.sentssl.expiring,domain.expiring
Rate limits and conventions
- Rate limits are 600 requests per minute per token, with remaining quota returned in response headers.
- All list endpoints are cursor paginated and return
next_cursorwhen more results exist. - Timestamps are ISO 8601 in UTC. Money is returned in minor units with an explicit currency.
- Errors return a machine-readable
codealongside a human-readablemessage. - The API is versioned in the path. Breaking changes ship as a new version with at least twelve months of overlap.
Stop logging into forty dashboards
Connect your first site in under two minutes. No credit card, no contract, no migration fee.
Free during early access. Keep your data, export any time.