---
id: list-data-disclosure-agreement-record-revisions
title: "List Data Disclosure Agreement Record Revisions"
description: "Lists Data Disclosure Agreement Record Revisions for a specific record."
sidebar_label: "List Data Disclosure Agreement Record Revisions"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/datamarketplace-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 Data Disclosure Agreement Record Revisions</h1>

<MethodEndpoint method={"get"} path={"/v3/config/data-disclosure-agreement/{dataDisclosureAgreementTemplateRevisionId}/record/{dataDisclosureAgreementRecordId}/revisions"}></MethodEndpoint>



Lists Data Disclosure Agreement Record Revisions for a specific record.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Path Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"name":"dataDisclosureAgreementTemplateRevisionId","in":"path","description":"Unique ID of a Data Disclosure Template Revision","required":true,"schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"dataDisclosureAgreementRecordId","in":"path","description":"Unique ID of a Data Disclosure Record","required":true,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><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. A negative or unreadable value falls back to `0`.","in":"query","name":"offset","required":false,"schema":{"type":"integer","default":0,"minimum":0}}}></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></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Data Disclosure Agreement Record Revision List

</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"}}><li className={"schemaItem"}><summary style={{}}><strong>Content-Type</strong><span style={{"opacity":"0.6"}}> json</span></summary><div><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Content-Type header

</div></div></li></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"}>dataDisclosureAgreementRecord</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"}}>

A record represents an Agreement between a Data Source and Data Using Service  that can be signed by both, based on the updated Go structure. The Opt-In value determines whether the record is active and data can be shared to the Data Using Service. The Opt-In value is only valid for records containing both signatures.


</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique Data Disclosure Agreement Record identifier."}}></SchemaItem><SchemaItem collapsible={false} name={"canonicalId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The cross-organisational identifier for the record."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dataDisclosureAgreementTemplateRevision</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"}}>

A *generic* revision model captures the serialised contents of any schema's single row. This is then subject to 1) cryptographic signature and 2) auditing.

Aside from the "successor" column, a revision should be considered locked.

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c6601","description":"Revision ID"}}></SchemaItem><SchemaItem collapsible={false} name={"schemaName"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`dataAgreement`, `policy`, `dataAgreementRecord`]"} schema={{"type":"string","format":"","example":"dataAgreement","description":"Previously \"schema\" but for technical reasons should be called \"schemaName\"","enum":["dataAgreement","policy","dataAgreementRecord"]}}></SchemaItem><SchemaItem collapsible={false} name={"objectId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c8492","description":"The PK of the object that was serialised"}}></SchemaItem><SchemaItem collapsible={false} name={"objectData"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"{...}","description":"The object that is serialised"}}></SchemaItem><SchemaItem collapsible={false} name={"signedWithoutObjectId"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","format":"","example":false,"description":"Indicates that objectId was left blank in serizalizedSnapshot when calculating serializedHash. objectId may subsequently be filled in."}}></SchemaItem><SchemaItem collapsible={false} name={"serizalizedSnapshot"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"{...}","description":"Revisioned data (sed as JSON) as a dict. Apply JSON Canonicalization Scheme as per IETF RFC 8785.  It contains all the fields of the schema except sucessorId, serializedHash, serializedSnapshot.\n"}}></SchemaItem><SchemaItem collapsible={false} name={"serializedHash"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2","description":"Hash of serizalizedSnapshot (SHA-1)"}}></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 when revisioning happened. It should be ISO 8601 UTC date time"}}></SchemaItem><SchemaItem collapsible={false} name={"authorizedByIndividualId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"description":"Individual ID","type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"authorizedByOtherId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"64541a2e6e7569000145ab00","description":"Reference to an admin user that has created this revision"}}></SchemaItem><SchemaItem collapsible={false} name={"successorId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"x-fk-model":"Revision","type":"string","description":"If this revision is no longer the latest revision, refer to its successor"}}></SchemaItem><SchemaItem collapsible={false} name={"predecessorHash"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3","description":"Tamper-resistent artifact from previous record, copied from serializedHash"}}></SchemaItem><SchemaItem collapsible={false} name={"predecessorSignature"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"c3d4e5f6a1b2...","description":"Tamper-resistent artifact from previous record (we don't know if the previous record was signed or not)"}}></SchemaItem></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"}>dataSourceSignature</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"}}>

The signature provided by the Data Source.

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique signature identifier"}}></SchemaItem><SchemaItem collapsible={false} name={"payload"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The Data Disclosure Agreement Record (as a stringified JSON object)"}}></SchemaItem><SchemaItem collapsible={false} name={"signature"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"JWT signature"}}></SchemaItem><SchemaItem collapsible={false} name={"signatureDecoded"} required={true} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"Decoded signature, containing claims used from the signature JWT"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationMethod"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A well-known string denoting which method is used. Valid values: 'keybinding_jwt'"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationPayload"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The keybinding JWT payload that was signed to produce the signature"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationPayloadHash"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Internally generated cryptographic hash of the value to be signed, i.e. the value of verificationPayload"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationSignedBy"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","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."}}></SchemaItem><SchemaItem collapsible={false} name={"verificationSignedAs"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`data_source`, `data_using_service`]"} schema={{"type":"string","description":"Either signed as a \"data_source\" or as a \"data_using_service\"","enum":["data_source","data_using_service"]}}></SchemaItem><SchemaItem collapsible={false} name={"verificationJwsHeader"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","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","description":"Timestamp of signature"}}></SchemaItem><SchemaItem collapsible={false} name={"signedWithoutObjectReference"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates that objectReference was left blank in the serialised version that was signed, always false for Data Disclosure Agreement Record signatures"}}></SchemaItem><SchemaItem collapsible={false} name={"objectType"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`data_disclosure_agreement_record`]"} schema={{"type":"string","description":"Name of the schema model that objectReference points to, in this case \"data_disclosure_agreement_record\"","enum":["data_disclosure_agreement_record"]}}></SchemaItem><SchemaItem collapsible={false} name={"objectReference"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"In the case of a data_disclosure_agreement_record, this is the ID of the record that was signed"}}></SchemaItem></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"}>dataUsingServiceSignature</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"}}>

The signature provided by the Data Using Service.

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique signature identifier"}}></SchemaItem><SchemaItem collapsible={false} name={"payload"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The Data Disclosure Agreement Record (as a stringified JSON object)"}}></SchemaItem><SchemaItem collapsible={false} name={"signature"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"JWT signature"}}></SchemaItem><SchemaItem collapsible={false} name={"signatureDecoded"} required={true} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"Decoded signature, containing claims used from the signature JWT"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationMethod"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A well-known string denoting which method is used. Valid values: 'keybinding_jwt'"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationPayload"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The keybinding JWT payload that was signed to produce the signature"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationPayloadHash"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Internally generated cryptographic hash of the value to be signed, i.e. the value of verificationPayload"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationSignedBy"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","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."}}></SchemaItem><SchemaItem collapsible={false} name={"verificationSignedAs"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`data_source`, `data_using_service`]"} schema={{"type":"string","description":"Either signed as a \"data_source\" or as a \"data_using_service\"","enum":["data_source","data_using_service"]}}></SchemaItem><SchemaItem collapsible={false} name={"verificationJwsHeader"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","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","description":"Timestamp of signature"}}></SchemaItem><SchemaItem collapsible={false} name={"signedWithoutObjectReference"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates that objectReference was left blank in the serialised version that was signed, always false for Data Disclosure Agreement Record signatures"}}></SchemaItem><SchemaItem collapsible={false} name={"objectType"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`data_disclosure_agreement_record`]"} schema={{"type":"string","description":"Name of the schema model that objectReference points to, in this case \"data_disclosure_agreement_record\"","enum":["data_disclosure_agreement_record"]}}></SchemaItem><SchemaItem collapsible={false} name={"objectReference"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"In the case of a data_disclosure_agreement_record, this is the ID of the record that was signed"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"optIn"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Whether the record is active and data can be shared to the Data Using Service."}}></SchemaItem><SchemaItem collapsible={false} name={"timestamp"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The timestamp of when the latest signature was added."}}></SchemaItem><SchemaItem collapsible={false} name={"organisationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The ID of the organisation this record belongs to (both organisation keep a copy)."}}></SchemaItem><SchemaItem collapsible={false} name={"organisationRole"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`data_source`, `data_using_service`]"} schema={{"type":"string","description":"The role of the organisation in this agreement (e.g., data_source).","enum":["data_source","data_using_service"]}}></SchemaItem><SchemaItem collapsible={false} name={"isDeleted"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"If the record is deleted."}}></SchemaItem></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"}>revisions</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"}}><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={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c6601","description":"Revision ID"}}></SchemaItem><SchemaItem collapsible={false} name={"schemaName"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`dataAgreement`, `policy`, `dataAgreementRecord`]"} schema={{"type":"string","format":"","example":"dataAgreement","description":"Previously \"schema\" but for technical reasons should be called \"schemaName\"","enum":["dataAgreement","policy","dataAgreementRecord"]}}></SchemaItem><SchemaItem collapsible={false} name={"objectId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c8492","description":"The PK of the object that was serialised"}}></SchemaItem><SchemaItem collapsible={false} name={"objectData"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"{...}","description":"The object that is serialised"}}></SchemaItem><SchemaItem collapsible={false} name={"signedWithoutObjectId"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","format":"","example":false,"description":"Indicates that objectId was left blank in serizalizedSnapshot when calculating serializedHash. objectId may subsequently be filled in."}}></SchemaItem><SchemaItem collapsible={false} name={"serizalizedSnapshot"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"{...}","description":"Revisioned data (sed as JSON) as a dict. Apply JSON Canonicalization Scheme as per IETF RFC 8785.  It contains all the fields of the schema except sucessorId, serializedHash, serializedSnapshot.\n"}}></SchemaItem><SchemaItem collapsible={false} name={"serializedHash"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2","description":"Hash of serizalizedSnapshot (SHA-1)"}}></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 when revisioning happened. It should be ISO 8601 UTC date time"}}></SchemaItem><SchemaItem collapsible={false} name={"authorizedByIndividualId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"description":"Individual ID","type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"authorizedByOtherId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"64541a2e6e7569000145ab00","description":"Reference to an admin user that has created this revision"}}></SchemaItem><SchemaItem collapsible={false} name={"successorId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"x-fk-model":"Revision","type":"string","description":"If this revision is no longer the latest revision, refer to its successor"}}></SchemaItem><SchemaItem collapsible={false} name={"predecessorHash"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3","description":"Tamper-resistent artifact from previous record, copied from serializedHash"}}></SchemaItem><SchemaItem collapsible={false} name={"predecessorSignature"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"c3d4e5f6a1b2...","description":"Tamper-resistent artifact from previous record (we don't know if the previous record was signed or not)"}}></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 className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</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  \"dataDisclosureAgreementRecord\": {\n    \"id\": \"string\",\n    \"canonicalId\": \"string\",\n    \"dataDisclosureAgreementTemplateRevision\": {\n      \"id\": \"65471222e8c7c3bb3c2c6601\",\n      \"schemaName\": \"dataAgreement\",\n      \"objectId\": \"65471222e8c7c3bb3c2c8492\",\n      \"objectData\": \"{...}\",\n      \"signedWithoutObjectId\": false,\n      \"serizalizedSnapshot\": \"{...}\",\n      \"serializedHash\": \"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2\",\n      \"timestamp\": \"2024-01-15T10:30:00Z\",\n      \"authorizedByIndividualId\": \"string\",\n      \"authorizedByOtherId\": \"64541a2e6e7569000145ab00\",\n      \"successorId\": \"string\",\n      \"predecessorHash\": \"b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3\",\n      \"predecessorSignature\": \"c3d4e5f6a1b2...\"\n    },\n    \"dataSourceSignature\": {\n      \"id\": \"string\",\n      \"payload\": \"string\",\n      \"signature\": \"string\",\n      \"signatureDecoded\": {},\n      \"verificationMethod\": \"string\",\n      \"verificationPayload\": \"string\",\n      \"verificationPayloadHash\": \"string\",\n      \"verificationSignedBy\": \"string\",\n      \"verificationSignedAs\": \"data_source\",\n      \"verificationJwsHeader\": \"string\",\n      \"timestamp\": \"string\",\n      \"signedWithoutObjectReference\": true,\n      \"objectType\": \"data_disclosure_agreement_record\",\n      \"objectReference\": \"string\"\n    },\n    \"dataUsingServiceSignature\": {\n      \"id\": \"string\",\n      \"payload\": \"string\",\n      \"signature\": \"string\",\n      \"signatureDecoded\": {},\n      \"verificationMethod\": \"string\",\n      \"verificationPayload\": \"string\",\n      \"verificationPayloadHash\": \"string\",\n      \"verificationSignedBy\": \"string\",\n      \"verificationSignedAs\": \"data_source\",\n      \"verificationJwsHeader\": \"string\",\n      \"timestamp\": \"string\",\n      \"signedWithoutObjectReference\": true,\n      \"objectType\": \"data_disclosure_agreement_record\",\n      \"objectReference\": \"string\"\n    },\n    \"optIn\": true,\n    \"timestamp\": \"string\",\n    \"organisationId\": \"string\",\n    \"organisationRole\": \"data_source\",\n    \"isDeleted\": true\n  },\n  \"revisions\": [\n    {\n      \"id\": \"65471222e8c7c3bb3c2c6601\",\n      \"schemaName\": \"dataAgreement\",\n      \"objectId\": \"65471222e8c7c3bb3c2c8492\",\n      \"objectData\": \"{...}\",\n      \"signedWithoutObjectId\": false,\n      \"serizalizedSnapshot\": \"{...}\",\n      \"serializedHash\": \"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2\",\n      \"timestamp\": \"2024-01-15T10:30:00Z\",\n      \"authorizedByIndividualId\": \"string\",\n      \"authorizedByOtherId\": \"64541a2e6e7569000145ab00\",\n      \"successorId\": \"string\",\n      \"predecessorHash\": \"b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3\",\n      \"predecessorSignature\": \"c3d4e5f6a1b2...\"\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={"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={"404"} value={"404"}><div>

Resource not found

</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>
      