Neonatal · LIVE
Modified Finnegan NAS score
Finnegan
Sum Maguire 2013 Table 1 modified Finnegan items from caller-assigned exclusive cry, sleep, Moro, tremor, fever, respiratory, and stool bands plus true/false CNS, vasomotor, and GI flags. Return the 0–46 total and at_or_above_8 (true iff score ≥ 8).
Markdown: /docs/finnegan.md · Canonical: https://magentlab.com/docs/finnegan
Not a medical device. Not a diagnosis, dose, or listing recommendation.
What it computes
Sum Maguire 2013 Table 1 modified Finnegan items from caller-assigned exclusive cry, sleep, Moro, tremor, fever, respiratory, and stool bands plus true/false CNS, vasomotor, and GI flags. Return the 0–46 total and at_or_above_8 (true iff score ≥ 8).
When to use
When an agent already has Maguire 2013 Table 1 modified FNAS observations as assigned by the caller and needs that published total and ≥8 threshold. magent does not examine the infant, score Eat Sleep Console, score Maguire's 7-item short form, or issue a morphine order.
When not to use
- Not a medical device and not a diagnosis of neonatal abstinence syndrome.
- magent does not examine the infant. Each item is a caller-assigned Maguire 2013 Table 1 exclusive band or true/false flag.
- This is the operational modified FNAS item table reprinted as Maguire 2013 Table 1, not a 31-item website variant and not Maguire's 7-item short form.
- Not Eat Sleep Console (Grossman 2018).
- Not a morphine or other pharmacologic dose. at_or_above_8 is the published ≥8 suspicion / treatment threshold only. This tool does not invent mild/moderate/severe stages.
Formula
FNAS = crying + sleep + moro + tremors + increased_muscle_tone + myoclonic_jerk + generalized_convulsions + excoriation + sweating + fever + frequent_yawning + mottling + nasal_stuffiness + sneezing + nasal_flaring + respiratory + excessive_sucking + poor_feeding + regurgitation + projectile_vomiting + stools; Maguire 2013 Table 1 modified Finnegan (exclusive cry/sleep/moro/tremors/fever/respiratory/stools; remaining items true/false); max 46; at_or_above_8 iff total >= 8 (Zimmermann-Baer / Maguire suspicion and pharmacologic-treatment threshold). Not Eat Sleep Console. Not Maguire 7-item short form. magent does not examine the infant. Not a morphine order.
Citation
- Authors
- Finnegan LP, Connaughton JF Jr, Kron RE, Emich JP
- Source
- Addict Dis. 1975;2(1-2):141-158
- DOI
- none
Worked example
All exclusive bands none and all flags false
Given:
crying=noneexcessive_sucking=falseexcoriation=falsefever=nonefrequent_yawning=falsegeneralized_convulsions=falseincreased_muscle_tone=falsemoro=nonemottling=falsemyoclonic_jerk=falsenasal_flaring=falsenasal_stuffiness=falsepoor_feeding=falseprojectile_vomiting=falseregurgitation=falserespiratory=nonesleep=nonesneezing=falsestools=nonesweating=falsetremors=none
- crying, sleep, moro, tremors, fever, respiratory, and stools are none; remaining items false as assigned by the caller
- Score = 0 (max 46); at_or_above_8 false (below the published ≥8 threshold)
Excessive high-pitched cry only
Given:
crying=excessive_high_pitchedexcessive_sucking=falseexcoriation=falsefever=nonefrequent_yawning=falsegeneralized_convulsions=falseincreased_muscle_tone=falsemoro=nonemottling=falsemyoclonic_jerk=falsenasal_flaring=falsenasal_stuffiness=falsepoor_feeding=falseprojectile_vomiting=falseregurgitation=falserespiratory=nonesleep=nonesneezing=falsestools=nonesweating=falsetremors=none
- crying excessive_high_pitched (2); remaining exclusive bands none and remaining flags false
- Score = 2 (max 46); at_or_above_8 false
Score 8 at the published threshold
Given:
crying=continuous_high_pitchedexcessive_sucking=falseexcoriation=falsefever=nonefrequent_yawning=falsegeneralized_convulsions=falseincreased_muscle_tone=falsemoro=hyperactivemottling=falsemyoclonic_jerk=falsenasal_flaring=falsenasal_stuffiness=falsepoor_feeding=falseprojectile_vomiting=falseregurgitation=falserespiratory=nonesleep=lt_1hsneezing=falsestools=nonesweating=falsetremors=none
- continuous_high_pitched cry 3 + sleep lt_1h 3 + hyperactive Moro 2; remaining items none or false
- Score = 8 (max 46); at_or_above_8 true (Zimmermann-Baer / Maguire ≥8 threshold). Not a morphine dose.
Also searched as
- modified Finnegan
- Finnegan NAS
- FNAS
- neonatal abstinence score
- modified FNAS
- Finnegan score
- neonatal abstinence syndrome score
- Maguire modified Finnegan
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/finnegan?crying=none&sleep=none&moro=none&tremors=none&increased_muscle_tone=false&myoclonic_jerk=false&generalized_convulsions=false&excoriation=false&sweating=false&fever=none&frequent_yawning=false&mottling=false&nasal_stuffiness=false&sneezing=false&nasal_flaring=false&respiratory=none&excessive_sucking=false&poor_feeding=false®urgitation=false&projectile_vomiting=false&stools=none
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/finnegan?crying=none&sleep=none&moro=none&tremors=none&increased_muscle_tone=false&myoclonic_jerk=false&generalized_convulsions=false&excoriation=false&sweating=false&fever=none&frequent_yawning=false&mottling=false&nasal_stuffiness=false&sneezing=false&nasal_flaring=false&respiratory=none&excessive_sucking=false&poor_feeding=false®urgitation=false&projectile_vomiting=false&stools=none"
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
crying |
string | required · none, excessive_high_pitched, continuous_high_pitched | Caller-assigned Maguire 2013 Table 1 crying (none, excessive_high_pitched, or continuous_high_pitched). Exclusive. none 0, excessive_high_pitched 2, continuous_high_pitched 3. magent does not examine the infant. |
sleep |
string | required · none, lt_3h, lt_2h, lt_1h | Caller-assigned Maguire 2013 Table 1 sleep after feeding (none, lt_3h, lt_2h, or lt_1h). Exclusive. Sleeps less than 3/2/1 h after feeding: lt_3h 1, lt_2h 2, lt_1h 3. magent does not observe sleep. |
moro |
string | required · none, hyperactive, markedly_hyperactive | Caller-assigned Maguire 2013 Table 1 Moro reflex (none, hyperactive, or markedly_hyperactive). Exclusive. hyperactive 2, markedly_hyperactive 3. magent does not examine the infant. |
tremors |
string | required · none, mild_disturbed, moderate_severe_disturbed, mild_undisturbed, moderate_severe_undisturbed | Caller-assigned Maguire 2013 Table 1 tremors (none, mild_disturbed, moderate_severe_disturbed, mild_undisturbed, or moderate_severe_undisturbed). Exclusive. mild_disturbed 1, moderate_severe_disturbed 2, mild_undisturbed 3, moderate_severe_undisturbed 4. magent does not examine the infant. |
increased_muscle_tone |
boolean | required | Caller-assigned Maguire 2013 Table 1 increased muscle tone. true scores 2. magent does not examine the infant. |
myoclonic_jerk |
boolean | required | Caller-assigned Maguire 2013 Table 1 myoclonic jerks. true scores 3. magent does not examine the infant. |
generalized_convulsions |
boolean | required | Caller-assigned Maguire 2013 Table 1 generalized convulsions. true scores 5. magent does not examine the infant. Not a seizure diagnosis. |
excoriation |
boolean | required | Caller-assigned Maguire 2013 Table 1 excoriation. Single item (not per-site nose, knees, or toes). true scores 1. magent does not inspect the skin. |
sweating |
boolean | required | Caller-assigned Maguire 2013 Table 1 sweating. true scores 1. magent does not examine the infant. |
fever |
string | required · none, lt_101f, gt_101f | Caller-assigned Maguire 2013 Table 1 fever (none, lt_101f, or gt_101f). Exclusive. Maguire <101°F scores 1; >101°F scores 2. magent does not take a temperature. |
frequent_yawning |
boolean | required | Caller-assigned Maguire 2013 Table 1 frequent yawning (>3). true scores 1. magent does not observe yawning. |
mottling |
boolean | required | Caller-assigned Maguire 2013 Table 1 mottling. true scores 1. magent does not examine the infant. |
nasal_stuffiness |
boolean | required | Caller-assigned Maguire 2013 Table 1 nasal stuffiness. true scores 1. magent does not examine the infant. |
sneezing |
boolean | required | Caller-assigned Maguire 2013 Table 1 sneezing (>3). true scores 1. magent does not count sneezes. |
nasal_flaring |
boolean | required | Caller-assigned Maguire 2013 Table 1 nasal flaring. true scores 2. magent does not examine the infant. |
respiratory |
string | required · none, gt_60, gt_60_retractions | Caller-assigned Maguire 2013 Table 1 respiratory rate (none, gt_60, or gt_60_retractions). Exclusive. Rate >60/min scores 1; >60 with retractions scores 2. magent does not count respirations. |
excessive_sucking |
boolean | required | Caller-assigned Maguire 2013 Table 1 excessive sucking. true scores 1. magent does not observe feeding. |
poor_feeding |
boolean | required | Caller-assigned Maguire 2013 Table 1 poor feeding. true scores 2. magent does not observe feeding. |
regurgitation |
boolean | required | Caller-assigned Maguire 2013 Table 1 regurgitation. true scores 2. magent does not observe feeding. |
projectile_vomiting |
boolean | required | Caller-assigned Maguire 2013 Table 1 projectile vomiting. true scores 3. magent does not observe feeding. |
stools |
string | required · none, loose, watery | Caller-assigned Maguire 2013 Table 1 stools (none, loose, or watery). Exclusive. loose 2, watery 3. magent does not inspect stools. |
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": [
{
"crying": "none",
"excessive_sucking": "false",
"excoriation": "false",
"fever": "none",
"frequent_yawning": "false",
"generalized_convulsions": "false",
"increased_muscle_tone": "false",
"moro": "none",
"mottling": "false",
"myoclonic_jerk": "false",
"nasal_flaring": "false",
"nasal_stuffiness": "false",
"poor_feeding": "false",
"projectile_vomiting": "false",
"regurgitation": "false",
"respiratory": "none",
"sleep": "none",
"sneezing": "false",
"stools": "none",
"sweating": "false",
"tremors": "none"
},
{
"crying": "none",
"excessive_sucking": "false",
"excoriation": "false",
"fever": "none",
"frequent_yawning": "false",
"generalized_convulsions": "false",
"increased_muscle_tone": "false",
"moro": "none",
"mottling": "false",
"myoclonic_jerk": "false",
"nasal_flaring": "false",
"nasal_stuffiness": "false",
"poor_feeding": "false",
"projectile_vomiting": "false",
"regurgitation": "false",
"respiratory": "none",
"sleep": "none",
"sneezing": "false",
"stools": "none",
"sweating": "false",
"tremors": "none"
}
]
}
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/finnegan",
"items": [
{
"components": [
{
"value": "none",
"factor": "crying",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "sleep",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "moro",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "tremors",
"points": 0,
"present": false
},
{
"factor": "increased_muscle_tone",
"points": 0,
"present": false
},
{
"factor": "myoclonic_jerk",
"points": 0,
"present": false
},
{
"factor": "generalized_convulsions",
"points": 0,
"present": false
},
{
"factor": "excoriation",
"points": 0,
"present": false
},
{
"factor": "sweating",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "fever",
"points": 0,
"present": false
},
{
"factor": "frequent_yawning",
"points": 0,
"present": false
},
{
"factor": "mottling",
"points": 0,
"present": false
},
{
"factor": "nasal_stuffiness",
"points": 0,
"present": false
},
{
"factor": "sneezing",
"points": 0,
"present": false
},
{
"factor": "nasal_flaring",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "respiratory",
"points": 0,
"present": false
},
{
"factor": "excessive_sucking",
"points": 0,
"present": false
},
{
"factor": "poor_feeding",
"points": 0,
"present": false
},
{
"factor": "regurgitation",
"points": 0,
"present": false
},
{
"factor": "projectile_vomiting",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "stools",
"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": "Finnegan LP, Connaughton JF Jr, Kron RE, Emich JP",
"id": "finnegan-1975",
"pmid": "1163358",
"source": "Addict Dis. 1975;2(1-2):141-158",
"title": "Neonatal abstinence syndrome: assessment and management"
},
"formula": "finnegan",
"formula_expression": "FNAS = crying + sleep + moro + tremors + increased_muscle_tone + myoclonic_jerk + generalized_convulsions + excoriation + sweating + fever + frequent_yawning + mottling + nasal_stuffiness + sneezing + nasal_flaring + respiratory + excessive_sucking + poor_feeding + regurgitation + projectile_vomiting + stools; Maguire 2013 Table 1 modified Finnegan (exclusive cry/sleep/moro/tremors/fever/respiratory/stools; remaining items true/false); max 46; at_or_above_8 iff total >= 8 (Zimmermann-Baer / Maguire suspicion and pharmacologic-treatment threshold). Not Eat Sleep Console. Not Maguire 7-item short form. magent does not examine the infant. Not a morphine order.",
"max_score": 46,
"score": 0,
"at_or_above_8": false
},
{
"components": [
{
"value": "none",
"factor": "crying",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "sleep",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "moro",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "tremors",
"points": 0,
"present": false
},
{
"factor": "increased_muscle_tone",
"points": 0,
"present": false
},
{
"factor": "myoclonic_jerk",
"points": 0,
"present": false
},
{
"factor": "generalized_convulsions",
"points": 0,
"present": false
},
{
"factor": "excoriation",
"points": 0,
"present": false
},
{
"factor": "sweating",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "fever",
"points": 0,
"present": false
},
{
"factor": "frequent_yawning",
"points": 0,
"present": false
},
{
"factor": "mottling",
"points": 0,
"present": false
},
{
"factor": "nasal_stuffiness",
"points": 0,
"present": false
},
{
"factor": "sneezing",
"points": 0,
"present": false
},
{
"factor": "nasal_flaring",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "respiratory",
"points": 0,
"present": false
},
{
"factor": "excessive_sucking",
"points": 0,
"present": false
},
{
"factor": "poor_feeding",
"points": 0,
"present": false
},
{
"factor": "regurgitation",
"points": 0,
"present": false
},
{
"factor": "projectile_vomiting",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "stools",
"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": "Finnegan LP, Connaughton JF Jr, Kron RE, Emich JP",
"id": "finnegan-1975",
"pmid": "1163358",
"source": "Addict Dis. 1975;2(1-2):141-158",
"title": "Neonatal abstinence syndrome: assessment and management"
},
"formula": "finnegan",
"formula_expression": "FNAS = crying + sleep + moro + tremors + increased_muscle_tone + myoclonic_jerk + generalized_convulsions + excoriation + sweating + fever + frequent_yawning + mottling + nasal_stuffiness + sneezing + nasal_flaring + respiratory + excessive_sucking + poor_feeding + regurgitation + projectile_vomiting + stools; Maguire 2013 Table 1 modified Finnegan (exclusive cry/sleep/moro/tremors/fever/respiratory/stools; remaining items true/false); max 46; at_or_above_8 iff total >= 8 (Zimmermann-Baer / Maguire suspicion and pharmacologic-treatment threshold). Not Eat Sleep Console. Not Maguire 7-item short form. magent does not examine the infant. Not a morphine order.",
"max_score": 46,
"score": 0,
"at_or_above_8": false
}
]
}
Response
| Field | Type | Description |
|---|---|---|
formula |
string | finnegan |
formula_expression |
string | Exact expression used |
score |
integer | Maguire 2013 Table 1 modified Finnegan sum of 21 caller-assigned items (0-46) |
max_score |
integer | Always 46 |
at_or_above_8 |
boolean | true iff score ≥ 8 (Zimmermann-Baer / Maguire suspicion and pharmacologic-treatment threshold). Not a morphine order. Not a mild/moderate/severe stage. |
components |
array | Per-item caller-assigned points |
citation |
object | Finnegan et al. Addict Dis 1975 citation |
disclaimer |
string | Not-a-device notice |
Example JSON
Machine form of the same example. Frozen fixture. Not a live lookup.
{
"components": [
{
"value": "none",
"factor": "crying",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "sleep",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "moro",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "tremors",
"points": 0,
"present": false
},
{
"factor": "increased_muscle_tone",
"points": 0,
"present": false
},
{
"factor": "myoclonic_jerk",
"points": 0,
"present": false
},
{
"factor": "generalized_convulsions",
"points": 0,
"present": false
},
{
"factor": "excoriation",
"points": 0,
"present": false
},
{
"factor": "sweating",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "fever",
"points": 0,
"present": false
},
{
"factor": "frequent_yawning",
"points": 0,
"present": false
},
{
"factor": "mottling",
"points": 0,
"present": false
},
{
"factor": "nasal_stuffiness",
"points": 0,
"present": false
},
{
"factor": "sneezing",
"points": 0,
"present": false
},
{
"factor": "nasal_flaring",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "respiratory",
"points": 0,
"present": false
},
{
"factor": "excessive_sucking",
"points": 0,
"present": false
},
{
"factor": "poor_feeding",
"points": 0,
"present": false
},
{
"factor": "regurgitation",
"points": 0,
"present": false
},
{
"factor": "projectile_vomiting",
"points": 0,
"present": false
},
{
"value": "none",
"factor": "stools",
"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": "Finnegan LP, Connaughton JF Jr, Kron RE, Emich JP",
"id": "finnegan-1975",
"pmid": "1163358",
"source": "Addict Dis. 1975;2(1-2):141-158",
"title": "Neonatal abstinence syndrome: assessment and management"
},
"formula": "finnegan",
"formula_expression": "FNAS = crying + sleep + moro + tremors + increased_muscle_tone + myoclonic_jerk + generalized_convulsions + excoriation + sweating + fever + frequent_yawning + mottling + nasal_stuffiness + sneezing + nasal_flaring + respiratory + excessive_sucking + poor_feeding + regurgitation + projectile_vomiting + stools; Maguire 2013 Table 1 modified Finnegan (exclusive cry/sleep/moro/tremors/fever/respiratory/stools; remaining items true/false); max 46; at_or_above_8 iff total >= 8 (Zimmermann-Baer / Maguire suspicion and pharmacologic-treatment threshold). Not Eat Sleep Console. Not Maguire 7-item short form. magent does not examine the infant. Not a morphine order.",
"max_score": 46,
"score": 0,
"at_or_above_8": false
}
Client errors (HTTP 400)
Invalid params return 400 without charge. Shared HTTP 402 and 503 meanings: Payments.
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_finnegan |
Finnegan inputs must match Maguire 2013 Table 1 modified FNAS exclusive bands and true/false items from that table. 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
- Eat, Sleep, Console — Apply the Grossman 2018 Eat, Sleep, Console functional assessment from caller-assigned eat, sleep, and console flags. magent does not examine the infant.
- WAT-1 — Sum the eleven Franck 2008 WAT-1 items (ten caller-assigned 0/1 signs and time_to_calm 0-2) and return the published 0-12 total plus wat1_ge_3 (true iff score ≥3 versus NRS ≥4).
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.