---
title: "Get user liquidation history"
method: GET
path: "/v1/positions/liquidations"
tags: ["Positions", "Positions"]
---

# Get user liquidation history

`GET /v1/positions/liquidations`

Retrieve a paginated history of Morpho Blue liquidation events for a borrower address, read from the indexed store. This is the only place a fully-liquidated (closed) position can be retrieved, since it no longer appears in GET /v1/positions. Ordered by most recent first.

## Query parameters

- `offset` number
- `limit` number
- `integrationId` string, required
- `network` 'ethereum' | 'ethereum-goerli' | 'ethereum-holesky' | 'ethereum-sepolia' | 'ethereum-hoodi' | 'arbitrum' | 'base' | 'base-sepolia' | 'gnosis' | 'optimism' | 'polygon' | 'polygon-amoy' | 'starknet' | 'zksync' | 'linea' | 'unichain' | 'monad-testnet' | 'monad' | 'robinhood' | 'robinhood-testnet' | 'avalanche-c' | 'avalanche-c-atomic' | 'avalanche-p' | 'binance' | 'celo' | 'fantom' | 'harmony' | 'moonriver' | 'okc' | 'viction' | 'core' | 'sonic' | 'plasma' | 'katana' | 'hyperevm' | 'tempo' | 'pharos' | 'agoric' | 'akash' | 'axelar' | 'band-protocol' | 'bitsong' | 'canto' | 'chihuahua' | 'comdex' | 'coreum' | 'cosmos' | 'crescent' | 'cronos' | 'cudos' | 'desmos' | 'dydx' | 'evmos' | 'fetch-ai' | 'gravity-bridge' | 'injective' | 'irisnet' | 'juno' | 'kava' | 'ki-network' | 'mars-protocol' | 'nym' | 'okex-chain' | 'onomy' | 'osmosis' | 'persistence' | 'quicksilver' | 'regen' | 'secret' | 'sentinel' | 'sommelier' | 'stafi' | 'stargaze' | 'stride' | 'teritori' | 'tgrade' | 'umee' | 'sei' | 'mantra' | 'celestia' | 'saga' | 'zetachain' | 'dymension' | 'humansai' | 'neutron' | 'polkadot' | 'kusama' | 'westend' | 'bittensor' | 'aptos' | 'binancebeacon' | 'cardano' | 'near' | 'solana' | 'solana-devnet' | 'stellar' | 'stellar-testnet' | 'sui' | 'tezos' | 'tron' | 'ton' | 'ton-testnet' | 'hyperliquid', required
- `address` string, required
- `marketId` string

## Response `200`

Paginated list of liquidation events

- object
  - `total` number, required — Total number of items available
  - `offset` number, required — Offset of the current page
  - `limit` number, required — Limit of the current page
  - `items` LiquidationDto[]
    - `id` string, required — Stable liquidation event id
    - `integrationId` string, required — Integration ID
    - `network` 'ethereum' | 'ethereum-goerli' | 'ethereum-holesky' | 'ethereum-sepolia' | 'ethereum-hoodi' | 'arbitrum' | 'base' | 'base-sepolia' | 'gnosis' | 'optimism' | 'polygon' | 'polygon-amoy' | 'starknet' | 'zksync' | 'linea' | 'unichain' | 'monad-testnet' | 'monad' | 'robinhood' | 'robinhood-testnet' | 'avalanche-c' | 'avalanche-c-atomic' | 'avalanche-p' | 'binance' | 'celo' | 'fantom' | 'harmony' | 'moonriver' | 'okc' | 'viction' | 'core' | 'sonic' | 'plasma' | 'katana' | 'hyperevm' | 'tempo' | 'pharos' | 'agoric' | 'akash' | 'axelar' | 'band-protocol' | 'bitsong' | 'canto' | 'chihuahua' | 'comdex' | 'coreum' | 'cosmos' | 'crescent' | 'cronos' | 'cudos' | 'desmos' | 'dydx' | 'evmos' | 'fetch-ai' | 'gravity-bridge' | 'injective' | 'irisnet' | 'juno' | 'kava' | 'ki-network' | 'mars-protocol' | 'nym' | 'okex-chain' | 'onomy' | 'osmosis' | 'persistence' | 'quicksilver' | 'regen' | 'secret' | 'sentinel' | 'sommelier' | 'stafi' | 'stargaze' | 'stride' | 'teritori' | 'tgrade' | 'umee' | 'sei' | 'mantra' | 'celestia' | 'saga' | 'zetachain' | 'dymension' | 'humansai' | 'neutron' | 'polkadot' | 'kusama' | 'westend' | 'bittensor' | 'aptos' | 'binancebeacon' | 'cardano' | 'near' | 'solana' | 'solana-devnet' | 'stellar' | 'stellar-testnet' | 'sui' | 'tezos' | 'tron' | 'ton' | 'ton-testnet' | 'hyperliquid', required — Network
    - `address` string, required — The liquidated borrower address
    - `marketId` string, required — Market ID
    - `type` 'partial' | 'full', nullable, required — Whether the borrower's entire debt in the market was cleared by this liquidation. `full` when no borrow shares remained afterwards (the debt was fully repaid or written off as bad debt); `partial` when debt remained. Null when closure could not be determined — e.g. a liquidation indexed before this was captured, or a failed position read.
    - `realizedBadDebt` boolean, required — Whether the liquidation realized bad debt: true when the seized collateral was exhausted while the position was still underwater, so the protocol socialized the residual loss to suppliers; false when the seized collateral covered the repaid debt. This is independent of `type` — a `full` liquidation can clear all debt with no bad debt.
    - `occurredAt` string, required — Block timestamp of the liquidation (ISO 8601)
    - `blockNumber` number, required — Block number of the liquidation
    - `transactionHash` string, required — Transaction hash of the liquidation
    - `transactionLink` string, required — Block explorer URL for the liquidation transaction
    - `liquidator` string, required — Address that performed the liquidation
    - `repaidDebt` RepaidDebtDto, required
      - `tokenAddress` string, required — Repaid debt token contract address (the market loan token)
      - `tokenSymbol` string, required — Repaid debt token symbol
      - `amount` string, required — Repaid debt in human-readable token units
      - `amountRaw` string, required — Repaid debt in raw token units
      - `amountUsd` string, nullable, required — Repaid debt value in USD, priced at the liquidation block. Null when no historical price is available.
      - `shares` string, required — Repaid debt in borrow shares
    - `seizedCollateral` SeizedCollateralDto, required
      - `tokenAddress` string, required — Seized collateral token contract address (the market collateral token)
      - `tokenSymbol` string, required — Seized collateral token symbol
      - `amount` string, required — Seized collateral in human-readable token units
      - `amountRaw` string, required — Seized collateral in raw token units
      - `amountUsd` string, nullable, required — Seized collateral value in USD, priced at the liquidation block. Null when no historical price is available.
    - `badDebt` BadDebtDto, required
      - `amountRaw` string, required — Bad debt in raw loan-token units. Non-zero only when the liquidation realized bad debt.
      - `amount` string, required — Bad debt in human-readable loan-token units
      - `amountUsd` string, nullable, required — Bad debt value in USD, priced at the liquidation block. Null when no historical price is available.
      - `shares` string, required — Bad debt in borrow shares
    - `lif` string, required — The market's liquidation incentive factor (LIF).

## Other responses

- `401` — Invalid or missing API key
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/yield/apis/yield-xyz-api.md) · [All operations](https://skmtc.net/yield/apis/yield-xyz-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/yield/yield-xyz-api/revisions/acfa80015ca5/schema)
