---
id: service-verification-consent-record-list
title: "List all consent records"
description: "This endpoint is used to list all consent records available for an organisation defined in the consent building block. The results are 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/verification/consent-records"}></MethodEndpoint>



This endpoint is used to list all consent records 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></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Consent records 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>
      