Skip to main content

Build on Psychedex

8 live endpoints for substance, effect, interaction, and legal-status data. Every endpoint requires a key, issued during private preview.

8 live endpoints2 of 8 apis shipped

Private preview

8 endpoints serve production traffic today, and every one of them requires an API key. There is no self-serve signup. Write to contact@psychedex.org with what you are building and we will issue a key or tell you we cannot yet.

Access

ItemValueDetail
AuthAPI key, every endpointSend Authorization: Bearer <key>. There is no anonymous tier.
Getting a keyManual, private previewThere is no self-serve signup. Write to contact@psychedex.org with what you are building and we will issue a key or tell you we cannot yet.
Rate limit120 requests/minutePer IP, shared across every /api/v1 endpoint. The limiter runs before the key check, so an over-limit request returns 429 even with a valid key.
Over limit429 + Retry-AfterBody is {"error":"rate_limited"}. There are no X-RateLimit-* headers.
Success shape{ data, meta }meta carries version and a generated timestamp.
Error shape{ error: { code, message }, meta }Four codes: UNAUTHORIZED, BAD_REQUEST, NOT_FOUND, INTERNAL_ERROR.
VersioningIn the pathBreaking changes get a new prefix. /api/v1 stays as it is.
LicensingNot finalizedUser-contributed content is CC BY 4.0 (see Terms). A licence for the dataset as a whole has not been set, so treat reuse terms as open questions and attribute Psychedex.

Authentication

Every endpoint: Authorization header, Bearer scheme. There is no anonymous tier and no query-parameter form.
Authorization: Bearer <your-key>

A key is an opaque string. Its first eight characters are the lookup prefix; the full value is stored only as a SHA-256 hash, so a lost key is reissued, never recovered. Keys can carry an expiry and can be revoked at any time.

Getting a key

Keys are provisioned manually while the program is in private preview.

There is no signup form, no dashboard, and no self-serve rotation yet. Write to contact@psychedex.org describing what you are building. Harm reduction tools get priority.

Error responses

CodeHTTPWhen
UNAUTHORIZED401Missing, malformed, revoked, or expired key.
BAD_REQUEST400A required parameter is missing or fails validation.
NOT_FOUND404The slug or PSX ID matches no published record.
INTERNAL_ERROR500The query failed. Nothing partial is returned.
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Substance 'not-a-substance' not found"
  },
  "meta": {
    "version": "1.0",
    "generated": "2026-08-13T09:41:07.201Z"
  }
}

Attribution

Data provided by Psychedex (psychedex.org)

A licence for the dataset as a whole has not been set. User-contributed content is CC BY 4.0 — see the terms.

Not part of this API

Routes under /api/public/ support the Psychedex app, which is being rebuilt. They are app-support endpoints, not part of this API: their shapes change with the app and carry no compatibility promise.

8 live endpoints — one rate limit — key required