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).
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
- Authors
- Skinner HA
- Source
- Addict Behav. 1982;7(4):363-371
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
- able_to_stop is true (reverse-scored; not scored)
- the other nine items are false (not scored)
- 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
- able_to_stop is false (reverse-scored; scores 1)
- the other nine items are false
- 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
- used_drugs_nonmedical, abuse_more_than_one, blackouts_flashbacks, and feel_bad_guilty true
- able_to_stop true (not scored)
- 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
- nine forward items true; able_to_stop true (not scored)
- 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.
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.
- 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"
}
]
}
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.