Health Check API - Service Status and Feed Freshness | FlashAlpha
  1. Health Check

Health Check API

Service status, dependency checks and feed freshness for monitoring. Public, not rate limited.

Endpoint

Returns system health status. Public endpoint - no authentication required. Not rate limited.

GET /health
No auth required Rate Limited: No Public

Parameters

This endpoint takes no parameters.

Request

curl https://lab.flashalpha.com/health
import requests

resp = requests.get("https://lab.flashalpha.com/health")
resp.raise_for_status()
health = resp.json()
print(f"HTTP {resp.status_code} - {health['status']}")
for name, check in health["entries"].items():
    print(f"  {name}: {check['status']}")
const resp = await fetch("https://lab.flashalpha.com/health");
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const health = await resp.json();
console.log(`HTTP ${resp.status} - ${health.status}`);
Object.entries(health.entries).forEach(([name, c]) => console.log(`  ${name}: ${c.status}`));

Try it live

Runs on live market data. Public endpoint: no API key needed.

GET

Response

{
  "status": "Healthy",
  "endpoint_version": "2026.09.30",
  "data_as_of": {
    "node": "fa4",
    "equity_feed": "2026-10-30T13:46:13.593Z",
    "equity_options_feed": "2026-10-30T13:46:12Z",
    "index_feed": "2026-10-30T13:46:12.105Z",
    "index_options_feed": "2026-10-30T13:46:08Z",
    "futures_feed": "2026-10-30T13:46:09.1Z",
    "futures_options_feed": "2026-10-30T13:46:07.498Z",
    "flow_feed": "2026-10-30T13:46:00Z",
    "oi_feed": "2026-10-29T20:00:00Z",
    "macro_feed": "2026-10-29T21:00:20Z"
  },
  "entries": {
    "sql_server": {
      "status": "Healthy",
      "description": "Dependency check passed",
      "duration_ms": 36.6952
    },
    "thetadata": {
      "status": "Healthy",
      "description": "Dependency check passed",
      "duration_ms": 38.4109
    },
    "market_data": {
      "status": "Healthy",
      "description": "Dependency check passed",
      "duration_ms": 0.0133
    }
  },
  "controls_status": "Unhealthy",
  "controls_as_of": "2026-10-30T13:45:59.2774825+00:00",
  "monitor_owner": false,
  "controls": {
    "feeds": {
      "status": "unknown",
      "critical": false,
      "checkedAt": null
    },
    "open_interest": {
      "status": "unhealthy",
      "critical": false,
      "checkedAt": "2026-10-30T13:45:47.1325318+00:00"
    },
    "reconciliation": {
      "status": "unknown",
      "critical": false,
      "checkedAt": null
    },
    "background": {
      "status": "unhealthy",
      "critical": false,
      "checkedAt": "2026-10-28T10:04:25.4583721+00:00"
    }
  }
}

Sending request…

See this endpoint on live data

Send this exact request and the real response shows up here, right next to the example.

The live response also carries operational control fields (controls_status, controls_as_of, controls).

Response Fields

Field Type Description
status string Healthy or Unhealthy overall
controls_statusstringControls status
controls_as_ofstringControls as of
monitor_ownerbooleanMonitor owner
controlsobjectControls
endpoint_version string Version of the API build that answered
data_as_of object Node that answered and when each upstream feed last delivered (see response envelope)
entries object One dependency check per key, each with status, description and duration_ms

Fields of entries

Field Type Description
entries.sql_serverobjectEntries: sql server
entries.sql_server.descriptionstringPlain-English description
entries.sql_server.duration_msnumberSql server: duration ms
entries.sql_server.statusstringHealthy or Unhealthy overall
entries.thetadataobjectEntries: thetadata
entries.thetadata.descriptionstringPlain-English description
entries.thetadata.duration_msnumberThetadata: duration ms
entries.thetadata.statusstringHealthy or Unhealthy overall
entries.market_dataobjectEntries: market data
entries.market_data.descriptionstringPlain-English description
entries.market_data.duration_msnumberMarket data: duration ms
entries.market_data.statusstringHealthy or Unhealthy overall

Fields of controls

Field Type Description
controls.feedsobjectControls: feeds
controls.feeds.criticalbooleanFeeds: critical
controls.feeds.checkedAtstring | nullFeeds: checked timestamp (UTC)
controls.feeds.statusstringHealthy or Unhealthy overall
controls.open_interestobjectControls: open interest
controls.open_interest.criticalbooleanOpen interest: critical
controls.open_interest.checkedAtstringOpen interest: checked timestamp (UTC)
controls.open_interest.statusstringHealthy or Unhealthy overall
controls.reconciliationobjectControls: reconciliation
controls.reconciliation.criticalbooleanReconciliation: critical
controls.reconciliation.checkedAtstring | nullReconciliation: checked timestamp (UTC)
controls.reconciliation.statusstringHealthy or Unhealthy overall
controls.backgroundobjectControls: background
controls.background.criticalbooleanBackground: critical
controls.background.checkedAtstringBackground: checked timestamp (UTC)
controls.background.statusstringHealthy or Unhealthy overall

Errors

Status Error When
503-One or more dependency checks are Unhealthy; the body has the same shape with "status": "Unhealthy".

What Is the Health Check Endpoint?

The Health Check endpoint reports whether the API and its dependencies are up, and how fresh each upstream feed is. It needs no API key and is not rate limited, so it is safe to poll from uptime monitors and status pages. Read the HTTP status for a simple up/down signal and the entries and data_as_of blocks for detail.

Common Use Cases

  • Uptime monitoring - alert when the endpoint stops returning 200
  • Gate trading logic - pause automated strategies while a dependency is Unhealthy
  • Check feed freshness - compare data_as_of timestamps against each feed's cadence
  • Status pages - show service health to your own users

Complementary endpoints

Ready to build with FlashAlpha?

Get your free API key and start pulling live options data in 60 seconds.

No credit card required Setup in 60 seconds Secure & reliable