Skip to content

Platform health endpoints

When to use this guide: Poll these endpoints to programmatically confirm OutboundSync is available while you build and operate an integration. They are lightweight health checkpoints — a complement to, not a replacement for, the OutboundSync status page.

OutboundSync exposes two public health endpoints so you — and any uptime monitor you run — can check platform availability without an API key. They are unauthenticated (no cookies, no Bearer token) and set Cache-Control: no-store so every response is fresh.

https://app.outboundsync.com

The health endpoints live at the root of the platform host, alongside the developer API.

Liveness — is the OutboundSync platform process up and serving requests? This endpoint always returns 200 when the process is reachable and does no downstream checks. Use it for basic up/down monitoring.

Terminal window
curl https://app.outboundsync.com/health/live
{
"schema_version": 2,
"status": "operational"
}

Readiness — can the platform receive events and sync them right now? GET /health is an alias for the same response. Point uptime monitors at this endpoint.

Terminal window
curl https://app.outboundsync.com/health/ready
{
"schema_version": 2,
"status": "operational",
"checks": {
"sources": "operational",
"destinations_activities": "operational",
"destinations_forwarding": "operational",
"destinations_blocklists": "operational"
}
}
FieldTypeDescription
schema_versionnumberVersion of this response contract. Currently 2. New checks are added under checks; treat unknown keys as forward-compatible.
statusstringOverall rollup: operational, partial_outage, or major_outage.
checks.sourcesstringInbound event ingestion — operational or outage.
checks.destinations_activitiesstringCRM activity and contact sync — operational or outage.
checks.destinations_forwardingstringEvent forwarding to your configured URLs — operational or outage.
checks.destinations_blocklistsstringBlock-list sync back to your sequencer — operational or outage.

The destinations_* checks are only present where the background worker is monitored (production and staging). In local development they are omitted and the response contains sources only.

  • sources — inbound event ingestion: sequencer webhooks and platform ingress. The developer API shares this path.
  • destinations_activities — syncing activities and contact updates into your CRM.
  • destinations_forwarding — forwarding received events to the customer URLs you configure.
  • destinations_blocklists — syncing CRM block lists back to your sequencer block lists.

The overall status is derived from the individual checks:

statusMeaningHTTP code
operationalNo checks are in outage.200
partial_outageAt least one check is in outage, but not all.200
major_outageEvery check is in outage (a total outage).503

Each check is binary: operational or outage.

A 503 is returned only for a total outage. If one component is degraded while another is still working — for example, event ingestion is down but forwarding is up — the status is partial_outage and the HTTP code stays 200. Uptime monitors should treat the JSON status (and the individual checks) as the source of truth, not just the HTTP code.

Platform health answers “is OutboundSync up?” — a different question from “is my integration working?”, which the authenticated API v1 answers. The full picture has four layers:

LayerEndpointAuthAnswers
Platform livenessGET /health/liveNoneIs the platform process up?
Platform readinessGET /health/readyNoneCan the platform receive and process events right now?
API connectivityGET /api/v1/meBearerIs my key valid, and which CRM connections can it access?
Account pipeline readinessGET /api/v1/account/statusBearerIs my account configured and ready to sync?

Use the health endpoints for infrastructure-level monitoring and the API v1 endpoints for account-specific checks.

For a human-readable status overview and incident history, see the OutboundSync status page — also embedded as the System monitoring panel in the site footer. The health endpoints on this page are for programmatic checkpoints and complement that status page; they are not a replacement for it.