7 peptides under active FDA review PCAC MEETING IN 15 DAYS
FindLegitPeptides status board · v2.4.0

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

generated_utc

String, ISO 8601 UTC timestamp. When this file was last built.

dataset_version

String. Internal version tag for the underlying dataset, e.g. 0.2.0-draft.

site_version

String. Site version at build time, e.g. 2.3.0.

disclaimer

String, always present. Informational only, not medical or legal advice.

key_dates

Array of objects. The regulatory timeline: date, event, sources, confidence, and an optional caveat.

compounds

Array of objects. One row per tracked peptide, see the compound fields below.

Each compound

name

String. Compound display name, e.g. BPC-157.

category

String or null. Category id: metabolic, recovery, longevity, cognitive, hormonal, sexual, dermatologic, or blends.

status_code

String. Internal status code, e.g. under_pcac_review, cat2_restricted, removed_from_cat2, fda_approved.

status_label

String. Plain-language status sentence, ready to display as-is.

level

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.

confidence

String: high, medium, or low. Sourcing confidence for status_code and status_label.

pcac

Object or null. PCAC advisory-committee review info: scheduled (boolean), date, forms.

components

Array of strings or null. Present only for blends: the individual compounds whose combined status this entry follows.

sources

Array of objects. Citations: url, type, date, and an optional note.

last_verified

String date, YYYY-MM-DD. When a human last checked this entry.

provisional

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

This is the actual widget, rendered live from the same endpoint documented above.

What changed

Changelog

v2.3.0 (2026-07-08)

Public API docs published (this page): field-by-field reference for status.json, plus embeddable per-compound status widgets at /embed/<slug>.

v2.2.0 and earlier

status.json existed and was served the same way, without a documented field reference or embeds.