Changelog
All notable changes to the API will be documented here. This project adheres to Semantic Versioning, but is aligned to the platform frontend version, so some versions may be skipped if there are no changes to the API.
The API is actively maintained and developed but does not have a regular release schedule.
Unreleased
Added
PUT /reportingUnitnow returns409 Conflictwhen the organization already has a live site with the same label, resolution and boundary area, both on submission and on approval. The message names the existing site.- Added the administrator-only
allowDuplicateparameter toPUT /reportingUnitto bypass that check.
1.12.0 - June 2, 2026
Added
- Added
searchLabelparameter toPOST /reportingUnit(list) for case-sensitive substring search on thelabelfield - Added
maxPagesparameter toPOST /reportingUnit(list) to control the per-request scan budget whensearchLabelis set. Defaults to 5, capped at 50 (raised from 20 to better support large organizations)
Changed
- Search results from
POST /reportingUnitwithsearchLabelare now sorted byanalysisCompletedAtdescending, with non-completed sites at the bottom
1.10.0 - September 10, 2025
Added
- Beta release of collections, users can add and edit collections
1.9.6 - July 31, 2025
Added
- Added mangrove model option
1.9.2 - May 13, 2025
Changed
- Increase site geometry sparsity check to 1% of bbox and convex hull.
- Remove 500m global product from Platform.
1.9.1 - April 2, 2025
Added
- Added support for 2024 data
1.9.0 - March 1, 2025
Added
Fixed
Changed
- Layer config structure has been improved to support more layers, alternate carbon pools.
Where previously layers.json had 2 levels of nested objects, with the first level having a product type like "stock", "change", etc and the second level having one or more keys to differentiate layer variants (resolutions, tiling methods, and more), the new structure uses an array of objects, with the product type, resolution, and carbon pool as object properties (more info). Moving forward, you should filter over the array to find the layer you need like so:
# ...
reporting_unit_entry = client.get_reporting_unit(reporting_unit_id, include_layers_config=True)
stock_layer = next((layer for layer in reporting_unit_entry["layers"] if layer['product'] == 'stock' and layer['resolution'] == 30 and layer['carbonPool'] == 'agb'), None)
If you would like to defer migrating to the new structure, install chloris-app-sdk version 1.0.16, which has limited forward compatibility with the new structure.
- Fixed issue uploading kmz files
- Fixed incorrect resolution field values for sites and collections
- Fixed forest mask layers being produced with an empty first band.
- Fixed issue where change map legends were flipped.
[v1.8.3] - February 25, 2025
Added
Fixed
Changed
- Changed Python SDK handling of layers config (layers.json) files in preparation for upcoming schema changes. Version
1.0.16of the SDK provides forward-compatibility with the new schema, version 1.1.0 (not yet released) will use the updated schema.
Deprecated
[v1.8.1] - January 22, 2025
Added
Fixed
- Fixed an issue that limited submission of areas larger than 3 Mha in some cases.
Changed
- Improved documentation for integrating dynamic webtiles from the Chloris Platform into web maps, now with legends.
Deprecated
[v1.7.4] - October 30, 2024
Added
- Documentation for dynamic webtiling and layers config.
Fixed
Changed
Deprecated
[v1.7.0] - August 19, 2024
Added
- 10 m resolution analysis can now be requested by passing
resolution: 10when submitting sites. Contact your account representative for more information.
Fixed
- Fixed delayed error message for site submissions with very large areas.
Changed
- Error messages relating to account limits when submitting sites now specify separate limits for 30 m and 10 m resolution analysis.
Deprecated
[v1.6.1] - July 19, 2024
Added
- New dynamic webtiling endpoint for select regions. More information as we expand this feature.
Fixed
Changed
Deprecated
- For regions now using the dynamic webtiling, static webtiles are no longer available for new analyses. Existing analyses will continue to have access to static webtiles.
Security
[v1.5.0] - April 9, 2024
Added
Fixed
Changed
- The source of truth for where data is located for all new reporting units is
reportingUnit.dataPath, instead of the templated format/data/{organizationId}/{reportingUnitId}. This is non-breaking for previously generated data, as all existing data will remain in place.reportingUnit.dataPathis available for all reporting units, and we recommend migrating usage entirely to this.
Deprecated
- Usage of
exportCompletedAtin webhook calls is no longer necessary and will be removed in a future version. Downloads are now always available when the webhook is called. See the webhook documentation for more information.