2024-12-03 v1.6.5
- The
density
property of the Deposit object has been renamed togsm
. - The
density
property of the Quote Item object has been renamed togsm
.
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:SSZ
Accounts 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 /account
Returns an expanded account object.
// Example Response
{
"id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"name": "Channel 123",
"display_name": "Channel 123",
"role": "channel",
"created_at": "2021-12-21T15:10:38Z",
"parent_id": null,
"external_id": null,
"status": "active",
"activated_at": "2021-12-21T15:10:38Z",
"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/certificates
Returns 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": "2024-11-30T23: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.735844444444444,
"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_introduction": "Madagascar, due to its isolation...",
"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://printreleaf.com/certificates/biomass/offset/ae630937-e15b-4da5-98de-bb68eefe2a12",
"pdf_url": "https://printreleaf.com/certificates/biomass/offset/ae630937-e15b-4da5-98de-bb68eefe2a12"
},
{
"id": "dfd1cdfc-8535-43d8-8987-9817580ebd2e",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"date": "2024-10-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_introduction": "In Ethiopia deforestation...",
"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://printreleaf.com/certificates/biomass/offset/dfd1cdfc-8535-43d8-8987-9817580ebd2e",
"pdf_url": "https://printreleaf.com/certificates/biomass/offset/dfd1cdfc-8535-43d8-8987-9817580ebd2e"
}
]
Retrieves the details of a biomass certificate. Supply a biomass certificate identifier.
GET /biomass/certificates/:id
Returns 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": "2024-11-30T23: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.735844444444444,
"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_introduction": "Madagascar, due to its isolation...",
"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://printreleaf.com/certificates/biomass/offset/ae630937-e15b-4da5-98de-bb68eefe2a12",
"pdf_url": "https://printreleaf.com/certificates/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/offsets
GET /biomass/offsets?start_date=2024-11-21
YYYY-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",
"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",
"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/:id
Returns 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",
"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/offsets
pages
.
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",
"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",
"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",
"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/:id
Returns 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 /accounts
Returns 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": "2022-12-21T15:10:38Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2022-12-21T15:10:38Z",
"deactivated_at": null
},
{
"id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"name": "Customer DEF",
"display_name": "Customer DEF",
"role": "customer",
"created_at": "2023-12-21T15:10:38Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "inactive",
"activated_at": "2023-12-21T15:10:38Z",
"deactivated_at": "2024-06-21T15:10:38Z"
}
]
Retrieves the details of an account.
GET /accounts/:id
Returns 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": "2022-12-21T15:10:38Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2022-12-21T15:10:38Z",
"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 /accounts
name
.
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": "2024-12-21T15:10:38Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2024-12-21T15:10:38Z",
"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/:id
Returns 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": "2024-12-21T15:10:38Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2024-12-21T15:10:38Z",
"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/activate
Returns 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": "2023-12-21T15:10:38Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2024-12-21T15:10:38Z",
"deactivated_at": "2024-06-21T15:10:38Z",
"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/deactivate
Returns 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": "2023-12-21T15:10:38Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "inactive",
"activated_at": "2023-12-21T15:10:38Z",
"deactivated_at": "2024-12-21T15:10:38Z",
"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/offsets
Returns an array of carbon offset objects, sorted reverse-chronologically.
// Example Response
[
{
"id": "0f66ae84-ad28-4e17-b447-9f521d73b557",
"account_id": "415a588e-c6f6-46a8-a04f-96423f7e518d",
"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": "2024-11-30T23:59:59Z",
"mtco2e": 106.123,
"status": "fulfilled",
"vintage_start_date": "2021-12-21T15:10:38Z",
"vintage_end_date": "2023-12-21T15:10:38Z",
"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",
"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": "2024-10-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/:id
Returns 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",
"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": "2024-11-30T23:59:59Z",
"mtco2e": 106.123,
"status": "fulfilled",
"vintage_start_date": "2021-12-21T15:10:38Z",
"vintage_end_date": "2023-12-21T15:10:38Z",
"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 /deposits
GET /deposits?start_date=2024-11-21
YYYY-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/:id
Returns 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 /deposits
Returns 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/:id
Returns 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 /projects
Returns an array of forestry project objects.
// Example Response
[
{
"id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"name": "Madagascar",
"status": "active",
"forest_latitude": -15.735844444444444,
"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_introduction": "Madagascar, due to its isolation...",
"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/:id
Returns 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.735844444444444,
"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_introduction": "Madagascar, due to its isolation...",
"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_introduction": "In Ethiopia deforestation...",
"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/:id
Returns 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.735844444444444,
"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_introduction": "Madagascar, due to its isolation...",
"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 /feeds
Returns 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": "2022-12-21T15:10:38Z",
"status": "inactive",
"activated_at": "2022-12-21T15:10:38Z",
"deactivated_at": "2023-12-21T15:10:38Z",
"health_check": "unhealthy",
"health_check_checked_at": "2024-12-21T15:10:38Z",
"health_check_changed_at": "2024-12-21T15:10:38Z"
},
{
"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": "2023-12-21T15:10:38Z",
"status": "active",
"activated_at": "2023-12-21T15:10:38Z",
"deactivated_at": null,
"health_check": "healthy",
"health_check_checked_at": "2024-12-21T15:10:38Z",
"health_check_changed_at": "2024-12-21T15:10:38Z"
}
]
Retrieves the details of a feed. Supply a feed identifier.
GET /feeds/:id
Returns 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": "2023-12-21T15:10:38Z",
"status": "active",
"activated_at": "2023-12-21T15:10:38Z",
"deactivated_at": null,
"health_check": "healthy",
"health_check_checked_at": "2024-12-21T15:10:38Z",
"health_check_changed_at": "2024-12-21T15:10:38Z"
}
To create a new feed, supply the type, server identifier, and external id for the feed.
POST /feeds
type
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": "2022-12-21T15:10:38Z",
"status": "active",
"activated_at": "2024-12-21 15:10:38 +0000",
"deactivated_at": null,
"health_check": "unhealthy",
"health_check_checked_at": "2024-12-21T15:10:38Z",
"health_check_changed_at": "2024-12-21T15:10:38Z"
}
Updates the feed by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
PATCH /feeds/:id
Returns 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": "2022-12-21T15:10:38Z",
"status": "inactive",
"activated_at": "2022-12-21T15:10:38Z",
"deactivated_at": "2023-12-21T15:10:38Z",
"health_check": "unhealthy",
"health_check_checked_at": "2024-12-21T15:10:38Z",
"health_check_changed_at": "2024-12-21T15:10:38Z"
}
To delete a feed, supply the feed identifier.
DELETE /feeds/:id
Returns 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/activate
Returns 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": "2022-12-21T15:10:38Z",
"status": "active",
"activated_at": "2024-12-21T15:10:38Z",
"deactivated_at": "2023-12-21T15:10:38Z",
"health_check": "unhealthy",
"health_check_checked_at": "2024-12-21T15:10:38Z",
"health_check_changed_at": "2024-12-21T15:10:38Z"
}
Dectivates the specified feed. Deactivating a feed stops automatic data collection from that integration.
POST /feeds/:id/deactivate
Returns 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": "2022-12-21T15:10:38Z",
"status": "inactive",
"activated_at": "2022-12-21T15:10:38Z",
"deactivated_at": "2024-12-21T15:10:38Z",
"health_check": "unhealthy",
"health_check_checked_at": "2024-12-21T15:10:38Z",
"health_check_changed_at": "2024-12-21T15:10:38Z"
}
Lists all quotes.
GET /quotes
Returns 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",
"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
},
{
"id": "e9ad2b00-409a-49a5-a05c-93f63329d3af",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"project_id": "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
}
]
Retrieves the details of a quote. Supply a quote identifier.
GET /quotes/:id
Returns 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",
"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,
"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 /quotes
Raw paper consumption data can be reported using one of two methods:
quantity
, width
, length
, and gsm
mass
quantity
, 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",
"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,
"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/:id
Returns 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 /servers
Returns 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": "2022-12-21T15:10:38Z"
},
{
"id": "eadabb78-b199-43cb-adbd-ab36ce5c5a10",
"account_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"type": "fmaudit",
"url": "https://myfmauditserver.com",
"username": "MyFMAuditUsername",
"created_at": "2022-12-21T15:10:38Z"
}
]
Retrieves the details of a server. Supply a server identifier.
GET /servers/:id
Returns 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": "2022-12-21T15:10:38Z"
}
To create a new server, supply the type, url, username, and password for the server.
POST /servers
type
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": "2022-12-21T15:10:38Z"
}
Updates the server by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
PATCH /servers/:id
Returns 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": "2022-12-21T15:10:38Z"
}
To delete a server, supply the server identifier.
DELETE /servers/:id
Returns 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 /users
Returns 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": "2024-12-11T15:10:38Z"
},
{
"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": "2024-12-16T15:10:38Z"
}
]
Retrieves the details of a user. Supply a user identifier.
GET /users/:id
Returns 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": "2024-12-11T15:10:38Z"
}
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 /users
Returns 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": "2024-12-11T15:10:38Z"
}
To delete a user, supply the user identifier.
DELETE /users/:id
Returns 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 /volume
YYYY-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": "2024-10-01T00:00:00Z",
"pages": 234567,
"trees": 56.3
},
{
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"date": "2024-11-01T00:00:00Z",
"pages": 2469134,
"trees": 296.0
}
]
Lists all forestry projects.
GET /forestry/projects
Returns 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.735844444444444,
"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_introduction": "Madagascar, due to its isolation...",
"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_introduction": "In Ethiopia deforestation...",
"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/:id
Returns 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.735844444444444,
"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_introduction": "Madagascar, due to its isolation...",
"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": "2022-12-21T15:10:38Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2022-12-21T15:10:38Z",
"deactivated_at": null
}
// Example Expanded Account Object
{
"id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"name": "Customer ABC",
"display_name": "Customer ABC",
"role": "customer",
"created_at": "2022-12-21T15:10:38Z",
"parent_id": "a2c031fa-6599-4939-8bc6-8128881953c4",
"external_id": null,
"status": "active",
"activated_at": "2022-12-21T15:10:38Z",
"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": "2024-11-30T23: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.735844444444444,
"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_introduction": "Madagascar, due to its isolation...",
"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://printreleaf.com/certificates/biomass/offset/ae630937-e15b-4da5-98de-bb68eefe2a12",
"pdf_url": "https://printreleaf.com/certificates/biomass/offset/ae630937-e15b-4da5-98de-bb68eefe2a12"
}
// Example Biomass Offset Object
{
"id": "def0f271-2f9e-494c-b2af-7f9354b310ad",
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"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",
"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": "2024-11-30T23:59:59Z",
"mtco2e": 106.123,
"status": "fulfilled",
"vintage_start_date": "2021-12-21T15:10:38Z",
"vintage_end_date": "2023-12-21T15:10:38Z",
"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
}
// Example Forestry Project Object
{
"id": "5d3b468f-c0a3-4e7c-bed4-2dcce9d3f0f9",
"name": "Madagascar",
"status": "active",
"forest_latitude": -15.735844444444444,
"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_introduction": "Madagascar, due to its isolation...",
"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 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",
"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,
"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": "2022-12-21T15:10:38Z"
}
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": "2023-12-21T15:10:38Z",
"status": "active",
"activated_at": "2023-12-21T15:10:38Z",
"deactivated_at": null,
"health_check": "healthy",
"health_check_checked_at": "2024-12-21T15:10:38Z",
"health_check_changed_at": "2024-12-21T15:10:38Z"
}
// 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": "2024-12-11T15:10:38Z"
}
// Example Volume Period Object
{
"account_id": "971d10ac-a912-42c0-aa41-f55adc7b6755",
"date": "2024-10-01T00:00:00Z",
"pages": 234567,
"trees": 56.3
}
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 unknown
external_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