---
id: service-verification-agreement-list
title: "List all data agreements"
description: "This endpoint is used to list all data agreements available for an organisation defined in the consent building block. The results are paginated."
sidebar_label: "List all data agreements"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/consent-management-individual-api/igrant-io-api-documentation
custom_edit_url: null
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```


import ApiTabs from "@theme/ApiTabs";
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";
import MimeTabs from "@theme/MimeTabs";
import ParamsItem from "@theme/ParamsItem";
import ResponseSamples from "@theme/ResponseSamples";
import SchemaItem from "@theme/SchemaItem";
import SchemaTabs from "@theme/SchemaTabs";
import Markdown from "@theme/Markdown";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";

<h1 className={"openapi__heading"}>List all data agreements</h1>

<MethodEndpoint method={"get"} path={"/service/verification/data-agreements"}></MethodEndpoint>



This endpoint is used to list all data agreements available for an organisation defined in the consent building block. The results are paginated.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Query Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"Number of records to skip for pagination.","in":"query","name":"offset","required":false,"schema":{"type":"integer"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"limit","in":"query","description":"Maximum number of records to return per page.","required":false,"schema":{"type":"integer","default":10}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"An object with ID revisionId","in":"query","name":"revisionId","required":false,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Data agreements (based on ISO 27560) listed successfully

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dataAgreements</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c8492","description":""}}></SchemaItem><SchemaItem collapsible={false} name={"version"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"1.0.0","description":"The version of this specification to which a receipt conforms"}}></SchemaItem><SchemaItem collapsible={false} name={"controllerId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"ID of the controller"}}></SchemaItem><SchemaItem collapsible={false} name={"controllerUrl"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL of data controller (may be omitted if no data involved)"}}></SchemaItem><SchemaItem collapsible={false} name={"controllerName"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Name of data controller (may be omitted if no data involved)"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>policy</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Policy under which this DataAgreement shall be governed.  When creating a data agreement, the latest policy can be used to fill the default value,  and organisation admin can decide to change it in the data agreement level.


</div><SchemaItem collapsible={false} name={"id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c7701","description":""}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"Default data policy","description":"Name of the policy"}}></SchemaItem><SchemaItem collapsible={false} name={"version"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"1.0.0","description":"Version of the policy (it can follow the semver format)"}}></SchemaItem><SchemaItem collapsible={false} name={"url"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"https://example.com/privacy-policy","description":"Permanent URL at which this very version of the Policy can be read, should not be allowed to change over time"}}></SchemaItem><SchemaItem collapsible={false} name={"jurisdiction"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"EU","description":"Jurisdiction"}}></SchemaItem><SchemaItem collapsible={false} name={"industrySector"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"Healthcare","description":"Industry sector"}}></SchemaItem><SchemaItem collapsible={false} name={"dataRetentionPeriodDays"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","format":"","example":365,"description":"Data retention period in days"}}></SchemaItem><SchemaItem collapsible={false} name={"geographicRestriction"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"EU","description":"Geographic restriction"}}></SchemaItem><SchemaItem collapsible={false} name={"storageLocation"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"EU","description":"Storage location"}}></SchemaItem><SchemaItem collapsible={false} name={"thirdPartyDataSharing"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","format":"","example":true,"description":"Third party data sharing"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"dataAttributes"} required={false} schemaName={"object[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"allOf":[{"type":"object","description":"Data attributes contain specifications of exactly what is collected.","x-not-in-database":false,"required":["name","description"],"properties":{"id":{"type":"string","format":"","example":"65471222e8c7c3bb3c2c8501","description":"Data attribute ID"},"name":{"type":"string","format":"","example":"Name","description":"Name of the attribute, for instance \"name\" or \"age\""},"description":{"type":"string","format":"","example":"Full name of the individual","description":"Description of the attribute"},"sensitivity":{"type":"boolean","format":"","example":false,"description":"Sensitivity of data attribute"},"category":{"type":"string","format":"","example":"Personal","description":"Category of data attribute"},"scope":{"type":"string","format":"","example":"read","description":"Scope required for data attribute"}}},{"type":"object","properties":{"restrictions":{"type":"array","items":{"type":"object","description":"List of restrictions","x-not-in-database":false,"properties":{"credDefId":{"type":"string","format":"","example":"H3DW1MUWZyBkP5LG4rTYRH:3:CL:80:default","description":"Credential definition ID"},"schemaId":{"type":"string","format":"","example":"H3DW1MUWZyBkP5LG4rTYRH:2:Certificate Of Registration:6.0.0","description":"Schema ID"}}}}}}]},"description":"Data attributes contain specifications of exactly what is collected.\n"}}></SchemaItem><SchemaItem collapsible={false} name={"purpose"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Name of purpose"}}></SchemaItem><SchemaItem collapsible={false} name={"purposeDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Description of purpose"}}></SchemaItem><SchemaItem collapsible={false} name={"lawfulBasis"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`consent`, `legal_obligation`, `contract`, `vital_interest`, `public_task`, `legitimate_interest`]"} schema={{"type":"string","format":"","example":"","description":"Lawful basis of the agreement - consent / legal_obligation / contract / vital_interest / public_task / legitimate_interest","enum":["consent","legal_obligation","contract","vital_interest","public_task","legitimate_interest"]}}></SchemaItem><SchemaItem collapsible={false} name={"methodOfUse"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`null`, `data_source`, `data_using_service`]"} schema={{"type":"string","format":"","example":"","description":"Method of use - null / data_source / data_using_service","enum":[null,"data_source","data_using_service"]}}></SchemaItem><SchemaItem collapsible={false} name={"dpiaDate"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"","description":"The date on which the DPIA report is generated after a DPIA"}}></SchemaItem><SchemaItem collapsible={false} name={"dpiaSummaryUrl"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The URl providing the DPIA result reports, summary etc that can be verified by any interested parties"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>signature</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Signature of authorising party of DataAgreement (Signatures may be chained in the case of multiple signatures)


</div><SchemaItem collapsible={false} name={"id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c5501","description":"Objects may be passed back by some API endpoints without an id (PK), denoting that they are a \"draft\", i.e. a Signature that is not yet stored in the database and only exists in transit."}}></SchemaItem><SchemaItem collapsible={false} name={"payload"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"{...}","description":"The final payload that is signed, constructed as a JSON serialisation of fields {verificationPayload: ..., verificationPayloadHash: ..., verificationMethod: ..., verificationArtifact: ..., verificationSignedBy: ..., verificationJwsHeader, timestamp: ..., signedWithoutObjectReference: ..., objectType: ..., objectReference: ...}. Serialised as a JSON dict. If the signature is generated before anything is stored in the database (and has a PK), then the objectReference should be omitted from the payload but filled in afterwards."}}></SchemaItem><SchemaItem collapsible={false} name={"signature"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"eyJhbGciOiJFZERTQSJ9...","description":"Signature of payload hash, the format of the signature should be specified by either verificationMethod or verificationJwsHeader"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationMethod"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"Ed25519Signature2020","description":"A well-known string denoting which method is used. Valid values: TBD. This might be expanded with supported verification methods. There may be a minimal set of supported methods necessary."}}></SchemaItem><SchemaItem collapsible={false} name={"verificationPayload"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"{...}","description":"Internally generated serialised version of the data referenced by objectType and objectReference - by extracting and serialising their data as JSON"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationPayloadHash"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"a1b2c3d4e5f6...","description":"Internally generated cryptographic hash of the value to be signed, i.e. the value of verificationPayload"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationArtifact"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"","description":"A verification artifact in the form of a scanned object, image, signature etc"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationSignedBy"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"did:key:z6Mkf...","description":"Because an identifier's information may change over time, there is a need to store that information at the time of signing. In the case of a cryptographic signature, this field should contain some identifier for looking up or verifying the public key of the signing party. In the case of a non-cryptographic signature, this field could contain a natural individual's names, personal number, email addresses - store a snapshot that binds to the signature at the time of signing. In the case of a cryptographic signature, this may be the fingerprint of the individual's public key or in some cases, a token from the user's ID session."}}></SchemaItem><SchemaItem collapsible={false} name={"verificationSignedAs"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"individual","description":"DRAFT FIELD: Specifies the relationship between the authorising signature and the invidual which the payload concerns. This is relevant for Consent Records. Possible values: \"individual\" / \"delegate\"."}}></SchemaItem><SchemaItem collapsible={false} name={"verificationJwsHeader"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"","description":"Alternative to the verificationMethod, verificationHash and verificationSignature, give a JWS serialised object (RFC7515)"}}></SchemaItem><SchemaItem collapsible={false} name={"timestamp"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"2024-01-15T10:30:00Z","description":"Timestamp of signature, currently this field isn't part of the payload so it's not tamper-proof"}}></SchemaItem><SchemaItem collapsible={false} name={"signedWithoutObjectReference"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","format":"","example":false,"description":"Indicates that objectReference was left blank in the serialised version that was signed"}}></SchemaItem><SchemaItem collapsible={false} name={"objectType"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`revision`, `signature`]"} schema={{"type":"string","format":"","example":"revision","description":"Name of the schema model that objectReference points to. Values: \"signature\" or \"revision\"","enum":["revision","signature"]}}></SchemaItem><SchemaItem collapsible={false} name={"objectReference"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c6601","description":"A symmetric relation / back reference to the objectType that was signed. We are currently just modelling signing another signature (a chain) or signing a Revision (which can be a revision of a consent record, an agreement, policy etc)."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"active"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","format":"","example":"","description":"DataAgreement is active and new DataAgreementRecords can be created"}}></SchemaItem><SchemaItem collapsible={false} name={"forgettable"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","format":"","example":"","description":"DataAgreementRecord may be deleted when consent is withdrawn, as its existence is not necessary for auditability."}}></SchemaItem><SchemaItem collapsible={false} name={"compatibleWithVersionId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","x-fk-model":"DataAgreement","description":"WIP: This field indicates that Data Agreement Records may be transferred from this  compatible previous revision of the same DataAgreement\n"}}></SchemaItem><SchemaItem collapsible={false} name={"lifecycle"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`draft`, `complete`]"} schema={{"type":"string","description":"WIP: Current Lifecycle state of the DataAgreement.  Lifecycle states are used to manage internal workflows and  should not be assigned semantic meanings for active Data Agreement Records.\n","enum":["draft","complete"]}}></SchemaItem><SchemaItem collapsible={false} name={"dataUsingServices"} required={false} schemaName={"undefined[]"} qualifierMessage={undefined} schema={{"type":"array","items":[{"type":"object","description":"Data using service organisation for the data agreement","x-not-in-database":false,"required":["name","sector","location"],"properties":{"name":{"type":"string","format":"","example":"","description":"Name of the data using service organisation"},"sector":{"type":"string","format":"","example":"","description":"Defines sector of the organisation"},"location":{"type":"string","format":"","example":"","description":"Defines location of the organisation"},"privacyDashboardUrl":{"type":"string","format":"","example":"","description":"Defines privacy dashboard url of the organisation"}}}]}}></SchemaItem><SchemaItem collapsible={false} name={"openApiSpecification"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"This field contains OpenAPI specification document describing the API's endpoints, models, and operations."}}></SchemaItem><SchemaItem collapsible={false} name={"dataSources"} required={false} schemaName={"undefined[]"} qualifierMessage={undefined} schema={{"type":"array","items":[{"type":"object","description":"Data source organisation for the data agreement","x-not-in-database":false,"required":["name","sector","location"],"properties":{"name":{"type":"string","format":"","example":"","description":"Name of the data source organisation"},"sector":{"type":"string","format":"","example":"","description":"Defines sector of the organisation"},"location":{"type":"string","format":"","example":"","description":"Defines location of the organisation"},"privacyDashboardUrl":{"type":"string","format":"","example":"","description":"Defines privacy dashboard url of the organisation"}}}]}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>pagination</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"currentPage"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Current page number","example":1}}></SchemaItem><SchemaItem collapsible={false} name={"totalItems"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Total number of items available","example":25}}></SchemaItem><SchemaItem collapsible={false} name={"totalPages"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Total number of pages based on limit","example":3}}></SchemaItem><SchemaItem collapsible={false} name={"limit"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Number of items per page","example":10}}></SchemaItem><SchemaItem collapsible={false} name={"hasPrevious"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates if there's a previous page","example":false}}></SchemaItem><SchemaItem collapsible={false} name={"hasNext"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates if there's a next page","example":true}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"dataAgreements\": [\n    {\n      \"id\": \"65471222e8c7c3bb3c2c8492\",\n      \"version\": \"1.0.0\",\n      \"controllerId\": \"string\",\n      \"controllerUrl\": \"string\",\n      \"controllerName\": \"string\",\n      \"policy\": {\n        \"id\": \"65471222e8c7c3bb3c2c7701\",\n        \"name\": \"Default data policy\",\n        \"version\": \"1.0.0\",\n        \"url\": \"https://example.com/privacy-policy\",\n        \"jurisdiction\": \"EU\",\n        \"industrySector\": \"Healthcare\",\n        \"dataRetentionPeriodDays\": 365,\n        \"geographicRestriction\": \"EU\",\n        \"storageLocation\": \"EU\",\n        \"thirdPartyDataSharing\": true\n      },\n      \"dataAttributes\": [\n        {\n          \"id\": \"65471222e8c7c3bb3c2c8501\",\n          \"name\": \"Name\",\n          \"description\": \"Full name of the individual\",\n          \"sensitivity\": false,\n          \"category\": \"Personal\",\n          \"scope\": \"read\",\n          \"restrictions\": [\n            {\n              \"credDefId\": \"H3DW1MUWZyBkP5LG4rTYRH:3:CL:80:default\",\n              \"schemaId\": \"H3DW1MUWZyBkP5LG4rTYRH:2:Certificate Of Registration:6.0.0\"\n            }\n          ]\n        }\n      ],\n      \"purpose\": \"string\",\n      \"purposeDescription\": \"string\",\n      \"lawfulBasis\": \"\",\n      \"methodOfUse\": \"\",\n      \"dpiaDate\": \"\",\n      \"dpiaSummaryUrl\": \"string\",\n      \"signature\": {\n        \"id\": \"65471222e8c7c3bb3c2c5501\",\n        \"payload\": \"{...}\",\n        \"signature\": \"eyJhbGciOiJFZERTQSJ9...\",\n        \"verificationMethod\": \"Ed25519Signature2020\",\n        \"verificationPayload\": \"{...}\",\n        \"verificationPayloadHash\": \"a1b2c3d4e5f6...\",\n        \"verificationArtifact\": \"\",\n        \"verificationSignedBy\": \"did:key:z6Mkf...\",\n        \"verificationSignedAs\": \"individual\",\n        \"verificationJwsHeader\": \"\",\n        \"timestamp\": \"2024-01-15T10:30:00Z\",\n        \"signedWithoutObjectReference\": false,\n        \"objectType\": \"revision\",\n        \"objectReference\": \"65471222e8c7c3bb3c2c6601\"\n      },\n      \"active\": \"\",\n      \"forgettable\": \"\",\n      \"compatibleWithVersionId\": \"string\",\n      \"lifecycle\": \"draft\",\n      \"dataUsingServices\": [\n        null\n      ],\n      \"openApiSpecification\": {},\n      \"dataSources\": [\n        null\n      ]\n    }\n  ],\n  \"pagination\": {\n    \"currentPage\": 1,\n    \"totalItems\": 25,\n    \"totalPages\": 3,\n    \"limit\": 10,\n    \"hasPrevious\": false,\n    \"hasNext\": true\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

bad input parameter

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div></div></TabItem><TabItem label={"401"} value={"401"}><div>

Unauthorized

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Internal server error

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      