---
id: service-list-individual-agreement-consent-record-list
title: "List all consent records"
description: "This endpoint is used to list all consent records existing for a data agreement for an organisation defined in the consent building block. The response is paginated."
sidebar_label: "List all consent records"
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 consent records</h1>

<MethodEndpoint method={"get"} path={"/service/individual/record/data-agreement/{dataAgreementId}/all"}></MethodEndpoint>



This endpoint is used to list all consent records existing for a data agreement for an organisation defined in the consent building block. The response is 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"}>Path Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"Unique ID of an object","in":"path","name":"dataAgreementId","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.","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></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"}>Header Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"in":"header","name":"X-ConsentBB-IndividualId","required":true,"schema":{"type":"string"},"description":"Individual ID"}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Consent records for data agreement (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"}>consentRecords</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={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c9901","description":"Objects may be passed back by some API endpoints without an ID (PK), denoting that they are a \"draft\", i.e. a ConsentRecord that is not yet stored in the database and only exist in transit. Draft ConsentRecords do not have a Revision, but if paired up with a Signature, a valid Revision should be generated."}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","x-fk-model":"DataAgreement","description":"The DataAgreement to which consent has been given"}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementRevisionId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","x-fk-model":"Revision","description":"The Revision of the data agreement which consent has been given to"}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementRevisionHash"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"a1b2c3d4e5f6...","description":"Copy of the revision hash. The hash is the included in the signature and ensures against tampering with the original agreement."}}></SchemaItem><SchemaItem collapsible={false} name={"individualId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","x-fk-model":"Individual","description":"The Individual who has signed this consent record"}}></SchemaItem><SchemaItem collapsible={false} name={"optIn"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","format":"","example":true,"description":"True: The individual has positively opted in. False: The individual has explicitly said no (or withdrawn a previous consent)."}}></SchemaItem><SchemaItem collapsible={false} name={"state"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`unsigned`, `signed`]"} schema={{"type":"string","format":"","example":"signed","description":"The state field is used to record state changes after-the-fact. It is maintained by the Consent BB itself. Valid states: unsigned/pending more signatures/signed","enum":["unsigned","signed"]}}></SchemaItem><SchemaItem collapsible={false} name={"signatureId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","x-fk-model":"Signature","description":"A signature that hashes all the values of the consent record and has signed it with the key of the Invidiual, making it verifiable and tamper-proof. TBD: Relation to a Signature schema?"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>sectorPreferences</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={"sector"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"","description":"Name of the sector"}}></SchemaItem><SchemaItem collapsible={false} name={"optIn"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Defines sector is opted in or not"}}></SchemaItem><SchemaItem collapsible={false} name={"isLastUpdated"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Defines consent record for this sector is last updated"}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></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  \"consentRecords\": [\n    {\n      \"id\": \"65471222e8c7c3bb3c2c9901\",\n      \"dataAgreementId\": \"string\",\n      \"dataAgreementRevisionId\": \"string\",\n      \"dataAgreementRevisionHash\": \"a1b2c3d4e5f6...\",\n      \"individualId\": \"string\",\n      \"optIn\": true,\n      \"state\": \"signed\",\n      \"signatureId\": \"string\",\n      \"sectorPreferences\": [\n        {\n          \"sector\": \"\",\n          \"optIn\": true,\n          \"isLastUpdated\": true\n        }\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>
      