MAGENT

Emergency · LIVE

Drug Abuse Screening Test-10 (DAST-10)

DAST-10

Count Skinner 1982 DAST-10 problem-direction answers (able_to_stop reverse-scored) and return the published degree-of-problems band (0 none, 1-2 low, 3-5 moderate, 6-8 substantial, 9-10 severe).

LIVE $0.005 USDC GET /api/calc/dast_10

Markdown: /docs/dast-10.md · Canonical: https://magentlab.com/docs/dast-10

Not a medical device. Not a diagnosis, dose, or listing recommendation.

What it computes

Count Skinner 1982 DAST-10 problem-direction answers (able_to_stop reverse-scored) and return the published degree-of-problems band (0 none, 1-2 low, 3-5 moderate, 6-8 substantial, 9-10 severe).

When to use

When an agent has already assigned the ten DAST-10 yes/no items and needs that 1982 scored total and degree-of-problems bands, not DAST-20, DAST-28, a diagnosis, or a toxicology panel.

When not to use

  • Not a medical device.
  • Not a diagnosis of a drug use disorder.
  • Not a toxicology panel and not a measure of alcohol use.
  • magent does not interpret the items. Each flag is caller-assigned yes/no.
  • Scoring uses the Skinner 1982 DAST-10 problem-direction key. able_to_stop scores 1 if false and 0 if true. magent does not award 1 point for every yes.
  • This is the 10-item DAST-10 only. Not DAST-28 and not DAST-20.
  • Degree-of-problems bands follow the 1982 DAST-10 table: 0 no problems, 1-2 low, 3-5 moderate, 6-8 substantial, 9-10 severe. magent does not apply Gavin 1989 DAST DSM-III cut-points (5/6) or later NIDA-only cutoffs.

Formula

DAST-10 = used_drugs_nonmedical + abuse_more_than_one + (1 if not able_to_stop) + blackouts_flashbacks + feel_bad_guilty + others_complain + neglected_family + illegal_activities + withdrawal + medical_problems; each 1 in the Skinner 1982 problem direction; max 10

Citation

Title
The drug abuse screening test
Authors
Skinner HA
Source
Addict Behav. 1982;7(4):363-371
DOI
10.1016/0306-4603(82)90005-3

Worked example

All no (able_to_stop true)

Given: able_to_stop=trueabuse_more_than_one=falseblackouts_flashbacks=falsefeel_bad_guilty=falseillegal_activities=falsemedical_problems=falseneglected_family=falseothers_complain=falseused_drugs_nonmedical=falsewithdrawal=false

  1. able_to_stop is true (reverse-scored; not scored)
  2. the other nine items are false (not scored)
  3. score = 0; dast_band no_problems

Unable to stop only

Given: able_to_stop=falseabuse_more_than_one=falseblackouts_flashbacks=falsefeel_bad_guilty=falseillegal_activities=falsemedical_problems=falseneglected_family=falseothers_complain=falseused_drugs_nonmedical=falsewithdrawal=false

  1. able_to_stop is false (reverse-scored; scores 1)
  2. the other nine items are false
  3. score = 1; dast_band low

Four problem-direction answers

Given: able_to_stop=trueabuse_more_than_one=trueblackouts_flashbacks=truefeel_bad_guilty=trueillegal_activities=falsemedical_problems=falseneglected_family=falseothers_complain=falseused_drugs_nonmedical=truewithdrawal=false

  1. used_drugs_nonmedical, abuse_more_than_one, blackouts_flashbacks, and feel_bad_guilty true
  2. able_to_stop true (not scored)
  3. score = 4; dast_band moderate

Nine forward items true

Given: able_to_stop=trueabuse_more_than_one=trueblackouts_flashbacks=truefeel_bad_guilty=trueillegal_activities=truemedical_problems=trueneglected_family=trueothers_complain=trueused_drugs_nonmedical=truewithdrawal=true

  1. nine forward items true; able_to_stop true (not scored)
  2. score = 9; dast_band severe

Also searched as

  • DAST-10
  • Drug Abuse Screening Test
  • DAST 10
  • Skinner DAST
  • 10-item DAST
  • drug abuse screening test 10
  • DAST score

Try

Opens the live endpoint. Unpaid browser requests show the paywall; agents should send Accept: application/json.

/api/calc/dast_10?used_drugs_nonmedical=false&abuse_more_than_one=false&able_to_stop=true&blackouts_flashbacks=false&feel_bad_guilty=false&others_complain=false&neglected_family=false&illegal_activities=false&withdrawal=false&medical_problems=false

Full URL: https://api.magentlab.com/api/calc/dast_10?used_drugs_nonmedical=false&abuse_more_than_one=false&able_to_stop=true&blackouts_flashbacks=false&feel_bad_guilty=false&others_complain=false&neglected_family=false&illegal_activities=false&withdrawal=false&medical_problems=false

Call

Expect HTTP 402 until you retry with PAYMENT-SIGNATURE. Incomplete query params return HTTP 400 before any quote or charge.

curl -i -H "Accept: application/json" "https://api.magentlab.com/api/calc/dast_10?used_drugs_nonmedical=false&abuse_more_than_one=false&able_to_stop=true&blackouts_flashbacks=false&feel_bad_guilty=false&others_complain=false&neglected_family=false&illegal_activities=false&withdrawal=false&medical_problems=false"

Parameters

Name Type Required Description
used_drugs_nonmedical boolean required Have you used drugs other than those required for medical reasons? (Skinner 1982 DAST-10 item 1; past 12 months). true or false as assigned by the caller. true is the problem-direction answer and scores 1. magent does not interpret the item.
abuse_more_than_one boolean required Do you abuse more than one drug at a time? (Skinner 1982 DAST-10 item 2; past 12 months). true or false as assigned by the caller. true is the problem-direction answer and scores 1. magent does not interpret the item.
able_to_stop boolean required Are you always able to stop using drugs when you want to? (Skinner 1982 DAST-10 item 3; past 12 months). true or false as assigned by the caller. false is the problem-direction answer and scores 1 (reverse-scored). magent does not interpret the item.
blackouts_flashbacks boolean required Have you had blackouts or flashbacks as a result of drug use? (Skinner 1982 DAST-10 item 4; past 12 months). true or false as assigned by the caller. true is the problem-direction answer and scores 1. magent does not interpret the item.
feel_bad_guilty boolean required Do you ever feel bad or guilty about your drug use? (Skinner 1982 DAST-10 item 5; past 12 months). true or false as assigned by the caller. true is the problem-direction answer and scores 1. magent does not interpret the item.
others_complain boolean required Does your spouse (or parents) ever complain about your involvement with drugs? (Skinner 1982 DAST-10 item 6; past 12 months). true or false as assigned by the caller. true is the problem-direction answer and scores 1. magent does not interpret the item.
neglected_family boolean required Have you neglected your family because of your use of drugs? (Skinner 1982 DAST-10 item 7; past 12 months). true or false as assigned by the caller. true is the problem-direction answer and scores 1. magent does not interpret the item.
illegal_activities boolean required Have you engaged in illegal activities in order to obtain drugs? (Skinner 1982 DAST-10 item 8; past 12 months). true or false as assigned by the caller. true is the problem-direction answer and scores 1. magent does not interpret the item.
withdrawal boolean required Have you ever experienced withdrawal symptoms (felt sick) when you stopped taking drugs? (Skinner 1982 DAST-10 item 9; past 12 months). true or false as assigned by the caller. true is the problem-direction answer and scores 1. magent does not interpret the item.
medical_problems boolean required Have you had medical problems as a result of your drug use (e.g., memory loss, hepatitis, convulsions, bleeding)? (Skinner 1982 DAST-10 item 10; past 12 months). true or false as assigned by the caller. true is the problem-direction answer and scores 1. magent does not interpret the item.

Bulk (POST)

POST the same path with a JSON items array. The first item is the GET unit; each additional item is $0.002. Invalid items return HTTP 400 before settlement.

POST /api/calc/dast_10 Max 25 unit_amount + extra_item_amount * (n - 1) extra $0.002 PREVIEW

  • 1 to 25 items. Each item uses the same keys as the GET query parameters.
  • POST of 1 item costs the same as GET. Lists longer than 25: chunk into multiple POSTs. Extra items still execute; do not pad dummy rows.
  • The first invalid item fails the whole request (index in the 400 JSON). You are not charged.
  • HTTP 200 is {count, path, items}. Each items[i] is the GET 200 body for that row.
  • Catalog misses (empty matches, found=false) stay paid 200s inside that slot.
  • x402 resource URL is this path plus n and body_sha256. Browsers that prefer text/html get the same paywall as GET; Pay retries POST with the same items.

Example request (fixture)

{
  "items": [
    {
      "able_to_stop": "true",
      "abuse_more_than_one": "false",
      "blackouts_flashbacks": "false",
      "feel_bad_guilty": "false",
      "illegal_activities": "false",
      "medical_problems": "false",
      "neglected_family": "false",
      "others_complain": "false",
      "used_drugs_nonmedical": "false",
      "withdrawal": "false"
    },
    {
      "able_to_stop": "true",
      "abuse_more_than_one": "false",
      "blackouts_flashbacks": "false",
      "feel_bad_guilty": "false",
      "illegal_activities": "false",
      "medical_problems": "false",
      "neglected_family": "false",
      "others_complain": "false",
      "used_drugs_nonmedical": "false",
      "withdrawal": "false"
    }
  ]
}

Open bulk paywall →

Opens a two-item fixture on the API host. Unpaid browsers get the same MetaMask paywall as GET; Pay retries POST with those items.

Example 200 (fixture)

{
  "count": 2,
  "path": "/api/calc/dast_10",
  "items": [
    {
      "components": [
        {
          "factor": "used_drugs_nonmedical",
          "points": 0,
          "present": false
        },
        {
          "factor": "abuse_more_than_one",
          "points": 0,
          "present": false
        },
        {
          "factor": "able_to_stop",
          "points": 0,
          "present": false
        },
        {
          "factor": "blackouts_flashbacks",
          "points": 0,
          "present": false
        },
        {
          "factor": "feel_bad_guilty",
          "points": 0,
          "present": false
        },
        {
          "factor": "others_complain",
          "points": 0,
          "present": false
        },
        {
          "factor": "neglected_family",
          "points": 0,
          "present": false
        },
        {
          "factor": "illegal_activities",
          "points": 0,
          "present": false
        },
        {
          "factor": "withdrawal",
          "points": 0,
          "present": false
        },
        {
          "factor": "medical_problems",
          "points": 0,
          "present": false
        }
      ],
      "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.",
      "citation": {
        "authors": "Skinner HA",
        "doi": "10.1016/0306-4603(82)90005-3",
        "id": "skinner-1982",
        "source": "Addict Behav. 1982;7(4):363-371",
        "title": "The drug abuse screening test"
      },
      "formula": "dast_10",
      "formula_expression": "DAST-10 = used_drugs_nonmedical + abuse_more_than_one + (1 if not able_to_stop) + blackouts_flashbacks + feel_bad_guilty + others_complain + neglected_family + illegal_activities + withdrawal + medical_problems; each 1 in the Skinner 1982 problem direction; max 10",
      "max_score": 10,
      "score": 0,
      "dast_band": "no_problems"
    },
    {
      "components": [
        {
          "factor": "used_drugs_nonmedical",
          "points": 0,
          "present": false
        },
        {
          "factor": "abuse_more_than_one",
          "points": 0,
          "present": false
        },
        {
          "factor": "able_to_stop",
          "points": 0,
          "present": false
        },
        {
          "factor": "blackouts_flashbacks",
          "points": 0,
          "present": false
        },
        {
          "factor": "feel_bad_guilty",
          "points": 0,
          "present": false
        },
        {
          "factor": "others_complain",
          "points": 0,
          "present": false
        },
        {
          "factor": "neglected_family",
          "points": 0,
          "present": false
        },
        {
          "factor": "illegal_activities",
          "points": 0,
          "present": false
        },
        {
          "factor": "withdrawal",
          "points": 0,
          "present": false
        },
        {
          "factor": "medical_problems",
          "points": 0,
          "present": false
        }
      ],
      "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.",
      "citation": {
        "authors": "Skinner HA",
        "doi": "10.1016/0306-4603(82)90005-3",
        "id": "skinner-1982",
        "source": "Addict Behav. 1982;7(4):363-371",
        "title": "The drug abuse screening test"
      },
      "formula": "dast_10",
      "formula_expression": "DAST-10 = used_drugs_nonmedical + abuse_more_than_one + (1 if not able_to_stop) + blackouts_flashbacks + feel_bad_guilty + others_complain + neglected_family + illegal_activities + withdrawal + medical_problems; each 1 in the Skinner 1982 problem direction; max 10",
      "max_score": 10,
      "score": 0,
      "dast_band": "no_problems"
    }
  ]
}

Response

Field Type Description
formula string dast_10
formula_expression string Exact expression used
score integer DAST-10 points 0-10. Count of Skinner 1982 problem-direction answers, not a raw yes count.
max_score integer 10
dast_band string Skinner 1982 DAST-10 degree of problems: no_problems (0), low (1-2), moderate (3-5), substantial (6-8), or severe (9-10). Not a diagnosis.
components array Per-item points. present is true when the answer is in the problem direction.
citation object Skinner Addict Behav 1982 citation
disclaimer string Not-a-device notice

Example JSON

Machine form of the same example. Frozen fixture. Not a live lookup.

{
  "components": [
    {
      "factor": "used_drugs_nonmedical",
      "points": 0,
      "present": false
    },
    {
      "factor": "abuse_more_than_one",
      "points": 0,
      "present": false
    },
    {
      "factor": "able_to_stop",
      "points": 0,
      "present": false
    },
    {
      "factor": "blackouts_flashbacks",
      "points": 0,
      "present": false
    },
    {
      "factor": "feel_bad_guilty",
      "points": 0,
      "present": false
    },
    {
      "factor": "others_complain",
      "points": 0,
      "present": false
    },
    {
      "factor": "neglected_family",
      "points": 0,
      "present": false
    },
    {
      "factor": "illegal_activities",
      "points": 0,
      "present": false
    },
    {
      "factor": "withdrawal",
      "points": 0,
      "present": false
    },
    {
      "factor": "medical_problems",
      "points": 0,
      "present": false
    }
  ],
  "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.",
  "citation": {
    "authors": "Skinner HA",
    "doi": "10.1016/0306-4603(82)90005-3",
    "id": "skinner-1982",
    "source": "Addict Behav. 1982;7(4):363-371",
    "title": "The drug abuse screening test"
  },
  "formula": "dast_10",
  "formula_expression": "DAST-10 = used_drugs_nonmedical + abuse_more_than_one + (1 if not able_to_stop) + blackouts_flashbacks + feel_bad_guilty + others_complain + neglected_family + illegal_activities + withdrawal + medical_problems; each 1 in the Skinner 1982 problem direction; max 10",
  "max_score": 10,
  "score": 0,
  "dast_band": "no_problems"
}

Client errors (HTTP 400)

Invalid params return 400 without charge. Shared HTTP 402 and 503 meanings: Payments.

HTTP Code When
400 invalid_dast_item each DAST-10 item must be true or false (Skinner 1982; item able_to_stop is reverse-scored). Returned before settlement; you are not charged.
400 invalid_items POST body must be a JSON object with only an items array Returned before settlement; you are not charged.
400 invalid_item_count items must be an array of 1 to 25 objects Returned before settlement; you are not charged.
400 invalid_item each items entry must be a JSON object Returned before settlement; you are not charged.

Related tools

  • CAGE — Sum the four Ewing 1984 CAGE items and return whether two or more answers are affirmative.
  • AUDIT-C — Sum three caller-assigned Bush 1998 AUDIT-C integers (0-4) and return this paper's ≥3 and ≥4 screens.
  • SMAST — Count Selzer 1975 SMAST alcoholic-direction answers and return the published 0-1 nonalcoholic, 2 possible, and ≥3 alcoholic bands.

Payment

Unpaid requests return HTTP 402 even if query parameters or POST items are missing or invalid, so CDP and agents can index the path. After a PAYMENT-SIGNATURE, invalid params return HTTP 400 JSON before settlement. magent does not charge. Fix the params, then request a new 402 quote for that complete URL. Catalog misses (empty matches, found=false) are valid paid 200s. Unpaid valid requests return HTTP 402 with a base64 PAYMENT-REQUIRED header. HTTP 503 is not a new quote: retry the same PAYMENT-SIGNATURE. Full handshake and shared payment errors: Payments. Stdio MCP: /docs/mcp.

Guarantees

  • HTTP 402 is unpaid, including a missing query. After PAYMENT-SIGNATURE, invalid parameters return HTTP 400 before settlement. You are not charged. HTTP 402 never includes the tool JSON.
  • exact: settlement finishes before the tool (paymentFlow upfront). batch-settlement: verify/deposit before the tool; chargedCumulativeAmount commits after HTTP 2xx. Uncertain or failed settlement fails closed (HTTP 503). Retry the same PAYMENT-SIGNATURE.
  • HTTP 402 is unpaid only. Do not sign a second authorization because of a 503.
  • Execution is timeout-bounded and concurrency-capped.
  • Calculator inputs are stored encrypted for allowlisted operators (Magent Console). They are not in public logs, SSH lookups, catalog, or rollups. Request logs store path without query.