---
title: "Update Data Product Draft"
method: PUT
path: "/api/products/v2/{id}"
tags: ["Data Products"]
---

# Update Data Product Draft

`PUT /api/products/v2/{id}`

Updates the details of an existing DRAFT data product.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `actingRole` 'PROVIDER' | 'ADMIN'

## Request body

- DataProductUpdateDto — Data transfer object representing a data product
  - `name` DataProductNameDto
    - `de` string — German name of the data product
    - `fr` string — French name of the data product
    - `it` string — Italian name of the data product
  - `description` DataProductDescriptionDto
    - `de` string — German description of the data product
    - `fr` string — French description of the data product
    - `it` string — Italian description of the data product
  - `dataSourceSystemId` string, uuid
  - `restClientId` string, uuid
  - `restClientPathTemplate` string — Template for the path from which the data product will be fetched
  - `restClientRequestTemplate` string — Template for the path from which the data product will be fetched
  - `restClientMethodCode` 'POST' | 'GET'
  - `flowCode` 'UID_BASED_PRE_VALIDATION' | 'UID_BASED_POST_VALIDATION' | 'BUR_BASED_PRE_VALIDATION' | 'BUR_BASED_POST_VALIDATION' | 'UNBOUND_UID_BASED_POST_VALIDATION' | 'UNBOUND_BUR_BASED_POST_VALIDATION'
  - `restClientChangeDetectionPathTemplate` string — Template for the path for retrieving updates to the data product
  - `links` LinkDto[] — List of relevant product links
    - `url` string
    - `displayText` string
  - `extendedDescription` DataProductExtendedDescriptionDto
    - `de` string — German extended description of the data product
    - `fr` string — French extended description of the data product
    - `it` string — Italian extended description of the data product
  - `consentRequired` boolean — If a consent is required for this data product

## Response `200`

OK

- DataProductDto
  - `id` string, uuid, required
  - `dataSourceSystemCode` string — Code of data source system from which this product originates
  - `dataSourceSystem` DataSourceSystemDto
    - `id` string, uuid, required
    - `code` string — Stable technical code of the source
    - `name` TranslationDto
      - `de` string
      - `fr` string
      - `it` string
    - `dataProvider` DataProviderDto, required
      - `id` string, uuid, required
      - `code` string — Stable technical code of the provider
      - `name` TranslationDto
        - `de` string
        - `fr` string
        - `it` string
      - `uid` string — UID of the data provider
    - `legalBasis` TranslationDto, required
      - `de` string
      - `fr` string
      - `it` string
  - `restClient` RestClientDto
    - `id` string, uuid
    - `code` string — Stable technical code of the rest client
    - `displayName` string — Human-readable name of the REST client, intended for display in user interfaces
    - `url` string — Base URL of the external API accessed by this REST client
  - `restClientPathTemplate` string — Template for the path where the data product is fetched from
  - `restClientRequestTemplate` string — Template of the request body for fetching the data product
  - `restClientMethodCode` 'POST' | 'GET'
  - `flowCode` 'UID_BASED_PRE_VALIDATION' | 'UID_BASED_POST_VALIDATION' | 'BUR_BASED_PRE_VALIDATION' | 'BUR_BASED_POST_VALIDATION' | 'UNBOUND_UID_BASED_POST_VALIDATION' | 'UNBOUND_BUR_BASED_POST_VALIDATION'
  - `name` TranslationDto
    - `de` string
    - `fr` string
    - `it` string
  - `description` TranslationDto
    - `de` string
    - `fr` string
    - `it` string
  - `links` LinkDto[] — List of relevant product links
    - `url` string
    - `displayText` string
  - `extendedDescription` TranslationDto
    - `de` string
    - `fr` string
    - `it` string
  - `deprecatedSince` string, date-time
  - `stateCode` union, required — State of the data product
    - 'DRAFT' | 'ACTIVE'
    - object
  - `restClientChangeDetectionPathTemplate` string — Template for the path for retrieving updates to the data product
  - `consentRequired` boolean, required — If a consent is required for this data product

## Other responses

- `400` — Bad Request
- `401` — Not Authorized
- `403` — Not Allowed
- `404` — The resource or element was not found
- `500` — Internal server error: unexpected error

## Changes

- **2026-08-31** `5760204210ed` — 3 info
  - the `extendedDescription/de` request property's maxLength was increased from `1000` to `10000`
  - the `extendedDescription/fr` request property's maxLength was increased from `1000` to `10000`
  - the `extendedDescription/it` request property's maxLength was increased from `1000` to `10000`
- **2026-08-13** `a0609096db65` — 2 info
  - added the new optional request property `consentRequired`
  - added the required property `consentRequired` to the response with the `200` status
- **2026-08-11** `52c1637abca0` — 1 breaking, 2 warning, 4 info
  - removed the enum value `UNBOUND_POST_VALIDATION` of the request property `flowCode`
  - added the new `UNBOUND_BUR_BASED_POST_VALIDATION` enum value to the `flowCode` response property for the response status `200`
  - added the new `UNBOUND_UID_BASED_POST_VALIDATION` enum value to the `flowCode` response property for the response status `200`
  - added the new `UNBOUND_BUR_BASED_POST_VALIDATION` enum value to the request property `flowCode`
  - …3 more
- **2026-07-13** `bf09fcfe746c` — 2 warning, 2 info
  - removed the request property `technicalDescription`
  - removed the optional property `technicalDescription` from the response with the `200` status
  - added the new optional request property `extendedDescription`
  - added the optional property `extendedDescription` to the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/agridata/apis/agridata-ch-api/changes/api/products/v2/:id/put.md)

---

[API](https://skmtc.dev/agridata/apis/agridata-ch-api.md) · [All operations](https://skmtc.dev/agridata/apis/agridata-ch-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/agridata/agridata-ch-api/revisions/5760204210ed/schema)
