---
title: "Get one published compound"
method: GET
path: "/v1/compounds/{idOrSlug}"
---

# Get one published compound

`GET /v1/compounds/{idOrSlug}`

## Request

- Base URL: `https://api.doseplot.com`
- URL: `https://api.doseplot.com/v1/compounds/{idOrSlug}`
- Auth: none required

Matches a numeric canon id, a slug, or an alias. Slug and alias matching is case-insensitive.

## Path parameters

- `idOrSlug` string, required

## Response `200`

Compound record.

- CompoundDetail
  - `disclaimer` string, required: Fixed disclaimer. Must be preserved when relaying any output to a human (terms clause 2).
  - `intended_use` string, required: Fixed intended-use statement. Must be preserved when relaying any output to a human.
  - `compound` object, required: The published canon record, verbatim.
  - `reconstitutable` boolean, required
  - `editorial` object, nullable, required: Editorial claims and citations for this compound, when published.

## Other responses

- `404`: No published compound matches (code: unknown_compound).
- `405`: Method not allowed on a live path. The read endpoints are GET-only; the compute endpoints are POST-only.
- `429`: Rate limit exceeded (60 requests/minute on the read routes; 1000 /v1 reads/day; 300 requests/minute on the paid compute routes). Carries a Retry-After header. NOTE: a 429 raised by Cloudflare's own edge protection, rather than by this Worker, MAY be a non-JSON body (HTML) with no Retry-After -- treat ANY 429 as retryable regardless of content type, and do not assume the problem+json schema below.
- `500`: Unexpected internal error. Generic body; nothing about the request is echoed.

---

[API](https://skmtc.dev/doseplot/apis/doseplot-agent-api.md) · [All operations](https://skmtc.dev/doseplot/apis/doseplot-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/doseplot/apis/doseplot-agent-api/revisions/f35133f7fbc1?raw)
