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

# Beta Changelog

> Changes to the Cula Tracking API during the private beta

<Update label="2026-08-22">
  ### v0.3.10

  * Deliveries now expose their lifecycle `status` (`draft` or `finished`). Draft
    deliveries may omit mandatory data point values or leg sites.
  * Allow `POST /deliveries` to create draft deliveries by specifying the `status`.
  * `GET /deliveries` keeps returning finished deliveries unless filtered via the new `status`
    query parameter to maintain backwards compatibility. Expect this to change in the next breaking release.
  * Added `PATCH /deliveries/{id}` to allow updating draft deliveries.
  * Added `DELETE /deliveries/{id}` to delete draft deliveries.
  * Delivery leg sites can now be referenced by their `external_id` as an
    alternative to their ID.
  * Fix: `occurred_at` on delivery creation was interpreted in server timezone and
    now requires an ISO 8601 date-time with an explicit UTC offset (`Z` or `±hh:mm`)
</Update>

<Update label="2026-08-11">
  ### v0.3.9

  * Added new `/material-utilization-configs` endpoints to list and retrieve the
    configs that material utilizations are created from.
  * Added new `/material-utilizations` endpoints to create, list and retrieve
    material utilizations.
</Update>

<Update label="2026-08-07">
  ### v0.3.8

  * Added new `/material-containers` endpoints to list and retrieve material
    containers.
  * Added new `/material-sourcing-configs` and `/material-conversion-configs`
    endpoints to list and retrieve the configs that material sourcings and
    conversions are created from.
  * Added new `/material-sourcings` and `/material-conversions` endpoints to
    create, list and retrieve material sourcings and conversions.
  * Delivery config versions now expose whether their data points form one
    `unified` flow. Delivery creates accept production step values in the flat
    `data_points` array and describe their new payload container via
    `payload_containers`; responses expose the created containers under the
    same field. Deprecated the `payload`, `payload_type` and `payload_config`
    fields.
  * Added the `material_pool` data point type for data points referencing
    material pools.
  * Fix: data points filled from machine data no longer accept submitted values and
    are exposed with `accepts_input: false`.
  * Fix: Document `data_points` array size limit of 100 entries.
</Update>

<Update label="2026-08-06">
  ### v0.3.7

  * Added new `/material-batches` endpoints to create, list, retrieve, update and
    delete material batches and to attach and detach their files.
  * Added new `/material-batch-configs` endpoints to list and retrieve the material
    batch configs that batches are created from.
  * Added the `material_batch` data point type for data points referencing
    material batches.
</Update>

<Update label="2026-07-29">
  ### v0.3.6

  * Creating a delivery from a configuration whose selected transport emissions
    configuration contains data points now returns `501 Not Implemented`.
</Update>

<Update label="2026-07-22">
  ### v0.3.5

  * Added new `/material-pools` endpoints to create, list, retrieve, update and
    delete material pools.
</Update>

<Update label="2026-07-03">
  ### v0.3.4

  * Omitting the `Cula-Organisation-Id` header where it is required now returns `400` instead
    of `401`.
  * Setting the `Cula-Organisation-Id` header on endpoints that do not accept it (e.g.
    `/webhooks`) now returns `400` instead of `401`.
</Update>

<Update label="2026-07-02">
  ### v0.3.3

  * Added new `/machines` and `/machine-variables` endpoints to list and retrieve
    machines and their variables.
  * Added new `/machine-data-imports` endpoints to ingest time-series values for
    machine variables and to list and retrieve past imports.
</Update>

<Update label="2026-06-30">
  ### v0.3.2

  * Added new `/files` endpoints to create, list, retrieve, and download files,
    replacing the existing `/documents` endpoints.
  * Deprecated the `/documents` endpoints in favor of `/files`. The old endpoints
    continue to work for now and will be removed in a future release.
  * Changed the ID prefix of files (formerly "documents") from `doc_` to `fle_`.
    This only affects the type prefix, not the ID itself. The deprecated
    `/documents` endpoints continue to return `doc_`-prefixed IDs; the new
    `/files` endpoints only return and accept `fle_`-prefixed IDs. The `doc_`
    prefix will be removed in a future release.
</Update>

<Update label="2026-06-12">
  ### v0.3.1

  * Added support for authenticating with OAuth 2.0 client credentials.
  * Added `Cula-Organisation-Id` header that should be specified for all endpoints except `/webhooks`.
  * Added new endpoints to create organisations and sites.
  * Added new endpoints to query delivery configs.
  * Added new delivery endpoints to query and create deliveries.
  * Corrected the documented type of the sink fields `tracked_gross_co2e_removal_in_kg`,
    `tracked_net_co2e_removal_in_kg`, and `verified_net_co2e_removal_in_kg` from `integer`
    to `number`.
  * Added nullable `verified_at` field to sink responses, containing the day the
    removal was verified by the registry.
  * Added a `coordinates` and `address` field on site responses, deprecated the previous `location` field.
  * Added an `organisation` field on site responses, deprecated the previous `organisation_id` field.
</Update>

<Update label="2026-03-05">
  ### v0.3.0

  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Return only verified sinks
    from the `/sinks` endpoints.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Removed the `sink.created`
    event.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Moved from asymmetric to
    symmetric signatures for webhook deliveries (see
    [Receiving Event Updates](/guides/receiving-event-updates)):
    * The webhook secret was renamed from `public_key` to `secret`.
    * The signature format changed from `ed25519/v1a` to `HMAC-SHA256/v1`.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Moved the
    `confirmation_document_id` field from the material application tracking step to the
    sink, since the document is sink-specific.
</Update>

<Update label="2026-01-28">
  ### v0.2.0

  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Removed tracking step
    information from the `/sinks` endpoint (only the `/sinks/{id}` endpoint includes
    them).
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Replaced the
    `application_matrix` field in the `material_application` tracking step type with an
    `application_description` field.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Marked `id` of
    `registry_reference` as nullable.
  * Added `rainbow` as a possible registry type.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Removed the `pyrolysis`
    tracking step type in favor of the more general `material_processing` step type.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Marked
    `confirmation_document_id` of the `material_application` tracking step type as
    nullable.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Removed the
    `transport_mode` field of the `delivery` tracking step type.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Marked
    `verified_net_co2e_removal_in_kg` as nullable.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Renamed the
    `/document/{id}` endpoint to `/documents/{id}` to conform with the naming scheme.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Removed the `legal_address`
    field on the response organisation in favor of a nullable `full_address`.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Renamed `legal_name` on the
    response organisation to `name` and marked it nullable.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Removed the `contact_info`
    field from the response organisation and site.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Marked `name` of the
    response site as nullable.
</Update>

<Update label="2026-01-27">
  ### v0.1.2

  * Removed `nullable` flags of the response array fields `previous_step_ids` and
    `document_ids` of sinks.
</Update>

<Update label="2026-01-26">
  ### v0.1.1

  * Marked all response fields as required; optional fields return explicitly `null`.
  * <Badge color="orange" size="xs" shape="pill">Breaking</Badge> Added `maxLength`
    constraints to the webhook endpoint fields `url` and `description`.
</Update>

<Update label="2026-01-23">
  ### v0.1.0

  * Initial release.
</Update>
