Reference Source

State controlled-substance scheduling of xylazine and tianeptine

For each US state that has acted, the controlled-substance schedule it assigns to substances that are NOT federally scheduled: xylazine and tianeptine — sourced from the state's own statute or administrative rule. Answers 'is tianeptine legal in [state]', 'is xylazine a controlled substance in [state]', and 'what schedule is tianeptine in [state]'. Control is entirely state-by-state, it is moving fast (states acted 2023–2026), and crucially the schedule is NOT the same everywhere: tianeptine is Schedule I in Florida, Georgia, Virginia, Minnesota, Delaware and Ohio but Schedule II in Tennessee, North Carolina and Nebraska, and xylazine is Schedule I in Florida, Schedule III in Delaware, Ohio, Nebraska and South Carolina, and Schedule IV in West Virginia. The only cross-state assemblies are a March-2024 PDF (LAPPA, xylazine only) and citation-free listicles. Kratom generally, 7-hydroxymitragynine (controlled federally by DEA temporary order from 2026, and at state level through kratom-product laws rather than schedules) and delta-8 are out of scope — seller sites cover them comprehensively. A state whose instrument cannot be confirmed on a fetched page is omitted, not guessed.

Records15
Sources12
Verified
Review by
Licenceunknown

The data

StateSubstanceSchedule or controlStatute or rule citationExceptions
DelawareTianeptineSchedule I16 Del. C. § 4714
DelawareXylazineSchedule III16 Del. C. § 4718
FloridaTianeptineSchedule IF.S. 893.03
FloridaXylazineSchedule IF.S. 893.03except for a xylazine animal drug product approved by the United States Food and Drug Administration and the use of which conforms to the approved application or is authorized under 21 U.S.C. s. 360b(a)(4). The manufacture, importation, distribution, prescribing, or sale of xylazine for human use is not subject to this exception
GeorgiaTianeptineSchedule IO.C.G.A. § 16-13-25
MinnesotaTianeptineSchedule IMinn. Stat. 152.02
NebraskaTianeptineSchedule IINeb. Rev. Stat. § 28-405
NebraskaXylazineSchedule IIINeb. Rev. Stat. § 28-405
North CarolinaTianeptineSchedule IIN.C.G.S. § 90-90
OhioTianeptineSchedule IOhio Admin. Code 4729:9-1-01
OhioXylazineSchedule IIIOhio Admin. Code 4729:9-1-03
South CarolinaXylazineSchedule IIIS.C. Code § 44-53-230
TennesseeTianeptineSchedule IITenn. Code § 39-17-408
VirginiaTianeptineSchedule IVa. Code § 54.1-3446
West VirginiaXylazineSchedule IVW. Va. Code § 60A-2-210

Where this came from

Every record above links the page it was taken from and quotes the sentence that states it. These are the 12 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-emerging-substance-scheduling state=Delaware

npx -y refsource lookup state-emerging-substance-scheduling state=Delaware

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 controlled-substance scheduling of xylazine and tianeptine", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `state-emerging-substance-scheduling`) 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.

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

Licence. unknown