> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trusset.org/llms.txt
> Use this file to discover all available pages before exploring further.

# List Admissions

> Wallets waiting for, holding or leaving a place on an eligibility register

Lists the admissions of your instance, newest first. An admission tracks one wallet on the eligibility register of one verification profile, from the moment it is queued until it is removed. See [Eligibility registers](/endpoints/customers/introduction#eligibility-registers).

`status` follows what your wallet signed and what the chain reports. An admission turns `ADMITTED` or `REMOVED` only when a confirm reads the transaction from the chain, so a wallet you queued is not on the register until then.

| `status` | Meaning |
| - | - |
| `PENDING` | Waiting for your wallet to admit it. [Build Admission](/endpoints/customers/build-admission) picks it up |
| `ADMITTED` | On the register, confirmed from the chain |
| `REMOVAL_PENDING` | Still on the register, waiting for your wallet to remove it. [Build Removal](/endpoints/customers/build-removal) picks it up |
| `REMOVED` | Removed from the register, confirmed from the chain |
| `CANCELLED` | Withdrawn before it was signed: by a removal request, by a build that found the wallet's country blocked on your instance register, or because the profile was unbound from the register |

| `source` | Queued by |
| - | - |
| `KYC_LINK` | An approved [ID link](/endpoints/customers/create-id-link) review. `sourceRef` is the link `id` |
| `VERIFICATION` | A registration on your instance register through Verify Identity, Batch Verify or the pending queue |
| `API` | [Request Admission](/endpoints/customers/request-admission) |
| `MANUAL` | The Issuer Portal |
| `CHAIN` | Nothing. A confirm found the wallet registered by a transaction no admission was queued for |

| `removalReason` | Why the removal was queued |
| - | - |
| `LAPSED` | The profile's `reverifyDays` passed since the wallet was admitted |
| `REVOKED` | The wallet's identity was revoked on your instance register |
| `REJECTED` | An ID link review for the wallet was rejected or refused under its profile |
| `COUNTRY_BLOCKED` | The customer's country is blocked by the profile |
| `MANUAL` | A removal request that named no other reason |

A `REMOVAL_PENDING` admission can still be withdrawn. A fresh verification of the customer withdraws a `LAPSED`, `REVOKED` or `REJECTED` removal. A `MANUAL` or `COUNTRY_BLOCKED` removal is withdrawn only by your own request. See [A wallet waiting for removal](/endpoints/customers/request-admission#a-wallet-waiting-for-removal).

## Query Parameters

<ParamField query="profileKey" type="string">
  Only admissions under this profile key, in any letter case.
</ParamField>

<ParamField query="status" type="string">
  One status, or several separated by commas, such as `PENDING,REMOVAL_PENDING`. In any case. Unknown values are ignored, and a list with none left applies no filter.
</ParamField>

<ParamField query="walletAddress" type="string">
  Only this wallet. A malformed address applies no filter.
</ParamField>

<ParamField query="customerId" type="string">
  Only admissions linked to this customer record.
</ParamField>

<ParamField query="page" type="integer" default="1">
  Page number. Values below 1 read as 1.
</ParamField>

<ParamField query="limit" type="integer" default="50">
  Admissions per page, from 1 to 200. `0` or a value that is not a number reads as 50.
</ParamField>

## Response Fields

<ResponseField name="data" type="object">
  <Expandable>
    <ResponseField name="rows" type="array">The admissions, newest first. See below.</ResponseField>
    <ResponseField name="pagination" type="object">`page`, `limit`, `total` and `totalPages`, with `page` and `limit` as bounded.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="rows" type="array">
  Every endpoint under `/eligibility` that returns an admission uses this shape.

  <Expandable>
    <ResponseField name="id" type="string">Admission ID. The builds take it in `ids`.</ResponseField>
    <ResponseField name="profileKey" type="string">The verification profile.</ResponseField>
    <ResponseField name="profileName" type="string">The profile's name, or `null` when the profile could not be read.</ResponseField>
    <ResponseField name="registryAddress" type="string">The eligibility register, checksummed.</ResponseField>
    <ResponseField name="walletAddress" type="string">The wallet, checksummed.</ResponseField>
    <ResponseField name="customerId" type="string">The customer record holding the wallet, or `null`.</ResponseField>
    <ResponseField name="status" type="string">`PENDING`, `ADMITTED`, `REMOVAL_PENDING`, `REMOVED` or `CANCELLED`.</ResponseField>
    <ResponseField name="source" type="string">`KYC_LINK`, `VERIFICATION`, `API`, `MANUAL` or `CHAIN`.</ResponseField>
    <ResponseField name="sourceRef" type="string">The ID link, checkout or other record behind the admission, or `null`.</ResponseField>
    <ResponseField name="lapsed" type="boolean">`true` when the admission is `ADMITTED` and `dueAt` has passed. Its removal is then queued with reason `LAPSED`.</ResponseField>
    <ResponseField name="current" type="boolean">Whether `requirementsHash` equals the profile's current one. `false` means the profile's requirements changed after the admission was requested. `null` when the profile could not be read.</ResponseField>
    <ResponseField name="requirementsHash" type="string">The profile's [requirements hash](/endpoints/customers/list-verification-profiles#requirements-hash) when the admission was last requested.</ResponseField>
    <ResponseField name="dueAt" type="string">When the admission lapses: the profile's `reverifyDays` counted from the admission, or from the latest verification of the customer or request with `confirmEligibility: true` that renewed it. `null` when the profile sets none, or before the wallet is admitted.</ResponseField>
    <ResponseField name="admittedTxHash" type="string">The transaction that put the wallet on the register, or `null`.</ResponseField>
    <ResponseField name="admittedAt" type="string">The block time of `admittedTxHash`, or the time a build found the wallet already on the register. ISO 8601, or `null`.</ResponseField>
    <ResponseField name="removalReason" type="string">`LAPSED`, `REVOKED`, `REJECTED`, `COUNTRY_BLOCKED` or `MANUAL`, or `null`.</ResponseField>
    <ResponseField name="removalTxHash" type="string">The transaction that removed the wallet, or `null`.</ResponseField>
    <ResponseField name="removedAt" type="string">The block time of `removalTxHash`, or the time a build found the wallet already gone from the register. ISO 8601, or `null`.</ResponseField>
    <ResponseField name="signedBy" type="string">The wallet that sent the last confirmed admitting or removing transaction, checksummed, or `null`.</ResponseField>
    <ResponseField name="error" type="string">Why the admission stopped, such as a profile unbound from its register, or `null`.</ResponseField>
    <ResponseField name="createdAt" type="string">ISO 8601.</ResponseField>
    <ResponseField name="updatedAt" type="string">ISO 8601.</ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.trusset.org/customers/api/eligibility/admissions?profileKey=PROFESSIONAL&status=PENDING,REMOVAL_PENDING" \
    -H "X-API-Key: trusset_your_key_here"
  ```

  ```typescript TypeScript theme={null}
  const params = new URLSearchParams({ profileKey: 'PROFESSIONAL', status: 'PENDING,REMOVAL_PENDING' });

  const response = await fetch(
    `https://api.trusset.org/customers/api/eligibility/admissions?${params}`,
    { headers: { 'X-API-Key': 'trusset_your_key_here' } }
  );
  const { data } = await response.json();

  const toAdmit = data.rows.filter((row: { status: string }) => row.status === 'PENDING');
  const toRemove = data.rows.filter((row: { status: string }) => row.status === 'REMOVAL_PENDING');
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "rows": [
        {
          "id": "cmgdz1k4p0003l40a2r5w8y1n",
          "profileKey": "PROFESSIONAL",
          "profileName": "Professional",
          "registryAddress": "0x4f2A9c81D06e3b75A1C8E24D9B07f56E3a1d8C90",
          "walletAddress": "0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA",
          "customerId": "cmgdy2b7r0004l40a9c3e6f2h",
          "status": "PENDING",
          "source": "API",
          "sourceRef": null,
          "lapsed": false,
          "current": true,
          "requirementsHash": "0x8919ea37bac1f44ea0e8a37529be970cb49e9779ebd4c4e98490cfd754e9d390",
          "dueAt": null,
          "admittedTxHash": null,
          "admittedAt": null,
          "removalReason": null,
          "removalTxHash": null,
          "removedAt": null,
          "signedBy": null,
          "error": null,
          "createdAt": "2026-10-05T10:47:09.512Z",
          "updatedAt": "2026-10-05T10:47:09.512Z"
        },
        {
          "id": "cmgdz1k4p0002l40a8t6x3v9q",
          "profileKey": "PROFESSIONAL",
          "profileName": "Professional",
          "registryAddress": "0x4f2A9c81D06e3b75A1C8E24D9B07f56E3a1d8C90",
          "walletAddress": "0x2D27abCA46009EEF7D73eD1B1e913809f2280bE6",
          "customerId": "cmgdv8h2c0002l30a4n7q1z5k",
          "status": "REMOVAL_PENDING",
          "source": "KYC_LINK",
          "sourceRef": "cmgdv7f1b0001l30a9e3m6x2p",
          "lapsed": false,
          "current": true,
          "requirementsHash": "0x8919ea37bac1f44ea0e8a37529be970cb49e9779ebd4c4e98490cfd754e9d390",
          "dueAt": "2027-10-05T09:15:24.000Z",
          "admittedTxHash": "0xf74c4d459825fd4ed545a14911d0ac951aa378cf40924b9c75036c1e85080f8b",
          "admittedAt": "2026-10-05T09:15:24.000Z",
          "removalReason": "REVOKED",
          "removalTxHash": null,
          "removedAt": null,
          "signedBy": "0xCD92134767aEC2562be15d2a2062A082dA17dD84",
          "error": null,
          "createdAt": "2026-10-05T09:02:51.204Z",
          "updatedAt": "2026-10-05T10:31:18.877Z"
        }
      ],
      "pagination": {
        "page": 1,
        "limit": 50,
        "total": 2,
        "totalPages": 1
      }
    },
    "error": null,
    "metadata": {
      "requestId": "550e8400-e29b-41d4-a716-446655440000",
      "timestamp": "2026-10-05T12:00:00.000Z"
    }
  }
  ```
</ResponseExample>

## Error Codes

| Code | HTTP | Cause |
| - | - | - |
| `LIST_ADMISSIONS_FAILED` | `500` | The admissions could not be read |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.