> ## Documentation Index
> Fetch the complete documentation index at: https://docs.isometric.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API changelog

Welcome to the Certify API changelog. For the overall product changelog, please see [here](https://isometric.com/changelog).

## 2026

<Update label="2026-06-04" description="GHG entry API rename released across Certify REST endpoints">
  The Removal entity has been deprecated in favour of GHG Entry in order to support reporting for multiple credit types. As a result, Certify's REST API now exposes a new `ghg_entry` and `ghg_entry_template` route family across the main carbon accounting flows. This is primarily a naming update of the existing removal-named API surface, making the terminology consistent with GHG entries and GHG entry templates without substantially changing the underlying integration flow.

  New endpoints are now available for listing and retrieving templates, creating and managing entries, and working with entry component attribution. This includes [`GET ghg entry templates`](/api-reference/certify/get-ghg-entry-templates), [`GET ghg entry template`](/api-reference/certify/get-ghg-entry-template), [`GET datapoint ghg entry template components`](/api-reference/certify/get-datapoint-ghg-entry-template-components), [`GET ghg entries`](/api-reference/certify/get-ghg-entries), [`GET ghg entry`](/api-reference/certify/get-ghg-entry), [`POST ghg entry`](/api-reference/certify/post-ghg-entry), [`PATCH ghg entry`](/api-reference/certify/patch-ghg-entry), [`DELETE ghg entry`](/api-reference/certify/delete-ghg-entry), [`GET ghg entry components`](/api-reference/certify/get-ghg-entry-components), and [`PATCH ghg entry components`](/api-reference/certify/patch-ghg-entry-components).

  Project-scoped attribution has also been renamed into the same model through [`POST project component ghg entry attribution`](/api-reference/certify/post-project-component-ghg-entry-attribution) and [`DELETE project component ghg entry attribution`](/api-reference/certify/delete-project-component-ghg-entry-attribution).

  Alongside the new route family, related resources and filters now expose GHG entry naming throughout the API. For example, templates now include `credit_type`, GHG statements expose `ghg_entry_ids`, and related resources such as component attributions, components, and biochar applications now return GHG entry-named fields to match the new endpoints.

  We intend to keep old endpoints functional for a transitional period of 3 months (until September 2026), after which they will be removed. We recommend that you migrate to the new endpoints as soon as possible to ensure uninterrupted functionality.
</Update>

<Update label="2026-05-28" description="Delete measurement sample endpoint added">
  A new [`DELETE measurement_samples/{id}`](/api-reference/certify/delete-measurement-sample) endpoint has been added, allowing you to delete a measurement sample by its ID.
</Update>

<Update label="2026-05-27" description="Description field added to sources">
  A new optional `description` field has been added to the [Source](/api-reference/certify/get-source) resource. It is returned on all endpoints that return a Source entity and can be set via [`POST source`](/api-reference/certify/post-source) or [`PATCH source`](/api-reference/certify/patch-source).
</Update>

<Update label="2026-05-26" description="Risk of reversal percentage and credit allocation added to removals and GHG statements">
  `risk_of_reversal_percentage` and `credit_allocation` have been added to the [`GET removal`](/api-reference/certify/get-removal) and [`GET removals`](/api-reference/certify/get-removals) endpoints.

  `credit_allocation` has also been added to the [`GET ghg_statement`](/api-reference/certify/get-ghg-statement) and [`GET ghg_statements`](/api-reference/certify/get-ghg-statements) endpoints, summarizing the total credit allocation across all removals in the statement.

  `credit_allocation` contains two fields: `buffer_pool_contribution_kg` (credits contributed to the buffer pool) and `supplier_allocation_kg` (credits issued to the supplier). It is `null` if any removal's `risk_of_reversal_percentage` has not yet been set.
</Update>

<Update label="2026-05-19" description="Filter datapoints by measurement sample ID; datapoint IDs added to measurement sample values">
  A new `measurement_sample_id` query parameter has been added to the [`GET datapoints`](/api-reference/certify/get-datapoints) endpoint, allowing you to filter datapoints linked to a specific measurement sample.

  Additionally, each object in the `values` array returned by [`POST measurement_samples`](/api-reference/certify/post-measurement-samples) now includes a `datapoint_id` field.
</Update>

<Update label="2026-03-16" description="Reporting period dates added to GHG statements">
  The `reporting_period_start_at` and `reporting_period_end_at` fields have been added to the [`GET ghg_statements`](/api-reference/certify/get-ghg-statements) and [`GET ghg_statement`](/api-reference/certify/get-ghg-statement) endpoints. These fields represent the inclusive start and end dates of the reporting period.
</Update>

<Update label="2026-02-19" description="Feedstock batches on Measurement Samples.">
  `feedstock_type_id` has been replaced by `feedstock_batch_id` in the [`POST measurement samples`](/api-reference/certify/post-measurement-samples#body-feedstock-batch-id) endpoint.
</Update>

<Update label="2026-02-11" description="Changes to Source resource">
  A `project_id` is now required when creating a source. It has been added to the body of the [`POST
      source`](/api-reference/certify/post-source) request and is returned on all endpoints that return a
  [Source](/api-reference/certify/get-source) entity

  Additionally, a new field `original_filename` has been added to `Source`. This field contains the original filename of
  uploaded documents.
</Update>

<Update label="2026-01-09" description="Feedstock Batch endpoints added">
  Feedstock batches can now be managed via the Certify API.

  See [`Feedstock batches`](/api-reference/certify/get-feedstock-batches) for details.
</Update>

<Update label="2026-01-05" description="Removal template component IDs added to component endpoints">
  A new field `removal_template_component_id` has been added to all endpoints that return a [Component](/api-reference/certify/get-component) or [Removal Component](/api-reference/certify/get-removal-components) entity.
  This helps to facilitate mapping to removal components from third-party reporting systems.
</Update>

## 2025

<Update label="2025-11-27" description="Values supported by Storage method field on Storage Location updated">
  Storage method `dac_saline_aquifer` is replaced by `saline_aquifer` as the storage method on [`POST storage location`](/api-reference/certify/post-storage-location#body-storage-method).
</Update>

<Update label="2025-11-18" description="Production batches now support multiple feedstock types">
  `feedstock_type_ids` replaces `feedstock_type_id` in the [`POST production batch`](/api-reference/certify/post-production-batch) endpoint.
  This field allows specifying multiple feedstock types associated with a production batch.
</Update>

<Update label="2025-09-10" description="Feedstock types can only be created via the Certify UI">
  Feedstock types can now only be created via the Certify UI and not via API.
</Update>

<Update label="2025-09-09" description="Uncertainty justification field added to datapoints">
  A new field `uncertainty_justification` has been added to the [`POST
      datapoint`](/api-reference/certify/post-datapoint) and [`PATCH datapoint`](/api-reference/certify/patch-datapoint)
  endpoints. This field allows providing additional context or explanation regarding the uncertainty associated with a
  datapoint. It is only required when [sensitivity analysis](/user-guides/certify/sensitivity-analysis)
  identifies the datapoint as sensitive.
</Update>

<Update label="2025-09-05" description="New way to attribute components to removals">
  A new endpoint for attributing components to removals has been added: [`PATCH removal
      components`](/api-reference/certify/patch-removal-components). This new endpoint allows attributing components fully
  or partially without having to create Datapoints to represent attribution. Attributing components via [`PATCH
      removal`](/api-reference/certify/patch-removal) `add_components` & `remove_components_ids` is now deprecated.

  Similarly, [`POST project component removal
      attribution`](/api-reference/certify/post-project-component-removal-attribution) has been updated to allow attribution
  with a float value. Attributing components via datapoints has been deprecated.
</Update>

<Update label="2025-08-18" description="Locked status on datapoints">
  The [`GET datapoints`](/api-reference/certify/get-datapoints) endpoint now returns a `locked_status` field indicating whether the datapoint can be patched or if it is locked due to references that render it immutable.
</Update>

<Update label="2025-07-14" description="New datapoint component endpoints and expanded filters">
  Two new endpoints have been added:[`GET datapoint components`](/api-reference/certify/get-datapoint-components) retrieves components that use the specified datapoint, and [`GET datapoint removal template components`](/api-reference/certify/get-datapoint-removal-template-components) retrieves removal template components that use the specified datapoint.

  The [`GET components`](/api-reference/certify/get-components) endpoint has been expanded with new filter options, including `scope`, `ghg_statement_id`, `project_id` and `removal_id`.
  Additionally, the [`GET datapoints`](/api-reference/certify/get-datapoints) endpoint now supports an expanded set of filters for more granular querying of datapoints including all of the above and extending to `removal`.
</Update>

<Update label="2025-07-11" description="Measurement location removed from datapoint resource">
  Measurement `location_id` no longer gets returned on datapoints, instead it is an attribute on the measurement sample resource.
  See [`GET measurement samples`](/api-reference/certify/get-measurement-samples).
</Update>

<Update label="2025-06-27" description="Associating feedstocks to Projects">
  A `project_id` is now required when creating a feedstock type.
  It has been added to the body of the [`POST feedstock type`](/api-reference/certify/post-feedstock-type) request.
</Update>

<Update label="2025-06-18" description="Deprecating measurement location on datapoints">
  Measurement location information is being moved from the datapoint to the measurement sample resource.
  It has been removed from the body of the [`POST datapoint`](/api-reference/certify/post-datapoint) request and will be removed from the body of the datapoint response at a future date.
</Update>

<Update label="2025-06-12" description="Crediting period dates have been converted from datetimes to dates">
  The `crediting_period_start` and `crediting_period` fields on the [`GET projects`](/api-reference/certify/get-projects) resource have been converted from datetimes to dates.
</Update>

<Update label="2025-05-29" description="Subsurface storage method supported">
  Storage Locations can now specify `biomass_subsurface` as the storage method on [`POST storage location`](/api-reference/certify/post-storage-location#body-storage-method).
</Update>

<Update label="2025-05-22" description="Storage Unit endpoint + Storage Locations on Measurement Samples.">
  * Endpoints for managing storage units were released in beta. See [`GET storage unit`](/api-reference/certify/get-storage-unit) for details.
  * Storage Locations can now also be attached to Measurement Samples on [`POST measurement samples`](/api-reference/certify/post-measurement-samples#body-storage-location-id).
</Update>

<Update label="2025-05-21" description="Standard deviation value optional on PATCH datapoint">
  The [`PATCH datapoint endpoint`](/api-reference/certify/patch-datapoint) no longer requires a value for `standard_deviation`.
</Update>

<Update label="2025-05-14" description="Storage Locations returned on monitoring requirement resource and location required">
  Storage locations are now returned in the [`GET project monitoring requirements`](/api-reference/certify/get-project-monitoring-requirements) resource. In addition, they now require a `latitude` and `longitude` parameter on [`POST storage location`](/api-reference/certify/post-storage-location).
</Update>

<Update label="2025-04-29" description="Storage method field added to Storage Location">
  Storage locations now require a `storage_method` parameter on creation.

  See [`POST storage location`](/api-reference/certify/post-storage-location) for details.
</Update>

<Update label="2025-04-25" description="Measurement Sample endpoints added">
  Measurement samples can now be created and fetched via the Certify API.

  See [`POST measurement samples`](/api-reference/certify/post-measurement-samples) for details.
</Update>

<Update label="2025-04-16" description="Process resource deprecated in favour of Removal Template">
  LCA templates built in Certify can be now retrieved at [`GET removal templates`](/api-reference/certify/get-removal-templates). This deprecates the `Process` resource and simplifies the reuse of fixed inputs on removal templates.

  The `process_key` and `steps` fields are now deprecated on `POST removals` in favour of `removal_template_id` and `removal_template_components`. See [creating your first GHG entry](/api-reference/certify/your-first-ghg-entry) for details.
</Update>

<Update label="2025-02-28" description="Project-scoped components now accept time-based allocation strategies">
  The [`POST project component`](./post-project-component) endpoint request body now accepts two new strategies for `allocation_strategy`: `ESTIMATED_PROJECT_LIFETIME` and `CUSTOM_TIME_PERIOD`.
  The [`PATCH component`](./patch-component) endpoint request body now accepts two new strategies for `allocation_strategy`: `ESTIMATED_PROJECT_LIFETIME` and `CUSTOM_TIME_PERIOD`.

  You have a choice of an `ESTIMATED_PROJECT_TONNAGE`, `ESTIMATED_PROJECT_LIFETIME`, `CUSTOM_TIME_PERIOD` or `MANUAL` allocation\_strategy and can patch the choice in the future if any updates or changes occur.
</Update>

<Update label="2025-02-04" description="Removals now allow assignment of labels">
  The [`POST removal`](./post-removal) endpoint now accepts a list of `label_ids` in the request body.
  The [`PATCH removal`](./patch-removal) endpoint now accepts a list of `label_ids` field in the request body.
  The [`GET removal`](./get-removal) endpoint now returns a list of `label_ids` field in the response body.

  Labels are currently an optional field for Removals.
</Update>

<Update label="2025-01-24" description="Project-scoped components now require an allocation strategy">
  The [`POST project component`](./post-project-component) endpoint now accepts an `allocation_strategy` in the request body.
  The [`PATCH component`](./patch-component) endpoint now accepts an `allocation_strategy` field in the request body.
  The [`GET component`](./get-component) endpoint now returns an `allocation_strategy` field in the response body.

  An allocation\_strategy is currently a required field for all Project-scoped components.
  You have a choice of an `ESTIMATED_PROJECT_TONNAGE` or `MANUAL` allocation\_strategy and can patch the choice in the future if any updates or changes occur.
</Update>

## 2024

<Update label="2024-12-13" description="Datapoints are now associated to projects">
  The [`POST datapoint`](./post-datapoint) endpoint now accepts a `project_id` in the request body.
  The [`GET datapoint`](./get-datapoint) endpoint now returns a `project_id` field in the response body.

  The project\_id is currently an optional field but will become required in the future.
  You should therefore ensure that you migrate your code to include the project\_id in the request body.
</Update>
