> ## 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 Settled Liquidations

> List closed liquidations with what they realized and any collateral left on the router

Returns the market's liquidation records that are settled or written off, newest first. Each router record is checked against the router, so the list also shows collateral a settlement left behind on the router, and whether [Reopen Liquidation](/endpoints/lending/reopen-liquidation) can still bring it back.

Before answering, the endpoint re-reads each settled record's figure from the market. A record whose stored `usdcProceeds` understates what the market's record settled over is corrected, in the response and in the stored record.

## Path Parameters

<ParamField path="marketId" type="string" required>Market ID. At most 100 characters.</ParamField>

## Query Parameters

<ParamField query="limit" type="integer" default="50">
  Records to return, from `1` to `200`. A larger value is capped at `200`, a negative one raised to `1`, and zero or a non-number reads as `50`.
</ParamField>

## Response Fields

<ResponseField name="data" type="object">
  <Expandable>
    <ResponseField name="totalCount" type="integer">Number of records returned.</ResponseField>

    <ResponseField name="settledLiquidations" type="array">
      Ordered by `settledAt`, then `createdAt`, newest first.

      <Expandable>
        <ResponseField name="liquidationId" type="string">Router liquidation ID, or `venue-{marketLiquidationId}` for a record an auction sold in full.</ResponseField>
        <ResponseField name="marketLiquidationId" type="string">The market's own record ID.</ResponseField>
        <ResponseField name="marketId" type="string">Market ID.</ResponseField>
        <ResponseField name="loanId" type="string">Loan that was liquidated.</ResponseField>
        <ResponseField name="marketAddress" type="string">Market contract.</ResponseField>
        <ResponseField name="collateralAmount" type="string">Collateral seized at liquidation.</ResponseField>
        <ResponseField name="debtOwed" type="string">Debt the record claimed.</ResponseField>
        <ResponseField name="tokenAddress" type="string">Collateral token.</ResponseField>
        <ResponseField name="borrower" type="string">Borrower whose loan was liquidated.</ResponseField>
        <ResponseField name="termRealization" type="boolean">`true` when the loan was realized on its expired term rather than on its health.</ResponseField>
        <ResponseField name="auctionId" type="string">The Dutch auction that sold some or all of the collateral, or `null`.</ResponseField>
        <ResponseField name="txHash" type="string">Seizure transaction hash, or `chain-adopted` when it could not be located.</ResponseField>
        <ResponseField name="status" type="string">`SETTLED` or `WRITTEN_OFF`.</ResponseField>
        <ResponseField name="usdcProceeds" type="string">What the market's record settled over, in borrow asset units, where known. A write-off records none.</ResponseField>
        <ResponseField name="settledTxHash" type="string">The transaction that settled, closed or wrote off the record, when known.</ResponseField>
        <ResponseField name="settledAt" type="string">ISO 8601 timestamp of that transaction's block, when known.</ResponseField>
        <ResponseField name="createdAt" type="string">ISO 8601 timestamp of the seizure.</ResponseField>
        <ResponseField name="settledOn" type="string">`router` for a record closed on the router, `venue` for a record an auction sold in full, `null` for a write-off.</ResponseField>
        <ResponseField name="routerAddress" type="string">Router the record lives on. Present on router records when the router could be read, like the five fields below.</ResponseField>
        <ResponseField name="routerSettled" type="boolean">Whether the router has closed its own record. A written-off record usually reads `false`, because the write-off never touches the router.</ResponseField>
        <ResponseField name="collateralRemaining" type="string">Collateral still on the router for this record.</ResponseField>
        <ResponseField name="proceedsCollected" type="string">Cash the router collected for this record, in borrow asset units.</ResponseField>
        <ResponseField name="collateralStranded" type="boolean">`true` when the router closed the record with collateral still on it. That collateral can no longer be withdrawn.</ResponseField>
        <ResponseField name="reopenable" type="boolean">`true` when the collateral is stranded and the record collected nothing, which is when [Reopen Liquidation](/endpoints/lending/reopen-liquidation) accepts it.</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<Note>
  The router fields are absent, not `false`, when the router could not be read and on `venue-` records. Read `collateralStranded` only where `routerAddress` is present.
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.trusset.org/lending-external-securities-v2/api/liquidations/{marketId}/settled-liquidations?limit=20" \
    -H "X-API-Key: trusset_your_key_here"
  ```

  ```typescript TypeScript theme={null}
  const res = await fetch(
    `https://api.trusset.org/lending-external-securities-v2/api/liquidations/${marketId}/settled-liquidations?limit=20`,
    { headers: { 'X-API-Key': 'trusset_your_key_here' } }
  );
  const { data } = await res.json();
  const toReopen = data.settledLiquidations.filter((l) => l.reopenable === true);
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "settledLiquidations": [
        {
          "id": "secliq_006",
          "liquidationId": "16",
          "marketLiquidationId": "16",
          "marketId": "clx_secmarket_001",
          "loanId": "11",
          "marketAddress": "0x70a0e25c7b768b87e658348b3b577678a173e038",
          "collateralAmount": "90.0",
          "debtOwed": "8120.0",
          "tokenAddress": "0x9c41e7b2d05f38a61c4e0b7d93a2f15e68c3d7a4",
          "borrower": "0x4e1b2c93d07a5f68e3b9d15c02a7f4e6b8d31a90",
          "termRealization": false,
          "auctionId": null,
          "txHash": "0x3a7e19c4d2b85f60e1a94c37b8d02f6e5c13a9b47d80e2f5c6b19a3d74e08c21",
          "status": "SETTLED",
          "usdcProceeds": "0.0",
          "settledTxHash": null,
          "createdAt": "2026-07-02T14:05:12.000Z",
          "updatedAt": "2026-07-03T08:40:31.000Z",
          "settledAt": "2026-07-03T08:40:31.000Z",
          "routerAddress": "0x067a3feea46649adad8e31c33b3a4d8774b8d8cf",
          "collateralRemaining": "90.0",
          "proceedsCollected": "0.0",
          "routerSettled": true,
          "collateralStranded": true,
          "reopenable": true,
          "settledOn": "router"
        },
        {
          "id": "secliq_004",
          "liquidationId": "14",
          "marketLiquidationId": "14",
          "marketId": "clx_secmarket_001",
          "loanId": "7",
          "marketAddress": "0x70a0e25c7b768b87e658348b3b577678a173e038",
          "collateralAmount": "220.0",
          "debtOwed": "21159.2",
          "tokenAddress": "0x9c41e7b2d05f38a61c4e0b7d93a2f15e68c3d7a4",
          "borrower": "0xabc7f1093d5e26b804a1c3f78de025916b47c0d3",
          "termRealization": false,
          "auctionId": null,
          "txHash": "0x9f2c41d8b7e05a3164c2870fbd935e1a4c7802db6135ea9048f7c21b5d3ea41b",
          "status": "SETTLED",
          "usdcProceeds": "21400.0",
          "settledTxHash": "0x2d7c90e14b3a65f8d1e02c7b49f3a86e5d1c04b7f29e38a6c50d1f47b8e92a3c",
          "createdAt": "2026-06-14T09:12:00.000Z",
          "updatedAt": "2026-06-18T16:02:11.000Z",
          "settledAt": "2026-06-18T16:02:00.000Z",
          "routerAddress": "0x067a3feea46649adad8e31c33b3a4d8774b8d8cf",
          "collateralRemaining": "0.0",
          "proceedsCollected": "21400.0",
          "routerSettled": true,
          "collateralStranded": false,
          "reopenable": false,
          "settledOn": "router"
        }
      ],
      "totalCount": 2
    }
  }
  ```
</ResponseExample>

## Error Codes

| Code                | HTTP  | Cause                                    |
| ------------------- | ----- | ---------------------------------------- |
| `MISSING_MARKET_ID` | `400` | `marketId` is longer than 100 characters |
| `MARKET_NOT_FOUND`  | `404` | No market with this ID on your instance  |

A failed database read answers `200` with an empty list rather than an error.
