API

The same legal answers and verified venue data that power this site, available to your own application.

Authentication

Send your key in the X-API-Key header on every request.

curl -H "X-API-Key: camp_your_key_here" \
  https://420.camp/api/v1/places?bbox=4.85,52.35,4.95,52.40

A key is shown once when you create it and is stored only as a hash — if you lose it, revoke it and issue another.

Rate limits

PlanRequests / minuteRecords / day
Free101,000
Pro6010,000
Network300200,000

Two budgets, because a handful of large pages takes as much data as thousands of small ones. Both reset on a rolling window.

GET /places

Venues in an area. Give it a bounding box, a jurisdiction, or a point and radius.

bbox
west,south,east,north — the map viewport
jurisdictionId
all venues in a city, region or country
lat, lng, radiusKm
everything within a distance of a point
type
adult_use_dispensary, private_social_club, coffeeshop, pharmacy…
limit
up to 1000 with an area filter, 50 without
curl -H "X-API-Key: $KEY" \
  "https://420.camp/api/v1/places?bbox=4.85,52.35,4.95,52.40&limit=50"

GET /places/{slug}

One venue in full: address, hours, products, photos and its verification state.

curl -H "X-API-Key: $KEY" \
  "https://420.camp/api/v1/places/wonderland-bangkok-bangkok"

GET /places/search

Find a venue by name.

q
at least two characters
curl -H "X-API-Key: $KEY" \
  "https://420.camp/api/v1/places/search?q=green%20house"

GET /jurisdictions/{id}/legal-summary

What is legal here, in plain language — the answer behind every venue page.

locale
en, uk, es, nl, pl, de, it, th
curl -H "X-API-Key: $KEY" \
  "https://420.camp/api/v1/jurisdictions/{id}/legal-summary?locale=de"

POST /legal/evaluate

Ask one question about one place: may I buy, possess, consume here?

action
purchase, possession, public_consumption, tourist_access, medical_access…
jurisdictionId or lat/lng
where the question is being asked
locale
answer language
curl -X POST -H "X-API-Key: $KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "action": "tourist_access",
  "lat": 52.3702,
  "lng": 4.8952,
  "locale": "en"
}' \
  https://420.camp/api/v1/legal/evaluate

Using the data

  • Legal information changes. Show the date we last reviewed it, which every legal response includes.
  • Do not present our data as a legal opinion — it is a plain-language summary with sources.
  • Cache responses rather than re-requesting the same records; the record budget counts what you asked for.
  • Attribute 420.camp and link back to the venue or rule page you drew from.

Get a key

Keys are created in your dashboard. The free tier needs no payment details.

Create a key