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%).

Your rate

The platform fee can be set per integration. When you call with your API key, the breakdown is priced at your rate — so what you preview is what you are charged. Called without a key (the browser client), it returns the standard rate instead. Your rate is agreed with Cesto and configured on our side; there is no API to change it, and nothing you send can affect it. If you have not agreed a specific rate, the standard one applies and you need do nothing.
Price with the key you will transact with. A preview fetched anonymously — or with a different integration’s key — can quote a different fee than the one you are billed.

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.