# Duke Treadmill Score Calculator (Mark 1991)

> Duke Treadmill Score Calculator (Mark 1991) 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).

Calculates the Mark 1991 Duke Treadmill Score from exercise duration, ST-segment deviation, and angina index to stratify coronary artery disease risk.

## Facts

- Endpoint: GET https://api.magentlab.com/api/calc/duke_treadmill
- 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/duke-treadmill-score-calculator-mark-1991-fcfb7347
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_sIf8DZ8AZ6OYW8d5s-iPm

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 duke-treadmill-score-calculator-mark-1991-fcfb7347
```

Example prompt: Calculate the Duke Treadmill Score for a patient who exercised for 9 minutes, had a maximal ST deviation of 2mm, and had nonlimiting angina (angina index 1) during the test.

## When to prefer this

Use this endpoint when you need a fast, deterministic computation of the Mark 1991 Duke Treadmill Score from already-extracted clinical parameters. It does not interpret or read ECGs, does not prescribe Bruce protocol, and is not a CAD diagnosis tool — it is purely a scoring calculator. Prefer this over manual formula application when building cardiology workflows, automated report generation, or risk stratification pipelines.

## Known failure modes

- Missing required query parameter (exercise_min, st_deviation_mm, or angina_index) returns a 4xx error
- angina_index not one of 0, 1, or 2 (integer enum) returns a validation error
- exercise_min or st_deviation_mm out of expected range may yield a warning or error
- Payment not provided or insufficient (x402 protocol) returns a 402 Payment Required response

## How this service works

Mark 1991 Duke treadmill score: duke_treadmill_score = exercise_min - (5 * st_deviation_mm) - (4 * angina_index), 1 decimal. Angina index 0 none, 1 nonlimiting, 2 exercise-limiting. High if score < -10, moderate -10 to 4, low >= 5. Not a catheterization order, CAD diagnosis, or Bruce-protocol prescription. magent does not read the ECG.

## Output

Returns the Duke Treadmill Score as a number with one decimal place, calculated as: exercise_min − (5 × st_deviation_mm) − (4 × angina_index). Also indicates the risk category: high (score < −10), moderate (score −10 to 4), or low (score ≥ 5).

## 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": [
      "exercise_min",
      "st_deviation_mm",
      "angina_index"
     ],
     "properties": {
      "angina_index": {
       "enum": [
        0,
        1,
        2
       ],
       "type": "integer",
       "description": "Mark 1991 angina index: 0 no angina during exercise, 1 nonlimiting angina, 2 exercise-limiting angina. Integer 0, 1, or 2."
      },
      "exercise_min": {
       "type": "number",
       "description": "Bruce-protocol exercise duration in minutes (number 0-21). Mark 1991. Not a Bruce-protocol prescription."
      },
      "st_deviation_mm": {
       "type": "number",
       "description": "Maximal net ST-segment deviation during or after exercise in millimetres (number 0-10). Mark 1991. magent does not read the ECG."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "path": "/api/calc/duke_treadmill",
  "count": 2,
  "items": [
   {
    "formula": "duke_treadmill",
    "citation": {
     "id": "mark-1991",
     "doi": "10.1056/NEJM199109193251204",
     "pmid": "1875969",
     "title": "Prognostic value of a treadmill exercise score in outpatients with suspected coronary artery disease",
     "source": "N Engl J Med. 1991;325(12):849-853",
     "authors": "Mark DB, Shaw L, Harrell FE Jr, Hlatky MA, Lee KL, Bengtson JR, McCants CB, Califf RM, Pryor DB"
    },
    "duke_band": "low",
    "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.",
    "angina_index": 0,
    "exercise_min": 10,
    "st_deviation_mm": 1,
    "formula_expression": "duke_treadmill_score = exercise_min - (5 * st_deviation_mm) - (4 * angina_index)",
    "duke_treadmill_score": 5
   },
   {
    "formula": "duke_treadmill",
    "citation": {
     "id": "mark-1991",
     "doi": "10.1056/NEJM199109193251204",
     "pmid": "1875969",
     "title": "Prognostic value of a treadmill exercise score in outpatients with suspected coronary artery disease",
     "source": "N Engl J Med. 1991;325(12):849-853",
     "authors": "Mark DB, Shaw L, Harrell FE Jr, Hlatky MA, Lee KL, Bengtson JR, McCants CB, Califf RM, Pryor DB"
    },
    "duke_band": "low",
    "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.",
    "angina_index": 0,
    "exercise_min": 10,
    "st_deviation_mm": 1,
    "formula_expression": "duke_treadmill_score = exercise_min - (5 * st_deviation_mm) - (4 * angina_index)",
    "duke_treadmill_score": 5
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/duke-treadmill-score-calculator-mark-1991-fcfb7347/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)
