Engine status
Margin is only as current as the parameters behind it. These endpoints answer "are today's numbers based on today's parameters?" without a support request.
GET /healthcheck/analytics-engine is the live view: every engine, its version, and the parameter set each one is running right now. GET /healthcheck/engine-readiness-report is the history: every time an engine became ready with a parameter set.
Beta and licensing
Beta. These endpoints are offered as a preview. Field names and the response layout may change without a version bump while the contract settles, so read them defensively and do not build hard dependencies on optional fields.
Access is subject to your licence. An expired or unlicensed key receives 403. Both endpoints require your API key like every other operation, which also makes the live status call the quickest way to confirm that your endpoint and key are valid before sending a portfolio.
Get live engine status
Returns one element per calculation engine in your environment. Each element carries the engine's version and overall status, plus one entry per parameter set it is serving.
Engine fields
- Name
service- Type
- string
- Description
Engine identifier, for example
span,simmoranalytics.
- Name
version- Type
- string
- Description
Engine build version.
- Name
status- Type
- string
- Description
OK,WARNINGorFAILEDfor the engine as a whole.
- Name
healthcheck- Type
- integer
- Description
Epoch milliseconds of the engine's own status reply.
- Name
parameters- Type
- array
- Description
One entry per parameter set, described below.
- Name
stats- Type
- object
- Description
Operational counters such as queue depth and response times. The shape is not guaranteed.
Parameter fields
- Name
parameter- Type
- string
- Description
Parameter set name, usually the clearing house or venue.
- Name
cycle_code- Type
- string
- Description
Settlement cycle when the venue publishes several a day, otherwise
base.
- Name
bdate- Type
- string
- Description
Business date the parameters belong to,
YYYY-MM-DD.
- Name
status- Type
- string
- Description
OK,WARNINGorFAILEDfor this parameter set.
- Name
parameter_published_at- Type
- string
- Description
ISO 8601 time the venue published the file.
- Name
parameter_size- Type
- integer
- Description
Size of the loaded parameter file in bytes.
- Name
instance_started_at- Type
- string
- Description
ISO 8601 time the engine instance started.
- Name
start_time- Type
- string
- Description
ISO 8601 time the engine finished loading and became ready.
- Name
startup_time- Type
- integer
- Description
Milliseconds from instance start to ready.
- Name
additional- Type
- object
- Description
Engine-specific extras. Optional and not guaranteed.
Request
curl -sS "$C9_API_ENDPOINT/healthcheck/analytics-engine" \
-H "Authorization: Bearer $C9_API_SECRET"
Response
[
{
"service": "span",
"version": "1.4.2",
"status": "OK",
"healthcheck": 1790317406027,
"parameters": [
{
"parameter": "cme",
"cycle_code": "base",
"bdate": "2026-09-24",
"status": "OK",
"parameter_published_at": "2026-09-25T04:26:04+00:00",
"parameter_size": 909030536,
"instance_started_at": "2026-09-25T04:26:22.000Z",
"start_time": "2026-09-25T04:31:44.160Z",
"startup_time": 322160,
"additional": {}
}
],
"stats": {}
}
]
Get parameter readiness history
Returns the append-only readiness history across all engines: one record each time an engine became ready with a parameter set, or was observed running. Use it to check whether a file arrived late, whether an engine has been restarting, or what a venue's publication rhythm looks like.
Record fields
- Name
event_time- Type
- string
- Description
ISO 8601 time the record was written.
- Name
parameter- Type
- string
- Description
Parameter set name. Matches
parameteron the live status endpoint.
- Name
cycle_code- Type
- string | null
- Description
Settlement cycle.
nullorbasewhen the venue has none.
- Name
bdate- Type
- string | null
- Description
Business date of the parameter set.
- Name
status- Type
- string
- Description
OK,WARNINGorFAILED.
- Name
parameter_published_at- Type
- string | null
- Description
ISO 8601 time the venue published the file.
- Name
parameter_size- Type
- integer | null
- Description
Size of the loaded file in bytes.
- Name
instance_started_at- Type
- string | null
- Description
ISO 8601 time the engine instance started.
- Name
start_time- Type
- string | null
- Description
ISO 8601 time the engine became ready.
- Name
startup_time- Type
- integer | null
- Description
Milliseconds from instance start to ready.
- Name
source- Type
- string
- Description
bootwhen the engine wrote the record itself.observedwhen the readiness observer sampled it, in which case the timing fields arenull.
- Name
engine_partition- Type
- string
- Description
Storage partition the record was written under. Provenance only, do not parse it.
Request
curl -sS "$C9_API_ENDPOINT/healthcheck/engine-readiness-report" \
-H "Authorization: Bearer $C9_API_SECRET"
Response
[
{
"event_time": "2026-09-25T04:31:45.102Z",
"parameter": "cme",
"cycle_code": "base",
"bdate": "2026-09-24",
"status": "OK",
"parameter_published_at": "2026-09-25T04:26:04+00:00",
"parameter_size": 909030536,
"instance_started_at": "2026-09-25T04:26:22.000Z",
"start_time": "2026-09-25T04:31:44.160Z",
"startup_time": 322160,
"source": "boot",
"engine_partition": "span"
}
]
The array is large, tens of thousands of records, and grows over time. Filter
client-side on parameter and cycle_code, matching case-insensitively and
treating a missing cycle_code as base. Records from different producers do
not guarantee the same casing.