Leafjourney developers
Build on Leafjourney.
The cannabis care platform with an API that doesn't get in your way. Scheduling, charts, outcomes, and AI agents — all addressable from your stack.
Quick start
Three steps to your first API call
Provision a key
Create a scoped API key from the operator admin panel. Start read-only.
Authenticate
Send the key as a Bearer token in the Authorization header on every request.
Call an endpoint
Fetch patients, schedule appointments, or stream outcomes — scoped to your org.
Provision
Make your first call
curl https://api.leafjourney.com/v1/patients \
-H "Authorization: Bearer sk_live_..." \
-H "Accept: application/json"import { Leafjourney } from "@leafjourney/sdk";
const lj = new Leafjourney({ apiKey: process.env.LEAFJOURNEY_KEY });
const patients = await lj.patients.list({ limit: 25 });
console.log(patients.data[0].displayName);Authentication
Bearer tokens. Scoped. Rotatable.
Every request requires a Bearer token
Pass Authorization: Bearer sk_live_... on every call. Rotate keys at any time from the operator admin panel — old keys revoke instantly.
Scopes constrain what a key can touch
Start with read:patients. Add write scopes only when you need them. Every request is logged in an immutable audit trail tied to the key's scope.
Endpoint reference
The most-used endpoints, at a glance
Full reference — including request/response schemas — lives in the docs.
- GET
/v1/patientsList patients in your organization
- POST
/v1/patientsCreate a new patient record
- GET
/v1/patients/{id}Retrieve a single patient by ID
- PATCH
/v1/patients/{id}Update demographics or care plan
- GET
/v1/appointmentsList upcoming and past appointments
- POST
/v1/appointmentsSchedule a new visit
- GET
/v1/notesList clinical notes — supports server-side filtering
- POST
/v1/outcomesSubmit per-product outcome telemetry
- GET
/v1/research/articlesSearch the curated PubMed knowledge base
Rate limits
Generous defaults. Honest headers.
We return X-RateLimit-Remaining and Retry-After on every response. Respect them and you'll never get throttled.
Read endpoints
Burst to 300
100 req / minute
Write endpoints
Burst to 60
30 req / minute
Webhook delivery
Retries with exponential backoff
Unmetered
Keep building
Guides, references, and a place to ask
API documentation
Full REST reference with request/response examples for every endpoint.
Webhooks guide
Subscribe to patient, appointment, and billing events with verified HMAC signatures.
AI agent SDK
Compose chart-aware AI agents with typed tools — same primitives that power our 13 in-product agents.
System status
Live service status and incident history — we publish everything.