---
openapi: 3.1.0
components:
schemas:
AgbRevisionDto:
description: Data transfer object representing an agb revision
type: object
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the agb revision
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afb7
version:
type: string
description: Version of the agb revision
examples:
- "1.0"
validFrom:
$ref: "#/components/schemas/LocalDateTime"
description: Date and time from which the agb revision is valid
type: string
enforceConsentFrom:
$ref: "#/components/schemas/LocalDateTime"
description: Date and time from which the agb revision enforces consent
type: string
agbText:
$ref: "#/components/schemas/AgbTextDto"
description: Data transfer object representing an agb text
type: object
AgbTextDto:
type: object
properties:
de:
type: string
examples:
-
AGB
maxLength: 50000
fr:
type: string
examples:
- CG
maxLength: 50000
it:
type: string
examples:
- CG
maxLength: 50000
BurDto:
description: Data transfer object representing a bur
type: object
properties:
bur:
type: string
farmTypeCode:
$ref: "#/components/schemas/FarmTypeEnum"
ConsentRequestAggregationProducerView:
description: Data transfer object representing an aggregation of consent requests
type: object
required:
- id
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the aggregation. Corresponds to the underlying
data request ID.
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afa6
dataProducerUid:
type: string
description: UID of the data producer
examples:
- CHE123456789
stateCode:
$ref: "#/components/schemas/ConsentRequestAggregationStateEnum"
description: Aggregated state derived from the states of the underlying
consent requests
type: string
showStateAsMigrated:
type: boolean
description: Indicates whether the aggregated state originates from migrated
consent requests
examples:
- true
lastStateChangeDate:
$ref: "#/components/schemas/LocalDateTime"
description: Date and time when the state was changed last
type: string
examples:
- 2025-06-16T11:04:51.823889
requestDate:
$ref: "#/components/schemas/LocalDate"
description: Date when the request was made
type: string
examples:
- 2025-05-19
dataRequest:
description: Details of the underlying data request
type: object
required:
- id
- stateCode
- advantages
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the data request
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afb7
dataProviderId:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the data provider responsible for
this data request. This value is derived from the data source systems
of the associated data products.
type: string
examples:
- e37b148b-9a0f-4c2e-80c5-fe9c9416b640
dataSourceSystemId:
$ref: "#/components/schemas/UUID"
dataSourceSystem:
$ref: "#/components/schemas/DataSourceSystemReferenceDto"
humanFriendlyId:
type: string
description: Human friendly id of the data request
examples:
- GL56
submissionDate:
type: string
format: date
examples:
- 2025-06-16T11:04:51.823889
description: Date and time when the data request was submitted
title:
$ref: "#/components/schemas/DataRequestTitleDto"
description: Title of the data request
type: object
description:
$ref: "#/components/schemas/DataRequestDescriptionDto"
description: 'Description of the data request '
type: object
purpose:
$ref: "#/components/schemas/DataRequestPurposeDto"
description: Purpose of the data request
type: object
products:
type: array
items:
type: string
format: uuid
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
description: List of data products requested
stateCode:
type:
- string
- object
enum:
- DRAFT
- IN_REVIEW
- TO_BE_SIGNED_BY_CONSUMER
- TO_BE_RELEASED_BY_CONSUMER
- TO_BE_SIGNED_BY_PROVIDER
- TO_BE_RELEASED_BY_PROVIDER
- TO_BE_ACTIVATED
- ACTIVE
description: State of the data request
dataConsumerLegalName:
type: string
description: LegalName of the data consumer taken from the uid register
examples:
- "Bio Suisse, Vereinigung Schweizer Biolandbau-Organisationen"
maxLength: 255
dataConsumerDisplayName:
type: string
description: Shorter name of the data consumer defined by the data consumer
used when displaying the request to the producer
examples:
- Bio Suisse
maxLength: 255
dataConsumerUid:
type: string
description: Uid of the data consumer
examples:
- CHE101708094
dataConsumerCity:
type: string
description: City of the data consumer
examples:
- Basel
maxLength: 120
dataConsumerZip:
type: string
description: Zip code of the data consumer
examples:
- "4052"
maxLength: 10
dataConsumerStreet:
type: string
description: Street of the data consumer
examples:
- Peter Merian-Str. 34
maxLength: 255
dataConsumerCountry:
type: string
description: 2 letter country code of the data consumer
examples:
- CH
maxLength: 2
contactPhoneNumber:
type: string
description: Contact phone number for the data request
examples:
- +41 79 123 45 67
maxLength: 50
contactEmailAddress:
type: string
description: Contact email address for the data request
examples:
- example@labelorganisation.ch
maxLength: 255
dataConsumerLogoBase64:
type: string
description: Base64-encoded logo of the data consumer
examples:
- "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
targetGroup:
type: string
maxLength: 150
validRedirectUriRegex:
type: string
description: Regex of valid redirect_uri. Must compile as regex successfully.
examples:
- ^https:\/\/www\.dummy-label-organisation\/.*$
maxLength: 255
currentContractRevisionId:
$ref: "#/components/schemas/UUID"
description: Id of current contract revision
type: string
consumerSignatureType:
$ref: "#/components/schemas/SignatureTypeEnum"
description: Signature type for consumer
type: string
providerSignatureType:
$ref: "#/components/schemas/SignatureTypeEnum"
description: Signature type for provider
type: string
advantages:
type: array
items:
$ref: "#/components/schemas/DataRequestAdvantageDto"
description: A list of advantages to the producer for sharing their
data
consentRequests:
type: array
items:
$ref: "#/components/schemas/ConsentRequestProducerViewDto"
ConsentRequestAggregationStateEnum:
type: string
enum:
- GRANTED
- OPENED
- DECLINED
- PARTIALLY_GRANTED
- PARTIALLY_OPENED
ConsentRequestConsumerViewDto:
description: Data transfer object representing a consent request
deprecated: true
type: object
required:
- id
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the consent request
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afa6
dataProducerUid:
type: string
description: UID of the data producer
examples:
- CHE123456789
stateCode:
$ref: "#/components/schemas/ConsentRequestStateEnum"
ConsentRequestConsumerViewV2Dto:
description: Data transfer object representing a consent request
type: object
required:
- id
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the consent request
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afa6
dataProducerUid:
type: string
description: UID of the data producer
examples:
- CHE123456789
name:
type: string
description: Name of the uid
examples:
- Testorganisation AG
stateCode:
$ref: "#/components/schemas/ConsentRequestStateEnum"
ConsentRequestCreatedDto:
description: Data transfer object representing a consent request that has been
created
type: object
required:
- id
- dataProducerUid
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the consent request
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afa6
dataProducerUid:
type: string
description: UID of the data producer
examples:
- CHE123456789
isCreated:
type: boolean
ConsentRequestFundamentalViewDto:
description: Data transfer object representing a consent request
type: object
required:
- id
- dataRequestId
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the consent request
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afa6
dataRequestId:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the corresponding data request
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afb7
dataProducerUid:
type: string
description: UID of the data producer
examples:
- CHE123456789
dataProducerBur:
type: string
description: BUR of the data producer
examples:
- A123456
grantedDataPeriodFrom:
$ref: "#/components/schemas/LocalDate"
description: Start of the data period that is granted by this consent
type: string
examples:
- 2024-06-16
grantedDataPeriodTo:
$ref: "#/components/schemas/LocalDate"
description: End of the data period that is granted by this consent
type: string
examples:
- 2025-06-16
stateCode:
$ref: "#/components/schemas/ConsentRequestStateEnum"
description: State of the consent request
type: string
examples:
- GRANTED
lastModifiedDateTime:
type: string
format: datetime
examples:
- 2025-06-16T11:04:51.823889
description: Date and time of the most recent modification to the consent
request
ConsentRequestProducerViewDto:
type: object
description: Data transfer object representing a consent request
required:
- id
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the consent request
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afa6
dataProducerUid:
type: string
description: UID of the data producer
examples:
- CHE123456789
stateCode:
$ref: "#/components/schemas/ConsentRequestStateEnum"
showStateAsMigrated:
type: boolean
description: If the state should be shown as migrated
examples:
- true
lastStateChangeDate:
type: string
format: date
examples:
- 2025-06-16T11:04:51.823889
description: Date and time when the state was changed last
requestDate:
$ref: "#/components/schemas/LocalDate"
description: Date when the request was made
type: string
examples:
- 2025-05-19
dataRequest:
description: Details of the underlying data request
type: object
required:
- id
- stateCode
- advantages
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the data request
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afb7
dataProviderId:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the data provider responsible for
this data request. This value is derived from the data source systems
of the associated data products.
type: string
examples:
- e37b148b-9a0f-4c2e-80c5-fe9c9416b640
dataSourceSystemId:
$ref: "#/components/schemas/UUID"
dataSourceSystem:
$ref: "#/components/schemas/DataSourceSystemReferenceDto"
humanFriendlyId:
type: string
description: Human friendly id of the data request
examples:
- GL56
submissionDate:
type: string
format: date
examples:
- 2025-06-16T11:04:51.823889
description: Date and time when the data request was submitted
title:
$ref: "#/components/schemas/DataRequestTitleDto"
description: Title of the data request
type: object
description:
$ref: "#/components/schemas/DataRequestDescriptionDto"
description: 'Description of the data request '
type: object
purpose:
$ref: "#/components/schemas/DataRequestPurposeDto"
description: Purpose of the data request
type: object
products:
type: array
items:
type: string
format: uuid
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
description: List of data products requested
stateCode:
type:
- string
- object
enum:
- DRAFT
- IN_REVIEW
- TO_BE_SIGNED_BY_CONSUMER
- TO_BE_RELEASED_BY_CONSUMER
- TO_BE_SIGNED_BY_PROVIDER
- TO_BE_RELEASED_BY_PROVIDER
- TO_BE_ACTIVATED
- ACTIVE
description: State of the data request
dataConsumerLegalName:
type: string
description: LegalName of the data consumer taken from the uid register
examples:
- "Bio Suisse, Vereinigung Schweizer Biolandbau-Organisationen"
maxLength: 255
dataConsumerDisplayName:
type: string
description: Shorter name of the data consumer defined by the data consumer
used when displaying the request to the producer
examples:
- Bio Suisse
maxLength: 255
dataConsumerUid:
type: string
description: Uid of the data consumer
examples:
- CHE101708094
dataConsumerCity:
type: string
description: City of the data consumer
examples:
- Basel
maxLength: 120
dataConsumerZip:
type: string
description: Zip code of the data consumer
examples:
- "4052"
maxLength: 10
dataConsumerStreet:
type: string
description: Street of the data consumer
examples:
- Peter Merian-Str. 34
maxLength: 255
dataConsumerCountry:
type: string
description: 2 letter country code of the data consumer
examples:
- CH
maxLength: 2
contactPhoneNumber:
type: string
description: Contact phone number for the data request
examples:
- +41 79 123 45 67
maxLength: 50
contactEmailAddress:
type: string
description: Contact email address for the data request
examples:
- example@labelorganisation.ch
maxLength: 255
dataConsumerLogoBase64:
type: string
description: Base64-encoded logo of the data consumer
examples:
- "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
targetGroup:
type: string
maxLength: 150
validRedirectUriRegex:
type: string
description: Regex of valid redirect_uri. Must compile as regex successfully.
examples:
- ^https:\/\/www\.dummy-label-organisation\/.*$
maxLength: 255
currentContractRevisionId:
$ref: "#/components/schemas/UUID"
description: Id of current contract revision
type: string
consumerSignatureType:
$ref: "#/components/schemas/SignatureTypeEnum"
description: Signature type for consumer
type: string
providerSignatureType:
$ref: "#/components/schemas/SignatureTypeEnum"
description: Signature type for provider
type: string
advantages:
type: array
items:
$ref: "#/components/schemas/DataRequestAdvantageDto"
description: A list of advantages to the producer for sharing their
data
ConsentRequestStateEnum:
description: |
Possible states of a consent request:
- GRANTED: Consent has been granted
- OPENED: Consent request is open and awaiting response
- DECLINED: Consent has been declined
- NOT_CREATED: Placeholder to indicate that no consent request exists yet for a given UID.
type: string
enum:
- GRANTED
- OPENED
- DECLINED
- NOT_CREATED
ContractRevisionDto:
type: object
required:
- id
- dataRequestId
- dataConsumerName
- dataConsumerCity
- dataProviderName
- dataProviderCity
- dataRequestContext
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the data request
type: string
examples:
- 24945B85-6E53-4059-8FB4-C0B0AC4FFD47
dataRequestId:
$ref: "#/components/schemas/UUID"
description: Identifier of the associated data request
type: string
examples:
- 0D74F63F-9491-4B9B-80BA-0CA43A1A3A6F
dataConsumerName:
type: string
description: LegalName of the data consumer taken from the uid register
examples:
- "Bio Suisse, Vereinigung Schweizer Biolandbau-Organisationen"
dataConsumerCity:
type: string
description: City of the data consumer
examples:
- Basel
dataProviderName:
type: string
description: Name of the data provider
examples:
- BLW
dataProviderCity:
type: string
description: City of the data provider
examples:
- Bern
dataRequestContext:
$ref: "#/components/schemas/DataRequestContextDto"
description: "Contextual information from the parent data request (e.g.\
\ logo, reduced metadata)"
type: object
consumerSignatures:
type: array
items:
$ref: "#/components/schemas/ContractRevisionSignatureDto"
description: List of signatures of the data consumer
providerSignatures:
type: array
items:
$ref: "#/components/schemas/ContractRevisionSignatureDto"
description: List of signatures of the data provider
consumerSignatureType:
$ref: "#/components/schemas/SignatureTypeEnum"
description: Defines whether the consumer party uses a individual or a collective
signature
type: string
providerSignatureType:
$ref: "#/components/schemas/SignatureTypeEnum"
description: Defines whether the provider party uses a individual or a collective
signature
type: string
sealState:
$ref: "#/components/schemas/SealAttemptStateEnum"
description: Defines the sealing state of the contract
type: string
ContractRevisionSignatureDto:
type: object
required:
- signatureSlotCode
- userId
- name
- timestamp
properties:
signatureSlotCode:
$ref: "#/components/schemas/SignatureSlotCodeEnum"
description: Slot in which the signature is stored
type: string
examples:
- DATA_CONSUMER_01
userId:
$ref: "#/components/schemas/UUID"
description: ID of the user
type: string
examples:
- 43FAB890-492E-4EEB-9B65-F4A4FB3DD74E
name:
type: string
description: Name of the user of the signature
examples:
- John Doe
timestamp:
$ref: "#/components/schemas/LocalDateTime"
description: Timestamp of when the signature was added
type: string
examples:
- 2026-03-19T12:00:00
CreateConsentRequestDto:
type: object
required:
- dataRequestId
- uid
properties:
dataRequestId:
$ref: "#/components/schemas/UUID"
uid:
type: string
DataProductDescriptionDto:
type: object
properties:
de:
type: string
description: German description of the data product
examples:
- Dieses Datenprodukt enthält Angaben zu Kontrollen aus dem Kontrollbereich
03 Tierschutz mit den Ergebnissen pro Kontrollpunkt. Maximal die letzten
4 Jahre oder seit Bewirtschafterwechsel.
fr:
type: string
description: French description of the data product
examples:
- Ce produit de données contient des informations sur les contrôles du domaine
de contrôle 03 Protection des animaux avec les résultats par point de
contrôle. Maximum les 4 dernières années ou depuis le changement d'exploitant.
it:
type: string
description: Italian description of the data product
examples:
- Questo prodotto dati contiene informazioni sui controlli dell'area di
controllo 03 Protezione degli animali con i risultati per punto di controllo.
Massimo gli ultimi 4 anni o dal cambio di gestore.
DataProductDocumentMetadataDto:
type: object
required:
- id
- fileName
- sizeBytes
- scanStatus
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the product
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afb7
fileName:
type: string
description: Filename of the document
examples:
- example.pdf
sizeBytes:
type: integer
format: int64
description: Filesize of the document
examples:
- 1024
scanStatus:
$ref: "#/components/schemas/DocumentScanStatusEnum"
description: Status of the document scan
type: string
examples:
- AVAILABLE
DataProductDto:
type: object
required:
- id
- stateCode
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the product
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afb7
dataSourceSystemCode:
type: string
description: Code of data source system from which this product originates
examples:
- AGIS
dataSourceSystem:
$ref: "#/components/schemas/DataSourceSystemDto"
description: Data source system from which this product originates
type: object
restClient:
$ref: "#/components/schemas/RestClientDto"
description: Rest client used to fetch the data product
type: object
restClientPathTemplate:
type: string
description: Template for the path where the data product is fetched from
restClientRequestTemplate:
type: string
description: Template of the request body for fetching the data product
restClientMethodCode:
$ref: "#/components/schemas/RestClientMethodCodeEnum"
description: Http-Method used to fetch the data product
type: string
flowCode:
$ref: "#/components/schemas/FlowCodeEnum"
description: Code of the flow used to fetch the data product
type: string
name:
$ref: "#/components/schemas/TranslationDto"
description: How this product is categorized
type: object
examples:
- R01
description:
$ref: "#/components/schemas/TranslationDto"
description: Description of the product
type: object
links:
type: array
items:
$ref: "#/components/schemas/LinkDto"
description: List of relevant product links
extendedDescription:
$ref: "#/components/schemas/TranslationDto"
description: Extended product details
type: object
deprecatedSince:
$ref: "#/components/schemas/LocalDateTime"
description: Timestamp indicating when the product was marked as deprecated.
type: string
examples:
- 2026-03-06T00:00:00
stateCode:
type:
- string
- object
enum:
- DRAFT
- ACTIVE
description: State of the data product
examples:
- DRAFT
restClientChangeDetectionPathTemplate:
type: string
description: Template for the path for retrieving updates to the data product
examples:
- "v1/animal-updates/{{uid}}?since={{LAST_CHANGED_SINCE}}"
DataProductExtendedDescriptionDto:
type: object
properties:
de:
type: string
description: German extended description of the data product
examples:
- |-
Konkret werden folgende Daten übermittelt:
- Datum der Erfassung bzw. der letzten Änderung dieses Datensatzes im kantonalen System
- KT_ID_B Kantonale Identifikationsnummer der Betriebsform auf der Stufe, auf der die nachfolgenden Daten...
maxLength: 1000
fr:
type: string
description: French extended description of the data product
examples:
- |-
Concrètement, les données suivantes sont transmises :
- Date resp. la saisie ou la dernière modification du jeu de données dans le système cantonal
- KT_ID_B Numéro cantonal de la forme d’exploitation au niveau de laquelle les données suivantes ont été saisies...
maxLength: 1000
it:
type: string
description: Italian extended description of the data product
examples:
- |-
Concretamente vengono trasmessi i dati seguenti:
- Data di registrazione o dell’ultima modifica di questo set di dati nel sistema cantonale
- KT_ID_B Numero d’identificazione cantonale della forma di azienda al livello a cui sono stati registrati i dati...
maxLength: 1000
DataProductNameDto:
type: object
properties:
de:
type: string
description: German name of the data product
examples:
- Tierschutz
fr:
type: string
description: French name of the data product
examples:
- Protection des animaux
it:
type: string
description: Italian name of the data product
examples:
- Protezione degli animali
DataProductStateEnum:
type: string
enum:
- DRAFT
- ACTIVE
DataProductUpdateDto:
description: Data transfer object representing a data product
type: object
properties:
name:
$ref: "#/components/schemas/DataProductNameDto"
description: Name of the data product
type: object
description:
$ref: "#/components/schemas/DataProductDescriptionDto"
description: Description of the data product
type: object
dataSourceSystemId:
$ref: "#/components/schemas/UUID"
description: UUID of DataSourceSystem
type: string
examples:
- 5335d715-e95c-4777-a424-ab73f2ff5618
restClientId:
$ref: "#/components/schemas/UUID"
description: UUID of rest client code
type: string
examples:
- b1398c9d-c28d-4e7e-b5f0-f5d615a6471c
restClientPathTemplate:
type: string
description: Template for the path from which the data product will be fetched
examples:
- "v1/animal/{{uid}}"
maxLength: 1000
restClientRequestTemplate:
type: string
description: Template for the path from which the data product will be fetched
examples:
- "{\"search\":{\"uid\":\"{{uid}}\"}}"
maxLength: 1000
restClientMethodCode:
$ref: "#/components/schemas/RestClientMethodCodeEnum"
description: The http-method used to fetch the data product
type: string
examples:
- GET
flowCode:
$ref: "#/components/schemas/FlowCodeEnum"
description: The flow code used for authorizing data retrieval
type: string
examples:
- UID_BASED_PRE_VALIDATION
restClientChangeDetectionPathTemplate:
type: string
description: Template for the path for retrieving updates to the data product
examples:
- "v1/animal-updates/{{uid}}?since={{LAST_CHANGED_SINCE}}"
maxLength: 1000
links:
type: array
items:
$ref: "#/components/schemas/LinkDto"
description: List of relevant product links
maxItems: 5
extendedDescription:
$ref: "#/components/schemas/DataProductExtendedDescriptionDto"
description: Extended product details
type: object
DataProviderDto:
type: object
required:
- id
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the provider
type: string
code:
type: string
description: Stable technical code of the provider
examples:
- BLW
name:
$ref: "#/components/schemas/TranslationDto"
description: Display name of the provider
type: object
uid:
type: string
description: UID of the data provider
examples:
- CHE123456789
DataProviderExceptionDto:
type: object
properties:
message:
type: string
requestId:
type: string
exceptionType:
$ref: "#/components/schemas/ExceptionEnum"
dataProviderHttpStatus:
type: integer
format: int32
dataProviderMessage:
type: string
DataProviderReferenceDto:
type: object
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the provider
type: string
code:
type: string
description: Stable technical code of the provider
examples:
- BLW
name:
$ref: "#/components/schemas/TranslationDto"
description: Display name of the provider
type: object
uid:
type: string
description: UID of the data provider
examples:
- CHE123456789
DataRequestAdvantageDto:
type: object
properties:
de:
type: string
examples:
- Vermeiden von Mehreingaben
fr:
type: string
examples:
- Éviter les saisies multiples
it:
type: string
examples:
- Evitare inserimenti multipli
DataRequestContextDto:
description: Data transfer object representing a minimal version of a data request
for UI/UX use.
type: object
properties:
dataConsumerLogoBase64:
type: string
description: Base64-encoded logo of the data consumer
examples:
- "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
DataRequestDescriptionDto:
type: object
properties:
de:
type: string
description: Description of the data request
examples:
- "Ziel der Anfrage ist es, Informationen über Bodentypen und deren Qualitä\
t zu erhalten, um fundierte Entscheidungen zur Fruchtfolge, Düngung und\
\ nachhaltigen Bewirtschaftung treffen zu können."
fr:
type: string
description: Description de la demande de données
examples:
- "L'objectif de la demande est d'obtenir des informations sur les types\
\ de sols et leur qualité afin de prendre des décisions éclairées concernant\
\ la rotation des cultures, la fertilisation et la gestion durable."
it:
type: string
description: Descrizione della richiesta di dati
examples:
- "L'obiettivo della richiesta è ottenere informazioni sui tipi di suolo\
\ e sulla loro qualità per prendere decisioni informate sulla rotazione\
\ delle colture, la fertilizzazione e la gestione sostenibile."
DataRequestDto:
description: Details of the underlying data request
type: object
required:
- id
- stateCode
- advantages
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the data request
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afb7
dataProviderId:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the data provider responsible for this
data request. This value is derived from the data source systems of the
associated data products.
type: string
examples:
- e37b148b-9a0f-4c2e-80c5-fe9c9416b640
dataSourceSystemId:
$ref: "#/components/schemas/UUID"
dataSourceSystem:
$ref: "#/components/schemas/DataSourceSystemReferenceDto"
humanFriendlyId:
type: string
description: Human friendly id of the data request
examples:
- GL56
submissionDate:
type: string
format: date
examples:
- 2025-06-16T11:04:51.823889
description: Date and time when the data request was submitted
title:
$ref: "#/components/schemas/DataRequestTitleDto"
description: Title of the data request
type: object
description:
$ref: "#/components/schemas/DataRequestDescriptionDto"
description: 'Description of the data request '
type: object
purpose:
$ref: "#/components/schemas/DataRequestPurposeDto"
description: Purpose of the data request
type: object
products:
type: array
items:
type: string
format: uuid
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
description: List of data products requested
stateCode:
type:
- string
- object
enum:
- DRAFT
- IN_REVIEW
- TO_BE_SIGNED_BY_CONSUMER
- TO_BE_RELEASED_BY_CONSUMER
- TO_BE_SIGNED_BY_PROVIDER
- TO_BE_RELEASED_BY_PROVIDER
- TO_BE_ACTIVATED
- ACTIVE
description: State of the data request
dataConsumerLegalName:
type: string
description: LegalName of the data consumer taken from the uid register
examples:
- "Bio Suisse, Vereinigung Schweizer Biolandbau-Organisationen"
maxLength: 255
dataConsumerDisplayName:
type: string
description: Shorter name of the data consumer defined by the data consumer
used when displaying the request to the producer
examples:
- Bio Suisse
maxLength: 255
dataConsumerUid:
type: string
description: Uid of the data consumer
examples:
- CHE101708094
dataConsumerCity:
type: string
description: City of the data consumer
examples:
- Basel
maxLength: 120
dataConsumerZip:
type: string
description: Zip code of the data consumer
examples:
- "4052"
maxLength: 10
dataConsumerStreet:
type: string
description: Street of the data consumer
examples:
- Peter Merian-Str. 34
maxLength: 255
dataConsumerCountry:
type: string
description: 2 letter country code of the data consumer
examples:
- CH
maxLength: 2
contactPhoneNumber:
type: string
description: Contact phone number for the data request
examples:
- +41 79 123 45 67
maxLength: 50
contactEmailAddress:
type: string
description: Contact email address for the data request
examples:
- example@labelorganisation.ch
maxLength: 255
dataConsumerLogoBase64:
type: string
description: Base64-encoded logo of the data consumer
examples:
- "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
targetGroup:
type: string
maxLength: 150
validRedirectUriRegex:
type: string
description: Regex of valid redirect_uri. Must compile as regex successfully.
examples:
- ^https:\/\/www\.dummy-label-organisation\/.*$
maxLength: 255
currentContractRevisionId:
$ref: "#/components/schemas/UUID"
description: Id of current contract revision
type: string
consumerSignatureType:
$ref: "#/components/schemas/SignatureTypeEnum"
description: Signature type for consumer
type: string
providerSignatureType:
$ref: "#/components/schemas/SignatureTypeEnum"
description: Signature type for provider
type: string
advantages:
type: array
items:
$ref: "#/components/schemas/DataRequestAdvantageDto"
description: A list of advantages to the producer for sharing their data
DataRequestPurposeDto:
type: object
properties:
de:
type: string
examples:
- Bewertung der Bodenqualität
fr:
type: string
examples:
- Évaluation de la qualité du sol
it:
type: string
examples:
- Valutazione della qualità del suolo
DataRequestStateEnum:
type: string
enum:
- DRAFT
- IN_REVIEW
- TO_BE_SIGNED_BY_CONSUMER
- TO_BE_RELEASED_BY_CONSUMER
- TO_BE_SIGNED_BY_PROVIDER
- TO_BE_RELEASED_BY_PROVIDER
- TO_BE_ACTIVATED
- ACTIVE
DataRequestTitleDto:
type: object
properties:
de:
type: string
examples:
- Anfrage zu Bodentypen und Bodenqualitätsdaten
fr:
type: string
examples:
- Demande sur les types de sols et les données de qualité du sol
it:
type: string
examples:
- Richiesta sui tipi di suolo e sui dati sulla qualità del suolo
DataRequestUpdateDto:
description: Data transfer object representing a data request
type: object
properties:
title:
$ref: "#/components/schemas/DataRequestTitleDto"
description: Title of the data request
type: object
description:
$ref: "#/components/schemas/DataRequestDescriptionDto"
description: 'Description of the data request '
type: object
purpose:
$ref: "#/components/schemas/DataRequestPurposeDto"
description: Purpose of the data request
type: object
dataConsumerDisplayName:
type: string
description: Shorter name of the data consumer defined by the data consumer
used when displaying the request to the producer
examples:
- Bio Suisse
dataConsumerCity:
type: string
description: City of the data consumer
examples:
- Basel
dataConsumerZip:
type: string
description: Zip code of the data consumer
examples:
- "4052"
dataConsumerStreet:
type: string
description: Street of the data consumer
examples:
- Peter Merian-Str. 34
dataConsumerCountry:
type: string
description: 2 letter country code of the data consumer
examples:
- CH
contactPhoneNumber:
type: string
description: Contact phone number for the data request
examples:
- +41 79 123 45 67
maxLength: 50
contactEmailAddress:
type: string
description: Contact email address for the data request
examples:
- example@labelorganisation.ch
maxLength: 255
targetGroup:
type: string
description: Target group of the data request
examples:
- von allen Bio Suisse Mitgliedern
products:
type: array
items:
type: string
format: uuid
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
description: List of data products requested
examples:
- - c661ea48-106d-4d7a-a5d1-a9a6db48dd8c
advantages:
type: array
items:
$ref: "#/components/schemas/DataRequestAdvantageDto"
description: A list of advantages to the producer for sharing their data
required:
- advantages
DataRequestValidRedirectUriRegexUpdateDto:
type: object
properties:
validRedirectUriRegex:
type: string
description: Regex used to validate redirect_uri values for this data request.
Must compile as regex successfully.
examples:
- "^https:\\/\\/([A-Za-z0-9-]+\\.)*bio-suisse\\.ch(\\/.*)?$"
maxLength: 255
DataSourceSystemDto:
type: object
required:
- id
- dataProvider
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the source
type: string
code:
type: string
description: Stable technical code of the source
examples:
- AGIS
name:
$ref: "#/components/schemas/TranslationDto"
description: Display name of the data source
type: object
dataProvider:
$ref: "#/components/schemas/DataProviderDto"
description: Reference to the data provider
type: object
DataSourceSystemReferenceDto:
type: object
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the source
type: string
code:
type: string
description: Stable technical code of the source
examples:
- AGIS
name:
$ref: "#/components/schemas/TranslationDto"
description: Display name of the data source
type: object
dataProvider:
$ref: "#/components/schemas/DataProviderReferenceDto"
description: Reference to the data provider
type: object
required:
- dataProvider
DataTransferResponse:
description: Response containing the requested product data and metadata about
the request.
type: object
properties:
data:
description: Contains the requested product data.
dataTransferRequestId:
type: string
description: Unique identifier for the data transfer request (uuid)
consentRequestId:
$ref: "#/components/schemas/UUID"
description: Identifier of the corresponding consent request
type: string
DocumentScanStatusEnum:
type: string
enum:
- PENDING_SCAN
- AVAILABLE
- REJECTED
- SCAN_FAILED
ExceptionDto:
type: object
properties:
message:
type: string
requestId:
type: string
type:
$ref: "#/components/schemas/ExceptionEnum"
debugMessage:
type: string
required:
- requestId
ExceptionDto1:
type: object
properties:
message:
type: string
requestId:
type: string
type:
$ref: "#/components/schemas/ExceptionEnum"
status:
type: integer
format: int32
debugMessage:
type: string
ExceptionEnum:
type: string
enum:
- GENERIC
- UID_MISSING
- EXTERNAL_SERVICE_ERROR
- CONSENT_NOT_GRANTED
- OTP_INVALID
- OTP_LOCKED
- OTP_EXPIRED
- OTP_RESEND_COOLDOWN
- DATA_PROVIDER_ERROR
- MAINTENANCE
FarmTypeEnum:
type: string
enum:
- GANZJAHRESBETRIEB
- PRODUKTIONSSTAETTE
- GEMEINSCHAFTSWEIDEBETRIEB
- SOEMMERUNGSBETRIEB
- BETRIEBSGEMEINSCHAFT
- VIEHHANDELSUNTERNEHMEN
- WANDERHERDE
- TIERKLINIK
- SCHLACHTBETRIEB
- VIEHMAERKTE_UND_VERANSTALTUNGEN
- BETRIEBSZWEIGGEMEINSCHAFT
- NICHTKOMMERZIELLE_TIERHALTUNG
- OELN_GEMEINSCHAFT
- VERGAERUNG_KOMPOSTIERUNG_NAEHRSTOFFPOOL
- TIERHALTUNG
- NICHT_ZUGETEILT
- UNKNOWN
FlowCodeEnum:
type: string
enum:
- UID_BASED_PRE_VALIDATION
- UID_BASED_POST_VALIDATION
- BUR_BASED_PRE_VALIDATION
- BUR_BASED_POST_VALIDATION
- UNBOUND_POST_VALIDATION
InboxEntryDto:
type: object
properties:
id:
$ref: "#/components/schemas/UUID"
title:
$ref: "#/components/schemas/TranslationDto"
text:
$ref: "#/components/schemas/TranslationDto"
userId:
$ref: "#/components/schemas/UUID"
isRead:
type: boolean
createdAt:
$ref: "#/components/schemas/LocalDateTime"
targetType:
$ref: "#/components/schemas/TargetTypeCodeEnum"
targetId:
$ref: "#/components/schemas/UUID"
LegalFormEnum:
type: string
enum:
- NATUERLICHE_PERSON
- EINFACHE_GESELLSCHAFT
- KOLLEKTIVGESELLSCHAFT
- KOMMANDITGESELLSCHAFT
- KOMMANDITAKTIENGESELLSCHAFT
- AKTIENGESELLSCHAFT
- GMBH
- GENOSSENSCHAFT
- VEREIN
- STIFTUNG
- OEFF_RECHT_KOERPERSCHAFT_VERWALTUNG
- LANDESKIRCHE
- BUND
- KANTON
- BEZIRK
- GEMEINDE
- OEFF_RECHT_KOERPERSCHAFT_BETRIEB
- EQUIDENEIGENTUEMER
- UNKNOWN
LinkDto:
type: object
properties:
url:
type: string
maxLength: 2048
displayText:
type: string
maxLength: 255
LocalDate:
type: string
format: date
examples:
- 2022-03-10
LocalDateTime:
type: string
format: date-time
examples:
- 2022-03-10T12:15:50
MarkAsReadRequestDto:
type: object
properties:
inboxIds:
type: array
items:
type: string
format: uuid
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
OtpChallengeDto:
type: object
properties:
challengeId:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the challenge
type: string
examples:
- F259F6C6-8C31-4809-AF3E-1C11379E9D32
expiresAt:
$ref: "#/components/schemas/LocalDateTime"
description: Expiration time of the challenge
type: string
examples:
- 2026-03-19T12:00:00Z
maskedPhoneNumber:
type: string
description: Masked phone number
examples:
- '***********8'
retryAfterSeconds:
type: integer
format: int64
description: Number of remaining attempts
examples:
- 30
PageResponseDto:
description: Generic paginated response wrapper.
type: object
required:
- items
- totalItems
- totalPages
- currentPage
- pageSize
properties:
items:
type: array
items: {}
description: List of items on the current page.
totalItems:
type: integer
format: int64
description: Total number of items across all pages.
examples:
- 42
totalPages:
type: integer
format: int32
description: Total number of pages available.
examples:
- 5
currentPage:
type: integer
format: int32
description: Current page number (0-based ).
examples:
- 1
pageSize:
type: integer
format: int32
description: Number of items per page.
examples:
- 10
PageResponseDtoConsentRequestFundamentalViewDto:
description: Generic paginated response wrapper.
type: object
required:
- items
- totalItems
- totalPages
- currentPage
- pageSize
properties:
items:
type: array
items:
$ref: "#/components/schemas/ConsentRequestFundamentalViewDto"
description: List of items on the current page.
totalItems:
type: integer
format: int64
description: Total number of items across all pages.
examples:
- 42
totalPages:
type: integer
format: int32
description: Total number of pages available.
examples:
- 5
currentPage:
type: integer
format: int32
description: Current page number (0-based ).
examples:
- 1
pageSize:
type: integer
format: int32
description: Number of items per page.
examples:
- 10
PageResponseDtoDataProductDto:
description: Generic paginated response wrapper.
type: object
required:
- items
- totalItems
- totalPages
- currentPage
- pageSize
properties:
items:
type: array
items:
$ref: "#/components/schemas/DataProductDto"
description: List of items on the current page.
totalItems:
type: integer
format: int64
description: Total number of items across all pages.
examples:
- 42
totalPages:
type: integer
format: int32
description: Total number of pages available.
examples:
- 5
currentPage:
type: integer
format: int32
description: Current page number (0-based ).
examples:
- 1
pageSize:
type: integer
format: int32
description: Number of items per page.
examples:
- 10
PageResponseDtoInboxEntryDto:
description: Generic paginated response wrapper.
type: object
required:
- items
- totalItems
- totalPages
- currentPage
- pageSize
properties:
items:
type: array
items:
$ref: "#/components/schemas/InboxEntryDto"
description: List of items on the current page.
totalItems:
type: integer
format: int64
description: Total number of items across all pages.
examples:
- 42
totalPages:
type: integer
format: int32
description: Total number of pages available.
examples:
- 5
currentPage:
type: integer
format: int32
description: Current page number (0-based ).
examples:
- 1
pageSize:
type: integer
format: int32
description: Number of items per page.
examples:
- 10
PageResponseDtoUserInfoDto:
description: Generic paginated response wrapper.
type: object
required:
- items
- totalItems
- totalPages
- currentPage
- pageSize
properties:
items:
type: array
items:
$ref: "#/components/schemas/UserInfoDto"
description: List of items on the current page.
totalItems:
type: integer
format: int64
description: Total number of items across all pages.
examples:
- 42
totalPages:
type: integer
format: int32
description: Total number of pages available.
examples:
- 5
currentPage:
type: integer
format: int32
description: Current page number (0-based ).
examples:
- 1
pageSize:
type: integer
format: int32
description: Number of items per page.
examples:
- 10
ProducerIdentifier:
type: object
properties:
uid:
type: string
description: Producer UID
examples:
- CHE123456789
bur:
type:
- string
- "null"
description: "Producer BUR, only set when the producer must additionally\
\ be identified by BUR."
examples:
- A12345678
ResourceQueryDto:
type: object
properties:
page:
type: integer
format: int32
description: page number
minimum: 0
size:
type: integer
format: int32
description: page size
maximum: 100
minimum: 1
sortParams:
type: array
items:
type: string
description: List of field names to sort by. Default is ascending prefix
with - for descending
searchTerm:
type: string
description: string to search for in the resource
language:
type: string
description: language code for multilingual fields. Must be supported by
application.
RestClientDto:
type: object
properties:
id:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the rest client
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afb7
code:
type: string
description: Stable technical code of the rest client
examples:
- AGIS_API
displayName:
type: string
description: "Human-readable name of the REST client, intended for display\
\ in user interfaces"
examples:
- Agis
url:
type: string
description: Base URL of the external API accessed by this REST client
examples:
- http://example.com/agis
RestClientMethodCodeEnum:
type: string
enum:
- POST
- GET
SealAttemptStateEnum:
type: string
enum:
- NOT_STARTED
- IN_PROGRESS
- COMPLETED
- FAILED
SignatureSlotCodeEnum:
type: string
enum:
- DATA_CONSUMER_01
- DATA_CONSUMER_02
- DATA_PROVIDER_01
- DATA_PROVIDER_02
SignatureTypeEnum:
type: string
enum:
- INDIVIDUAL_SIGNATURE
- COLLECTIVE_SIGNATURE
TargetTypeCodeEnum:
type: string
enum:
- DATA_REQUEST
TranslationDto:
type: object
properties:
de:
type: string
maxLength: 4000
fr:
type: string
maxLength: 4000
it:
type: string
maxLength: 4000
UUID:
type: string
format: uuid
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
UidDto:
description: Data transfer object representing an uid
type: object
required:
- uid
properties:
uid:
type: string
name:
type: string
legalFormCode:
$ref: "#/components/schemas/LegalFormEnum"
UidRegisterAddressDto:
type: object
properties:
street:
type: string
zip:
type: string
city:
type: string
country:
type: string
UidRegisterOrganisationDto:
type: object
properties:
name:
type: string
legalName:
type: string
uid:
type: string
address:
$ref: "#/components/schemas/UidRegisterAddressDto"
UserInfoDto:
description: "Represents basic user information, such as name, contact details,\
\ and address."
type: object
properties:
userId:
$ref: "#/components/schemas/UUID"
description: Unique identifier assigned by Agridata to a user (UUID format).
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afa6
agateLoginId:
type: string
description: AgateLoginId of the user.
examples:
- "1234567"
ktIdP:
type: string
description: KtIdP of the user. Only set for data producers
examples:
- ZH123456
uid:
type: string
description: UID of the user. Only set for data consumers.
examples:
- CHE123456789
givenName:
type: string
description: User's first name.
examples:
- Anna
familyName:
type: string
description: User's last name.
examples:
- Muster
email:
type: string
description: Email address of the user
examples:
- anna.muster@example.com
phoneNumber:
type: string
description: Landline number of the user
examples:
- "+41331234567"
mobileNumber:
type: string
description: Mobile number of the user
examples:
- "+41791234567"
addressStreet:
type: string
description: Street name and house number of the user's residence.
examples:
- Bahnhofstrasse 10
addressLocality:
type: string
description: Locality (city or town) of the user's residence.
examples:
- Zürich
addressPostalCode:
type: string
description: Postal code of the user's residence.
examples:
- "8001"
addressCountry:
type: string
description: Country of residence
examples:
- CH
lastLoginDate:
$ref: "#/components/schemas/LocalDateTime"
description: Date and time when the user last logged into the system.
type: string
examples:
- 2025-08-27T14:35:00
userPreferences:
$ref: "#/components/schemas/UserPreferencesDto"
description: Preferences of the user in the frontend
type: object
rolesAtLastLogin:
type: array
items:
type: string
description: Roles of the user at the last login
lastAcceptedAgbDate:
$ref: "#/components/schemas/LocalDateTime"
description: Date and time when the user last accepted the AGB.
type: string
examples:
- 2026-07-20T14:35:00
lastAcceptedAgbRevisionId:
$ref: "#/components/schemas/UUID"
description: Unique identifier of the AGB revision the user last accepted.
type: string
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afa6
UserPreferencesDto:
type: object
properties:
mainMenuOpened:
type: boolean
description: If the main menu is opened or closed.
examples:
- true
activeUid:
type: string
description: the active uid of the producer
examples:
- CHE123456789
dismissedMigratedIds:
type: array
items:
type: string
description: consent request ids for which we dont want to show migration
notices anymore
examples:
- - a5b1d2e3-4f6a-2b7c-6d0e-9f1a3b5c7d9e
hasSeenConsentRequestTourIntro:
type: boolean
description: Indicates whether the user has already seen the consent request
feature tour introduction.
examples:
- true
VerifyOtpRequestDto:
type: object
required:
- otpCode
properties:
otpCode:
type: string
description: The 6-digit code to be verified.
examples:
- "123456"
pattern: "^\\d{6}$"
securitySchemes:
SecurityScheme:
type: openIdConnect
description: Authentication
openIdConnectUrl: http://localhost:6999/realms/agate/.well-known/openid-configuration
tags:
- name: Agb Revision
description: Provides access to Agb revisions.
- name: Consent Request Aggregations
description: Provides access to aggregated consent requests for data producers.
Each aggregation groups consent requests by the data request they belong to.
- name: Consent Requests
description: "Provides access to consent requests for data producers, consumers,\
\ and admins. Data producers can retrieve and update consent requests assigned\
\ to them, consumers can access consent requests linked to their data requests,\
\ and admins have full access to all consent requests."
- name: Contract Revisions
description: Provides access to contract revisions for consumers and providers
- name: Data Products
description: Enables retrieval of available data products that can be requested
and used by Users in the data sharing process.
- name: Data Providers
description: Enables retrieval of data providers and their available data products.
- name: Data Requests
description: "Provides access to data requests for consumers and admins. Consumers\
\ can create, update, submit, and retrieve their own data requests, while admins\
\ have full access to all data requests and their associated consent requests."
- name: Data Transfer
description: "Relays data products that belong to a producer, identified by a specific\
\ UID or local BUR local unit Id. Before any data is transferred, the producer\
\ must have accepted an active data request that includes the requested product.\
\ This endpoint simply forwards the payload from the source system to the consumer."
- name: Data Transfer V2
- name: Notifications
description: "Provides access to user notifications including inbox listing, marking\
\ as read, and queuing notifications."
- name: Test Data
- name: UID Register Search
description: Provides access to organisation details retrieved from the official
UID register.
- name: Users
description: "Provides access to UIDs and BURs authorized for specific data producers,\
\ based on their ktIdP or UID."
paths:
/api/agreement/v1/consent-request-aggregations:
get:
description: "Retrieves aggregated consent requests for the current data producer,\
\ grouped by data request."
operationId: getConsentRequestAggregations
tags:
- Consent Request Aggregations
parameters:
- description: Filter to retrieve consent requests for a specific producer UID.
example: CHE101000001
name: dataProducerUid
required: true
in: query
schema:
type: string
pattern: "^(?:CHE|ZZZ)\\d{9}$"
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/ConsentRequestAggregationProducerView"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Consent Request Aggregations
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
- agridata.ch.Agridata_Support
x-api-subset:
- Mobile App
- agridata.ch Web App
/api/agreement/v1/consent-requests:
get:
description: Retrieves all consent requests assigned to the currently authenticated
data producer. Only accessible to users with the producer role.
operationId: getConsentRequests
tags:
- Consent Requests
parameters:
- description: "Optional filter to retrieve consent requests for a specific\
\ producer UID. If not provided, all requests for the currently authenticated\
\ producer are returned."
example: CHE101000001
name: dataProducerUid
in: query
schema:
type: string
pattern: "^(?:CHE|ZZZ)\\d{9}$"
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/ConsentRequestProducerViewDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Consent Requests For Current Data Producer
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
- agridata.ch.Agridata_Support
x-api-subset:
- Mobile App
- agridata.ch Web App
post:
description: "Creates consent requests for given uids, provided the user actually\
\ has access to those uids."
operationId: createConsentRequests
tags:
- Consent Requests
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/CreateConsentRequestDto"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/ConsentRequestCreatedDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"400":
description: Bad Request
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Create Consent Requests
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
x-api-subset: agridata.ch Web App
/api/agreement/v1/consent-requests/{id}:
get:
description: "Retrieves consent request with {id} if the authenticated data\
\ producer is assigned to it. "
operationId: getConsentRequest
tags:
- Consent Requests
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/ConsentRequestProducerViewDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Consent Request
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
- agridata.ch.Agridata_Support
x-api-subset: agridata.ch Web App
/api/agreement/v1/consent-requests/{id}/status:
put:
description: Updates the status of a specific consent request. Only accessible
to the data producer assigned to the consent request.
operationId: updateConsentRequestStatus
tags:
- Consent Requests
parameters:
- description: ID of the consent request
required: true
name: id
in: path
schema:
$ref: "#/components/schemas/UUID"
requestBody:
description: New status of the consent request
content:
application/json:
schema:
$ref: "#/components/schemas/ConsentRequestStateEnum"
required: true
responses:
"204":
description: No Content
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Update Consent Request State For Current Data Producer
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
x-api-subset:
- Mobile App
- agridata.ch Web App
/api/agreement/v1/contract-revisions/{id}:
get:
description: Retrieves a specific contract revision by its ID. Accessible by
the consumer or provider that owns the associated datarequest.
operationId: getContractRevision
tags:
- Contract Revisions
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- CONSUMER
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/ContractRevisionDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Contract Revision
security:
- SecurityScheme:
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Datenanbieter
x-api-subset: agridata.ch Web App
/api/agreement/v1/contract-revisions/{id}/pdf:
get:
description: Returns the pdf of the contract revision
operationId: getContractRevisionPdf
tags:
- Contract Revisions
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- CONSUMER
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/pdf: {}
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Contract Revision Pdf
security:
- SecurityScheme:
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Datenbezueger
x-api-subset: agridata.ch Web App
/api/agreement/v1/contract-revisions/{id}/seals:
post:
description: Seals a contract revision PDF via BIT Evidence Signing API.
operationId: sealContractRevision
tags:
- Contract Revisions
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
responses:
"200":
description: OK
content:
application/json:
schema: {}
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Seal Contract Revision
security:
- SecurityScheme:
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/agreement/v1/contract-revisions/{id}/seals/status:
get:
description: "Returns the current status of the seal process for a contract\
\ revision. If longPolling=true and the state is IN_PROGRESS, the response\
\ is held for up to 10 seconds until the state changes. If no state change\
\ occurs within that time, IN_PROGRESS is returned. If longPolling=false (default),\
\ the current state is returned immediately."
operationId: getContractRevisionSealStatus
tags:
- Contract Revisions
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: longPolling
in: query
schema:
type: boolean
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/SealAttemptStateEnum"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Contract Revision Seal Status
security:
- SecurityScheme:
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/agreement/v1/contract-revisions/{id}/signatures/{slotCode}/otp-challenges:
post:
description: Initiates a challenge for a specific signature slot of a specific
contract revision.
operationId: initiateSignatureChallenge
tags:
- Contract Revisions
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: slotCode
in: path
required: true
schema:
$ref: "#/components/schemas/SignatureSlotCodeEnum"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- CONSUMER
- PROVIDER
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/OtpChallengeDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Initiate Signature Challenge
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Datenanbieter
x-api-subset: agridata.ch Web App
/api/agreement/v1/contract-revisions/{id}/signatures/{slotCode}/otp-challenges/{challengeId}/verification:
post:
description: Verifies the otp and adds a signature to a specific signature slot.
operationId: verifySignature
tags:
- Contract Revisions
parameters:
- name: challengeId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: slotCode
in: path
required: true
schema:
$ref: "#/components/schemas/SignatureSlotCodeEnum"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- CONSUMER
- PROVIDER
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/VerifyOtpRequestDto"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/ContractRevisionDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"400":
description: Bad Request
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Verify Signature
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Datenanbieter
x-api-subset: agridata.ch Web App
/api/agreement/v1/data-requests:
get:
description: "Retrieves a list of data requests. Admin users receive all data\
\ requests, while consumers receive only the data requests they own."
operationId: getDataRequests
tags:
- Data Requests
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/DataRequestDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Requests
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Datenanbieter
parameters:
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- CONSUMER
- PROVIDER
- ADMIN
x-api-subset:
- agridata.ch Web App
- Data Consumer
- Data Provider
post:
description: Creates a new data request in draft status. Only accessible to
users with the consumer role. Disallows creating more than 10 draft requests
per consumer.
operationId: createDataRequestDraft
tags:
- Data Requests
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DataRequestUpdateDto"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataRequestDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"400":
description: Bad Request
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Create Data Request Draft
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
x-api-subset: agridata.ch Web App
/api/agreement/v1/data-requests/{id}:
put:
description: Updates the details of an existing data request. Only accessible
to the consumer who owns the data request.
operationId: updateDataRequestDetails
tags:
- Data Requests
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DataRequestUpdateDto"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataRequestDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"400":
description: Bad Request
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Update Data Request Details
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
x-api-subset: agridata.ch Web App
get:
description: 'Retrieves a specific data request by its ID. Accessible to admin
users or the consumer who owns the data request. '
operationId: getDataRequest
tags:
- Data Requests
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- CONSUMER
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataRequestDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Request
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Datenanbieter
x-api-subset: agridata.ch Web App
delete:
description: Deletes a data request
operationId: deleteDataRequest
tags:
- Data Requests
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
responses:
"200":
description: OK
content:
application/json:
schema: {}
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Delete Data Request
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
x-api-subset: agridata.ch Web App
/api/agreement/v1/data-requests/{id}/consent-requests:
get:
description: Retrieves the consent requests of a specific data request. Accessible
to the provider who owns the data request.
operationId: getConsentRequestsOfDataRequest
tags:
- Data Requests
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- description: Only consent requests that were modified after this timestamp
are returned.
example: 2025-01-01T09:00:00
name: lastModifiedFrom
in: query
schema:
allOf:
- $ref: "#/components/schemas/LocalDateTime"
- default: 1970-01-01T00:00:00
- name: page
in: query
schema:
type: integer
format: int32
minimum: 0
default: 0
- name: size
in: query
schema:
type: integer
format: int32
maximum: 1000
minimum: 1
default: 100
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/PageResponseDtoConsentRequestFundamentalViewDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Consent Requests Of Data Request
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
x-api-subset: Data Provider
/api/agreement/v1/data-requests/{id}/kt-id-p/{kt-id-p}/consent-requests:
get:
description: "This endpoint is deprecated, because it does not return\
\ the name of the UIDs. Please use [/v2/data-requests/{id}/kt-id-p/{kt-id-p}/consent-requests](#/Data%20Requests/getConsentRequestsOfDataRequestAndKtIdPv2)\
\ instead.
Retrieves all consent requests associated with\
\ a specific data request and kt-id-p. Accessible to the consumer who owns\
\ the data request."
operationId: getConsentRequestsOfDataRequestAndKtIdP
deprecated: true
tags:
- Data Requests
parameters:
- description: The UUID of the data request
example: 3da3a459-d3c2-48af-b8d0-02bc95146468
name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- description: The kt-id-p identifier of the producer
example: FLXXA0001
name: kt-id-p
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/ConsentRequestConsumerViewDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Consent Requests Of Data Request And Kt Id P
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
x-api-subset: Data Consumer
/api/agreement/v1/data-requests/{id}/logo:
put:
description: Updates the logo of a specific data request. Only accessible to
the consumer who owns the data request.
operationId: updateDataRequestLogo
tags:
- Data Requests
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
logo:
type: string
format: binary
required: true
responses:
"204":
description: No Content
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Update Data Request Logo
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
x-api-subset: agridata.ch Web App
/api/agreement/v1/data-requests/{id}/signature-type:
put:
description: Sets the type of signature (individual or collective) for the current
role. Available to the consumer and provider of a data request.
operationId: setSignatureType
tags:
- Data Requests
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- CONSUMER
- PROVIDER
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SignatureTypeEnum"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataRequestDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Update Signature Type
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Datenanbieter
x-api-subset: agridata.ch Web App
/api/agreement/v1/data-requests/{id}/status:
put:
description: sets status of data request. Only accessible to the consumer who
owns the data request and to admins. Only specific transitions are allowed.
operationId: setDataRequestStatus
tags:
- Data Requests
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- CONSUMER
- PROVIDER
- ADMIN
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DataRequestStateEnum"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataRequestDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Set Data Request Status
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/agreement/v1/data-requests/{id}/valid-redirect-uri-regex:
put:
description: Updates the valid redirect URI regex of a specific data request.
Only accessible to admins.
operationId: updateDataRequestValidRedirectUriRegex
tags:
- Data Requests
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DataRequestValidRedirectUriRegexUpdateDto"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataRequestDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"400":
description: Bad Request
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Update Data Request Valid Redirect Uri Regex
security:
- SecurityScheme:
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/agreement/v2/data-requests/{id}/kt-id-p/{kt-id-p}/consent-requests:
get:
description: Retrieves all consent requests associated with a specific data
request and kt-id-p. Accessible to the consumer who owns the data request
and for admin users.
operationId: getConsentRequestsOfDataRequestAndKtIdPv2
tags:
- Data Requests
parameters:
- description: The UUID of the data request
example: 3da3a459-d3c2-48af-b8d0-02bc95146468
name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- description: The kt-id-p identifier of the producer
example: FLXXA0001
name: kt-id-p
in: path
required: true
schema:
type: string
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- CONSUMER
- ADMIN
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/ConsentRequestConsumerViewV2Dto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Consent Requests Of Data Request And Kt Id Pv 2
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Admin
x-api-subset: Data Consumer
/api/data-transfer/v1/product/{productId}/data:
get:
description: Retrieves data defined by productId. The needed query parameters
are depending on the requested productId. Please consult documentation to
find the necessary parameters
operationId: dataTransfer
deprecated: true
tags:
- Data Transfer
parameters:
- description: productId for which the data is requested
example: 085e4b72-964d-4bd5-a3c9-224d8c5585af
name: productId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- description: Optional filter to retrieve data of a producer identified by
a id of a local bur unit
name: bur
in: query
schema:
type: string
- description: Optional filter to retrieve data of a producer identified by
the uid
example: CHE101000001
name: uid
in: query
schema:
type: string
- description: year for which the data is requested
example: 2024
name: year
in: query
schema:
type: integer
format: int32
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataTransferResponse"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Data Transfer
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
x-api-subset: Data Consumer
/api/data-transfer/v1/product/{productId}/delta:
get:
description: "Returns a list of delta IDs (Producer UIDs) for the specified\
\ product, considering both data updates and newly granted consents since\
\ the given timestamp. This enables consumers to identify only those IDs for\
\ which a detail query is relevant"
operationId: getDeltaIds
tags:
- Data Transfer
parameters:
- description: productId for which the delta ids are requested
example: 085e4b72-964d-4bd5-a3c9-224d8c5585af
name: productId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- description: Only delta IDs with changes or newly granted consents after this
timestamp are returned.
example: 2025-01-01T09:00:00
name: since
in: query
schema:
$ref: "#/components/schemas/LocalDateTime"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
type: string
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Delta Ids
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
x-api-subset: Data Consumer
/api/data-transfer/v2/product/{productId}/data:
get:
description: "Retrieves data defined by productId. The needed query parameters\
\ are depending on the requested productId. Please consult documentation to\
\ find the necessary parameters. This endpoint simply forwards the payload\
\ from the source system to the consumer.Before any data is transferred, the\
\ producer must have accepted an active data request that includes the requested\
\ product."
operationId: dataTransferV2
tags:
- Data Transfer V2
parameters:
- description: productId for which the data is requested
example: 085e4b72-964d-4bd5-a3c9-224d8c5585af
name: productId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- description: Additional query parameters. The needed query parameters are
depending on the requested productId. Please consult documentation to find
the necessary parameters.
examples:
uid:
value:
uid: CHE123456789
name: queryParams
schema:
type: object
in: query
responses:
"200":
description: OK
content:
'*/*': {}
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Data Transfer
security:
- SecurityScheme: []
x-api-subset: Data Consumer
/api/data-transfer/v2/product/{productId}/modified-producers:
get:
description: Returns producer IDs for which either a new consent was granted
or data has changed at the upstream provider since the given timestamp. Only
producer IDs with a currently valid consent are included. This endpoint requires
the product to have change detection configured.
operationId: getModifiedProducers
tags:
- Data Transfer V2
parameters:
- description: productId for which the change detection is requested
example: 085e4b72-964d-4bd5-a3c9-224d8c5585af
name: productId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- description: Only changes and new consents after this date are returned.
example: 2025-01-01
name: since
in: query
schema:
$ref: "#/components/schemas/LocalDate"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/ProducerIdentifier"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Modified Producers
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
x-api-subset: Data Consumer
/api/notification/v1/inbox:
get:
description: Retrieves all inbox notification entries for the currently authenticated
user.
operationId: getInbox
tags:
- Notifications
parameters:
- name: language
in: query
schema:
description: language code for multilingual fields. Must be supported by
application.
type: string
- name: page
in: query
schema:
description: page number
format: int32
type: integer
minimum: 0
default: 0
- name: searchTerm
in: query
schema:
description: string to search for in the resource
type: string
- name: size
in: query
schema:
description: page size
format: int32
type: integer
maximum: 100
minimum: 1
default: 20
- name: sortBy
in: query
schema:
description: List of field names to sort by. Default is ascending prefix
with - for descending
type: object
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/PageResponseDtoInboxEntryDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Inbox
security:
- SecurityScheme: []
x-api-subset:
- agridata.ch Web App
- Mobile App
/api/notification/v1/inbox/mark-as-read:
put:
description: Marks one or multiple inbox entries as read for the currently authenticated
user.
operationId: markInboxAsRead
tags:
- Notifications
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/MarkAsReadRequestDto"
required: true
responses:
"204":
description: No Content
"401":
description: Not Authorized
"403":
description: Not Allowed
"400":
description: Bad Request
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Mark As Read
security:
- SecurityScheme: []
x-api-subset:
- agridata.ch Web App
- Mobile App
/api/notification/v1/inbox/mark-as-unread:
put:
description: Marks one or multiple inbox entries as unread for the currently
authenticated user.
operationId: markInboxAsUnread
tags:
- Notifications
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/MarkAsReadRequestDto"
required: true
responses:
"204":
description: No Content
"401":
description: Not Authorized
"403":
description: Not Allowed
"400":
description: Bad Request
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Mark As Unread
security:
- SecurityScheme: []
x-api-subset:
- agridata.ch Web App
- Mobile App
/api/products/v1:
get:
description: "Retrieves the list of all available data products. Accessible\
\ to users with the producer, consumer, admin, or provider role."
operationId: getDataProducts
tags:
- Data Products
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/DataProductDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Products
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Support
x-api-subset:
- agridata.ch Web App
- Mobile App
/api/products/v1/data-providers:
get:
description: "Retrieves the list of all available data providers. Accessible\
\ to users with the producer, consumer, admin, or provider role."
operationId: getDataProviders
tags:
- Data Providers
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/DataProviderDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Providers
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Support
x-api-subset: agridata.ch Web App
/api/products/v1/data-providers/{providerId}:
get:
description: Retrieves a specific data provider.
operationId: getDataProviderById
tags:
- Data Providers
parameters:
- name: providerId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataProviderDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Provider By Id
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Support
x-api-subset: agridata.ch Web App
/api/products/v1/data-providers/{providerId}/dataSourceSystems:
get:
description: Retrieves all data source systems belonging to a specific data
provider
operationId: getDataSourceSystemsByProviderId
tags:
- Data Providers
parameters:
- name: providerId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/DataSourceSystemDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Source Systems By Provider Id
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/products/v1/data-providers/{providerId}/products:
get:
description: Retrieves all data products belonging to a specific data provider.
operationId: getDataProductsByProviderId
tags:
- Data Providers
parameters:
- name: providerId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/DataProductDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Products By Provider Id
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Support
x-api-subset: agridata.ch Web App
/api/products/v1/data-providers/{providerId}/restClients:
get:
description: Retrieves all rest clients that are assigned to a specific data
provider
operationId: getRestClientsByProviderId
tags:
- Data Providers
parameters:
- name: providerId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/RestClientDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Rest Clients By Provider Id
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/products/v2:
get:
description: "Retrieves a paginated list of all available data products. Accessible\
\ to users with the producer, and admin. Supports pagination."
operationId: getDataProductsPaginated
tags:
- Data Products
parameters:
- name: language
in: query
schema:
description: language code for multilingual fields. Must be supported by
application.
type: string
- name: page
in: query
schema:
description: page number
format: int32
type: integer
minimum: 0
default: 0
- name: searchTerm
in: query
schema:
description: string to search for in the resource
type: string
- name: size
in: query
schema:
description: page size
format: int32
type: integer
maximum: 100
minimum: 1
default: 20
- name: sortBy
in: query
schema:
description: List of field names to sort by. Default is ascending prefix
with - for descending
type: object
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/PageResponseDtoDataProductDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Products Paginated
security:
- SecurityScheme:
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Datenanbieter
x-api-subset:
- agridata.ch Web App
- Mobile App
post:
description: Creates a new data product in draft status. Only accessible to
users with the admin or provider role.
operationId: createDataProductDraft
tags:
- Data Products
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DataProductUpdateDto"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataProductDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"400":
description: Bad Request
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Create Data Product Draft
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
parameters:
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
x-api-subset: agridata.ch Web App
/api/products/v2/{id}:
put:
description: Updates the details of an existing data product.
operationId: updateDataProductDraft
tags:
- Data Products
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DataProductUpdateDto"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataProductDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"400":
description: Bad Request
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Update Data Product Draft
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
patch:
description: "Partially updates an existing data product. Each provided field\
\ is validated against the data product's current state and the caller's role.\
\ If any field cannot be updated, the entire request is rejected and no changes\
\ are applied."
operationId: patchDataProduct
tags:
- Data Products
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DataProductUpdateDto"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataProductDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Patch Data Product
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
get:
description: Retrieves a single data product. Acessible to users with the provider
and admin role
operationId: getDataProduct
tags:
- Data Products
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataProductDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Product
security:
- SecurityScheme:
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Datenanbieter
x-api-subset: agridata.ch Web App
delete:
description: Deletes a draft data product. Accessible to the owning provider
and admins.
operationId: deleteDataProductDraft
tags:
- Data Products
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/json:
schema: {}
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Delete Data Product Draft
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/products/v2/{id}/documents:
get:
description: Retrieves metadata for all documents of a data product. Accessible
to the owning provider and admins.
operationId: getDataProductDocumentsMetadata
tags:
- Data Products
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/DataProductDocumentMetadataDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Product Documents Metadata
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
post:
description: Uploads a document to a data product. Accessible to the owning
provider and admins.
operationId: addDataProductDocument
tags:
- Data Products
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
document:
type: string
format: binary
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataProductDocumentMetadataDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Add Data Product Document
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/products/v2/{id}/documents/{documentId}:
get:
description: "Retrieves metadata for a single data product document, optionally\
\ long-polling until the scan completes. Accessible to the owning provider\
\ and admins."
operationId: getDataProductDocumentMetadata
tags:
- Data Products
parameters:
- name: documentId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: longPolling
in: query
schema:
type: boolean
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataProductDocumentMetadataDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Product Document Metadata
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
delete:
description: Deletes a document from a data product. Accessible to the owning
provider and admins.
operationId: deleteDataProductDocument
tags:
- Data Products
parameters:
- name: documentId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/json:
schema: {}
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Delete Data Product Document
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/products/v2/{id}/documents/{documentId}/download:
get:
description: Downloads the content of a data product document. Accessible to
the owning provider and admins.
operationId: getDataProductDocument
tags:
- Data Products
parameters:
- name: documentId
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
responses:
"200":
description: OK
content:
application/octet-stream:
schema:
type: string
format: binary
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Data Product Document
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/products/v2/{id}/status:
put:
description: Sets the status of a data product. Only accessible to the provider
who owns the data product. Admins on the other hand can set the state to any
data product. Only specific transitions are allowed.
operationId: setDataProductStatus
tags:
- Data Products
parameters:
- name: id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PROVIDER
- ADMIN
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DataProductStateEnum"
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/DataProductDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Set Data Product Status
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenanbieter
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/test-data/execute:
post:
operationId: executeSqlScript
tags:
- Test Data
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
required: true
responses:
"201":
description: Created
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Execute
security:
- SecurityScheme:
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/test-data/reset:
post:
operationId: resetTestData
tags:
- Test Data
responses:
"201":
description: Created
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Reset Test Data
security:
- SecurityScheme: []
x-api-subset: agridata.ch Web App
/api/uid-register/v1/search:
get:
description: Retrieves organisation details from the UID register for the UID
associated with the currently authenticated consumer. Only accessible to users
with the consumer role.
operationId: getByUidOfCurrentUser
tags:
- UID Register Search
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/UidRegisterOrganisationDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get By Uid Of Current User
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
x-api-subset: agridata.ch Web App
/api/uid-register/v1/search/{uid}:
get:
description: Retrieves organisation details from the UID register using the
specified UID. Accessible to users with the admin role.
operationId: getByUid
tags:
- UID Register Search
parameters:
- description: UID of the organisation without CHE prefix
example: 101708094
required: true
name: uid
in: path
schema:
type: integer
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/UidRegisterOrganisationDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get By Uid
security:
- SecurityScheme:
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/user/v1/agb-revisions/{agb-revision-id}/accept:
post:
description: Records acceptance of the current AGB revision for the currently
authenticated user.
operationId: acceptAgb
tags:
- Users
parameters:
- description: The id of the AGB revision the user is accepting.
example: 3fa85f64-5717-4562-b3fc-2c963f66afb7
name: agb-revision-id
in: path
required: true
schema:
$ref: "#/components/schemas/UUID"
responses:
"201":
description: Created
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Accept Agb
security:
- SecurityScheme:
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Datenanbieter
x-api-subset: agridata.ch Web App
/api/user/v1/authorized-uids:
get:
description: Retrieves all UIDs authorized for the currently authenticated data
producer.
operationId: getAuthorizedUids
tags:
- Users
parameters:
- description: The agateLoginId of the producer (only relevant for admin users)
example: "1234567"
name: agate-login-id
in: query
schema:
type: string
- description: The kt-id-p identifier of the producer (only relevant for admin
users)
example: FLXXA0001
name: kt-id-p
in: query
schema:
type: string
- name: actingRole
in: query
required: false
description: "Selects the role in which the authenticated user acts for this\
\ request. Optional: if the authenticated user holds exactly one of the\
\ allowed roles, the value is auto-resolved. Returns 400 if the value is\
\ unknown, not allowed for this endpoint, or omitted while the user holds\
\ multiple matching roles. Returns 403 if the user does not hold the role\
\ specified in the parameter."
schema:
type: string
enum:
- PRODUCER
- ADMIN
- SUPPORT
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/UidDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Authorized Uids
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
- agridata.ch.Agridata_Support
- agridata.ch.Agridata_Admin
x-api-subset:
- agridata.ch Web App
- Mobile App
/api/user/v1/preferences:
put:
description: updates preferences for the currently authenticated user.
operationId: updateUserPreferences
tags:
- Users
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserPreferencesDto"
required: true
responses:
"204":
description: No Content
"401":
description: Not Authorized
"403":
description: Not Allowed
"400":
description: Bad Request
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Update User Preferences
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Support
- agridata.ch.Agridata_Datenanbieter
x-api-subset: agridata.ch Web App
/api/user/v1/producers:
get:
description: Retrieves users matching the given query parameters.
operationId: getProducers
tags:
- Users
parameters:
- name: language
in: query
schema:
description: language code for multilingual fields. Must be supported by
application.
type: string
- name: page
in: query
schema:
description: page number
format: int32
type: integer
minimum: 0
default: 0
- name: searchTerm
in: query
schema:
description: string to search for in the resource
type: string
- name: size
in: query
schema:
description: page size
format: int32
type: integer
maximum: 100
minimum: 1
default: 20
- name: sortBy
in: query
schema:
description: List of field names to sort by. Default is ascending prefix
with - for descending
type: object
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/PageResponseDtoUserInfoDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Producers
security:
- SecurityScheme:
- agridata.ch.Agridata_Support
x-api-subset: agridata.ch Web App
/api/user/v1/uid/{uid}/authorized-burs:
get:
description: Retrieves all BURs authorized for the given UID. Only accessible
to admin users.
operationId: getAuthorizedBursByUid
tags:
- Users
parameters:
- name: uid
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/BurDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Authorized Burs By Uid
security:
- SecurityScheme:
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/api/user/v1/user-info:
get:
description: Retrieves user-info for the currently authenticated user.
operationId: getUserInfo
tags:
- Users
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/UserInfoDto"
"401":
description: Not Authorized
"403":
description: Not Allowed
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get User Info
security:
- SecurityScheme:
- agridata.ch.Agridata_Einwilliger
- agridata.ch.Agridata_Datenbezueger
- agridata.ch.Agridata_Admin
- agridata.ch.Agridata_Support
- agridata.ch.Agridata_Datenanbieter
x-api-subset: agridata.ch Web App
/public/api/user/v1/current-agb-revision:
get:
description: Returns the current Agb revision.
operationId: getCurrentAgbRevision
tags:
- Agb Revision
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/AgbRevisionDto"
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Get Current Agb Revision
x-api-subset:
- agridata.ch Web App
- Mobile App
/q/info:
get:
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
additionalProperties:
type: string
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Info
tags:
- Info Resource
/q/info/schema:
get:
responses:
"200":
description: OK
content:
application/json:
schema:
type: string
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Schema
tags:
- Info Resource
info:
title: agridata.ch API
version: 1.14.0-rc.5
description: |-
This API provides access to the agridata.ch data exchange platform, enabling Users to discover, request, approve, and manage data sharing agreements.
- **For Data Consumers**: Select this API subset to view only the endpoints relevant to you: [Data Consumer](/q/swagger-ui/?urls.primaryName=Data+Consumer)
- **For Data Providers**: Select this API subset to view only the endpoints relevant to you: [Data Providers](/q/swagger-ui/?urls.primaryName=Data+Provider)