Open a ramp widget session
Creates a hosted widget session for a fiat ↔ crypto trade. Direction is inferred from from_asset/to_asset. The response carries a widget_url the client renders in a webview or iframe.
Pass idempotency_key to make this call safe to retry. Within 24 hours, the same key returns the original session (HTTP 208 Already Reported) instead of opening a new widget. Keys are scoped per x-juno-orgid and per authenticated user, so neither partners nor users within a single tenant can collide. Without a key, every call mints a new session.
Authorizations
JWT issued by Dynamic Labs or Privy. Sent in the x-juno-jwt header on every authenticated request.
Headers
Tenant org ID for multi-tenant auth
Controls how timestamp fields are serialized in JSON response bodies.
Default (header omitted or any other value): epoch milliseconds as integers.
iso8601: UTC ISO 8601 strings of the form YYYY-MM-DDTHH:MM:SSZ.
Example: with X-Timestamp-Format: iso8601, the field value 1704067200000 becomes "2024-01-01T00:00:00Z".
Affected fields (recursively, in dicts and arrays): any field whose name ends in _at, plus the literal field names timestamp, period_start, and period_end. All other fields are passed through unchanged.
Only iso8601 is recognized. Any other value (or omitting the header) yields the default epoch-ms representation; the server does not reject unknown values, so this is documented as an example rather than an enum to keep generated clients permissive.
"iso8601"
Body
Inputs for opening a hosted ramp widget session.
Direction (buy or sell) is inferred from which side is fiat. chain_id
always describes the crypto leg.
Amount of from_asset the user is selling. Must be greater than zero.
x > 0"100"
Asset.symbol value the user is paying with. Fiat ISO 4217 (e.g. USD, EUR) for buys, or a crypto symbol (e.g. USDC, ETH) for sells. See Supported values.
1"USD"
"EUR"
"USDC"
Asset.symbol value the user is receiving. Crypto symbol for buys, fiat ISO 4217 for sells.
1"USDC"
"ETH"
"USD"
EIP-155 chain id of the crypto leg.
1, 10, 137, 42161, 8453, 43114, 56, 1328, 1329 1
137
8453
Destination wallet address for the crypto leg of the transaction.
1User's country (ISO 3166-1 alpha-2). Filters quotes to providers live in that market.
US, CA, MX, BR, AR, CL, CO, PE, GB, DE, FR, IT, ES, NL, BE, IE, PT, AT, CH, SE, NO, DK, FI, PL, CZ, GR, SG, HK, JP, KR, AU, NZ, IN, TH, PH, MY, ID, AE, SA, IL, TR, ZA, NG Restrict the session to one rail. Omit to let the provider pick. See Supported values.
CARD, CREDIT_DEBIT_CARD, VISA, MASTERCARD, ACH, SEPA, BACS, BANK_TRANSFER, LOCAL_BANK_TRANSFER, LOCAL, PIX, MOBILE_WALLET, APPLE_PAY, GOOGLE_PAY, SAMSUNG_PAY Pin the session to a specific service provider (e.g. TRANSAK, STRIPE). Omit to let the provider router decide.
Caller-supplied key making this request safe to retry. When supplied, the same key submitted within 24 hours returns the original session (HTTP 208 Already Reported) without opening a new widget. Keys are scoped to the caller's x-juno-orgid and the authenticated user, so neither partners nor end-users within a single tenant can collide with each other. When omitted, every call mints a fresh session.
128"partner-retry-2026-05-07-12345"
Response
Successful Response
HAL-style hypermedia links for navigation and available actions.
A hosted ramp widget session.
Render widget_url in a webview or iframe to let the user complete the
trade. The session is single-use and tied to the authenticated user's
Meld customer record.