# ISARIC 4C Mortality Score Calculator (Knight 2020)

> ISARIC 4C Mortality Score Calculator (Knight 2020) 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-14).

Computes the ISARIC 4C Mortality Score for COVID-19 hospitalized patients using age, sex, comorbidities, respiratory rate, SpO2, GCS, urea/BUN, and CRP, returning a score (0–21) and risk band.

## Facts

- Endpoint: GET https://api.magentlab.com/api/calc/4c
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/isaric-4c-mortality-score-calculator-knight-2020-e70bdff8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_wbMZ-81WRrrsO4z1anOyS

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 isaric-4c-mortality-score-calculator-knight-2020-e70bdff8
```

Example prompt: Calculate the ISARIC 4C Mortality Score for a 68-year-old male patient with 2 comorbidities, respiratory rate of 24, room-air SpO2 of 90%, GCS of 15, urea of 8 mmol/L, and CRP of 85 mg/L.

## When to prefer this

Choose this endpoint when you need a validated, published COVID-19 in-hospital mortality risk score (Knight 2020 ISARIC 4C) with deterministic arithmetic and clear risk banding. Prefer it over general ML-based risk models when auditability and alignment with published clinical literature are required. It is especially suitable for clinical decision-support pipelines, EHR integrations, and research cohort stratification where the exact Knight 2020 scoring table must be applied consistently.

## Known failure modes

- Missing required parameter (age, sex, comorbidity_count, respiratory_rate, spo2_percent, gcs, crp_mg_l) returns a 400 error
- Providing both urea_mmol_l and bun_mg_dl simultaneously causes a validation error
- Out-of-range values (e.g. SpO2 >100, age <18, GCS <3 or >15) return validation errors
- Score is for clinical decision support only; caller must ensure inputs are clinically accurate as the API does not measure or verify vitals
- Payment failure (insufficient USDC balance) returns 402 with x402 payment challenge

## How this service works

Knight 2020 ISARIC 4C Mortality Score: age (<50→0, 50–59→2, 60–69→4, 70–79→6, ≥80→7) + male 1 + comorbidity_count (0/1/≥2 → 0/1/2; caller-assigned Charlson-plus-obesity count) + RR (<20→0, 20–29→1, ≥30→2) + room-air SpO2 (<92→2) + GCS (<15→2) + urea (<7→0, 7–14→1, >14→3 mmol/L; or BUN/2.8) + CRP (<50→0, 50–99→1, ≥100→2). Max 21. Table 5: low 0–3, intermediate 4–8, high 9–14, very high ≥15. Not a COVID-19 diagnosis or treatment order.

## Output

Returns the integer 4C Mortality Score (0–21) and a risk band label (low: 0–3, intermediate: 4–8, high: 9–14, very high: ≥15), along with per-component subscores corresponding to the Knight 2020 Table 2 breakpoints.

## 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": [
      "age",
      "sex",
      "comorbidity_count",
      "respiratory_rate",
      "spo2_percent",
      "gcs",
      "crp_mg_l"
     ],
     "properties": {
      "age": {
       "type": "integer",
       "description": "Age in years (18-120). Knight 2020 Table 2: <50 scores 0; 50–59 scores 2; 60–69 scores 4; 70–79 scores 6; ≥80 scores 7."
      },
      "gcs": {
       "type": "integer",
       "description": "Caller-assigned total GCS as an integer 3–15. 15 scores 0; <15 scores 2 (Knight 2020). This API does not collect eye, verbal, or motor components."
      },
      "sex": {
       "enum": [
        "female",
        "male"
       ],
       "type": "string",
       "description": "Sex at birth (Knight 2020). female scores 0; male scores 1."
      },
      "crp_mg_l": {
       "type": "number",
       "description": "C-reactive protein in mg/L (0–500). Knight 2020: <50 scores 0; 50–99 scores 1; ≥100 scores 2."
      },
      "bun_mg_dl": {
       "type": "number",
       "description": "BUN in mg/dL (3–140). Converted as urea_mmol_l = bun_mg_dl / 2.8."
      },
      "urea_mmol_l": {
       "type": "number",
       "description": "Serum urea in mmol/L (1–50). Provide this or bun_mg_dl, not both. Knight 2020: <7 scores 0; 7–14 inclusive scores 1; >14 scores 3."
      },
      "spo2_percent": {
       "type": "number",
       "description": "Room-air SpO2 percent (50–100). Knight 2020: ≥92 scores 0; <92 scores 2. magent does not measure saturation."
      },
      "respiratory_rate": {
       "type": "integer",
       "description": "Respiratory rate in breaths/min (integer 4–80). Knight 2020: <20 scores 0; 20–29 scores 1; ≥30 scores 2. magent does not measure vitals."
      },
      "comorbidity_count": {
       "type": "integer",
       "description": "Caller-assigned count of Charlson-plus-obesity comorbidities from Knight 2020 (integer 0–20). 0 scores 0; 1 scores 1; ≥2 scores 2. magen
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/isaric-4c-mortality-score-calculator-knight-2020-e70bdff8/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)
