The web app is a client of the same API you get. Query inventory, execute purchases, retire credits, and stream verification events into your own systems.
URL-based versioning with a minimum twelve-month deprecation window and notice at twelve, six, and one month. Breaking changes only ship in a new major version — v1 endpoints will behave the same in five years as they do today.
# Retire credits against a target POST /v1/retirements { "portfolio_id": "pf_02H8K4M1", "amount_tco2": 1250, "beneficiary": "Acme Corp", "vintage_year": 2026 } # 200 OK { "retirement_id": "ret_02H8L9Q3", "status": "complete", "attestation_url": "https://…" }
Yes. Issuance records, retirement records, measurement data, and attestations are all readable unauthenticated. You need a key for write operations and portfolio-specific endpoints, but auditing the public record requires nothing from us.
Bulk retirements are queued and return a job ID rather than blocking. Poll the job endpoint or subscribe to the webhook — the latter is what we would recommend.
Free and unlimited, with a full set of synthetic projects and credits. Sandbox keys issue instantly and never touch production data or real credits.
Most likely. We maintain integrations with the common carbon accounting platforms, and webhooks push retirement and verification events as they happen so you are not polling.
Get started
Build against synthetic data first. Move to production when your integration is ready — no sales call in between.