---
openapi: 3.1.0
components:
schemas:
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
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
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
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
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
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
DataProductDto:
type: object
required:
- id
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
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
deprecatedSince:
$ref: "#/components/schemas/LocalDateTime"
description: Timestamp indicating when the product was marked as deprecated.
type: string
examples:
- 2026-03-06T00:00:00
DataProviderDto:
type: object
required:
- id
properties:
id:
$ref: "#/components/schemas/UUID"
code:
type: string
name:
$ref: "#/components/schemas/TranslationDto"
uid:
type: string
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"
code:
type: string
name:
$ref: "#/components/schemas/TranslationDto"
uid:
type: string
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
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
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
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"
code:
type: string
name:
$ref: "#/components/schemas/TranslationDto"
dataProvider:
$ref: "#/components/schemas/DataProviderDto"
DataSourceSystemReferenceDto:
type: object
properties:
id:
$ref: "#/components/schemas/UUID"
code:
type: string
name:
$ref: "#/components/schemas/TranslationDto"
dataProvider:
$ref: "#/components/schemas/DataProviderReferenceDto"
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
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
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
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
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: Phone 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
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: BIT Signature Test
- 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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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"
- name: adminGlobalId
in: query
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema: {}
"401":
description: Not Authorized
"403":
description: Not Allowed
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
x-api-subset:
- agridata.ch Web App
- Data Consumer
- Data Provider
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
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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/bit/v1/test/sign:
post:
description: Signs an uploaded PDF via the BIT Evidence Signing API. Only available
on non-production profiles.
operationId: testBitSign
tags:
- BIT Signature Test
parameters:
- name: adminGlobalId
in: query
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
required: true
responses:
"200":
description: OK
content:
application/pdf: {}
"401":
description: Not Authorized
"403":
description: Not Allowed
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Test Sign
security:
- SecurityScheme:
- agridata.ch.Agridata_Admin
x-api-subset: agridata.ch Web App
/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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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: 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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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}/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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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/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: 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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
/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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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/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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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: 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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
/q/info:
get:
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
additionalProperties:
type: string
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
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
"404":
description: The resource or element was not found
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
"500":
description: "Internal server error: unexpected error"
content:
application/json:
schema:
$ref: "#/components/schemas/ExceptionDto"
summary: Schema
tags:
- Info Resource
info:
title: agridata.ch API
version: 1.10.0-rc.8
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)