---
id: list-all-revisions-for-all-data-disclosure-agreement-records
title: "List all revisions for all Data Disclosure Agreement Records"
description: "Lists all revisions of Data Disclosure Agreement Records, optionally filtered  by organisation role and/or DDA Template Revision."
sidebar_label: "List all revisions for all Data Disclosure Agreement Records"
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 all revisions for all Data Disclosure Agreement Records</h1>

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



Lists all revisions of Data Disclosure Agreement Records, optionally filtered  by organisation role and/or DDA Template Revision.


## 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={{"name":"organisationRole","in":"query","description":"Filter by Organisation Role for the Data Disclosure Record, \"data_source\" or \"data_using_service\"","required":true,"schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"dataDisclosureAgreementTemplateRevisionId","in":"query","description":"Unique ID of a Data Disclosure Template Revision","required":false,"schema":{"type":"string"}}}></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"}>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  \"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={"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>
      