2026-2-26 v1.7.1
backward compatible change
- Changed
content_introductionto return empty string. Content for this field has been appended tocontent_body_html.
The PrintReleaf API is organized around REST to have predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors.
It uses built-in HTTP features, like HTTP authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients. JSON is returned in all responses from the API, including errors, and is expected as the body for all requests.
null instead of being omittedYYYY-MM-DDTHH:MM:SSZAccounts in PrintReleaf are hierarchical, meaning every account can have one parent account and an arbitrary number of child accounts. Each account has a role that determines its abilities.
By default, all resources of the Core API are scoped to your account. The same resources can be accessed for any of your child accounts:
| Default Scope: |
/biomass/offsets/biomass/offsets/:id
|
| Account Scope: |
/accounts/:account_id/biomass/offsets/accounts/:account_id/biomass/offsets/:id
|
https://api.printreleaf.com/v1/You authenticate to the PrintReleaf API by including your API key in the request. You can manage your API keys from your PrintReleaf Dashboard.
Authentication to the PrintReleaf API is performed via HTTP Basic Auth. Provide your API key as the basic auth username value. You do not need to provide a password.
API requests without authentication will fail.
All API requests must include a valid User-Agent header. Requests without a valid User-Agent header will fail.
Do not use a generic User-Agent header, or the default User-Agent header of your HTTP client. Change your User-Agent string to be unique and descriptive.
Your User-Agent string should include your company name, application name, and a version string. We recommend the following format: <AppName>/<AppVersion {x.x.x[.x]}> (<VendorName>)
Example: User-Agent: MyApp/2.7.9 (AlphaCorp)
All API requests must be made over HTTPS; requests made over plain HTTP will fail.
# Example Request$ curl https://api.printreleaf.com/v1/ -u c7686125c49022c9fd3f9662bd2a8: -A MyApp/2.7.9 (AlphaCorp)# curl uses the -u flag to pass basic auth credentials (adding a colon after your API key prevents cURL from asking for a password), and the -A flag to set the User-Agent header of the request.The PrintReleaf API uses conventional HTTP response codes to indicate success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information (e.g. a required parameter was missing, etc.), and codes in the 5xx range indicate an error with PrintReleaf's servers.
// Example Error Object
{
"code": 404,
"error": "Object not found"
}The PrintReleaf API employs two usage models that can be used independently or in combination:
Biomass Offsets are realtime exchanges of paper consumption for reforested trees.
When creating a biomass offset, you have the option to:
quote_id to execute a quote to create a biomass offsetIn return, when the biomass offset is created, you will immediately receive a certificate of reforestation as a receipt of the biomass offset.
This model is ideal for transactional applications; for example, a point-of-sale integration for print jobs.
Using Biomass Offsets ›Deposits are periodic additions of paper consumption data to an account.
Over the course of a month, you periodically add deposits to an account; for example, daily meter reads from a device, fleet, or entire business. At the end of the month, the deposits are batched and summed to determine the account's total consumption during that month. A biomass offset is then automatically created for the total consumption and the account receives a certificate of reforestation as a receipt of the biomass offset.
This model is ideal for subscription applications where an account accrues paper consumption over time to be executed as a single big biomass offset rather than many small biomass offsets.
Our integrations with third-party print monitoring software (FMAudit, PrintFleet, etc.) are powered by this deposits model. Every day our data collectors gather paper consumption data from the print monitoring software and create a deposit for the day's consumption.
Using Deposits ›Retrieves the details of your account.
GET /accountReturns an expanded account object.
// Example Response
{
"id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"name": "Channel 123",
"display_name": "Channel 123",
"role": "channel",
"created_at": "2023-03-04T13:08:53Z",
"parent_id": null,
"external_id": null,
"status": "active",
"activated_at": "2023-03-04T13:08:53Z",
"deactivated_at": null,
"accounts_count": 2,
"users_count": 2,
"mtd_pages": 1234,
"qtd_pages": 12345,
"ytd_pages": 123456,
"ltd_pages": 1234567,
"mtd_trees": 0.15,
"qtd_trees": 1.48,
"ytd_trees": 14.82,
"ltd_trees": 148.0
}Lists all biomass certificates.
GET /biomass/certificatesReturns an array of biomass certificate objects, sorted reverse-chronologically.
// Example Response
[
{
"id": "ae630937-e15b-4da5-98de-bb68eefe2a12",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"date": "2026-02-28T23:59:59Z",
"pages": 2469134,
"trees": 296.0,
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"project": {
"id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"name": "Madagascar",
"status": "active",
"forest_latitude": -15.73584444444444,
"forest_longitude": 46.35879166666667,
"content_logo": "http://s3.amazonaws.com/projects/madagascar/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/madagascar/masthead.jpg",
"content_body_html": "<h1>Madagascar is one of the most...",
"content_images": [
"http://s3.amazonaws.com/projects/madagascar/1.jpg",
"http://s3.amazonaws.com/projects/madagascar/2.jpg",
"http://s3.amazonaws.com/projects/madagascar/3.jpg"
]
},
"url": "https://certificates.printreleaf.com/biomass/offset/ae630937-e15b-4da5-98de-bb68eefe2a12",
"pdf_url": "https://certificates.printreleaf.com/biomass/offset/ae630937-e15b-4da5-98de-bb68eefe2a12"
},
{
"id": "dfd1cdfc-8535-43d8-8987-9817580ebd2e",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"date": "2026-01-31T23:59:59Z",
"pages": 469134,
"trees": 56.3,
"project_id": "692bb68d-64aa-4a79-8a08-d373fb0d8752",
"project": {
"id": "692bb68d-64aa-4a79-8a08-d373fb0d8752",
"name": "Ethiopia",
"status": "complete",
"forest_latitude": 6.7029261,
"forest_longitude": 38.7062503,
"content_logo": "http://s3.amazonaws.com/projects/ethiopia/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/ethiopia/masthead.jpg",
"content_body_html": "<h1>Due to the absence of...",
"content_images": [
"http://s3.amazonaws.com/projects/ethiopia/1.jpg",
"http://s3.amazonaws.com/projects/ethiopia/2.jpg",
"http://s3.amazonaws.com/projects/ethiopia/3.jpg"
]
},
"url": "https://certificates.printreleaf.com/biomass/offset/dfd1cdfc-8535-43d8-8987-9817580ebd2e",
"pdf_url": "https://certificates.printreleaf.com/biomass/offset/dfd1cdfc-8535-43d8-8987-9817580ebd2e"
}
]Retrieves the details of a biomass certificate. Supply a biomass certificate identifier.
GET /biomass/certificates/:idReturns a biomass certificate object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "ae630937-e15b-4da5-98de-bb68eefe2a12",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"date": "2026-02-28T23:59:59Z",
"pages": 2469134,
"trees": 296.0,
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"project": {
"id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"name": "Madagascar",
"status": "active",
"forest_latitude": -15.73584444444444,
"forest_longitude": 46.35879166666667,
"content_logo": "http://s3.amazonaws.com/projects/madagascar/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/madagascar/masthead.jpg",
"content_body_html": "<h1>Madagascar is one of the most...",
"content_images": [
"http://s3.amazonaws.com/projects/madagascar/1.jpg",
"http://s3.amazonaws.com/projects/madagascar/2.jpg",
"http://s3.amazonaws.com/projects/madagascar/3.jpg"
]
},
"url": "https://certificates.printreleaf.com/biomass/offset/ae630937-e15b-4da5-98de-bb68eefe2a12",
"pdf_url": "https://certificates.printreleaf.com/biomass/offset/ae630937-e15b-4da5-98de-bb68eefe2a12"
}Biomass offsets are realtime exchanges of paper consumption for reforested trees.
Learn more about Biomass Offsets ›
Lists all biomass offsets.
GET /biomass/offsetsGET /biomass/offsets?start_date=2026-02-04YYYY-MM-DD format.
YYYY-MM-DD format.
Returns an array of biomass offset objects, sorted reverse-chronologically by date.
// Example Response
[
{
"id": "70af5540-e3ec-4db7-bc45-4fb65b74368b",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"order_id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"quote_id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"certificate_id": "70af5540-e3ec-4db7-bc45-4fb65b74368b",
"date": "2015-10-22T01:52:12Z",
"pages": 525379,
"trees": 63.048
},
{
"id": "def0f271-2f9e-494c-b2af-7f9354b310ad",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"order_id": null,
"quote_id": null,
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"certificate_id": "def0f271-2f9e-494c-b2af-7f9354b310ad",
"date": "2015-10-21T19:45:25Z",
"pages": 16666,
"trees": 2.0
}
]Retrieves the details of a biomass offset. Supply a biomass offset identifier.
GET /biomass/offsets/:idReturns a biomass offset object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "def0f271-2f9e-494c-b2af-7f9354b310ad",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"order_id": null,
"quote_id": null,
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"certificate_id": "def0f271-2f9e-494c-b2af-7f9354b310ad",
"date": "2015-10-21T19:45:25Z",
"pages": 16666,
"trees": 2.0
}When creating a biomass offset, you have the option to:
quote_id to convert a quote to a biomass offsetOptionally provide a project_id to identify at which forestry project you would like the trees to be planted.
After the biomass offset is created, you will immediately receive a biomass certificate as a receipt of the biomass offset.
POST /biomass/offsetspages.
pages, trees, and project_id.
Returns the new biomass offset object if valid information was provided, and returns an error otherwise.
// Example Request (providing `pages`)
{
"pages": 16666
}// Example Response
{
"id": "def0f271-2f9e-494c-b2af-7f9354b310ad",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"order_id": null,
"quote_id": null,
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"certificate_id": "def0f271-2f9e-494c-b2af-7f9354b310ad",
"date": "2015-10-21T19:45:25Z",
"pages": 16666,
"trees": 2.0
}// Example Request (providing `trees`)
{
"trees": 2.0
}// Example Response
{
"id": "def0f271-2f9e-494c-b2af-7f9354b310ad",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"order_id": null,
"quote_id": null,
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"certificate_id": "def0f271-2f9e-494c-b2af-7f9354b310ad",
"date": "2015-10-21T19:45:25Z",
"pages": 16666,
"trees": 2.0
}// Example Request (providing `quote_id`)
{
"quote_id": "83d12ee9-a187-489d-a93f-3096238f1f86"
}// Example Response
{
"id": "70af5540-e3ec-4db7-bc45-4fb65b74368b",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"order_id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"quote_id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"certificate_id": "70af5540-e3ec-4db7-bc45-4fb65b74368b",
"date": "2015-10-22T01:52:12Z",
"pages": 525379,
"trees": 63.048
}To delete a biomass offset, supply the biomass offset identifier.
Deleting a biomass offset is permitted until the biomass offset has been billed to your account, at which point it becomes locked.
DELETE /biomass/offsets/:idReturns an object with a deleted parameter on success. If the biomass offset does not exist or deleting this biomass offset is not permitted, this call returns an an error.
// Example Response
{
"id": "70af5540-e3ec-4db7-bc45-4fb65b74368b",
"deleted": true
}Lists all accounts.
GET /accountsReturns an array of account objects, sorted alphabetically.
// Example Response
[
{
"id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"name": "Customer ABC",
"display_name": "Customer ABC",
"role": "customer",
"created_at": "2024-03-04T13:08:53Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2024-03-04T13:08:53Z",
"deactivated_at": null
},
{
"id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"name": "Customer DEF",
"display_name": "Customer DEF",
"role": "customer",
"created_at": "2025-03-04T13:08:53Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "inactive",
"activated_at": "2025-03-04T13:08:53Z",
"deactivated_at": "2025-09-04T13:08:53Z"
}
]Retrieves the details of an account.
GET /accounts/:idReturns an expanded account object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"name": "Customer ABC",
"display_name": "Customer ABC",
"role": "customer",
"created_at": "2024-03-04T13:08:53Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2024-03-04T13:08:53Z",
"deactivated_at": null,
"accounts_count": 0,
"users_count": 3,
"mtd_pages": 1234,
"qtd_pages": 12345,
"ytd_pages": 123456,
"ltd_pages": 1234567,
"mtd_trees": 0.15,
"qtd_trees": 1.48,
"ytd_trees": 14.82,
"ltd_trees": 148.0
}To create a new account, supply a name for the account.
POST /accountsname.
Returns the new expanded account object if valid information was provided, and returns an error otherwise.
// Example Request
{
"name": "Customer GHI"
}// Example Response
{
"id": "6dd962a0-a515-4a83-980e-d3bd7cbb243a",
"name": "Customer GHI",
"display_name": "Customer GHI",
"role": "customer",
"created_at": "2026-03-04T13:08:53Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2026-03-04T13:08:53Z",
"deactivated_at": null,
"accounts_count": 0,
"users_count": 0,
"mtd_pages": 0,
"qtd_pages": 0,
"ytd_pages": 0,
"ltd_pages": 0,
"mtd_trees": 0.0,
"qtd_trees": 0.0,
"ytd_trees": 0.0,
"ltd_trees": 0.0
}Updates the specified account by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
PATCH /accounts/:idReturns the updated expanded account object if valid information was provided, and returns an error otherwise.
// Example Request
{
"name": "Customer JKL"
}// Example Response
{
"id": "6dd962a0-a515-4a83-980e-d3bd7cbb243a",
"name": "Customer JKL",
"display_name": "Customer GHI",
"role": "customer",
"created_at": "2026-03-04T13:08:53Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2026-03-04T13:08:53Z",
"deactivated_at": null,
"accounts_count": 0,
"users_count": 0,
"mtd_pages": 0,
"qtd_pages": 0,
"ytd_pages": 0,
"ltd_pages": 0,
"mtd_trees": 0.0,
"qtd_trees": 0.0,
"ytd_trees": 0.0,
"ltd_trees": 0.0
}Activates the specified account.
POST /accounts/:id/activateReturns the updated expanded account object if valid information was provided, and returns an error otherwise.
// Example Response
{
"id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"name": "Customer DEF",
"display_name": "Customer DEF",
"role": "customer",
"created_at": "2025-03-04T13:08:53Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2026-03-04T13:08:53Z",
"deactivated_at": "2025-09-04T13:08:53Z",
"accounts_count": 0,
"users_count": 1,
"mtd_pages": 2468,
"qtd_pages": 24690,
"ytd_pages": 246912,
"ltd_pages": 2469134,
"mtd_trees": 0.3,
"qtd_trees": 2.96,
"ytd_trees": 29.63,
"ltd_trees": 296.0
}Dectivates the specified account. Deactivating an account stops data collection, effectively pausing reforestation service.
Once deactivated, users of the account will still be able to sign into their PrintReleaf account to monitor the forests they've already planted, but their account will no longer accrue reforestated pages.
No new deposits can be made to a deactivated account, all outstanding deposits made prior to deactivating the account will be processed at the end of the period as usual.
If you need to permanently delete an account, please contact support.
POST /accounts/:id/deactivateReturns the updated expanded account object if valid information was provided, and returns an error otherwise.
// Example Response
{
"id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"name": "Customer DEF",
"display_name": "Customer DEF",
"role": "customer",
"created_at": "2025-03-04T13:08:53Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "inactive",
"activated_at": "2025-03-04T13:08:53Z",
"deactivated_at": "2026-03-04T13:08:53Z",
"accounts_count": 0,
"users_count": 1,
"mtd_pages": 2468,
"qtd_pages": 24690,
"ytd_pages": 246912,
"ltd_pages": 2469134,
"mtd_trees": 0.3,
"qtd_trees": 2.96,
"ytd_trees": 29.63,
"ltd_trees": 296.0
}Lists all carbon offsets.
GET /carbon/offsetsReturns an array of carbon offset objects, sorted reverse-chronologically.
// Example Response
[
{
"id": "0f66ae84-ad28-4e17-b447-9f521d73b557",
"account_id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"order_id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"project_id": "075f2aab-718b-4d06-8fca-9a51b14af88e",
"project_name": "Brazil - Forestry REDD+ Project",
"project_type": "Agriculture Forestry and Other Land Use",
"registry_name": "VERRA",
"date": "2026-02-28T23:59:59Z",
"mtco2e": 106.123,
"status": "fulfilled",
"vintage_start_date": "2023-03-04T13:08:53Z",
"vintage_end_date": "2025-03-04T13:08:53Z",
"serial_numbers": [
"65831-336365509-389564721-VPL-HTP-223-VER-NL-3-378-01032016-16112017-2",
"17890-344360449-347318621-VCS-VCU-896-OKR-RE-1-335-01052004-31122006-6"
]
},
{
"id": "c18b52dd-718b-44a4-8483-4c57c7d7182d",
"account_id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"order_id": null,
"project_id": "a810ccde-88fe-4088-b32d-bdf00b1dc2cb",
"project_name": "China - Wind Farm Project",
"project_type": "Energy industries (renewable/non-renewable sources)",
"registry_name": "VERRA",
"date": "2026-01-31T23:59:59Z",
"mtco2e": 190.453,
"status": "processing",
"vintage_start_date": null,
"vintage_end_date": null,
"serial_numbers": []
}
]Retrieves the details of a carbon offset. Supply a carbon offset identifier.
GET /carbon/offsets/:idReturns a carbon offset object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "0f66ae84-ad28-4e17-b447-9f521d73b557",
"account_id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"order_id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"project_id": "075f2aab-718b-4d06-8fca-9a51b14af88e",
"project_name": "Brazil - Forestry REDD+ Project",
"project_type": "Agriculture Forestry and Other Land Use",
"registry_name": "VERRA",
"date": "2026-02-28T23:59:59Z",
"mtco2e": 106.123,
"status": "fulfilled",
"vintage_start_date": "2023-03-04T13:08:53Z",
"vintage_end_date": "2025-03-04T13:08:53Z",
"serial_numbers": [
"65831-336365509-389564721-VPL-HTP-223-VER-NL-3-378-01032016-16112017-2",
"17890-344360449-347318621-VCS-VCU-896-OKR-RE-1-335-01052004-31122006-6"
]
}Deposits are periodic additions of paper consumption data to an account.
Over the course of a month, you periodically add deposits to an account; for example, daily meter reads from a device, fleet, or entire business. At the end of the month, the deposits are batched and summed to determine the account's total consumption during that month. A biomass offset is then automatically created for the total consumption and the account receives a set of certificates as a receipt of the biomass offset.
Lists all deposits.
GET /depositsGET /deposits?start_date=2026-02-04YYYY-MM-DD format.
YYYY-MM-DD format.
Returns an array of deposit objects, sorted reverse-chronologically by date.
// Example Response
[
{
"id": "a86d591c-3c29-4bef-82c3-7a007fb6b19c",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"feed_id": "44e182ed-cd50-4fa1-af90-e77dd6d6a78c",
"date": "2016-07-05T12:29:12Z",
"pages": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216
},
{
"id": "85034431-db14-47c1-a965-632e8471e573",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"feed_id": null,
"date": "2016-07-04T09:45:25Z",
"pages": 16666,
"width": 0.2159,
"length": 0.2794,
"gsm": 75
}
]Retrieves the details of a deposit. Supply a deposit identifier.
GET /deposits/:idReturns an deposit object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "a86d591c-3c29-4bef-82c3-7a007fb6b19c",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"feed_id": "44e182ed-cd50-4fa1-af90-e77dd6d6a78c",
"date": "2016-07-05T12:29:12Z",
"pages": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216
}Creates a new deposit.
POST /depositsReturns the new deposit object if valid information was provided, and returns an error otherwise.
// Example Request
{
"pages": 16666
}// Example Response
{
"id": "85034431-db14-47c1-a965-632e8471e573",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"feed_id": null,
"date": "2016-07-04T09:45:25Z",
"pages": 16666,
"width": 0.2159,
"length": 0.2794,
"gsm": 75
}To delete a deposit, supply the deposit identifier.
Deleting a deposit is permitted until the deposit has been processed and certified at the end of the period, at which point it becomes locked.
DELETE /deposits/:idReturns an object with a deleted parameter on success. If the deposit does not exist or deleting this deposit is not permitted, this call returns an an error.
// Example Response
{
"id": "a86d591c-3c29-4bef-82c3-7a007fb6b19c",
"deleted": true
}Lists the account's selected forestry projects.
GET /projectsReturns an array of forestry project objects.
// Example Response
[
{
"id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"name": "Madagascar",
"status": "active",
"forest_latitude": -15.73584444444444,
"forest_longitude": 46.35879166666667,
"content_logo": "http://s3.amazonaws.com/projects/madagascar/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/madagascar/masthead.jpg",
"content_body_html": "<h1>Madagascar is one of the most...",
"content_images": [
"http://s3.amazonaws.com/projects/madagascar/1.jpg",
"http://s3.amazonaws.com/projects/madagascar/2.jpg",
"http://s3.amazonaws.com/projects/madagascar/3.jpg"
]
}
]To add a forestry project to favorites, supply the project identifier.
POST /projects/:idReturns the updated array of forestry project objects.
POST /projects/692bb68d-64aa-4a79-8a08-d373fb0d8752// Example Response
[
{
"id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"name": "Madagascar",
"status": "active",
"forest_latitude": -15.73584444444444,
"forest_longitude": 46.35879166666667,
"content_logo": "http://s3.amazonaws.com/projects/madagascar/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/madagascar/masthead.jpg",
"content_body_html": "<h1>Madagascar is one of the most...",
"content_images": [
"http://s3.amazonaws.com/projects/madagascar/1.jpg",
"http://s3.amazonaws.com/projects/madagascar/2.jpg",
"http://s3.amazonaws.com/projects/madagascar/3.jpg"
]
},
{
"id": "692bb68d-64aa-4a79-8a08-d373fb0d8752",
"name": "Ethiopia",
"status": "complete",
"forest_latitude": 6.7029261,
"forest_longitude": 38.7062503,
"content_logo": "http://s3.amazonaws.com/projects/ethiopia/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/ethiopia/masthead.jpg",
"content_body_html": "<h1>Due to the absence of...",
"content_images": [
"http://s3.amazonaws.com/projects/ethiopia/1.jpg",
"http://s3.amazonaws.com/projects/ethiopia/2.jpg",
"http://s3.amazonaws.com/projects/ethiopia/3.jpg"
]
}
]To remove a forestry project from favorites, supply the project identifier.
DELETE /projects/:idReturns the updated array of forestry project objects.
DELETE /projects/692bb68d-64aa-4a79-8a08-d373fb0d8752// Example Response
[
{
"id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"name": "Madagascar",
"status": "active",
"forest_latitude": -15.73584444444444,
"forest_longitude": 46.35879166666667,
"content_logo": "http://s3.amazonaws.com/projects/madagascar/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/madagascar/masthead.jpg",
"content_body_html": "<h1>Madagascar is one of the most...",
"content_images": [
"http://s3.amazonaws.com/projects/madagascar/1.jpg",
"http://s3.amazonaws.com/projects/madagascar/2.jpg",
"http://s3.amazonaws.com/projects/madagascar/3.jpg"
]
}
]A feed configures an account for automatic collection of page count data from a third-party integration. Feeds create deposits for accounts. An account can have any number of feeds.
Lists all feeds.
GET /feedsReturns an array of feed objects.
// Example Response
[
{
"id": "06d88c48-c8c3-4b11-a267-18f5b4e8dacc",
"account_id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"type": "printfleet",
"server_id": "9a6a1ced-4e71-4919-9d6d-25075834c404",
"external_id": "732ec0d3-20e3-439e-94e6-e64b40eb533a",
"collection_scope": "all",
"created_at": "2024-03-04T13:08:53Z",
"status": "inactive",
"activated_at": "2024-03-04T13:08:53Z",
"deactivated_at": "2025-03-04T13:08:53Z",
"health_check": "unhealthy",
"health_check_checked_at": "2026-03-04T13:08:53Z",
"health_check_changed_at": "2026-03-04T13:08:53Z"
},
{
"id": "44e182ed-cd50-4fa1-af90-e77dd6d6a78c",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"type": "fmaudit",
"server_id": "eadabb78-b199-43cb-adbd-ab36ce5c5a10",
"external_id": "456",
"collection_scope": "managed_only",
"created_at": "2025-03-04T13:08:53Z",
"status": "active",
"activated_at": "2025-03-04T13:08:53Z",
"deactivated_at": null,
"health_check": "healthy",
"health_check_checked_at": "2026-03-04T13:08:53Z",
"health_check_changed_at": "2026-03-04T13:08:53Z"
}
]Retrieves the details of a feed. Supply a feed identifier.
GET /feeds/:idReturns a feed object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "44e182ed-cd50-4fa1-af90-e77dd6d6a78c",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"type": "fmaudit",
"server_id": "eadabb78-b199-43cb-adbd-ab36ce5c5a10",
"external_id": "456",
"collection_scope": "managed_only",
"created_at": "2025-03-04T13:08:53Z",
"status": "active",
"activated_at": "2025-03-04T13:08:53Z",
"deactivated_at": null,
"health_check": "healthy",
"health_check_checked_at": "2026-03-04T13:08:53Z",
"health_check_changed_at": "2026-03-04T13:08:53Z"
}To create a new feed, supply the type, server identifier, and external id for the feed.
POST /feedstype of the feed to create.
Returns the new feed object if valid information was provided, and returns an error otherwise.
// Example Request
{
"type": "printfleet",
"server_id": "9a6a1ced-4e71-4919-9d6d-25075834c404",
"external_id": "732ec0d3-20e3-439e-94e6-e64b40eb533a"
}// Example Response
{
"id": "06d88c48-c8c3-4b11-a267-18f5b4e8dacc",
"account_id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"type": "printfleet",
"server_id": "9a6a1ced-4e71-4919-9d6d-25075834c404",
"external_id": "732ec0d3-20e3-439e-94e6-e64b40eb533a",
"collection_scope": "all",
"created_at": "2024-03-04T13:08:53Z",
"status": "active",
"activated_at": "2026-03-04 13:08:53 +0000",
"deactivated_at": null,
"health_check": "unhealthy",
"health_check_checked_at": "2026-03-04T13:08:53Z",
"health_check_changed_at": "2026-03-04T13:08:53Z"
}Updates the feed by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
PATCH /feeds/:idReturns the updated feed object if valid information was provided, and returns an error otherwise.
// Example Request
{
"external_id": "732ec0d3-20e3-439e-94e6-e64b40eb533a"
}// Example Response
{
"id": "06d88c48-c8c3-4b11-a267-18f5b4e8dacc",
"account_id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"type": "printfleet",
"server_id": "9a6a1ced-4e71-4919-9d6d-25075834c404",
"external_id": "732ec0d3-20e3-439e-94e6-e64b40eb533a",
"collection_scope": "all",
"created_at": "2024-03-04T13:08:53Z",
"status": "inactive",
"activated_at": "2024-03-04T13:08:53Z",
"deactivated_at": "2025-03-04T13:08:53Z",
"health_check": "unhealthy",
"health_check_checked_at": "2026-03-04T13:08:53Z",
"health_check_changed_at": "2026-03-04T13:08:53Z"
}To delete a feed, supply the feed identifier.
DELETE /feeds/:idReturns an object with a deleted parameter on success. If the feed does not exist, this call returns an an error.
// Example Response
{
"id": "06d88c48-c8c3-4b11-a267-18f5b4e8dacc",
"deleted": true
}Activates the specified feed.
POST /feeds/:id/activateReturns the updated feed object if valid information was provided, and returns an error otherwise.
// Example Response
{
"id": "06d88c48-c8c3-4b11-a267-18f5b4e8dacc",
"account_id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"type": "printfleet",
"server_id": "9a6a1ced-4e71-4919-9d6d-25075834c404",
"external_id": "732ec0d3-20e3-439e-94e6-e64b40eb533a",
"collection_scope": "all",
"created_at": "2024-03-04T13:08:53Z",
"status": "active",
"activated_at": "2026-03-04T13:08:53Z",
"deactivated_at": "2025-03-04T13:08:53Z",
"health_check": "unhealthy",
"health_check_checked_at": "2026-03-04T13:08:53Z",
"health_check_changed_at": "2026-03-04T13:08:53Z"
}Dectivates the specified feed. Deactivating a feed stops automatic data collection from that integration.
POST /feeds/:id/deactivateReturns the updated feed object if valid information was provided, and returns an error otherwise.
// Example Response
{
"id": "06d88c48-c8c3-4b11-a267-18f5b4e8dacc",
"account_id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"type": "printfleet",
"server_id": "9a6a1ced-4e71-4919-9d6d-25075834c404",
"external_id": "732ec0d3-20e3-439e-94e6-e64b40eb533a",
"collection_scope": "all",
"created_at": "2024-03-04T13:08:53Z",
"status": "inactive",
"activated_at": "2024-03-04T13:08:53Z",
"deactivated_at": "2026-03-04T13:08:53Z",
"health_check": "unhealthy",
"health_check_checked_at": "2026-03-04T13:08:53Z",
"health_check_changed_at": "2026-03-04T13:08:53Z"
}Lists all orders.
GET /ordersReturns an array of order objects, sorted reverse-chronologically by created_at.
// Example Response
[
{
"id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"biomass_project_ids": [
"5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9"
],
"carbon_project_ids": [],
"status": "placed",
"created_at": "2015-10-22T00:37:11Z",
"standard_sheets": 518373,
"paper_mass_g": 2345215.091819,
"trees": 63.047762,
"mtco2e": 106.123,
"biomass_price": 16.66,
"carbon_price": 40.0,
"price": 56.66,
"biomass_offset_ids": [
"52c925cd-48d5-4c31-866a-660077cf9811"
],
"carbon_offset_ids": [],
"external_id": null
},
{
"id": "e9ad2b00-409a-49a5-a05c-93f63329d3af",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"biomass_project_ids": [
"5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9"
],
"carbon_project_ids": [
"69613d72-ba9d-4b1c-9c94-ccce5d53c431"
],
"status": "draft",
"created_at": "2015-10-22T00:37:11Z",
"standard_sheets": 16666,
"paper_mass_g": 75400.058877,
"trees": 2.0,
"mtco2e": 10.123,
"biomass_price": 6.66,
"carbon_price": 20.0,
"price": 26.66,
"biomass_offset_ids": [],
"carbon_offset_ids": [],
"external_id": null
}
]Retrieves the details of an order. Supply an order identifier.
GET /orders/:idReturns an expanded order object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"biomass_project_ids": [
"5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9"
],
"carbon_project_ids": [],
"status": "placed",
"created_at": "2015-10-22T00:37:11Z",
"standard_sheets": 518373,
"paper_mass_g": 2345215.091819,
"trees": 63.047762,
"mtco2e": 106.123,
"biomass_price": 16.66,
"carbon_price": 40.0,
"price": 56.66,
"biomass_offset_ids": [
"52c925cd-48d5-4c31-866a-660077cf9811"
],
"carbon_offset_ids": [],
"external_id": null,
"items": [
{
"quantity": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216,
"mass": 253793.177897
},
{
"quantity": 400000,
"width": 0.2127,
"length": 0.2762,
"gsm": 89,
"mass": 2091421.913922
}
]
}To create a new order, supply the raw paper consumption data and PrintReleaf will equate it to the number of trees deforested to produce that paper.
POST /ordersRaw paper consumption data can be reported using one of two methods:
quantity, width, length, and gsmmassquantity, width, length, and gsm.
Returns the new expanded order object if valid information was provided, and returns an error otherwise.
// Example Request (providing paper specs or mass)
{
"project_id": null,
"items": [
{
"quantity": 16666,
"width": 0.2159,
"length": 0.2794,
"gsm": 75
},
{
"mass": 253793.177897
}
]
}// Example Response
{
"id": "e9ad2b00-409a-49a5-a05c-93f63329d3af",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"biomass_project_ids": [
"5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9"
],
"carbon_project_ids": [
"69613d72-ba9d-4b1c-9c94-ccce5d53c431"
],
"status": "draft",
"created_at": "2015-10-22T00:37:11Z",
"standard_sheets": 16666,
"paper_mass_g": 75400.058877,
"trees": 2.0,
"mtco2e": 10.123,
"biomass_price": 6.66,
"carbon_price": 20.0,
"price": 26.66,
"biomass_offset_ids": [],
"carbon_offset_ids": [],
"external_id": null,
"items": [
{
"quantity": 16666,
"width": 0.2159,
"length": 0.2794,
"gsm": 75,
"mass": 75400.058877
},
{
"quantity": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216,
"mass": 253793.177897
}
]
}To place an order, supply the order identifier. Placing an order creates biomass and carbon offsets based on the order's project settings.
PATCH /orders/:id/placeReturns an expanded order object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"biomass_project_ids": [
"5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9"
],
"carbon_project_ids": [],
"status": "placed",
"created_at": "2015-10-22T00:37:11Z",
"standard_sheets": 518373,
"paper_mass_g": 2345215.091819,
"trees": 63.047762,
"mtco2e": 106.123,
"biomass_price": 16.66,
"carbon_price": 40.0,
"price": 56.66,
"biomass_offset_ids": [
"52c925cd-48d5-4c31-866a-660077cf9811"
],
"carbon_offset_ids": [],
"external_id": null,
"items": [
{
"quantity": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216,
"mass": 253793.177897
},
{
"quantity": 400000,
"width": 0.2127,
"length": 0.2762,
"gsm": 89,
"mass": 2091421.913922
}
]
}To delete an order, supply the order identifier.
Deleting an order is permitted unless the order has been placed to create a biomass or carbon offset.
DELETE /orders/:idReturns an object with a deleted parameter on success. If the order does not exist or deleting this order is not permitted, this call returns an an error.
// Example Response
{
"id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"deleted": true
}Lists all quotes.
GET /quotesReturns an array of quote objects, sorted reverse-chronologically by created_at.
// Example Response
[
{
"id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"project_ids": [
"5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9"
],
"created_at": "2015-10-22T00:37:11Z",
"trees": 63.047762,
"standard_pages": 518373,
"mass": 2345215.091819,
"price": 157.61,
"external_id": null,
"biomass_offset_id": null,
"biomass_offset_ids": []
},
{
"id": "e9ad2b00-409a-49a5-a05c-93f63329d3af",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"project_ids": [
"5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9"
],
"created_at": "2015-10-22T00:37:11Z",
"trees": 2.0,
"standard_pages": 16666,
"mass": 75400.058877,
"price": 6.66,
"external_id": null,
"biomass_offset_id": null,
"biomass_offset_ids": []
}
]Retrieves the details of a quote. Supply a quote identifier.
GET /quotes/:idReturns an expanded quote object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"project_ids": [
"5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9"
],
"created_at": "2015-10-22T00:37:11Z",
"trees": 63.047762,
"standard_pages": 518373,
"mass": 2345215.091819,
"price": 157.61,
"external_id": null,
"biomass_offset_id": null,
"biomass_offset_ids": [],
"items": [
{
"quantity": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216,
"mass": 253793.177897
},
{
"quantity": 400000,
"width": 0.2127,
"length": 0.2762,
"gsm": 89,
"mass": 2091421.913922
}
]
}To create a new quote, supply the raw paper consumption data and PrintReleaf will equate it to the number of trees deforested to produce that paper.
POST /quotesRaw paper consumption data can be reported using one of two methods:
quantity, width, length, and gsmmassquantity, width, length, and gsm.
Returns the new expanded quote object if valid information was provided, and returns an error otherwise.
// Example Request (providing paper specs or mass)
{
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"items": [
{
"quantity": 16666,
"width": 0.2159,
"length": 0.2794,
"gsm": 75
},
{
"mass": 253793.177897
}
]
}// Example Response
{
"id": "e9ad2b00-409a-49a5-a05c-93f63329d3af",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"project_ids": [
"5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9"
],
"created_at": "2015-10-22T00:37:11Z",
"trees": 2.0,
"standard_pages": 16666,
"mass": 75400.058877,
"price": 6.66,
"external_id": null,
"biomass_offset_id": null,
"biomass_offset_ids": [],
"items": [
{
"quantity": 16666,
"width": 0.2159,
"length": 0.2794,
"gsm": 75,
"mass": 75400.058877
},
{
"quantity": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216,
"mass": 253793.177897
}
]
}To delete a quote, supply the quote identifier.
Deleting a quote is permitted unless the quote has been executed to create a biomass offset.
DELETE /quotes/:idReturns an object with a deleted parameter on success. If the quote does not exist or deleting this quote is not permitted, this call returns an an error.
// Example Response
{
"id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"deleted": true
}Lists all servers.
GET /serversReturns an array of server objects, sorted reverse-chronologically by created_at.
// Example Response
[
{
"id": "9a6a1ced-4e71-4919-9d6d-25075834c404",
"account_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"type": "printfleet",
"url": "https://myprintfleetserver.com",
"username": "MyPrintFleetUsername",
"created_at": "2024-03-04T13:08:53Z"
},
{
"id": "eadabb78-b199-43cb-adbd-ab36ce5c5a10",
"account_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"type": "fmaudit",
"url": "https://myfmauditserver.com",
"username": "MyFMAuditUsername",
"created_at": "2024-03-04T13:08:53Z"
}
]Retrieves the details of a server. Supply a server identifier.
GET /servers/:idReturns a server object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "eadabb78-b199-43cb-adbd-ab36ce5c5a10",
"account_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"type": "fmaudit",
"url": "https://myfmauditserver.com",
"username": "MyFMAuditUsername",
"created_at": "2024-03-04T13:08:53Z"
}To create a new server, supply the type, url, username, and password for the server.
POST /serverstype of the server to create.
Returns the new server object if valid information was provided, and returns an error otherwise.
// Example Request
{
"type": "printfleet",
"url": "https://myprintfleetserver.com",
"username": "MyPrintFleetUsername",
"password": "MyPrintFleetPassword"
}// Example Response
{
"id": "9a6a1ced-4e71-4919-9d6d-25075834c404",
"account_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"type": "printfleet",
"url": "https://myprintfleetserver.com",
"username": "MyPrintFleetUsername",
"created_at": "2024-03-04T13:08:53Z"
}Updates the server by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
PATCH /servers/:idReturns the updated server object if valid information was provided, and returns an error otherwise.
// Example Request
{
"username": "MyUpdatedPrintFleetUsername"
}// Example Response
{
"id": "9a6a1ced-4e71-4919-9d6d-25075834c404",
"account_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"type": "printfleet",
"url": "https://myprintfleetserver.com",
"username": "MyUpdatedPrintFleetUsername",
"created_at": "2024-03-04T13:08:53Z"
}To delete a server, supply the server identifier.
DELETE /servers/:idReturns an object with a deleted parameter on success. If the server does not exist, this call returns an an error.
// Example Response
{
"id": "9a6a1ced-4e71-4919-9d6d-25075834c404",
"deleted": true
}Lists all users.
GET /usersReturns an array of user objects, sorted by the date they were created.
// Example Response
[
{
"id": "5f25569f-ec0d-4ff3-a6ce-0456ac79b84d",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"full_name": "Sally Example",
"email": "sally@example.com",
"locale": "en",
"created_at": "2026-02-22T13:08:53Z"
},
{
"id": "5f25569f-ec0d-4ff3-a6ce-0456ac79b84d",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"full_name": "David Example",
"email": "david@example.com",
"locale": "en",
"created_at": "2026-02-27T13:08:53Z"
}
]Retrieves the details of a user. Supply a user identifier.
GET /users/:idReturns a user object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "5f25569f-ec0d-4ff3-a6ce-0456ac79b84d",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"full_name": "Sally Example",
"email": "sally@example.com",
"locale": "en",
"created_at": "2026-02-22T13:08:53Z"
}To create a new user, supply an email address for the user. Optionally provide a locale for the user. All user interfaces and communications will be displayed in the user's locale.
POST /usersReturns the new user object if valid information was provided, and returns an error otherwise.
// Example Request
{
"email": "sally@example.com",
"full_name": "Sally Example",
"locale": "pt"
}// Example Response
{
"id": "5f25569f-ec0d-4ff3-a6ce-0456ac79b84d",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"full_name": "Sally Example",
"email": "sally@example.com",
"locale": "pt",
"created_at": "2026-02-22T13:08:53Z"
}To delete a user, supply the user identifier.
DELETE /users/:idReturns an object with a deleted parameter on success. If the user does not exist, this call returns an an error.
// Example Response
{
"id": "5f25569f-ec0d-4ff3-a6ce-0456ac79b84d",
"deleted": true
}Lists volume history summarized by month.
GET /volumeYYYY-MM-DD format.YYYY-MM-DD format.Returns an array of volume period objects, sorted chronologically.
// Example Response
[
{
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"date": "2026-01-01T00:00:00Z",
"pages": 234567,
"trees": 56.3
},
{
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"date": "2026-02-01T00:00:00Z",
"pages": 2469134,
"trees": 296.0
}
]Lists all forestry projects.
GET /forestry/projectsReturns an array of forestry project objects, sorted by the date they were created.
// Example Response
[
{
"id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"name": "Madagascar",
"status": "active",
"forest_latitude": -15.73584444444444,
"forest_longitude": 46.35879166666667,
"content_logo": "http://s3.amazonaws.com/projects/madagascar/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/madagascar/masthead.jpg",
"content_body_html": "<h1>Madagascar is one of the most...",
"content_images": [
"http://s3.amazonaws.com/projects/madagascar/1.jpg",
"http://s3.amazonaws.com/projects/madagascar/2.jpg",
"http://s3.amazonaws.com/projects/madagascar/3.jpg"
]
},
{
"id": "692bb68d-64aa-4a79-8a08-d373fb0d8752",
"name": "Ethiopia",
"status": "complete",
"forest_latitude": 6.7029261,
"forest_longitude": 38.7062503,
"content_logo": "http://s3.amazonaws.com/projects/ethiopia/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/ethiopia/masthead.jpg",
"content_body_html": "<h1>Due to the absence of...",
"content_images": [
"http://s3.amazonaws.com/projects/ethiopia/1.jpg",
"http://s3.amazonaws.com/projects/ethiopia/2.jpg",
"http://s3.amazonaws.com/projects/ethiopia/3.jpg"
]
}
]Retrieves the details of a forestry project. Supply a forestry project identifier.
GET /forestry/projects/:idReturns a forestry project object if a valid identifier was provided, and returns an error otherwise.
// Example Response
{
"id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"name": "Madagascar",
"status": "active",
"forest_latitude": -15.73584444444444,
"forest_longitude": 46.35879166666667,
"content_logo": "http://s3.amazonaws.com/projects/madagascar/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/madagascar/masthead.jpg",
"content_body_html": "<h1>Madagascar is one of the most...",
"content_images": [
"http://s3.amazonaws.com/projects/madagascar/1.jpg",
"http://s3.amazonaws.com/projects/madagascar/2.jpg",
"http://s3.amazonaws.com/projects/madagascar/3.jpg"
]
}null when the account does not have a parent account.
null when the account has never been activated.
null when the account has never been deactivated.
// Example Account Object
{
"id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"name": "Customer ABC",
"display_name": "Customer ABC",
"role": "customer",
"created_at": "2024-03-04T13:08:53Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2024-03-04T13:08:53Z",
"deactivated_at": null
}// Example Expanded Account Object
{
"id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"name": "Customer ABC",
"display_name": "Customer ABC",
"role": "customer",
"created_at": "2024-03-04T13:08:53Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2024-03-04T13:08:53Z",
"deactivated_at": null,
"accounts_count": 0,
"users_count": 3,
"mtd_pages": 1234,
"qtd_pages": 12345,
"ytd_pages": 123456,
"ltd_pages": 1234567,
"mtd_trees": 0.15,
"qtd_trees": 1.48,
"ytd_trees": 14.82,
"ltd_trees": 148.0
}// Example Biomass Certificate Object
{
"id": "ae630937-e15b-4da5-98de-bb68eefe2a12",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"date": "2026-02-28T23:59:59Z",
"pages": 2469134,
"trees": 296.0,
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"project": {
"id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"name": "Madagascar",
"status": "active",
"forest_latitude": -15.73584444444444,
"forest_longitude": 46.35879166666667,
"content_logo": "http://s3.amazonaws.com/projects/madagascar/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/madagascar/masthead.jpg",
"content_body_html": "<h1>Madagascar is one of the most...",
"content_images": [
"http://s3.amazonaws.com/projects/madagascar/1.jpg",
"http://s3.amazonaws.com/projects/madagascar/2.jpg",
"http://s3.amazonaws.com/projects/madagascar/3.jpg"
]
},
"url": "https://certificates.printreleaf.com/biomass/offset/ae630937-e15b-4da5-98de-bb68eefe2a12",
"pdf_url": "https://certificates.printreleaf.com/biomass/offset/ae630937-e15b-4da5-98de-bb68eefe2a12"
}// Example Biomass Offset Object
{
"id": "def0f271-2f9e-494c-b2af-7f9354b310ad",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"order_id": null,
"quote_id": null,
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"certificate_id": "def0f271-2f9e-494c-b2af-7f9354b310ad",
"date": "2015-10-21T19:45:25Z",
"pages": 16666,
"trees": 2.0
}null when the carbon offset is not yet fulfilled.
null when the carbon offset is not yet fulfilled.
// Example Carbon Offset Object
{
"id": "0f66ae84-ad28-4e17-b447-9f521d73b557",
"account_id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"order_id": "83d12ee9-a187-489d-a93f-3096238f1f86",
"project_id": "075f2aab-718b-4d06-8fca-9a51b14af88e",
"project_name": "Brazil - Forestry REDD+ Project",
"project_type": "Agriculture Forestry and Other Land Use",
"registry_name": "VERRA",
"date": "2026-02-28T23:59:59Z",
"mtco2e": 106.123,
"status": "fulfilled",
"vintage_start_date": "2023-03-04T13:08:53Z",
"vintage_end_date": "2025-03-04T13:08:53Z",
"serial_numbers": [
"65831-336365509-389564721-VPL-HTP-223-VER-NL-3-378-01032016-16112017-2",
"17890-344360449-347318621-VCS-VCU-896-OKR-RE-1-335-01052004-31122006-6"
]
}length. Can be used interchangeably.
// Example Deposit Object
{
"id": "a86d591c-3c29-4bef-82c3-7a007fb6b19c",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"feed_id": "44e182ed-cd50-4fa1-af90-e77dd6d6a78c",
"date": "2016-07-05T12:29:12Z",
"pages": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216
}content_body_html field.
// Example Forestry Project Object
{
"id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"name": "Madagascar",
"status": "active",
"forest_latitude": -15.73584444444444,
"forest_longitude": 46.35879166666667,
"content_logo": "http://s3.amazonaws.com/projects/madagascar/logo.jpg",
"content_masthead": "http://s3.amazonaws.com/projects/madagascar/masthead.jpg",
"content_body_html": "<h1>Madagascar is one of the most...",
"content_images": [
"http://s3.amazonaws.com/projects/madagascar/1.jpg",
"http://s3.amazonaws.com/projects/madagascar/2.jpg",
"http://s3.amazonaws.com/projects/madagascar/3.jpg"
]
}// Example Order Object
{
"id": "e9ad2b00-409a-49a5-a05c-93f63329d3af",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"biomass_project_ids": [
"5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9"
],
"carbon_project_ids": [
"69613d72-ba9d-4b1c-9c94-ccce5d53c431"
],
"status": "draft",
"created_at": "2015-10-22T00:37:11Z",
"standard_sheets": 16666,
"paper_mass_g": 75400.058877,
"trees": 2.0,
"mtco2e": 10.123,
"biomass_price": 6.66,
"carbon_price": 20.0,
"price": 26.66,
"biomass_offset_ids": [],
"carbon_offset_ids": [],
"external_id": null,
"items": [
{
"quantity": 16666,
"width": 0.2159,
"length": 0.2794,
"gsm": 75,
"mass": 75400.058877
},
{
"quantity": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216,
"mass": 253793.177897
}
]
}// Example Order Item Object
{
"quantity": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216,
"mass": 253793.177897
}null when this quote has not yet been executed.
// Example Quote Object
{
"id": "e9ad2b00-409a-49a5-a05c-93f63329d3af",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"project_id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"project_ids": [
"5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9"
],
"created_at": "2015-10-22T00:37:11Z",
"trees": 2.0,
"standard_pages": 16666,
"mass": 75400.058877,
"price": 6.66,
"external_id": null,
"biomass_offset_id": null,
"biomass_offset_ids": [],
"items": [
{
"quantity": 16666,
"width": 0.2159,
"length": 0.2794,
"gsm": 75,
"mass": 75400.058877
},
{
"quantity": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216,
"mass": 253793.177897
}
]
}// Example Quote Item Object
{
"quantity": 20000,
"width": 0.2127,
"length": 0.2762,
"gsm": 216,
"mass": 253793.177897
}type of the server.
// Example Server Object
{
"id": "eadabb78-b199-43cb-adbd-ab36ce5c5a10",
"account_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"type": "fmaudit",
"url": "https://myfmauditserver.com",
"username": "MyFMAuditUsername",
"created_at": "2024-03-04T13:08:53Z"
}type of the feed.
null when the feed has never been activated.
null when the feed has never been deactivated.
null when the feed has never been health checked.
null when the feed has never been health checked.
// Example Feed Object
{
"id": "44e182ed-cd50-4fa1-af90-e77dd6d6a78c",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"type": "fmaudit",
"server_id": "eadabb78-b199-43cb-adbd-ab36ce5c5a10",
"external_id": "456",
"collection_scope": "managed_only",
"created_at": "2025-03-04T13:08:53Z",
"status": "active",
"activated_at": "2025-03-04T13:08:53Z",
"deactivated_at": null,
"health_check": "healthy",
"health_check_checked_at": "2026-03-04T13:08:53Z",
"health_check_changed_at": "2026-03-04T13:08:53Z"
}// Example User Object
{
"id": "5f25569f-ec0d-4ff3-a6ce-0456ac79b84d",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"full_name": "Sally Example",
"email": "sally@example.com",
"locale": "en",
"created_at": "2026-02-22T13:08:53Z"
}// Example Volume Period Object
{
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"date": "2026-01-01T00:00:00Z",
"pages": 234567,
"trees": 56.3
}content_introduction to return empty string. Content for this field has been appended to content_body_html./quotes endpoints remain available as an alias to the new /orders endpoints.PATCH /orders/:id endpoint has been added for placing an order.order_id property to the Biomass Offset object.order_id property to the Carbon Offset object.alarm status to the health_check property of the Feed object.density property of the Deposit object has been renamed to gsm.density property of the Quote Item object has been renamed to gsm.contact property from the Server object.full_name property to be supplied when creating a User.name property of the User object has been renamed to full_name.name property of the User object remains available as an alias to the new full_name property./paper/types endpoints have been deprecated.paper_type_id property of the Quote Item object has been deprecated./transactions endpoints remain available as an alias to the new /biomass/offsets endpoints.transaction_id property of the Quote object remains available as an alias to the new biomass_offset_id property./certificates endpoints remain available as an alias to the new /biomass/certificates endpoints./sources endpoints have been deprecated.GET /carbon/offsets endpoint has been added for listing carbon offsets.GET /carbon/offsets/:id endpoint has been added for retrieving a carbon offsets.period parameter has been removed. Now it is always summarized by month.external_id property to the Paper Type objectproject_id is now a required parameter when creating a quote.mass property to Quotes and Quote Items.height property is now an alias for length on Deposits.density property is now an integer on Deposits, Paper Types, and Quote Items. (Previously was a float)density now defaults to 75 on Deposits and Quote Items. (Previously defaulted to 74)POST /users endpoint has been added for creating users directly.activated_at property to be supplied when creating a Feed. Defaults to the first day of the current month.pending and offline health checks to the Feed object; remove unknownexternal_id property to the Account objectdisplay_name property to the Account object/sources actions remain available as an alias to the new /feeds actions.source_id property of the Deposit object remains available as an alias to the new feed_id property.pages valuecontact property to the Server objectstart_date and end_date query paramters to Deposits and Transactions