← COA database
PUBLIC DATA · API V1

Evidence built to be
cited and reused.

Query source-linked certificate records with stable IDs, field-level provenance, exact product relationships, laboratory status, and durable PeptideBenchmark permalinks.

Default feed
12,797
Vendor feeds
112
Version
v1
Refreshed
Sep 8, 2026
01 / ENDPOINTS

One ledger. Several useful views.

Cloudflare D1 executes the search and filters; generation-aware edge caching keeps repeat reads fast. CSV exports return the complete filtered feed, include canonical pointers for superseded citations, and neutralize spreadsheet-formula prefixes.

GET

All records

/api/v1/coas

Filter by vendor, compound, laboratory, panel, lifecycle status, exact product match, or free text. Exact-byte source aliases are omitted unless status=superseded or evidence=superseded is explicit.

Try endpoint →
GET

Single record

/api/v1/coas/bac0de487baa8a71e154

Resolve one stable evidence ID to its complete public record and citation link.

Try endpoint →
GET

Vendor feed

/api/v1/coas/vendors/aio-peptides

Follow every current and retained certificate attributed to one vendor.

Try endpoint →
GET

Compound feed

/api/v1/coas/compounds/bpc-157

Follow certificate evidence associated with one normalized compound.

Try endpoint →
GET

Vendor directory

/api/v1/coas/vendors

Discover supported vendor slugs, record counts, and feed URLs.

Try endpoint →
GET

Compound directory

/api/v1/coas/compounds

Discover compound slugs, record counts, and feed URLs.

Try endpoint →
GET

API health

/api/v1/coas/health

Inspect the active generation, canonical source fingerprint, schema migration, data age, and rollback readiness.

Try endpoint →
02 / QUERY EXAMPLE

Ask a precise evidence question.

This request returns current, exact-product BPC-157 records with identity-panel data. Use format=csv on the same route for an export.

HTTP
GET /api/v1/coas?compound=bpc-157&panel=identity&status=current&exact_product=true&limit=50
03 / DATA CONTRACT

Context is part of the record.

01

Stable identifiers

Every record keeps its 20-character ID and citation-friendly /testing/coas/{id}/ permalink. Exact-byte source aliases stay resolvable as superseded citations pointing to one canonical record.

02

Field provenance

Compound, laboratory, dates, identifiers, quantities, purity, and panels retain lab-verified, document-extracted, vendor-stated, or manual-review provenance.

03

Source + archive

The vendor or provider source remains separate from PB’s content-addressed preserved copy and SHA-256 fingerprint.

04

Bounded + disclosed

Inclusion does not certify a physical vial, product safety, or vendor quality. Every vendor object separately declares PB’s affiliate-relationship status.

04 / DELIVERY CONTRACT

Fast at the edge. Polite by default.

Conditional requests
ETag + Last-Modified
Pagination discovery
Link: rel="next"
Public rate limit
100 requests / 10 seconds / unverified client IP
Query plane
Cloudflare D1 + FTS5

Responses identify the query plane with X-PB-Data-Source: cloudflare-d1 and cache disposition with X-PB-Cache. Cache locally, follow the generation-bound keyset cursor, restart pagination after a 409, and back off on 429. The OpenAPI document describes every public field, provenance wrapper, directory, response header, and error state.