State Opioid Initial Prescribing Limits
Maximum days' supply for a first opioid prescription for acute pain, by state, with the statutory or regulatory citation. Over half the states cap initial prescriptions at 3 to 14 days; some also cap daily dosage in morphine milligram equivalents (MME).
The data
| state | initial supply days | applies to | exception provision | citation | mme limit |
|---|---|---|---|---|---|
| Arizona | five-day supply | Schedule II opioids, initial prescription, all prescribers authorized under Title 32 | an initial prescription for a schedule II controlled substance that is an opioid following a surgical procedure is limited to not more than a fourteen-day supply | 32-3248 | |
| Florida | 3-day supply | Schedule II opioids for treatment of acute pain | up to a 7-day supply may be prescribed | 456.44 | |
| Kentucky | three (3) day supply | Schedule II controlled substances for pain as an acute medical condition (Board of Medical Licensure standards under KRS 218A.205) | Determines that more than a three (3) day supply is medically necessary | 201 KAR 9:260 | |
| Maine | 7-day supply | Opioid medication for acute pain; 30-day supply limit for chronic pain | unless the opioid product is labeled by the federal Food and Drug Administration to be dispensed only in a stock bottle that exceeds a 7-day supply | 3300-F | 100 morphine milligram equivalents of opioid medication per day |
| Massachusetts | 7 | All opiate prescriptions; adults for first-time outpatient use, minors at any time | More than a 7-day supply may be issued if, in the practitioner's professional medical judgment, it is required to treat the patient's acute medical condition or is necessary for chronic pain management, cancer pain, or palliative care; the triggering condition must be documented in the medical record | Section 19D | |
| Minnesota | seven-day supply | Opiates or narcotic pain relievers, Schedules II through IV, for acute pain; adults 7 days, minors under 18 5 days, acute dental or refractive-surgery pain 4 days | if, in the professional clinical judgment of a practitioner, more than the limit specified in paragraph (a) or (b) is required to treat a patient's acute pain | 152.11 | |
| Nevada | 14 days | Initial prescriptions of Schedule II, III or IV controlled substances for acute pain | Unless the practitioner determines that the prescription is medically necessary | 639.2391 | 90 morphine milligram equivalents per day for opioid-naive patients (no opioid prescription in the previous 19 days) |
| North Carolina | five-day supply | Targeted controlled substances upon initial consultation for acute pain; seven-day supply allowed post-operatively | unless the prescription is for post-operative acute pain relief for use immediately following a surgical procedure | 90-106 | |
| Ohio | seven-day supply | Opioid analgesics for acute pain (physicians, State Medical Board rule); adults 7 days, minors 5 days | may be exceeded for pain that is expected to persist for longer than seven days based on the pathology causing the pain | 4731-11-13 | an average of thirty MED per day |
| Virginia | 14-day supply | Controlled substances containing an opioid, for acute and subacute pain (Board of Medicine regulation) | unless extenuating circumstances are clearly documented in the medical record | 18VAC85-21-40 | Prescriber must document reasons to exceed 50 MME/day and provide justification or consult a pain management specialist before exceeding 120 MME/day |
| West Virginia | seven-day supply | Schedule II opioid drugs; practitioners 7 days initial, emergency room and urgent care 4 days, minors 3 days, dentists and optometrists 3 days | the limitations in this section do not apply to cancer patients, patients receiving hospice care from a licensed hospice provider, patients receiving palliative care, a patient who is a resident of a long-term care facility | 16-54-4 |
Where this came from
Every record above links the page it was taken from and quotes the sentence that states it. These are the 11 sources this dataset was assembled from.
- azleg.govhttps://www.azleg.gov/ars/32/03248.htm
- leg.state.fl.ushttps://leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0400-0499/0456/Sections/0456.44.html
- apps.legislature.ky.govhttps://apps.legislature.ky.gov/law/kar/titles/201/009/260/
- legislature.maine.govhttp://legislature.maine.gov/statutes/32/title32sec3300-F.html
- malegislature.govhttps://malegislature.gov/Laws/GeneralLaws/PartI/TitleXV/Chapter94C/Section19D
- revisor.mn.govhttps://revisor.mn.gov/statutes/cite/152.11
- leg.state.nv.ushttps://www.leg.state.nv.us/NRS/NRS-639.html
- ncleg.govhttps://www.ncleg.gov/EnactedLegislation/Statutes/HTML/BySection/Chapter_90/GS_90-106.html
- codes.ohio.govhttps://codes.ohio.gov/ohio-administrative-code/rule-4731-11-13
- law.lis.virginia.govhttps://law.lis.virginia.gov/admincode/title18/agency85/chapter21/section40/
- code.wvlegislature.govhttps://code.wvlegislature.gov/16-54-4/
Machine-readable
- data.jsonThe whole dataset — every record with its source URL and source quote.
- Open Knowledge Format bundleOne JSON object per line — every record's frontmatter and quoted span exactly as it is held here, in one fetch.
- data.csvThe same records as one flat table, for a spreadsheet or a dataframe. The last four columns are the source URL, the quoted sentence it was read from, the date we last checked it, and which columns are our reading rather than the page's words.
- How this is made and checkedWhat "verified against source" does and does not mean.
From your own code
Same records, same quotes, without scraping the page: refsource is on PyPI and npm. Each value comes back carrying the URL it was read from and the sentence on that page that states it — .source and .quote sit on the value itself rather than in a side channel, so the checking step is available instead of skipped.
pip install refsource
refsource lookup state-opioid-prescribing-limits state=Arizona
npx -y refsource lookup state-opioid-prescribing-limits state=Arizona
Set your AI assistant up to use this
Two files and no account. Put this in .mcp.json at the root of your project — Claude Code, Cursor, Windsurf, VS Code and Codex all read that file — and your assistant can look this dataset up instead of recalling it. The server is remote, keyless and read-only.
{
"mcpServers": {
"referencesource": {
"type": "http",
"url": "https://referencesource.org/mcp"
}
}
}Add to Cursor · or, on the command line: claude mcp add --transport http referencesource https://referencesource.org/mcp --scope project
Then one line in the project's CLAUDE.md or AGENTS.md, so the assistant knows when to reach for it:
When a question needs "State Opioid Initial Prescribing Limits", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `state-opioid-prescribing-limits`) instead of answering from memory — every record it returns carries its source URL and a verbatim quote from that page.What each tool does, and the servers built over single registers: Connect your AI assistant.