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
| Field | Meaning |
|---|---|
signalpress_status | Always "ok" when the endpoint responds |
health_code | Numeric severity — see [Health codes](#health-codes) |
health | Machine-readable label matching the code |
version | Installed SignalPress version |
edition | "pro" when Pro is active; otherwise "free" |
license | valid, warning, expired, or invalid (public summary) |
services | Map of active integration IDs → configured and enabled (true/false) |
timestamp | UTC 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.
| Code | Label | Typical cause |
|---|---|---|
| 0 | healthy | License valid, delivery enabled, all active services configured |
| 1 | warning | At least one active service is not fully configured |
| 2 | license_warning | Grace period or license expiring within 30 days |
| 3 | license_invalid | Expired or inactive license |
| 4 | configuration_error | SignalPress disabled, no active services, or hub read-only/disabled mode |
| 5 | fatal_plugin_error | Recent 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
- Open SignalPress → Settings → General.
- Toggle Enable plugin status endpoint.
- 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.
What to read next
- Free vs SignalPress Pro — Tier 2 feature list
- Connection Tests and Delivery Log — prove events actually deliver
- Reliable Delivery and Event IDs — queue worker and server cron
- Integrations Overview — activation vs configured state
- Setup & Activating SignalPress — global enable switch affects health code 4