---
id: list-oidc-client
title: "List OIDC Client"
description: "Retrieves a list of all OpenID Connect clients configured for the organisation, including their verification request settings and configurations."
sidebar_label: "List OIDC Client"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/extensions-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 OIDC Client</h1>

<MethodEndpoint method={"get"} path={"/v3/config/extension/oidc/clients"}></MethodEndpoint>



Retrieves a list of all OpenID Connect clients configured for the organisation, including their verification request settings and configurations.

## 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":"Requested index for start of resources to be provided in response requested by client","in":"query","name":"systemManaged","required":false,"default":false,"schema":{"type":"boolean"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

List of clients

</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>Cache-Control</strong><span style={{"opacity":"0.6"}}> string</span></summary><div><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Indicates that the response should not be cached.

</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"}>clients</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={"presentationDefinitionId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The ID of the client's configured presentation definition"}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The name of the client"}}></SchemaItem><SchemaItem collapsible={false} name={"clientId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The ID of the client"}}></SchemaItem><SchemaItem collapsible={false} name={"clientSecret"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The secret of the client"}}></SchemaItem><SchemaItem collapsible={false} name={"redirectURIs"} required={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"The valid redirect URIs for the client"}}></SchemaItem><SchemaItem collapsible={false} name={"allowedOrigins"} required={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"The valid origins for the client"}}></SchemaItem><SchemaItem collapsible={false} name={"callbackURI"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The URI at which a `sub` value will be calculated and returned according to the sent presentation.\n"}}></SchemaItem><SchemaItem collapsible={false} name={"callbackSecret"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The secret used to access the `callbackURI`. Required when `callbackURI` is set."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>identityMatchingAttributes</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

A map of VCTs (verifiable credential types) to claim paths used as linking values for identity matching. Each key is the VCT of a credential, and the value is the dot-separated path to the claim within that credential to use as the linking value.


</div><SchemaItem name={"property name*"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"transactionDataAction"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The configured action for the transaction data, e.g. \"login\" or \"verify\"\n"}}></SchemaItem><SchemaItem collapsible={false} name={"kid"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The ID of the client's key"}}></SchemaItem><SchemaItem collapsible={false} name={"systemManaged"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the client is system-managed 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  \"clients\": [\n    {\n      \"presentationDefinitionId\": \"string\",\n      \"name\": \"string\",\n      \"clientId\": \"string\",\n      \"clientSecret\": \"string\",\n      \"redirectURIs\": [\n        \"string\"\n      ],\n      \"allowedOrigins\": [\n        \"string\"\n      ],\n      \"callbackURI\": \"string\",\n      \"callbackSecret\": \"string\",\n      \"identityMatchingAttributes\": {},\n      \"transactionDataAction\": \"string\",\n      \"kid\": \"string\",\n      \"systemManaged\": true\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>
      