---
title: "Vault withdraw"
method: POST
path: "/markets/lending_vaults/withdraw"
tags: ["lending_vaults"]
---

# Vault withdraw

`POST /markets/lending_vaults/withdraw`

Withdraw funds from a target lending Vault. If any deposits remain, the previous stake account and reward schedule is deleted and a new one is created.

## Headers

- `Idempotent-Key` string, nullable

## Request body

- LendVaultWithdrawQueryParams
  - `amountPrincipal` integer, required
  - `maxAmountLp` integer, required
  - `vault` string, required
  - `withdrawAll` boolean, required
  - `withdrawOnly` boolean

## Response `200`

Serialized transaction and update stake account

- LendVaultWithdrawResponse
  - `preTransactions` VersionedTransactionReturn[] — Unstake-only transactions that must be executed before the main transaction when consolidating more positions than fit in a single transaction.
    - `message` string, required — serialized message
    - `signatures` VersionedTransactionSignature[], required — serialized signatures
      - `publicKey` string, required — serialized message
      - `signature` string, required — serialized signatures
  - `stakeAccount` string, required
  - `transaction` VersionedTransactionReturn, required — versioned txn return
    - `message` string, required — serialized message
    - `signatures` VersionedTransactionSignature[], required — serialized signatures
      - `publicKey` string, required — serialized message
      - `signature` string, required — serialized signatures

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `409` — Idempotency-Key reused with a different request body
- `500` — Internal server error

---

[API](https://skmtc.dev/loopscale/apis/loopscale-api.md) · [All operations](https://skmtc.dev/loopscale/apis/loopscale-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/loopscale/loopscale-api/revisions/531f64dbe09c/schema)
