TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/sieblyio/kraken-api/llms.txt
Use this file to discover all available pages before exploring further.
PartnerClient provides access to Kraken’s white-label embedded finance APIs, enabling partners to build full-featured crypto products under their own brand. It covers the Embed API (embed.kraken.com) for user onboarding, portfolio management, trading quotes, earn products, and custom orders, as well as the Ramp API for fiat-to-crypto checkout flows. All requests are authenticated with partner-level API credentials and act on behalf of users identified by their IIBAN (Internet International Bank Account Number).
Partner API access requires a partner agreement with Kraken. Contact Kraken to apply. Your partner API key and secret are separate from standard Spot or Institutional credentials.
Constructor
User Management
createEmbedUser
Create a new user in the Kraken embedded finance system. Returns the Kraken-assigned IIBAN for the user, which is used as the user parameter in all subsequent calls.
PartnerCreateUserResponse — { result: { user: { iiban: string } } }
User’s email address.
Your system’s unique identifier for this user.
Version number of the Terms of Service accepted by the user.
{ first_name: string, middle_name?: string, last_name: string }Date of birth in
YYYY-MM-DD format.Residential address:
{ line1, line2?, city, postal_code, province?, country } (ISO 3166-1 alpha-2 country code).Phone number in E.164 format (e.g.
+14155552671).Array of ISO 3166-1 alpha-2 country codes.
One of:
agriculture, business_management, computers_and_it, construction, education, finance, government, healthcare, hospitality, manufacturing, marketing, media, other, science, self_employed, student, transportation, unemployed.Optional tax IDs:
[{ id: string, issuing_country: string }].ISO 639-1 language code (e.g.
en, de).getEmbedUser
Retrieve profile and status information for a previously created user.
PartnerGetUserResponse — includes user, external_id?, user_type, status, created_at.
updateEmbedUser
Update an existing user’s profile details such as address, phone, name, or occupation.
PartnerUpdateUserResponse — { result?: 'success' }
The user’s IIBAN.
Updated phone in E.164 format.
Updated residential address.
Updated occupation.
submitEmbedVerification
Submit a KYC identity verification for a user, including document images and metadata from your verification provider. Uses multipart/form-data internally.
PartnerSubmitVerificationResponse — { result?: { verification_id: string } }
The user’s IIBAN.
Verification type:
identity_document.Document metadata including
identity (name + DOB), document_type (passport, drivers_license, id_card, residence_card, special_permanent_residence_card), document_number, issuing_country, and optional nationality.Name of the KYC verification provider (e.g.
Onfido).ISO 8601 datetime when verification was completed.
Binary file for the front side of the identity document.
Binary file for the back side of the identity document.
Portfolio
getEmbedPortfolioSummary
Get the overall portfolio summary for a user: total value, available balance, open orders value, and optional current-day P&L.
PartnerGetPortfolioSummaryResponse — { result: { timestamp, currency, portfolio_value, withheld_value, open_orders, available_balance, lots_upnl?, cost_basis?, current_day_pnl? } }
User IIBAN.
Quote asset for valuation (default
USD).getEmbedPortfolioHistory
Retrieve a user’s portfolio value over time, with optional asset-level breakdown and P&L.
User IIBAN.
Start date in
YYYY-MM-DD format.End date in
YYYY-MM-DD format.Data point resolution in days (default
1).Include per-asset breakdown for specific assets.
Include total profit and loss figures.
listEmbedPortfolioDetails
List all assets currently held in a user’s portfolio with per-asset balance and valuation.
User IIBAN.
Quote asset for valuation (default
USD).listEmbedPortfolioTransactions
List a user’s trade and transaction history with optional filtering by type, asset, status, and date range.
User IIBAN.
Filter by type:
simple_order, simple_order_failed, earn_reward.Filter by status:
no_status, unspecified, in_progress, successful, failed.Filter by asset names (max 16 chars each).
Start of date range (ISO 8601).
End of date range (ISO 8601).
Pagination cursor from
next_cursor.Number of transactions per page.
listEmbedFundingTransactions
List funding (deposit and withdrawal) transactions at the master account level.
Filter by
withdrawal or deposit.Number of results per page (1–500, default 25).
Pagination cursor.
withdrawEmbedFunds
Initiate a withdrawal from the master account to a pre-configured withdrawal key.
PartnerWithdrawFundsResponse — { result?: { reference_id: string } }
Asset to withdraw (e.g.
BTC, USD). Must be 3–16 characters.Pre-configured withdrawal key.
Amount to withdraw as a decimal string.
Quotes & Trading
requestEmbedQuote
Request a firm, executable price quote for a currency exchange on behalf of a user. The quote expires after a short window and can be executed with executeEmbedQuote.
PartnerRequestQuoteResponse — includes quote_id, type, status, expires, spend, receive, unit_price.
User IIBAN on whose behalf the quote is requested.
Quote type:
receive (specify how much to receive) or spend (specify how much to spend).Amount specification:
{ asset_class?: 'currency', asset: string, amount: string }.Quote (counter) asset:
{ asset: string }.Partner fee in basis points (e.g.
"50" for 0.5%).Spread in basis points.
requestEmbedProspectiveQuote
Request a prospective (indicative, non-binding) quote to preview pricing and fees before requesting a firm quote. Does not lock liquidity.
PartnerRequestProspectiveQuoteResponse — { result?: { type, spend, receive, unit_price, quoted_spend?, quoted_receive?, quoted_unit_price? } }
User IIBAN.
Trade action:
{ type: 'receive' | 'spend', amount: { asset, amount }, quote: { asset, fee_bps, spread_bps } }.Optional display currency for quoted amounts.
getEmbedQuote
Retrieve the current status of a previously requested quote.
The quote ID returned by
requestEmbedQuote.User IIBAN.
getEmbedQuoteLimits
Retrieve the minimum, maximum, and precision constraints for a specific asset pair and trade direction. Use this to validate user input before requesting a quote.
PartnerGetQuoteLimitsResponse — { result?: { asset, minimum, maximum, precision, minimum_tradable_amount?, minimum_in_display?, maximum_in_display? } }
User IIBAN (14–42 characters).
Base asset of the pair (e.g.
BTC).Quote asset of the pair (e.g.
USD).Direction:
receive or spend.executeEmbedQuote
Execute a firm quote that was previously obtained from requestEmbedQuote. The trade is placed at the quoted price.
PartnerExecuteQuoteResponse — { result?: { quote_id, status, transaction_id? } }
The firm quote ID to execute.
User IIBAN.
Earn
getEmbedEarnSummary
Retrieve a user’s Earn summary including total allocated amounts, rewards earned (all-time), auto-earn status, and upcoming rewards.
PartnerGetEarnSummaryResponse — includes auto_earn_eligible, auto_earn_enabled, auto_earn_last_changed?, payout_period, total_allocated_converted, total_rewarded_converted_true_rates, num_earning_assets, upcoming_rewards.
User IIBAN.
Currency for converted value display (max 16 chars).
listEmbedEarnAssets
List assets eligible for Earn products. Optionally pass a user to include the user’s active allocations in the response.
Filter to specific assets (max 16 chars each).
IIBAN of a user — if provided, the response includes that user’s active allocations.
Required when
user is provided. Currency for converted values.toggleEmbedAutoEarn
Enable or disable Auto-Earn for a user. When enabled, idle balances are automatically allocated to Earn strategies. This is an async operation — check the result with getEmbedEarnSummary.
User IIBAN.
true to enable Auto-Earn, false to disable.Custom Orders
Custom orders are price-triggered conditional trades — e.g. “buy 0.01 BTC when price drops to $X”. They persist in the system until triggered, completed, or cancelled.createEmbedCustomOrder
Submit a price-triggered custom order for a user.
PartnerCreateCustomOrderResponse — { result?: { order: PartnerCustomOrder } }
User IIBAN (14–42 characters).
Price trigger:
{ type: 'price', base_asset, quote_asset, target_price, condition: 'gte' | 'lte' }.Trade to execute when triggered:
{ type: 'receive' | 'spend', amount: { asset, amount }, quote: { asset, fee_bps, spread_bps } }.Human-readable name for the order.
getEmbedCustomOrder
Retrieve a single custom order by its ID.
User IIBAN.
The custom order ID.
listEmbedCustomOrders
List custom orders for a user, with optional status filtering and cursor-based pagination.
User IIBAN.
Filter by
active, cancelled, or completed.Pagination cursor from
next_cursor.cancelEmbedCustomOrder
Cancel a custom order that has not yet been triggered or completed.
User IIBAN.
The custom order ID to cancel.
Settlement Reports
getEmbedSettlementReport
Retrieve a specific settlement report and get a secure download URL for the file.
id, date, type, size, name, download_url, expires_at.
Settlement report ID.
listEmbedSettlementReports
Retrieve a paginated list of settlement reports, optionally filtered by date range and report type.
RFC 3339 datetime filter for the earliest report date.
RFC 3339 datetime filter for the latest report date.
Filter by report type:
trades, transfers, or earn_rewards.Results per page (1–100, default 20).
Page number (≥1, default 1).
Assets & Rates
getEmbedAsset
Get detailed information about a specific asset including market data and platform status.
Asset name (e.g.
BTC, ETH).Quote currency for pricing (default
USD).listEmbedAssets
List all assets available on the embedded platform with optional filtering, sorting, and pagination.
Limit results to specific assets (max 100).
Return only tradable assets.
Sort order. Options include
trending, market_cap_rank, -market_cap_rank, symbol, -symbol, change_percent_24h, -change_percent_24h, and others.Assets per page (1–100).
Quote currency (default
USD).listEmbedAssetRates
Retrieve historical rate data (price over time) for a specific asset.
PartnerListAssetRatesResponse — { result: { rates: [{ timestamp, price }][], meta } }
Asset name (e.g.
ETH).Quote currency (default
USD).RFC 3339 start datetime.
RFC 3339 end datetime.
ISO 8601 duration interval (e.g.
PT15M, PT60M, P1D).Ramp
The Ramp API enables fiat-to-crypto and crypto-to-fiat conversions through a hosted checkout experience.getRampCheckoutUrl
Generate a hosted Ramp checkout URL for a specific transaction configuration. Present this URL to the end user to complete the purchase.
PartnerGetRampCheckoutUrlResponse — { result: { checkout_url: string, request_data: any } }
Fiat asset the user is paying with (e.g.
USD, EUR). Max 16 characters.Amount to spend in the fiat asset (decimal128).
Crypto asset the user will receive (e.g.
BTC). Max 16 characters.Payment method type (e.g.
card, bank_transfer).Crypto withdrawal method/network.
ISO 3166-1 alpha-2 country code (max 2 characters).
URL to redirect the user after checkout completion.
Your system’s user identifier (max 36 characters).
Your system’s transaction identifier (max 36 characters).
getRampLimits
Retrieve the combined minimum and maximum limits for a Ramp transaction configuration before presenting a quote to the user.
Fiat input asset.
Crypto output asset.
Payment method type.
Crypto withdrawal method.
getRampProspectiveQuote
Get an estimated (non-binding) quote for a Ramp transaction without creating a checkout session. Use this to preview the amounts before calling getRampCheckoutUrl.
PartnerGetRampProspectiveQuoteResponse — { result: { spend, receive, unit_price } }
Fiat input asset.
Amount the user is spending.
Crypto output asset.
Payment method type.
Crypto withdrawal method.
listRampBuyCryptoAssets
List all cryptocurrency assets available for Ramp buy transactions, including supported networks and withdrawal methods.
listRampCountries
List countries and regions where Ramp is available. Availability may be scoped to specific states or provinces based on regulation.
listRampFiatCurrencies
List fiat currencies supported for funding Ramp transactions.
listRampPaymentMethods
List fiat payment methods (e.g. card, bank_transfer) supported for Ramp deposits.
Full Integration Examples
- User Onboarding & First Trade
- Earn Flow
- Ramp Checkout