# Canadian Syncope Risk Score (CSRS) Calculator

> Canadian Syncope Risk Score (CSRS) Calculator is a paid API for AI agents from api.magentlab.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-15).

Computes the Thiruganasambandamoorthy 2016 Canadian Syncope Risk Score from nine caller-assigned clinical flags and ECG values, returning a score from −3 to 11.

## Facts

- Endpoint: GET https://api.magentlab.com/api/calc/csrs
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/canadian-syncope-risk-score-csrs-calculator-df7d5a8a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_OHGNXFGt7BUg5hGTjpnIo

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability canadian-syncope-risk-score-csrs-calculator-df7d5a8a
```

Example prompt: Calculate the Canadian Syncope Risk Score for a patient with no vasovagal predisposition, known heart disease, no abnormal ED blood pressure, elevated troponin, QRS axis of 110 degrees, QRS duration of 135 ms, QTc of 490 ms, no ED vasovagal diagnosis, and no ED cardiac syncope diagnosis.

## When to prefer this

Use this endpoint when you need a structured, reproducible implementation of the Thiruganasambandamoorthy 2016 Canadian Syncope Risk Score and have already resolved the nine clinical inputs (vasovagal predisposition, heart disease, BP flags, troponin, QRS axis, QRS duration, QTc, and ED diagnosis). Prefer it over manual calculation or LLM reasoning when accuracy and auditability matter. It does not replace clinical judgment or serve as a medical device.

## Known failure modes

- Missing required query parameters returns a validation error
- ed_vasovagal_syncope and ed_cardiac_syncope both set to true is a conflict and will produce an error
- Out-of-range numeric values (e.g. QTc outside 200–800 ms) may be rejected
- Incorrect types (string instead of boolean or number) cause schema validation failure
- Network or payment failure returns a 402 or 5xx error

## How this service works

Thiruganasambandamoorthy 2016 Canadian Syncope Risk Score: vasovagal predisposition −1, heart disease +1, any ED SBP <90 or >180 +2, troponin above the 99th percentile +2, QRS axis < −30° or >100° +1, QRS duration >130 ms +1, QTc >480 ms +2, ED vasovagal diagnosis −2, ED cardiac diagnosis +2. Score −3 to 11. Caller assigns flags and ECG numbers. Not a medical device, not a syncope diagnosis, and not a disposition protocol.

## Output

Returns an integer Canadian Syncope Risk Score between −3 and 11, computed by summing the weighted contributions of each clinical flag and ECG parameter per the Thiruganasambandamoorthy 2016 criteria. Does not provide a diagnosis, disposition, or device-class medical recommendation.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "headers": {
     "type": "object",
     "additionalProperties": {
      "type": "string"
     }
    },
    "queryParams": {
     "type": "object",
     "required": [
      "predisposition_vasovagal",
      "heart_disease",
      "sbp_lt_90_or_gt_180",
      "elevated_troponin",
      "qrs_axis_deg",
      "qrs_duration_ms",
      "qtc_ms",
      "ed_vasovagal_syncope",
      "ed_cardiac_syncope"
     ],
     "properties": {
      "qtc_ms": {
       "type": "number",
       "description": "QTc in milliseconds (200-800). Scores 2 when >480. 480 does not score; 481 does."
      },
      "qrs_axis_deg": {
       "type": "number",
       "description": "QRS axis in degrees (-180 to 180). Scores 1 when < -30 or > 100 (Figure 2 / abstract; not table 110). -30 and 100 do not score; -31 and 101 do."
      },
      "heart_disease": {
       "type": "boolean",
       "description": "History of heart disease (Thiruganasambandamoorthy 2016). true or false. Scores 1 if true."
      },
      "qrs_duration_ms": {
       "type": "number",
       "description": "QRS duration in milliseconds (40-300). Scores 1 when >130. 130 does not score; 131 does."
      },
      "elevated_troponin": {
       "type": "boolean",
       "description": "Troponin above the 99th percentile (Thiruganasambandamoorthy 2016). true or false. Scores 2 if true."
      },
      "ed_cardiac_syncope": {
       "type": "boolean",
       "description": "ED diagnosis of cardiac syncope (Thiruganasambandamoorthy 2016). true or false. Scores 2 if true. Cannot be true together with ed_vasovagal_syncope."
      },
      "sbp_lt_90_or_gt_180": {
       "type": "boolean",
       "description": "Any ED systolic BP <90 or >180 mm Hg (caller-assigned; SBP 90 and 180 are not out of range). true or false. Scores 2 if true. magent does not take a numeric SBP."
      },
      "ed_vasovagal_syncope": {
       "type": "boolean",
       "description": "ED diagnosis of vasovagal syncope (Thiruganasambandamoorthy 2016). true or false. Scores -2 if true. Cannot be true together with ed_cardiac_syncope."
      },
      "predi
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "path": "/api/calc/csrs",
  "count": 2,
  "items": [
   {
    "score": 0,
    "qtc_ms": 400,
    "formula": "csrs",
    "citation": {
     "id": "thiruganasambandamoorthy-2016",
     "doi": "10.1503/cmaj.151469",
     "pmid": "27378464",
     "title": "Development of the Canadian Syncope Risk Score to predict serious adverse events after emergency department assessment of syncope.",
     "source": "CMAJ. 2016;188(12):E289-E298",
     "authors": "Thiruganasambandamoorthy V, Kwong K, Wells GA, et al."
    },
    "max_score": 11,
    "components": [
     {
      "factor": "predisposition_vasovagal",
      "points": 0,
      "present": false
     },
     {
      "factor": "heart_disease",
      "points": 0,
      "present": false
     },
     {
      "factor": "sbp_lt_90_or_gt_180",
      "points": 0,
      "present": false
     },
     {
      "factor": "elevated_troponin",
      "points": 0,
      "present": false
     },
     {
      "value": 0,
      "factor": "qrs_axis",
      "points": 0,
      "present": false
     },
     {
      "value": 80,
      "factor": "qrs_duration",
      "points": 0,
      "present": false
     },
     {
      "value": 400,
      "factor": "qtc",
      "points": 0,
      "present": false
     },
     {
      "factor": "ed_vasovagal_syncope",
      "points": 0,
      "present": false
     },
     {
      "factor": "ed_cardiac_syncope",
      "points": 0,
      "present": false
     }
    ],
    "disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
    "qrs_axis_deg": 0,
    "qrs_duration_ms": 80,
    "formula_expression": "CSRS = predisposition_vasovagal(-1) + heart_disease(1) + sbp_lt_90_or_gt_180(2) + elevated_troponin(2) + (qrs_axis < -30 or > 100)(1) + (qrs_duration > 130)(1) + (qtc > 480)(2) + ed_vasovagal_syncope(-2) + ed_cardiac_syncope(2); range -3 to 11; max 11; Figure 2 / abstract (axis >100, not table 110)"
   },
   {
    "score": 0,
    "qtc_ms": 400,
    "formula": "csrs",
    "citation": {
     "id": "thiruganasambandamoorthy-2016",
     "doi": "10.1503/cmaj.151469",
     "pmid": "27378464",
     "title": "Development of the Canadian Syncope Risk Score to predict serious adverse events after emergency department assessment of syncope.",
     "source": "CMAJ. 2016;188(12):E289-E298",
     "authors": "Thiruganasambandamoorthy V, Kwong K
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/canadian-syncope-risk-score-csrs-calculator-df7d5a8a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.magentlab.com](https://www.zero.xyz/host/api.magentlab.com/llms.txt)
