---
id: config-list-digital-wallet-open-id-trust-source
title: "List trust sources"
description: "Lists the trust sources of the organisation, newest first, with the state of each list. Filter with `kind`, `role` and `nameContains`. For the next page, send the `nextCursor` of the answer as `cursor`. A filter value that is not a kind or a role matches nothing."
sidebar_label: "List trust sources"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/openid4vc-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 trust sources</h1>

<MethodEndpoint method={"get"} path={"/v4/config/ows/trust/sources"}></MethodEndpoint>



Lists the trust sources of the organisation, newest first, with the state of each list. Filter with `kind`, `role` and `nameContains`. For the next page, send the `nextCursor` of the answer as `cursor`. A filter value that is not a kind or a role matches nothing.

API key scope: `trust-sources:read` (the older `trust-anchors:read` still works for a period).


## 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":"The most items in the page: 1 to 100, default 20. Another value gives HTTP 400.","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"The `nextCursor` of the page before, to read the next page. Leave it out for the first page. Use it as it is: a changed cursor gives HTTP 400. Do not send it with `offset` (HTTP 400).","in":"query","name":"cursor","required":false,"schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"How many items come before the page: 0 to 10000. Use it only to jump to a page of a pager, then continue with the `nextCursor` of the answer. Do not send it with `cursor` (HTTP 400). Another value gives HTTP 400.","in":"query","name":"offset","required":false,"schema":{"type":"integer","minimum":0,"maximum":10000}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"`true`: the answer also has `total` and `totalCapped`, the number of items of the filtered list. Send it on the first page only, for a pager. Default `false`. Another value gives HTTP 400.","in":"query","name":"includeTotal","required":false,"schema":{"type":"boolean","default":false}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"kind","in":"query","required":false,"description":"Only the trust sources of this kind.","schema":{"type":"string","enum":["trust_anchor","etsi_trusted_list","etsi_lote"]}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"role","in":"query","required":false,"description":"Only the trust sources used for one of these roles: one role, a comma-separated list of roles (`pid_provider,qeaa_provider`), or `issuer` for every issuer role. A value that is not a role is left out.","schema":{"type":"string"},"example":"wallet_provider"}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"nameContains","in":"query","required":false,"description":"Only the trust sources whose name contains this text, in any letter case.","schema":{"type":"string"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

One page of trust sources.

</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"}>items</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 trust sources of the page. Empty when none matches.

</div><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={"uuid"} qualifierMessage={undefined} schema={{"type":"string","format":"uuid","description":"Identifier of the trust source: the value for an accepted list and for the `trustSourceId` of the path.","example":"6d2c0b8e-3f4a-4c1d-9e2b-7a5f1c3d8e90"}}></SchemaItem><SchemaItem collapsible={false} name={"kind"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`trust_anchor`, `etsi_trusted_list`, `etsi_lote`]"} schema={{"type":"string","enum":["trust_anchor","etsi_trusted_list","etsi_lote"],"description":"`trust_anchor`: one or more CA certificates, with optional CRLs. `etsi_trusted_list`: an ETSI TS 119 612 trusted list (XML), for example a national trusted list. `etsi_lote`: an ETSI TS 119 602 list of trusted entities (XML or JSON), for example the EU list of wallet providers.","example":"etsi_lote"}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Name of the trust source, for the dashboard.","example":"EU wallet providers"}}></SchemaItem><SchemaItem collapsible={false} name={"usedFor"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"string","title":"TrustRole","description":"A role of a trust source entry: what the entry vouches for. A list gives the roles of its entries (by its list type and the service type of each entry); the `usedFor` of its trust source can only narrow them. An entry whose list gives it no role has the `usedFor` role of its trust source, except `status_issuer`, which only a service type gives. A trust anchor has the role that the organisation gives (its `usedFor`). A PID needs a `pid_provider`, an mDL an `mdl_issuer`, another credential any issuer role.\n\n- `wallet_provider`: signs Wallet Unit Attestations and key attestations (LoTE list type `EUWalletProvidersList`).\n- `pid_provider`: signs a PID (LoTE list type `EUPIDProvidersList`).\n- `qeaa_provider`: signs a QEAA (an ETSI TS 119 612 trusted list service of type `EAA/Q`).\n- `pub_eaa_provider`: signs a PuB-EAA (LoTE list type `EUPubEAAProvidersList`, or a trusted list service of type `EAA/Pub-EAA`).\n- `eaa_provider`: signs a non-qualified EAA (a trusted list service of type `EAA`, or a trust anchor that the organisation marks).\n- `mdl_issuer`: the IACA of an mDL Document Signer (a trust anchor that the organisation marks).\n- `status_issuer`: signs the Status List Token of a credential (ETSI services `SvcType/PID/Revocation` and `SvcType/PubEAA/Revocation`, or a trust anchor that the organisation marks). It is not an issuer role.\n- `access_certificate_provider`: issues the access certificates of relying parties, which sign their presentation requests and signed metadata (LoTE list type `EUWRPACProvidersList`, or a trusted list service of type `WRPAC`).\n- `registration_certificate_provider`: issues the registration certificates of relying parties (LoTE list type `EUWRPRCProvidersList`).\n\nThe issuer roles are `pid_provider`, `qeaa_provider`, `pub_eaa_provider`, `eaa_provider` and `mdl_issuer`; the filter value `issuer` names them all.","enum":["wallet_provider","pid_provider","qeaa_provider","pub_eaa_provider","eaa_provider","mdl_issuer","status_issuer","access_certificate_provider","registration_certificate_provider"],"example":"wallet_provider"}}></SchemaItem><SchemaItem collapsible={false} name={"enabled"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"`true` when the checks can use the source. A source that an accepted list or a stored `etsi_tl` URL uses cannot be turned off (`trust_source.in_use`).","example":true}}></SchemaItem><SchemaItem collapsible={false} name={"url"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"The https URL of the list. `null` for a trust anchor.","example":"https://example.eu/lists/wallet-providers.xml"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>certificates</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 CA certificates of a trust anchor. An empty array for a list.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"subject"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Subject distinguished name of the certificate (RFC 4514).","example":"CN=Wallet provider root,O=Example Wallet Provider AB,C=SE"}}></SchemaItem><SchemaItem collapsible={false} name={"issuer"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Issuer distinguished name of the certificate (RFC 4514).","example":"CN=Wallet provider root,O=Example Wallet Provider AB,C=SE"}}></SchemaItem><SchemaItem collapsible={false} name={"serialNumber"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Serial number of the certificate, as a decimal integer.","example":"690874031736977368252587783617202191683118010803"}}></SchemaItem><SchemaItem collapsible={false} name={"notValidBefore"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","description":"Start of the validity of the certificate (ISO 8601 date-time, UTC).","example":"2025-10-28T00:00:00Z"}}></SchemaItem><SchemaItem collapsible={false} name={"notValidAfter"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","description":"End of the validity of the certificate (ISO 8601 date-time, UTC).","example":"2027-10-28T00:00:00Z"}}></SchemaItem><SchemaItem collapsible={false} name={"ski"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"The SubjectKeyIdentifier of the certificate, base64url without padding: an `aki` value of the DCQL `trusted_authorities` for the credentials that this CA signed. `null` when the certificate has none.","example":"s9tIpPmhxdiuNkHMEWNpYim8S8Y"}}></SchemaItem><SchemaItem collapsible={false} name={"sha256Fingerprint"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"SHA-256 fingerprint of the DER encoding of the certificate, in lowercase hexadecimal.","example":"4f0c2a9e1b7d6c3a8e5f2b1d9c7a6e4f3b2a1c0d9e8f7a6b5c4d3e2f1a0b9c8d"}}></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"}>signerCertificates</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 certificates that sign the list: the wallet verifies the signature of each copy with them. An empty array when the organisation gave none (then `list.signatureVerified` is `false`), and for a trust anchor.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"subject"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Subject distinguished name of the certificate (RFC 4514).","example":"CN=Wallet provider root,O=Example Wallet Provider AB,C=SE"}}></SchemaItem><SchemaItem collapsible={false} name={"issuer"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Issuer distinguished name of the certificate (RFC 4514).","example":"CN=Wallet provider root,O=Example Wallet Provider AB,C=SE"}}></SchemaItem><SchemaItem collapsible={false} name={"serialNumber"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Serial number of the certificate, as a decimal integer.","example":"690874031736977368252587783617202191683118010803"}}></SchemaItem><SchemaItem collapsible={false} name={"notValidBefore"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","description":"Start of the validity of the certificate (ISO 8601 date-time, UTC).","example":"2025-10-28T00:00:00Z"}}></SchemaItem><SchemaItem collapsible={false} name={"notValidAfter"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","description":"End of the validity of the certificate (ISO 8601 date-time, UTC).","example":"2027-10-28T00:00:00Z"}}></SchemaItem><SchemaItem collapsible={false} name={"ski"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"The SubjectKeyIdentifier of the certificate, base64url without padding: an `aki` value of the DCQL `trusted_authorities` for the credentials that this CA signed. `null` when the certificate has none.","example":"s9tIpPmhxdiuNkHMEWNpYim8S8Y"}}></SchemaItem><SchemaItem collapsible={false} name={"sha256Fingerprint"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"SHA-256 fingerprint of the DER encoding of the certificate, in lowercase hexadecimal.","example":"4f0c2a9e1b7d6c3a8e5f2b1d9c7a6e4f3b2a1c0d9e8f7a6b5c4d3e2f1a0b9c8d"}}></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"}>list</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__nullable"}>nullable</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The state of the copy of a list that the checks use. The wallet reads the list when you add the source or change its URL, and downloads it on its schedule (at the next update of the list, and at least once each 24 hours), and when you refresh the source. A check never downloads a list: it reads the stored copy. A failed download keeps the last good copy.

</div><SchemaItem collapsible={false} name={"listType"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"The list type URI of the list, for example `http://uri.etsi.org/19602/LoTEType/EUWalletProvidersList`. `null` before the first good download, or when the list gives none.","example":"http://uri.etsi.org/19602/LoTEType/EUWalletProvidersList"}}></SchemaItem><SchemaItem collapsible={false} name={"sequenceNumber"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","nullable":true,"description":"Sequence number of the copy, as the list gives it. `null` before the first good download.","example":12}}></SchemaItem><SchemaItem collapsible={false} name={"issuedAt"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","nullable":true,"description":"Issue time of the copy of the list (ISO 8601 date-time, UTC).","example":"2026-11-01T00:00:00Z"}}></SchemaItem><SchemaItem collapsible={false} name={"nextUpdate"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","nullable":true,"description":"The latest time of the next list, as the list gives it (ISO 8601 date-time, UTC). A publisher can issue a new list before this time.","example":"2026-12-01T00:00:00Z"}}></SchemaItem><SchemaItem collapsible={false} name={"state"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`not_downloaded`, `current`, `out_of_date`, `expired`]"} schema={{"type":"string","enum":["not_downloaded","current","out_of_date","expired"],"description":"`not_downloaded`: there is no good copy (a save needs a good copy, so this state comes from a source from before that rule, or from a stored copy that is gone); a check of the roles of the source gives `error`. `current`: now is before `nextUpdate`. `out_of_date`: `nextUpdate` is in the past, but less than the grace time of the platform (default 3 days); the checks use the copy, and the dashboard shows a warning. `expired`: `nextUpdate` is more than the grace time in the past; the checks still use the last stored copy: a match gives `trusted` with the warning `list_expired`, and no match gives `not_found`.","example":"current"}}></SchemaItem><SchemaItem collapsible={false} name={"signatureVerified"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"`true` when the wallet verified the signature of the copy with the `signerCertificates` of the source. `false` when the source has none. With `signerCertificates`, a copy whose signature does not verify is refused, and the last good copy stays.","example":true}}></SchemaItem><SchemaItem collapsible={false} name={"entryCount"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Number of trust source entries in the copy.","example":37}}></SchemaItem><SchemaItem collapsible={false} name={"lastFetchedAt"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","nullable":true,"description":"Time of the last good download (ISO 8601 date-time, UTC).","example":"2026-11-07T09:00:02Z"}}></SchemaItem><SchemaItem collapsible={false} name={"lastChangedAt"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","nullable":true,"description":"Time of the last download that changed the content of the list (ISO 8601 date-time, UTC).","example":"2026-11-07T09:00:02Z"}}></SchemaItem><SchemaItem collapsible={false} name={"nextRefreshAt"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","nullable":true,"description":"Time of the next scheduled download (ISO 8601 date-time, UTC).","example":"2026-11-08T09:00:02Z"}}></SchemaItem><SchemaItem collapsible={false} name={"usedUntil"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","nullable":true,"description":"The end of validity of the copy: `nextUpdate` plus the grace time of the platform. After it the list is expired, and a match has the warning `list_expired`. `null` when the list gives no `nextUpdate`.","example":"2026-12-04T00:00:00Z"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>lastError</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__nullable"}>nullable</span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The last failed download, or `null` when the last download did not fail.

</div><SchemaItem collapsible={false} name={"at"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","description":"Time of the failed download (ISO 8601 date-time, UTC).","example":"2026-11-07T10:00:00Z"}}></SchemaItem><SchemaItem collapsible={false} name={"message"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Why the download failed.","example":"HTTP 503 from the list server"}}></SchemaItem></div></details></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","description":"When the organisation added the source (ISO 8601 date-time, UTC).","example":"2026-11-07T09:00:00Z"}}></SchemaItem><SchemaItem collapsible={false} name={"updatedAt"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","description":"When the source or the state of its list last changed (ISO 8601 date-time, UTC).","example":"2026-11-07T09:00:02Z"}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={false} name={"nextCursor"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"Send it as `cursor` for the next page. `null` on the last page.","example":"eyJjIjoiMjAyNi0xMS0wN1QwOTowMDowMFoiLCJpIjoiNmQyYyJ9"}}></SchemaItem><SchemaItem collapsible={false} name={"total"} required={false} schemaName={"integer"} qualifierMessage={"**Possible values:** `<= 10000`"} schema={{"type":"integer","minimum":0,"maximum":10000,"description":"The number of items of the filtered list, at most 10000. Only with `includeTotal=true`. When the list has more items, the value is 10000 and `totalCapped` is `true`.","example":137}}></SchemaItem><SchemaItem collapsible={false} name={"totalCapped"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"`true` when the filtered list has more than 10000 items: `total` then shows 10000. Only with `includeTotal=true`.","example":false}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"items\": [\n    {\n      \"id\": \"6d2c0b8e-3f4a-4c1d-9e2b-7a5f1c3d8e90\",\n      \"kind\": \"etsi_lote\",\n      \"name\": \"EU wallet providers\",\n      \"usedFor\": \"wallet_provider\",\n      \"enabled\": true,\n      \"url\": \"https://example.eu/lists/wallet-providers.xml\",\n      \"certificates\": [\n        {\n          \"subject\": \"CN=Wallet provider root,O=Example Wallet Provider AB,C=SE\",\n          \"issuer\": \"CN=Wallet provider root,O=Example Wallet Provider AB,C=SE\",\n          \"serialNumber\": \"690874031736977368252587783617202191683118010803\",\n          \"notValidBefore\": \"2025-10-28T00:00:00Z\",\n          \"notValidAfter\": \"2027-10-28T00:00:00Z\",\n          \"ski\": \"s9tIpPmhxdiuNkHMEWNpYim8S8Y\",\n          \"sha256Fingerprint\": \"4f0c2a9e1b7d6c3a8e5f2b1d9c7a6e4f3b2a1c0d9e8f7a6b5c4d3e2f1a0b9c8d\"\n        }\n      ],\n      \"signerCertificates\": [\n        {\n          \"subject\": \"CN=Wallet provider root,O=Example Wallet Provider AB,C=SE\",\n          \"issuer\": \"CN=Wallet provider root,O=Example Wallet Provider AB,C=SE\",\n          \"serialNumber\": \"690874031736977368252587783617202191683118010803\",\n          \"notValidBefore\": \"2025-10-28T00:00:00Z\",\n          \"notValidAfter\": \"2027-10-28T00:00:00Z\",\n          \"ski\": \"s9tIpPmhxdiuNkHMEWNpYim8S8Y\",\n          \"sha256Fingerprint\": \"4f0c2a9e1b7d6c3a8e5f2b1d9c7a6e4f3b2a1c0d9e8f7a6b5c4d3e2f1a0b9c8d\"\n        }\n      ],\n      \"list\": {\n        \"listType\": \"http://uri.etsi.org/19602/LoTEType/EUWalletProvidersList\",\n        \"sequenceNumber\": 12,\n        \"issuedAt\": \"2026-11-01T00:00:00Z\",\n        \"nextUpdate\": \"2026-12-01T00:00:00Z\",\n        \"state\": \"current\",\n        \"signatureVerified\": true,\n        \"entryCount\": 37,\n        \"lastFetchedAt\": \"2026-11-07T09:00:02Z\",\n        \"lastChangedAt\": \"2026-11-07T09:00:02Z\",\n        \"nextRefreshAt\": \"2026-11-08T09:00:02Z\",\n        \"usedUntil\": \"2026-12-04T00:00:00Z\",\n        \"lastError\": {\n          \"at\": \"2026-11-07T10:00:00Z\",\n          \"message\": \"HTTP 503 from the list server\"\n        }\n      },\n      \"createdAt\": \"2026-11-07T09:00:00Z\",\n      \"updatedAt\": \"2026-11-07T09:00:02Z\"\n    }\n  ],\n  \"nextCursor\": \"eyJjIjoiMjAyNi0xMS0wN1QwOTowMDowMFoiLCJpIjoiNmQyYyJ9\",\n  \"total\": 137,\n  \"totalCapped\": false\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"items\": [\n    {\n      \"id\": \"929bb7d1-f654-4f10-bb57-8eb42cc2d969\",\n      \"kind\": \"trust_anchor\",\n      \"name\": \"Test provider root CA\",\n      \"usedFor\": \"wallet_provider\",\n      \"enabled\": true,\n      \"url\": null,\n      \"certificates\": [\n        {\n          \"subject\": \"CN=Example Bank AB Test Provider CA (NOT FOR PRODUCTION),O=Example Bank AB,C=SE\",\n          \"issuer\": \"CN=Example Bank AB Test Provider CA (NOT FOR PRODUCTION),O=Example Bank AB,C=SE\",\n          \"serialNumber\": \"108477698159149186209338756128210766651\",\n          \"notValidBefore\": \"2026-10-29T03:36:35Z\",\n          \"notValidAfter\": \"2035-10-29T03:36:35Z\",\n          \"ski\": \"6z-7WgOEQkaGn4SlF_msn_qFfRM\",\n          \"sha256Fingerprint\": \"466682264cc16550fbd13ac7a30d21def374e1d2603a0cea2507ddc9e86ac8b2\"\n        }\n      ],\n      \"signerCertificates\": [],\n      \"list\": null,\n      \"createdAt\": \"2026-11-08T14:46:45Z\",\n      \"updatedAt\": \"2026-11-08T14:46:45Z\"\n    },\n    {\n      \"id\": \"9c60ca0d-c213-4c2a-8710-3dd214846607\",\n      \"kind\": \"etsi_trusted_list\",\n      \"name\": \"WE BUILD NXD QEAA trusted list\",\n      \"usedFor\": \"qeaa_provider\",\n      \"enabled\": true,\n      \"url\": \"https://trustlist.nxd.foundation/trust-lists/NXD-TL-QEAA.xml\",\n      \"certificates\": [],\n      \"signerCertificates\": [\n        {\n          \"subject\": \"O=NXD Foundation,C=SE\",\n          \"issuer\": \"O=NXD Foundation,C=SE\",\n          \"serialNumber\": \"690874031736977368252587783617202191683118010803\",\n          \"notValidBefore\": \"2026-09-21T09:48:39Z\",\n          \"notValidAfter\": \"2029-09-20T09:53:39Z\",\n          \"ski\": \"FcMN-8IW8DdwzIpRfKUgLUEYCLE\",\n          \"sha256Fingerprint\": \"4932ceed8a3d755c46003268d986fefd29960bcb1441559c72545c9ad54b1579\"\n        }\n      ],\n      \"list\": {\n        \"listType\": \"http://uri.etsi.org/TrstSvc/TrustedList/TSLType/EUgeneric\",\n        \"sequenceNumber\": 218,\n        \"issuedAt\": \"2026-11-06T18:58:51Z\",\n        \"nextUpdate\": \"2027-05-06T18:58:51Z\",\n        \"state\": \"current\",\n        \"signatureVerified\": true,\n        \"entryCount\": 2,\n        \"lastFetchedAt\": \"2026-11-07T21:10:47Z\",\n        \"lastChangedAt\": \"2026-11-06T20:58:01Z\",\n        \"nextRefreshAt\": \"2026-11-08T21:10:47Z\",\n        \"usedUntil\": \"2027-05-09T18:58:51Z\",\n        \"lastError\": null\n      },\n      \"createdAt\": \"2026-11-06T20:58:01Z\",\n      \"updatedAt\": \"2026-11-07T21:10:47Z\"\n    }\n  ],\n  \"nextCursor\": \"WyIyMDI2LTExLTA2VDIwOjU4OjAxLjE2NDg3NiIsIjljNjBjYTBkLWMyMTMtNGMyYS04NzEwLTNkZDIxNDg0NjYwNyJd\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

`limit` is not 1 to 100 (`limit must be an integer from 1 to 100`), the cursor is not valid, `offset` is not 0 to 10000, the request has both `offset` and `cursor`, or `includeTotal` is not `true` or `false`. Also when the organisation is unknown or has no deployed wallet.

</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><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

The `Authorization` header is missing, or the API key or token is not valid.

</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><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"403"} value={"403"}><div>

The API key or token does not allow this call. An API key without the scope of the operation gets the older body `{"Code", "Message"}`. An `X-SandboxOrgId` header that names another sandbox organisation than the one of the API key gets `{"errorCode", "errorDescription"}`. When a platform admin has turned off the feature of the operation for the organisation, the answer has `errorKey` `feature_disabled` and the member `feature` (the name of the feature).

</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"}}><div><span className={"badge badge--info"}>anyOf</span><SchemaTabs><TabItem label={"MOD1"} value={"0-item-properties"}><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><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></TabItem><TabItem label={"Older error body"} value={"1-item-properties"}><SchemaItem collapsible={false} name={"Code"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"The HTTP status.","example":403}}></SchemaItem><SchemaItem collapsible={false} name={"Message"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"What went wrong.","example":"Unauthorized access;User doesn't have enough permissions;"}}></SchemaItem></TabItem></SchemaTabs></div></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"Code\": 403,\n  \"Message\": \"Unauthorized access;User doesn't have enough permissions;\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Unexpected 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><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      