Skip to main content
cesto.fees.get returns the deposit breakdown for a basket: what actually gets invested, the SOL gas-reserve top-up, and the platform fee — plus slippage and gas estimates. Use it to show a user exactly what their deposit buys before they sign anything.
Public — no API key required, and available in the browser client. You can price a basket on a landing page before the visitor has connected a wallet.

Units

All USDC amounts are micro-USDC integers (1 USDC = 1,000,000). Percentages are plain percents (0.25 means 0.25%), and rates in basis points are bps (10 means 0.1%).

Parameters

string
required
Basket to price — product id or slug.
number | bigint
Investment amount in micro-USDC. Must be a non-negative integer. Omit (or pass 0) for an amount-independent preview.
number
Boosted-open multiplier. Integer ≥ 2; omit for the spot behaviour.

Response

FundingInfo
Funding requirements for an open: breakdown, totalRequired, minRequiredInput, estimatedSlippage, estimatedGasUsd, and the Jupiter fee estimates.
FundingInfo | null
Always null on this route — see below.
FundingInfo | null
Always null on this route — see below.
PlatformFee | null
The active platform-fee configuration, or null when none is set.
number
Estimated slippage for an open, as a percent.
number
Effective Jupiter Ultra platform-fee rate across the product’s swap legs, in bps. Informational — Jupiter deducts it from swap output, it is never charged on top.
This route always answers anonymously, even with a key. open is populated, close and rebalance are always null, and every user-specific field — embedded wallet balances, deficit, totalLockedUsdc — is zero. That’s a property of the endpoint, not of the key you used: it computes what an investment costs, not what a particular user can afford.

Reading the breakdown

The deposit splits three ways, and only the first reaches the basket: refundableRentUsd is part of the gas estimate but recoverable — it’s rent-exempt reserve for token accounts, returned when those accounts close. Don’t present it as a fee. If the input can’t cover the operation even after the buffer, open.rejection is present with code INPUT_BELOW_MIN_AFTER_BUFFER — surface minRequiredInput to the user rather than letting the open fail later.