---
title: "Get Contract Revision"
method: GET
path: "/api/agreement/v1/contract-revisions/{id}"
tags: ["Contract Revisions"]
---

# Get Contract Revision

`GET /api/agreement/v1/contract-revisions/{id}`

## Request

- The document declares no server URL.
- Auth: OpenID Connect (`http://localhost:6999/realms/agate/.well-known/openid-configuration`, scopes: `agridata.ch.Agridata_Admin`, `agridata.ch.Agridata_Datenbezueger`, `agridata.ch.Agridata_Datenanbieter`)

Retrieves a specific contract revision by its ID. Accessible by the consumer or provider that owns the associated datarequest.

## Path parameters

- `id` string, uuid, required

## Response `200`

OK

- ContractRevisionDto
  - `id` string, uuid, required
  - `dataRequestId` string, uuid, required
  - `dataConsumerName` string, required: LegalName of the data consumer taken from the uid register
  - `dataConsumerCity` string, required: City of the data consumer
  - `dataProviderName` string, required: Name of the data provider
  - `dataProviderCity` string, required: City of the data provider
  - `dataRequestContext` DataRequestContextDto, required: Data transfer object representing a minimal version of a data request for UI/UX use.
    - `dataConsumerLogoBase64` string: Base64-encoded logo of the data consumer
  - `consumerSignatures` ContractRevisionSignatureDto[]: List of signatures of the data consumer
    - `signatureSlotCode` 'DATA_CONSUMER_01' | 'DATA_CONSUMER_02' | 'DATA_PROVIDER_01' | 'DATA_PROVIDER_02', required
    - `userId` string, uuid, required
    - `name` string, required: Name of the user of the signature
    - `timestamp` string, date-time, required
  - `providerSignatures` ContractRevisionSignatureDto[]: List of signatures of the data provider
    - `signatureSlotCode` 'DATA_CONSUMER_01' | 'DATA_CONSUMER_02' | 'DATA_PROVIDER_01' | 'DATA_PROVIDER_02', required
    - `userId` string, uuid, required
    - `name` string, required: Name of the user of the signature
    - `timestamp` string, date-time, required
  - `consumerSignatureType` 'INDIVIDUAL_SIGNATURE' | 'COLLECTIVE_SIGNATURE'
  - `providerSignatureType` 'INDIVIDUAL_SIGNATURE' | 'COLLECTIVE_SIGNATURE'

## Other responses

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

## Changes

- **2026-05-12** `5b038eea902d`: 8 warning
  - added the new `OTP_EXPIRED` enum value to the `type` response property for the response status `404`
  - added the new `OTP_EXPIRED` enum value to the `type` response property for the response status `500`
  - added the new `OTP_INVALID` enum value to the `type` response property for the response status `404`
  - added the new `OTP_INVALID` enum value to the `type` response property for the response status `500`
  - …4 more
- **2026-05-04** `b2698fe1c30a`: 3 info
  - the security scope `agridata.ch.Agridata_Admin` was added to the endpoint's security scheme `SecurityScheme`
  - added the optional property `consumerSignatureType` to the response with the `200` status
  - added the optional property `providerSignatureType` to the response with the `200` status
- **2026-04-14** `36609d47a3a7`: 2 info
  - the security scope `agridata.ch.Agridata_Datenanbieter` was added to the endpoint's security scheme `SecurityScheme`
  - added the optional property `providerSignatures` to the response with the `200` status
- **2026-04-08** `17e7d9dc96ae`: 1 info
  - added the required property `dataProviderCity` to the response with the `200` status
- **2026-03-24** `0734563de56e`: 1 info
  - added the optional property `consumerSignatures` to the response with the `200` status

[Operation history](https://skmtc.dev/agridata/apis/agridata-ch-api/changes/api/agreement/v1/contract-revisions/:id/get.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.dev/agridata/apis/agridata-ch-api/revisions/8d3fe1ae048f?raw)
