Skip to main content
Transparency

MCC Public Registry API

Every endpoint publishes what the public register pages publish, in JSON or CSV. Data is sanitised for transparency (no requester identities), demonstration rows are excluded unless requested, and nothing here is a credit until the register holds a non-demonstration issuance. Units are contribution-first instruments, not carbon offsets (Claims Policy v1.1). Governed by MCC-800 Registry Operations Standard v1.1 and the Transparency Policy v1.1.

OpenAPI 3.1 (JSON)Base URL https://www.marineconservationcredits.com/api/public/v160 requests / minute / IP

The register holds demonstration data only today. Without ?includeDemo=1 the listings are empty by design: a public feed must not publish a fabricated project as a real one. Every demonstration row is doubly marked — is_demonstration: true and the MCC-DEMO- serial prefix. Rulebook: MCC-800 Registry Operations Standard, Transparency Policy v1.1.

GET/api/public/v1Status
API index
Responses: 200 Endpoint index and notes. (application/json)
GET/api/public/v1/projectsRegister
Published projects

Projects in a published status (registered/active). Up to 200 rows.

ParameterInRequiredValuesDescription
includeDemoqueryno1 | trueInclude demonstration rows (is_demonstration=true, serials prefixed MCC-DEMO-). The registry today holds demonstration data only; without this flag the listings are empty by design.
Responses: 200 Project list. (application/json) · 429 Rate limit exceeded (60 requests per minute per client IP).
GET/api/public/v1/batchesRegister
Issued credit batches

Batches in an issued status with serial ranges, buffer and issued units, and the owning project. Up to 200 rows.

ParameterInRequiredValuesDescription
includeDemoqueryno1 | trueInclude demonstration rows (is_demonstration=true, serials prefixed MCC-DEMO-). The registry today holds demonstration data only; without this flag the listings are empty by design.
Responses: 200 Batch list. (application/json) · 429 Rate limit exceeded (60 requests per minute per client IP).
GET/api/public/v1/retirementsRegister
Completed retirements

Retirements in CONFIRMED or CERTIFICATE_GENERATED status (MCC-800 Art. 17). Beneficiary and claim as recorded; requester identities are never published. Up to 200 rows.

ParameterInRequiredValuesDescription
includeDemoqueryno1 | trueInclude demonstration rows (is_demonstration=true, serials prefixed MCC-DEMO-). The registry today holds demonstration data only; without this flag the listings are empty by design.
Responses: 200 Retirement list. (application/json) · 429 Rate limit exceeded (60 requests per minute per client IP).
GET/api/public/v1/exportExports
CSV export
ParameterInRequiredValuesDescription
typequeryyesprojects | batches | retirements
includeDemoqueryno1 | trueInclude demonstration rows (is_demonstration=true, serials prefixed MCC-DEMO-). The registry today holds demonstration data only; without this flag the listings are empty by design.
Responses: 200 CSV file. (text/csv) · 400 Missing or invalid type. · 429 Rate limit exceeded (60 requests per minute per client IP).
GET/api/public/v1/cadtExports
CAD Trust feed (draft mapping)

Projects, issuances and unit blocks in the CAD Trust Data Model 2.0 shape. Draft mapping pending CAD Trust onboarding, which follows the first non-demonstration unit. Demonstration rows are excluded by default because a feed entry is a statement to another registry.

ParameterInRequiredValuesDescription
includeDemoqueryno1 | trueInclude demonstration rows (is_demonstration=true, serials prefixed MCC-DEMO-). The registry today holds demonstration data only; without this flag the listings are empty by design.
Responses: 200 CAD Trust document. (application/json) · 429 Rate limit exceeded (60 requests per minute per client IP).
GET/api/public/v1/certificates/{id}Documents
Retirement certificate (PDF)

Rendered from the retirement record at request time — never cached at the edge, so a corrected or cancelled retirement is reflected immediately at the same URL. Demonstration retirements carry a DEMONSTRATION watermark.

ParameterInRequiredValuesDescription
idpathyesstringRetirement id.
Responses: 200 PDF certificate. (application/pdf) · 404 No completed retirement with that id. · 429 Rate limit exceeded (60 requests per minute per client IP).
GET/api/public/v1/statusStatus
Registry status and SLA

Operational status, published counts (demonstration rows excluded and reported separately), and the latest registry read p95 against the MCC-800 Art. 20 target of 500 ms.

Responses: 200 Status document. (application/json) · 429 Rate limit exceeded (60 requests per minute per client IP).

Schemas for every response are in the OpenAPI document. Questions or integration requests: /contact.