# magent BAM (Brief Addiction Monitor) Scorer

> magent BAM (Brief Addiction Monitor) Scorer 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 Cacciola 2013 Brief Addiction Monitor (BAM) subscale scores — Use, Risk, and Protective — from caller-supplied item values without interviewing the patient.

## Facts

- Endpoint: GET https://api.magentlab.com/api/calc/bam
- 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-bam-brief-addiction-monitor-scorer-c8e2551c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_s6Q31WQOnjLH33Fex3gRg

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-bam-brief-addiction-monitor-scorer-c8e2551c
```

Example prompt: Calculate the BAM subscale scores for a patient who used alcohol 10 days, heavy alcohol 3 days, drugs 0 days in the last 30 days, craving rated 2, 5 days in risky situations, physical health 1, 4 days trouble sleeping, 2 days psychological distress, 8 days self-help, 6 days structured activity, has adequate income, 1 family argument day, 12 days supportive contact, abstinence confidence 3, recovery satisfaction 3, 15 days risky situations, no marijuana or other drug types checked.

## When to prefer this

Use this endpoint when you need to compute validated BAM subscale scores from pre-collected item responses according to the Cacciola 2013 scoring algorithm, particularly in VA or SUD clinical workflows. Prefer this over manual calculation to ensure correct subscale groupings and score ranges. Do not use this endpoint to interview patients, produce diagnoses, or determine level of care.

## Known failure modes

- Missing required query parameters returns an error indicating which fields are absent
- Out-of-range integer values (e.g. days > 30 or Likert > 4) may produce incorrect subscale totals or validation errors
- Payment failure via x402 results in a 402 response and no scoring result
- Caller misassigning item values (e.g. swapping days-based items with Likert items) produces silently incorrect subscale scores

## How this service works

Cacciola 2013 Brief Addiction Monitor (BAM; public-domain VA instrument). Three subscales only: Use (items 4+5+6, 0-90), Risk (items 1+2+3+8+11+15, 0-102 on Table 1 0-4 Likert plus 0-30 days), Protective (items 9+10+12+13+14+16, 0-98; income No=0 Yes=30). Items 7a-g and 17 collected, not summed. No total BAM score. magent does not interview the patient. Not a diagnosis, level-of-care order, or medical device.

## Output

Returns the three BAM subscale scores: Use (sum of items 4+5+6, range 0-90), Risk (sum of items 1+2+3+8+11+15, range 0-102), and Protective (sum of items 9+10+12+13+14+16, range 0-98), plus the raw collected values for items 7a-g and 17 which are not summed. No total BAM score is produced. This is not a diagnosis, level-of-care order, or medical device output.

## 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": [
      "physical_health",
      "days_sleep",
      "days_psychological",
      "days_alcohol",
      "days_heavy_alcohol",
      "days_drug",
      "drug_marijuana",
      "drug_sedatives",
      "drug_cocaine",
      "drug_stimulants",
      "drug_opiates",
      "drug_inhalants",
      "drug_other",
      "craving",
      "abstinence_confidence",
      "days_self_help",
      "days_risky",
      "religion_support",
      "days_structured",
      "adequate_income",
      "family_arguments",
      "days_supportive",
      "recovery_satisfaction"
     ],
     "properties": {
      "craving": {
       "type": "integer",
       "description": "Caller-assigned Cacciola 2013 Table 1 item 8 craving rating (integer 0-4; 0 not at all, 4 extremely). Kept on Table 1's 0-4 scale. magent does not interview the patient."
      },
      "days_drug": {
       "type": "integer",
       "description": "Caller-assigned Cacciola 2013 Table 1 item 6 days of drug use in the prior 30 days (integer 0-30). magent does not interview the patient."
      },
      "days_risky": {
       "type": "integer",
       "description": "Caller-assigned Cacciola 2013 Table 1 item 11 days in risky situations in the prior 30 days (integer 0-30). magent does not interview the patient."
      },
      "days_sleep": {
       "type": "integer",
       "description": "Caller-assigned Cacciola 2013 Table 1 item 2 days of trouble sleeping in the prior 30 days (integer 0-30). magent does not interview the patient."
      },
      "drug_other": {
       "type": "boolean",
       "description": "Caller-assigned Cacciola 2013 item 7 checklist slot 7g (other drugs). Collected and not summed. magent does not interview the patient."
      },
      "days_alcohol": {
       "type": "integer",
       "description": "Caller-assigned Cacciola 2013 Table 1 item 4 days of alcohol use in the prior 30 days (integer 0-30). magent does not interview the pat
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/magent-bam-brief-addiction-monitor-scorer-c8e2551c/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)
