# magent DAS28-CRP Calculator (Wells 2009)

> magent DAS28-CRP Calculator (Wells 2009) 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 DAS28-CRP disease activity score for rheumatoid arthritis monitoring using the Wells 2009 formula with tender joint count, swollen joint count, CRP in mg/L, and patient global health VAS.

## Facts

- Endpoint: GET https://api.magentlab.com/api/calc/das28_crp
- 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/magent-das28-crp-calculator-wells-2009-dfaffe75
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_w9ePEskNhIXdfwJPFyX7-

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 magent-das28-crp-calculator-wells-2009-dfaffe75
```

Example prompt: Calculate the DAS28-CRP score for my RA patient who has 8 tender joints, 5 swollen joints, a CRP of 14.2 mg/L, and rated their overall health as 55 on the 0-100 scale.

## When to prefer this

Use this endpoint when you need a programmatic, formula-exact Wells 2009 DAS28-CRP calculation (not DAS28-ESR, SDAI, or CDAI) and you already have all four inputs (TJC28, SJC28, CRP in mg/L, GH on 0–100 mm VAS) from a clinical source. Prefer this over manual calculation to avoid arithmetic errors and unit confusion. Do not use if you need ESR-based DAS28, if CRP is in mg/dL and cannot be converted, or if you need a diagnostic tool rather than a scoring tool.

## Known failure modes

- Missing required query parameters (tjc28, sjc28, crp_mg_l, gh) returns a validation error
- Integer fields (tjc28, sjc28) provided as floats may be rejected
- CRP values outside the 0–500 mg/L clamped range may be clamped or rejected
- Using CRP in mg/dL instead of mg/L will silently produce an incorrect score — caller must convert units
- GH provided on 0–10 cm scale instead of 0–100 mm scale will silently produce an incorrect score
- Payment failure (x402) returns a 402 status requiring USDC payment before retrying

## How this service works

Wells 2009 DAS28(CRP): 0.56*sqrt(TJC28)+0.28*sqrt(SJC28)+0.014*GH+0.36*ln(CRP+1)+0.96. CRP is mg/L, not SDAI mg/dL. GH is 0-100 mm VAS, not 0-10. The +0.96 constant is required. Remission is DAS28<2.6 as stated in that paper. magent does not count joints or assay CRP. Not DAS28-ESR, SDAI, or CDAI. Not a rheumatoid arthritis diagnosis.

## Output

Returns the computed DAS28-CRP composite score (a continuous number, typically 0–9+), calculated as 0.56*sqrt(TJC28)+0.28*sqrt(SJC28)+0.014*GH+0.36*ln(CRP+1)+0.96. The response indicates the numeric score and whether the patient meets the remission threshold (DAS28-CRP < 2.6 per Wells 2009). Does not return a diagnosis.

## 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": [
      "tjc28",
      "sjc28",
      "crp_mg_l",
      "gh"
     ],
     "properties": {
      "gh": {
       "type": "number",
       "description": "Caller-assigned general health (patient assessment) on a 0-100 mm VAS (Wells 2009; 0=best, 100=worst). Number 0-100. Not 0-10 cm SDAI PGA. magent does not examine the patient."
      },
      "sjc28": {
       "type": "integer",
       "description": "Caller-assigned swollen joint count on the 28-joint set (Wells 2009 DAS28-CRP). Integer 0-28. magent does not count joints."
      },
      "tjc28": {
       "type": "integer",
       "description": "Caller-assigned tender joint count on the 28-joint set (Wells 2009 DAS28-CRP). Integer 0-28. magent does not count joints."
      },
      "crp_mg_l": {
       "type": "number",
       "description": "Caller-assigned C-reactive protein in mg/L (Wells 2009; not mg/dL SDAI). Number 0-500 is a magent clamp. magent does not assay CRP."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/magent-das28-crp-calculator-wells-2009-dfaffe75/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)
