Liquidations
Get Pending Liquidations
List liquidations awaiting settlement
GET
/
lending-external-securities-v2
/
api
/
liquidations
/
{marketId}
/
pending-liquidations
curl "https://api.trusset.org/lending-external-securities-v2/api/liquidations/{marketId}/pending-liquidations" \
-H "X-API-Key: trusset_your_key_here"
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/liquidations/${marketId}/pending-liquidations`,
{ headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await res.json();
const overdue = data.pendingLiquidations.filter(l => {
const t = l.onChainData?.timestamp;
return t && Date.now() / 1000 - t > 7 * 86400;
});
{
"success": true,
"data": {
"pendingLiquidations": [
{
"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": "PENDING",
"usdcProceeds": null,
"settledTxHash": null,
"realization": "ROUTER",
"buyer": null,
"createdAt": "2026-06-14T09:12:00.000Z",
"updatedAt": "2026-06-14T09:12:04.000Z",
"settledAt": null,
"onChainData": {
"routerAddress": "0x067a3feea46649adad8e31c33b3a4d8774b8d8cf",
"token": "0x9c41e7b2d05f38a61c4e0b7d93a2f15e68c3d7a4",
"collateralAmount": "220.0",
"collateralRemaining": "120.0",
"debtOwed": "21159.2",
"proceedsCollected": "9800.0",
"borrower": "0xabc7f1093d5e26b804a1c3f78de025916b47c0d3",
"lendingMarket": "0x70A0E25c7b768B87e658348B3b577678A173E038",
"timestamp": 1781428320,
"settled": false,
"marketLiquidationId": "14"
},
"proceedsHeld": "0.0",
"proceedsForwarded": null,
"heldOnMarket": false,
"marketSettled": false
}
],
"totalCount": 1,
"liquidationRouterAddress": "0x067a3feea46649adad8e31c33b3a4d8774b8d8cf"
}
}
Returns the market’s liquidation records that are neither settled nor written off. Most are router records whose collateral sits at the router awaiting the manual settlement workflow. A record whose Dutch auction is still open appears too, under a
The filter above reads the router’s clock, which can start later than the market’s for an auction remainder. The
A failed database read answers
venue- ID, until the auction sells out or hands its remainder to the router.
Before reading, the endpoint reconciles against the chain. It adopts any record on the market’s router the backend has not recorded, so a liquidation triggered outside this API still appears here once its collateral reaches the router. It also closes records the router has settled since, including atomic sales, when the confirm call for that settlement never arrived.
Path Parameters
string
required
The market’s record ID, as
id on List Markets, not its contract address. See Market IDs. At most 100 characters.Response Fields
object
Show child attributes
Show child attributes
integer
Number of records returned. Capped at 100, newest first.
string
Router holding the collateral for this market, or
null when it could not be resolved.array
Show child attributes
Show child attributes
string
Router liquidation ID. Pass this to every settlement endpoint. A record whose auction is still open reads
venue-{marketLiquidationId}, and the router endpoints refuse it with LIQUIDATION_ON_VENUE.string
The market’s own record ID. The write-off in Handle Liquidation Timeout acts on this record.
string
Market ID.
string
Loan that was liquidated.
string
Market contract.
string
Collateral seized at liquidation.
string
Debt the proceeds must cover.
string
Collateral token.
string
Borrower whose loan was liquidated.
boolean
true when the loan was realized on its expired term rather than on its health.string
The Dutch auction that sold or is selling this collateral, or
null on the router path.string
Liquidation transaction hash. Reads
chain-adopted when the record was reconstructed from chain state and the original transaction could not be located.string
PENDING for every record in this list.string
How the collateral is being realized:
ROUTER for a record on the router, VENUE while its auction runs. null when the record does not state it.string
null, except on a record the router administrator reopened after a settlement, where it keeps that settlement’s hash.string
ISO 8601 timestamp of the seizure. Adopted records are backdated to the time the router received the collateral.
object
Live router state, or
null when the read failed and on every venue- record.string
Cash the auction venue forwarded for this record that the market holds until the record settles, in borrow asset units.
null when unknown.string
Cash the auction venue has forwarded for this record’s auction in total.
null without an auction.boolean
true when proceedsHeld is above zero. Such a record can settle at zero proceeds over the held cash.boolean
Whether the market has already settled or written off its own record.
null when unknown.On-Chain Data
onChainData is the authoritative view of what the router still holds.
object
Show child attributes
Show child attributes
string
Collateral originally received.
string
Collateral still held. Decreases as it is withdrawn for sale.
string
Debt to be covered, in borrow asset units.
string
Proceeds deposited so far, in borrow asset units. Increases with each reported partial sale.
string
Borrower address.
string
Contract that delivered the collateral: the market, or its auction venue for the remainder of an expired auction.
string
Collateral token.
string
Router holding the position.
integer
Unix seconds the router received the collateral. This is when the 7 day write-off clock starts. For the remainder of an expired auction the clock started earlier, at the seizure into the auction.
boolean
Whether the router considers the liquidation closed.
string
Market-local ID.
A router query for a liquidation ID that does not exist returns a zero-filled object rather than null. Treat
onChainData.timestamp === 0 as “not found”, not as a valid timestamp.Track progress with
collateralRemaining and proceedsCollected rather than status. Withdrawing collateral for sale and reporting partial sales both leave status at PENDING. Only settlement, a router close or a write-off changes it.curl "https://api.trusset.org/lending-external-securities-v2/api/liquidations/{marketId}/pending-liquidations" \
-H "X-API-Key: trusset_your_key_here"
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/liquidations/${marketId}/pending-liquidations`,
{ headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await res.json();
const overdue = data.pendingLiquidations.filter(l => {
const t = l.onChainData?.timestamp;
return t && Date.now() / 1000 - t > 7 * 86400;
});
eligibleAt that Handle Liquidation Timeout returns when it refuses is exact.
{
"success": true,
"data": {
"pendingLiquidations": [
{
"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": "PENDING",
"usdcProceeds": null,
"settledTxHash": null,
"realization": "ROUTER",
"buyer": null,
"createdAt": "2026-06-14T09:12:00.000Z",
"updatedAt": "2026-06-14T09:12:04.000Z",
"settledAt": null,
"onChainData": {
"routerAddress": "0x067a3feea46649adad8e31c33b3a4d8774b8d8cf",
"token": "0x9c41e7b2d05f38a61c4e0b7d93a2f15e68c3d7a4",
"collateralAmount": "220.0",
"collateralRemaining": "120.0",
"debtOwed": "21159.2",
"proceedsCollected": "9800.0",
"borrower": "0xabc7f1093d5e26b804a1c3f78de025916b47c0d3",
"lendingMarket": "0x70A0E25c7b768B87e658348B3b577678A173E038",
"timestamp": 1781428320,
"settled": false,
"marketLiquidationId": "14"
},
"proceedsHeld": "0.0",
"proceedsForwarded": null,
"heldOnMarket": false,
"marketSettled": false
}
],
"totalCount": 1,
"liquidationRouterAddress": "0x067a3feea46649adad8e31c33b3a4d8774b8d8cf"
}
}
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 |
200 with an empty list rather than an error.⌘I
curl "https://api.trusset.org/lending-external-securities-v2/api/liquidations/{marketId}/pending-liquidations" \
-H "X-API-Key: trusset_your_key_here"
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/liquidations/${marketId}/pending-liquidations`,
{ headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await res.json();
const overdue = data.pendingLiquidations.filter(l => {
const t = l.onChainData?.timestamp;
return t && Date.now() / 1000 - t > 7 * 86400;
});
{
"success": true,
"data": {
"pendingLiquidations": [
{
"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": "PENDING",
"usdcProceeds": null,
"settledTxHash": null,
"realization": "ROUTER",
"buyer": null,
"createdAt": "2026-06-14T09:12:00.000Z",
"updatedAt": "2026-06-14T09:12:04.000Z",
"settledAt": null,
"onChainData": {
"routerAddress": "0x067a3feea46649adad8e31c33b3a4d8774b8d8cf",
"token": "0x9c41e7b2d05f38a61c4e0b7d93a2f15e68c3d7a4",
"collateralAmount": "220.0",
"collateralRemaining": "120.0",
"debtOwed": "21159.2",
"proceedsCollected": "9800.0",
"borrower": "0xabc7f1093d5e26b804a1c3f78de025916b47c0d3",
"lendingMarket": "0x70A0E25c7b768B87e658348B3b577678A173E038",
"timestamp": 1781428320,
"settled": false,
"marketLiquidationId": "14"
},
"proceedsHeld": "0.0",
"proceedsForwarded": null,
"heldOnMarket": false,
"marketSettled": false
}
],
"totalCount": 1,
"liquidationRouterAddress": "0x067a3feea46649adad8e31c33b3a4d8774b8d8cf"
}
}
