Knowledge Base/Developer Docs/REST API Reference
Developer Docs

REST API Reference

The Wigmorean Cloud REST API is the backbone that connects every customer site to the central catalog, license service, and SafeGuard engine. Every endpoint is bearer-token authenticated.

Base URL and auth

Base URL:   https://wigmorean.com/wp-json/wigmorean-cloud/v1/
Auth:       Authorization: Bearer <license_key>

Every request includes the license key as a Bearer token. Endpoints that need to identify a specific site also pass site_url as a query or body parameter.

GET /validate

Validates a license key and returns tier, company, expiry, site allocation.

GET /validate?site_url=https://example.com
→ {
    "valid": true,
    "tier": "suite",
    "company": "Acme Inc",
    "expires_at": "2027-04-17T00:00:00Z",
    "sites_used": 3,
    "sites_allowed": 5
  }

GET /catalog

Returns the full product catalog the license is entitled to.

GET /catalog
→ {
    "suite":      [ {"slug":"wigmorean-lms","version":"2.3.1", ...}, ... ],
    "standalone": [ {"slug":"wigmorean-smtp","version":"1.8.0", ...}, ... ]
  }

POST /install/{slug}

Downloads a plugin zip (through a signed, short-lived URL) for install. Must pass the preflight first.

POST /update/{slug}

Same as install but for upgrades. Returns a signed URL to the latest-version zip.

POST /safeguard-check

Batch conflict-and-integrity check. Takes every installed plugin plus the candidates you want to install.

POST /safeguard-check
{
  "plugins": [
    {"slug":"wigmorean-smtp",    "installed":true,  "version":"1.8.0"},
    {"slug":"wigmorean-stripe",  "installed":false, "candidate":true}
  ]
}
→ {
    "verdicts": {
      "wigmorean-smtp":   {"verdict":"green",  "reasons":[]},
      "wigmorean-stripe": {"verdict":"yellow", "reasons":["conflicts-with:woocommerce-stripe"]}
    }
  }

POST /activate-site

Registers the current site against the license. Called once on first validate.

POST /deactivate-site

Releases the site's seat. Called when Connect is uninstalled or the user clicks "Deactivate site" on the License tab.

Error responses

All errors follow the WordPress REST error shape:

{
  "code": "wigmorean_license_expired",
  "message": "This license expired on 2026-04-17.",
  "data": { "status": 402 }
}

Rate limits

Per license: 120 requests/minute. Hot-path endpoints (/catalog, /safeguard-check) are cached aggressively on the client side — you shouldn't come close.

Need help?

Our support team responds within one business day.

Contact Support