Your open orders (unified)
GET/v1/data/lending/orders
A user's own cancellable/pending orders on an order-book or auction lender, normalized into ONE shape:
MORPHO_MIDNIGHT_<id>→ signed maker limit offers (kind: 'maker-offer'), cancel via/v1/actions/midnight/cancel.TERM_FINANCE_<id>→ secondary repo-token listings (kind: 'listing') + primary sealed-bid auction submissions (kind: 'auction-offer'|'auction-bid'), managed via/v1/actions/term/*.
Each order carries a self-describing cancel action ({ method, path, query }) pointing at the exact endpoint, so one Cancel button works for every provider. aprPct is null while an auction price is still sealed. To TAKE (fill) other users' liquidity, use the standard lending actions + the unified ladder at /v1/data/lending/book.
Plain-text reference — GET /v1/data/lending/orders
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
marketUid | query | string | no | Market uid lender:chainId:asset (or pass lender + chainId). |
lender | query | string | no | MORPHO_MIDNIGHT_<id> or TERM_FINANCE_<id> lender key. See the LenderId schema for the full set of accepted values. |
chainId | query | string | no | Chain ID (aliases: chains, chain). See the ChainId schema for the full set of supported chains. |
account | query | string | yes | The order owner whose orders to return. |
Response 200
| Field | Type | Description |
|---|---|---|
success | True | |
data | object | A user's own orders across order-book / auction lenders. |
data.orders | object[] | |
data.orders[].id | string | Provider order id — the cancel target (Midnight offer root / Term listingId / auction submission id). |
data.orders[].lender | string | Protocol identifier. See the LenderId schema. |
data.orders[].chainId | string | EVM chain id, as a decimal string. See the ChainId schema. |
data.orders[].kind | maker-offer, listing, auction-offer, auction-bid | maker-offer (Midnight signed limit offer), listing (Term secondary repo-token listing), auction-offer/auction-bid (Term primary sealed-bid submission). |
data.orders[].side | lend, borrow | |
data.orders[].amount | string | Order size, loan-token base units. |
data.orders[].assets | number | Size decimal-scaled to loan-token assets, or null. |
data.orders[].aprPct | number | Annualized rate in percent, or null while sealed. |
data.orders[].status | open, sealed, revealed, filled, closed | open = cancellable now (maker offer / listing); sealed/revealed = auction lifecycle; filled = assigned at clearing; closed = complete or cancelled. |
data.orders[].filledAmount | string | Amount assigned at clearing (auctions), base units. |
data.orders[].maturity | number | Market/repo maturity, unix seconds. |
data.orders[].expiry | number | Maker-offer expiry, unix seconds (Midnight). |
data.orders[].revealTime | number | Auction reveal window opens, unix seconds (Term). |
data.orders[].auctionEndTime | number | Auction closes / clears, unix seconds (Term). |
data.orders[].cancel | object | Self-describing cancel/unlock action — omitted when not cancellable. Fetch path+query to build the cancel transaction. |
data.orders[].cancel.method | GET, POST | |
data.orders[].cancel.path | string | |
data.orders[].cancel.query | object | |
actions | null |
Example response
{
"success": true,
"data": {
"orders": [
{
"id": "string",
"lender": "TERM_FINANCE_0xABC\u2026",
"chainId": "1",
"kind": "maker-offer",
"side": "lend",
"amount": "1000000000000000000",
"assets": 1.0,
"aprPct": 1.0,
"status": "open",
"filledAmount": "1000000000000000000",
"maturity": 1.0,
"expiry": 1.0,
"revealTime": 1.0,
"auctionEndTime": 1.0,
"cancel": {
"method": "GET",
"path": "/v1/actions/term/unlock-offers",
"query": {}
}
}
]
}
}
Request
Responses
- 200
- 400
- 429
- 500
- 502
The account's own orders on the market
Validation error
Rate limited. Unauthenticated callers share a per-IP budget; send an x-api-key header to lift it. Retry with exponential backoff.
Unexpected server error. Safe to retry with backoff.
An upstream data source or protocol origin failed (error.code is ORIGIN_FAILED). error.details carries the per-origin status. This is also what a missing or malformed required parameter currently returns, rather than a 400.