---
title: "Preview opening a leveraged position (deterministic, no wallet)"
method: POST
path: "/v1/partner/leverage/simulate"
tags: ["Partner"]
---

# Preview opening a leveraged position (deterministic, no wallet)

`POST /v1/partner/leverage/simulate`

## Request

- Base URL: `https://api.spiralstake.xyz`
- URL: `https://api.spiralstake.xyz/v1/partner/leverage/simulate`
- Auth: HTTP bearer

## Request body

- object
  - `strategyId` string, required: Morpho market id (from /v1/strategies).
  - `payToken` string, required: Token to pay in. Collateral (direct) or any token (zapped). ETH = zero address.
  - `amount` string, required: Amount of payToken in human units, e.g. '10000'.
  - `leverage` number: Target leverage (e.g. 3). Provide this OR desiredLtv.
  - `desiredLtv` string: Target LTV percent (e.g. '66.67'). Provide this OR leverage.
  - `slippage` number: Ratio, default 0.005, capped at 0.01.
  - `chainId` 1 | 4663

## Response `200`

Position preview

- object
  - `path` string
  - `isDirect` boolean
  - `isReallocate` boolean
  - `positionPreview` object
    - `leverage` string
    - `requestedLtv` string
    - `effectiveLtv` string
    - `amountLeveragedCollateral` string
    - `expectedLeverageApy` string
    - `priceImpactPct` string
    - `swapSource` 'KyberSwap' | 'OpenOcean' | 'Pendle'
  - `amountFlashLoan` string
  - `minTokenOut` string
  - `reallocationFeeWei` string, nullable
  - `slippage` number
  - `note` string

## Other responses

- `400`: Invalid input
- `401`: Missing/invalid API key
- `429`: Rate limited
- `503`: Transient (stale data / no route / RPC) — retry

---

[API](https://skmtc.dev/spiralstake/apis/spiral-stake-read-api-v1.md) · [All operations](https://skmtc.dev/spiralstake/apis/spiral-stake-read-api-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/spiralstake/apis/spiral-stake-read-api-v1/revisions/e58af20cd747?raw)
