For developers
API docs
A stable, read-only JSON feed of every tracked peptide's FDA compounding status.
Free. Read-only. No key required.
GET /status.json
One JSON file, kept current. No signup, no API key, no rate-limit tier to pick. It's a static file served from Cloudflare's edge behind the same cache as every other page here.
Example request
curl https://findlegitpeptides.com/status.json # pretty-print one compound with jq curl -s https://findlegitpeptides.com/status.json | jq '.compounds[] | select(.name=="BPC-157")'
Freshness: rebuilt and redeployed at least daily at 6 AM CT, more often during the July 23-24 PCAC meeting window. Check generated_utc in the response for the exact build time.
Attribution: if you use this data, please link back to findlegitpeptides.com so readers can trace a status back to its source.
Informational only, not medical or legal advice. Confirm anything that matters against FDA primary sources before you act on it.
Field by field
What's in the response
Top-level fields, then the shape of each entry in compounds[].
Top level
String, ISO 8601 UTC timestamp. When this file was last built.
String. Internal version tag for the underlying dataset, e.g. 0.2.0-draft.
String. Site version at build time, e.g. 2.3.0.
String, always present. Informational only, not medical or legal advice.
Array of objects. The regulatory timeline: date, event, sources, confidence, and an optional caveat.
Array of objects. One row per tracked peptide, see the compound fields below.
Each compound
String. Compound display name, e.g. BPC-157.
String or null. Category id: metabolic, recovery, longevity, cognitive, hormonal, sexual, dermatologic, or blends.
String. Internal status code, e.g. category1_under_evaluation, under_pcac_review, cat2_restricted, removed_from_cat2, fda_approved.
String. Plain-language status sentence, ready to display as-is.
String, one of clear, watch, restrict, unknown. The visual bucket behind the status badge color. A blend always shows unknown here, it follows its components.
String: high, medium, or low. Sourcing confidence for status_code and status_label.
Object or null. PCAC advisory-committee review info: scheduled (boolean), date, forms.
Array of strings or null. Present only for blends: the individual compounds whose combined status this entry follows.
Array of objects. Citations: url, type, date, and an optional note.
String date, YYYY-MM-DD. When a human last checked this entry.
Boolean. True if the entry is still pending pre-launch verification, treat with extra caution.
Drop it in a page, no build step
Embeddable status widgets
Every tracked peptide has a small, self-contained status card at /embed/<slug>. It follows your visitor's system light/dark setting automatically, and it's built to sit at roughly 320 by 120 pixels.
Copy-paste pattern
<iframe src="https://findlegitpeptides.com/embed/bpc-157" width="320" height="120" loading="lazy" title="BPC-157 compounding status, findlegitpeptides.com" referrerpolicy="no-referrer-when-downgrade"> </iframe>
Swap bpc-157 for any tracked compound's slug, the same slug used in its own page URL (e.g. this site's /bpc-157 page embeds at /embed/bpc-157).
Live example
What changed
Changelog
Public API docs published (this page): field-by-field reference for status.json, plus embeddable per-compound status widgets at /embed/<slug>.
status.json existed and was served the same way, without a documented field reference or embeds.