Retire Carbon
Use the Carbonmark API to create retirement quotes, submit retirement orders, and confirm completion with a retirement receipt.
Use the Carbonmark API to create retirement quotes, submit retirement orders, and confirm completion with a retirement receipt.
This page shows the basic retirement workflow. For full parameter definitions and response schemas, see the API reference for each endpoint.
In the examples below, we use a versioned API base URL such as https://v1.api.carbonmark.com. Omitting the version prefix exposes your integration to breaking changes. Use the latest stable version when building your integration.
Before you begin
You will need:
a Carbonmark account
a sandbox or production API key
a project or product with a visible price
an
asset_price_source_idfrom the/pricesendpoint
Create a sandbox key in the Developer Dashboard for testing. Production access requires onboarding. Keep your API key secure and do not expose it in client-side code or commit it to your repository.
Step 1: Create an API key
Create an account or sign in to the Developer Dashboard.
Once signed in, go to the Keys page and generate an API key.
Sandbox keys are free and can be used for testing
Production keys require onboarding
Keys are shown only once, so copy and store them securely
Step 2: Choose a project to retire
Use the Carbonmark marketplace or the API to find a project with a visible listing price.
For project-based retirements, use /carbonProjects and note the project key.
In this example, we use project ICR-112.
Step 3: Retrieve pricing and identify an asset price source
Before creating a quote, call /prices to retrieve seller listing price sources for the project you want to retire. The assetPriceType filter lets you narrow results to projects with specific pricing sources. Accepted values are listing (seller listings on Carbonmark) and klimaprotocol (Klima protocol pool prices).
Use the sourceId value from the /prices response as the asset_price_source_id in the quote request.
Example request:
Example response (trimmed for readability):
For this example flow, we use the second listing because it has enough supply to support a 1 tonne retirement.
Step 4: Create a retirement quote
Create a quote using the /quotes endpoint.
Required fields:
asset_price_source_idquantity_tonnes
Example request:
Example response (trimmed for readability):
Save the uuid from the quote response. You will need it to create the order.
Step 5: Create a retirement order
Create an order using the /orders endpoint.
Required fields:
quote_uuidbeneficiary_nameretirement_message
Some registries may require additional fields. For example, certain Puro.earth retirements require consumption_metadata.
Example request:
Example response (trimmed for readability):
A successful order response with status: "SUBMITTED" means the retirement request has been accepted and is being processed.
Step 6: Confirm the retirement is complete
To confirm completion, query /orders using the quote_uuid.
Example request:
Example response (trimmed for readability)
When the order status is COMPLETED, the carbon credit has been retired. You can also use polygonscan_url or view_retirement_url from the order response for additional confirmation.
Retirement receipt
Once the order is complete, use the view_retirement_url returned by the API to access the retirement receipt.
The receipt URL follows this pattern:
Example:
The completed order will also appear in the Developer Dashboard, and the cost will be included in your monthly invoice.
Notes
Always use a versioned API base URL in production integrations
Use
/pricesto resolve a valid listingasset_price_source_idbefore creating a quoteUse
/quotesto price the retirementUse
/ordersto submit the retirementPoll
/orderswith thequote_uuiduntil the order status isCOMPLETEDSome registries may require additional order metadata
Last updated