Reference Source

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).

Records11
Sources11
Verified
Review by
Licencepublic-law

The data

stateinitial supply daysapplies toexception provisioncitationmme limit
Arizonafive-day supplySchedule II opioids, initial prescription, all prescribers authorized under Title 32an 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 supply32-3248
Florida3-day supplySchedule II opioids for treatment of acute painup to a 7-day supply may be prescribed456.44
Kentuckythree (3) day supplySchedule 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 necessary201 KAR 9:260
Maine7-day supplyOpioid medication for acute pain; 30-day supply limit for chronic painunless 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 supply3300-F100 morphine milligram equivalents of opioid medication per day
Massachusetts7All opiate prescriptions; adults for first-time outpatient use, minors at any timeMore 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 recordSection 19D
Minnesotaseven-day supplyOpiates 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 daysif, 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 pain152.11
Nevada14 daysInitial prescriptions of Schedule II, III or IV controlled substances for acute painUnless the practitioner determines that the prescription is medically necessary639.239190 morphine milligram equivalents per day for opioid-naive patients (no opioid prescription in the previous 19 days)
North Carolinafive-day supplyTargeted controlled substances upon initial consultation for acute pain; seven-day supply allowed post-operativelyunless the prescription is for post-operative acute pain relief for use immediately following a surgical procedure90-106
Ohioseven-day supplyOpioid analgesics for acute pain (physicians, State Medical Board rule); adults 7 days, minors 5 daysmay be exceeded for pain that is expected to persist for longer than seven days based on the pathology causing the pain4731-11-13an average of thirty MED per day
Virginia14-day supplyControlled substances containing an opioid, for acute and subacute pain (Board of Medicine regulation)unless extenuating circumstances are clearly documented in the medical record18VAC85-21-40Prescriber must document reasons to exceed 50 MME/day and provide justification or consult a pain management specialist before exceeding 120 MME/day
West Virginiaseven-day supplySchedule II opioid drugs; practitioners 7 days initial, emergency room and urgent care 4 days, minors 3 days, dentists and optometrists 3 daysthe 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 facility16-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.

Machine-readable

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.

11 records. last verified against source . due for re-check by .

Licence. public-law