# NVPS (Nonverbal Pain Scale) Calculator — Odhner 2003

> NVPS (Nonverbal Pain Scale) Calculator — Odhner 2003 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 original Odhner 2003 Nonverbal Pain Scale (NVPS) total score (0–10) by summing five caller-assigned behavioral and physiologic subscores.

## Facts

- Endpoint: GET https://api.magentlab.com/api/calc/nvps
- 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/nvps-nonverbal-pain-scale-calculator-odhner-2003-61e0d337
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_RqJ-RLQxNBUsQBj8QnuMh

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 nvps-nonverbal-pain-scale-calculator-odhner-2003-61e0d337
```

Example prompt: Can you calculate the NVPS pain score for my ICU patient? She has an occasional grimace so face is 1, she's lying quietly so activity is 0, she's splinting so guarding is 1, her SBP changed by 25 mmHg over the last 4 hours so physiologic I is 2, and her skin is warm and dry so physiologic II is 0.

## When to prefer this

Use this endpoint when you need to compute the original Odhner 2003 NVPS for a nonverbal or non-communicative patient and have already assigned integer 0–2 values to all five behavioral and physiologic categories. Prefer this over manual calculation to ensure accurate summation. Do not use if you need the later NVPS-R (which replaces physiologic II with a respiratory category), the BPS (Behavioral Pain Scale), or FLACC (for pediatric patients). This endpoint performs only arithmetic summation — clinical observation and subscore assignment must be done by the clinician before calling.

## Known failure modes

- Missing any of the five required query parameters returns an error
- Any subscore value outside 0–2 (integer) is rejected as invalid
- Non-integer inputs are rejected
- Endpoint does not validate clinical plausibility of provided subscores — caller is responsible for accurate observation-to-score mapping

## How this service works

Odhner 2003 original NVPS from five caller-assigned 0-2 items (face, activity, guarding, physiologic_i vital signs, physiologic_ii autonomic) using that paper's 0/1/2 descriptors. magent sums only (max 10) and does not observe the patient. Not the later NVPS-R respiratory revision. No invented intensity cutoffs. Not a pain diagnosis or analgesic order. Not BPS. Not FLACC.

## Output

Returns the NVPS total score as an integer between 0 and 10, calculated as the arithmetic sum of the five caller-assigned subscores (face + activity + guarding + physiologic_i + physiologic_ii). Does not provide diagnosis, intensity cutoffs, analgesic recommendations, or observational data.

## 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": [
      "face",
      "activity",
      "guarding",
      "physiologic_i",
      "physiologic_ii"
     ],
     "properties": {
      "face": {
       "type": "integer",
       "description": "Caller-assigned Odhner 2003 original NVPS face (integer 0-2): 0 no particular expression or smile; 1 occasional grimace, tearing, frowning, wrinkled forehead; 2 frequent grimace, tearing, frowning, wrinkled forehead. magent does not observe the patient."
      },
      "activity": {
       "type": "integer",
       "description": "Caller-assigned Odhner 2003 original NVPS activity/movement (integer 0-2): 0 lying quietly, normal position; 1 seeking attention through movement or slow, cautious movement; 2 restless, excessive activity and/or withdrawal reflexes. magent does not observe the patient."
      },
      "guarding": {
       "type": "integer",
       "description": "Caller-assigned Odhner 2003 original NVPS guarding (integer 0-2): 0 lying quietly, no positioning of hands over areas of the body; 1 splinting areas of the body, tense; 2 rigid, stiff. magent does not observe the patient."
      },
      "physiologic_i": {
       "type": "integer",
       "description": "Caller-assigned Odhner 2003 original NVPS physiologic I vital signs (integer 0-2): 0 stable vital signs (no change in past 4 h vs baseline BP/HR/RR); 1 change over past 4 h in SBP >20 mmHg or HR >20/min or RR >10/min; 2 change over past 4 h in SBP >30 mmHg or HR >25/min or RR >20/min. magent does not observe the patient."
      },
      "physiologic_ii": {
       "type": "integer",
       "description": "Caller-assigned Odhner 2003 original NVPS physiologic II autonomic (integer 0-2): 0 warm, dry skin; 1 dilated pupils, perspiring, flushing; 2 diaphoretic, pallor. Not the later NVPS-R respiratory category. magent does not observe the patient."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "objec
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/nvps-nonverbal-pain-scale-calculator-odhner-2003-61e0d337/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)
