Main Header

Plugin Status Endpoint

Updated on July 30, 2026

Tier 2 (Pro) sites can expose a read-only REST endpoint for uptime monitors, deployment scripts, and support tooling. It summarizes SignalPress health, license state, and whether each active integration is configured — without opening wp-admin.

For delivery troubleshooting, combine this with Connection Tests and Delivery Log. For queue and cron setup, see Reliable Delivery and Event IDs.

Requirements

  • Tier 2 (Pro) license in active or grace state
  • Enable plugin status endpoint checked under SignalPress → Settings → General
  • SignalPress plugin loaded (endpoint registers on rest_api_init)

When disabled or on lower tiers, the route returns 404 (same response as an unknown REST path).

Endpoint

Text

GET /wp-json/signalpress/v1/status

No authentication is required when the endpoint is enabled. Treat the URL as public — it reveals plugin version, edition, license summary, and which services are active.

Example request

Shell

curl -sS 'https://yoursite.example/wp-json/signalpress/v1/status'

Example response

JSON

{
  "signalpress_status": "ok",
  "health_code": 0,
  "health": "healthy",
  "version": "1.2.3",
  "edition": "pro",
  "license": "valid",
  "services": {
    "local": true,
    "posthog": true,
    "slack": false
  },
  "timestamp": "2026-07-27T20:15:00Z"
}

Response headers include aggressive no-cache directives so CDNs and page caches do not serve stale health data.

Response fields

FieldMeaning
signalpress_statusAlways "ok" when the endpoint responds
health_codeNumeric severity — see [Health codes](#health-codes)
healthMachine-readable label matching the code
versionInstalled SignalPress version
edition"pro" when Pro is active; otherwise "free"
licensevalid, warning, expired, or invalid (public summary)
servicesMap of active integration IDs → configured and enabled (true/false)
timestampUTC time of the response

Inactive integrations are omitted from services. A false value means the integration is active on the site but disabled, unlicensed, or missing required settings.

Health codes

Lower codes are healthier. Monitors often alert on health_code >= 3 or health_code >= 4.

CodeLabelTypical cause
0healthyLicense valid, delivery enabled, all active services configured
1warningAt least one active service is not fully configured
2license_warningGrace period or license expiring within 30 days
3license_invalidExpired or inactive license
4configuration_errorSignalPress disabled, no active services, or hub read-only/disabled mode
5fatal_plugin_errorRecent fatal PHP error in SignalPress core or Pro code

Code 5 uses a short-lived transient recorded on fatal shutdown inside SignalPress files. Unrelated theme or plugin fatals do not affect this score.

Enable or disable

  1. Open SignalPress → Settings → General.
  2. Toggle Enable plugin status endpoint.
  3. Save changes.

Tier 0 and Tier 1 sites see the setting with a Tier 2 lock badge. The stored preference is preserved across license changes but the route stays unavailable until Tier 2 is active.

Monitoring patterns

Uptime robot / Pingdom — HTTP GET the URL; assert health_code is 0 or 1 and HTTP 200.

Deployment smoke test — After deploy, curl the endpoint and confirm version matches the expected release.

Service drift — Alert when a known-critical key in services becomes false (for example posthog after a settings regression).

The endpoint does not run connection tests or prove events are reaching third parties. Run Send test signal or inspect Recent Activity for delivery proof.

Security notes

  • The URL is unauthenticated by design for simple monitors. Do not expose secrets in query strings.
  • Disable the endpoint on staging copies if the response would leak production integration layout.
  • Pair with HTTPS and restrict monitor IP ranges where your tooling supports it.