HempData API

Compliance data for 51 US hemp jurisdictions. One call. JSON in, legal answer out.

Try it live in the playground — no signup. Prefer your AI assistant? Add the free HempData MCP connector to Claude or ChatGPT in ~30 seconds.
$ curl https://api.hempdata.io/v1/compliance/check \
    -H "Authorization: Bearer $KEY" \
    -G -d "state=TX" -d "substance=cbd" -d "product_type=edibles"

{
  "success": true,
  "data": {
    "state": "TX",
    "substance": "cbd",
    "product_type": "edibles",
    "legal_status": "legal_with_restrictions",
    "summary": "CBD edibles legal under DSHS registration…",
    "confidence_score": 0.94
  }
}
51 jurisdictions · 176+ regulations · 255 bills tracked · updated daily · 99.9% uptime

Quickstart — 60 seconds to your first call.

Plain HTTPS + JSON. Any language with an HTTP client works; generate a typed client from the OpenAPI spec if you want one.

# 1. Get a key
open https://api.hempdata.io/signup

# 2. Export it
export HEMPDATA_KEY="hda_live_sk_..."

# 3. Make a call
curl "https://api.hempdata.io/v1/compliance/check?state=KY&substance=cbd&product_type=edibles" \
  -H "Authorization: Bearer $HEMPDATA_KEY"

Use your secret key (hda_live_sk_...) for API calls; the publishable key (hda_live_pk_...) is only for the embeddable widget.

The dataset behind every call.

What we ship, in one grid.

51jurisdictions — all 50 states + DC
176+regulation records — statute, rule, agency policy
255bills tracked — live via Open States
FDAenforcement actions — warning letters, seizures, recalls
Carriers& payment policies — Square, Stripe, FedEx, UPS by product type
H.R. 5371overlay — preview compliance against post-enforcement rules today
Diffhistorical — query "what was legal on date X"
Grayattorney-reviewed — flagged in responses when the law is ambiguous

The endpoints.

Everything you can call. Full reference →

MethodPathWhat it does
GET/v1/answerPlain-English question → verified, statute-cited answer
GET/v1/compliance/checkSingle product + single state → compliant?
POST/v1/compliance/scanUpload COA → 51-state legality map
POST/v1/compliance/reformulateProduct + target state → what to change
GET/v1/regulationsQuery the full regulation database
GET/v1/states/:codeEverything we know about a state
GET/v1/verified/:brand_idVerified badge lookup
POST/v1/webhooksSubscribe to regulation changes
GET/v1/statusService health

Rate limits. No asterisks.

You'll hit them eventually. Better to know upfront than to debug a 429 in production at 2 a.m.

TierRequests / minuteRequests / monthOverage
Free601,000Hard cap — request returns 429
Developer — $49/mo30010,000$0.005 per extra request
Scale — $149/mo1,200100,000$0.002 per extra request
Enterprise — customCustomCustomCommitted-use pricing

429 responses include Retry-After header and current quota. Webhook available if you want a heads-up at 80% usage.

Drop into your stack.

Import-ready specs for any language or tool.

OpenAPI 3.1 spec

Generate clients in any language.

Download JSON →

Postman collection

Import and start poking.

Import the OpenAPI spec → (Postman auto-imports OpenAPI)

Ready to build?

Free tier covers 100 product checks + 100 state lookups a month. No card required.