All methods on this page interact with private, authenticated endpoints of the Kraken Futures API. You must initialiseDocumentation 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.
DerivativesClient with a valid API key and secret. The client handles request signing automatically.
Kraken Futures API keys are separate from Spot API keys. Generate them from the Futures section of your Kraken account settings.
Account State
getAccounts()
Returns key information about all your Futures accounts — cash accounts, single-collateral margin accounts, and the multi-collateral flex account. Includes balances, margin requirements, margin trigger estimates, available funds, PnL of open positions, and portfolio value.
- HTTP method:
GET - Endpoint:
derivatives/api/v3/accounts - Auth required: Yes
Promise<DerivativesAPISuccessResponse<{ accounts: FuturesAccounts }>>
The FuturesAccounts object is a keyed map where each entry is one of:
FuturesCashAccount—type: 'cashAccount', withbalancesmapFuturesFlexAccount—type: 'multiCollateralMarginAccount', full margin breakdownFuturesMarginAccount— single-collateral account withauxiliary,marginRequirements, andtriggerEstimates
checkApiKeyV3()
Verifies your API key and returns its full details — access level, account UID, permissions, and any IP allow-list.
- HTTP method:
GET - Endpoint:
api/auth/v1/api-keys/v3/check - Auth required: Yes
Promise<FuturesApiKeyV3Check>
getNotifications()
Returns the platform’s current active notifications — scheduled maintenance, new features, market events, and more.
- HTTP method:
GET - Endpoint:
derivatives/api/v3/notifications - Auth required: Yes
Promise<DerivativesAPISuccessResponse<{ notifications: FuturesNotification[] }>>
Each FuturesNotification includes:
note— the notification messagepriority—low,medium, orhightype—new_feature,bug_fix,settlement,general,maintenance, ormarketeffectiveTime— ISO 8601 timestampexpectedDowntimeMinutes— optional downtime duration for maintenance events
getAccountMarketShare()
Returns your account’s market share, volumes, and accrued rebates in contracts configured for rebates.
- HTTP method:
GET - Endpoint:
api/stats/v1/rebates/self-market-share - Auth required: Yes
Promise<FuturesMarketShare>
Data may not be immediately available. In those cases the API returns HTTP 204, which the SDK surfaces as an empty response.
getAccountLog(params?)
Lists account log entries, paged by timestamp or by entry ID. Covers all account activity: futures trades, liquidations, funding rate charges, conversions, transfers, settlements, and fees.
- HTTP method:
GET - Endpoint:
api/history/v3/account-log - Auth required: Yes
Return entries after this timestamp in milliseconds.
Return entries before this timestamp in milliseconds.
ID of the first entry to return (inclusive). Use for ID-based pagination.
ID of the last entry to return (inclusive). Use for ID-based pagination.
Sort order.
desc returns newest entries first.Filter by entry types, e.g.
['futures trade', 'transfer', 'funding rate change'].Maximum number of entries to return.
Include conversion detail fields in the response.
Promise<DerivativesAPISuccessResponse<FuturesAccountLog>>
- Recent activity
- Filtered by type
- Time range
getAccountLogCsv(params?)
Returns recent account log entries in CSV format, suitable for export.
- HTTP method:
GET - Endpoint:
api/history/v3/accountlogcsv - Auth required: Yes
Include conversion detail columns in the CSV output.
Promise<string>
Positions
getOpenPositions()
Returns the size and average entry price of all open positions across all futures contracts, including matured but not yet settled contracts.
- HTTP method:
GET - Endpoint:
derivatives/api/v3/openpositions - Auth required: Yes
Promise<DerivativesAPISuccessResponse<{ openPositions: FuturesOpenPosition[] }>>
Each FuturesOpenPosition includes:
| Field | Type | Description |
|---|---|---|
symbol | string | Futures contract symbol |
side | 'long' | 'short' | Position direction |
size | number | Position size in contracts |
price | number | Average entry price |
fillTime | string | ISO 8601 timestamp when position was opened |
unrealizedFunding | number | null | Accrued but unrealised funding |
pnlCurrency | string | null | PnL settlement currency |
getPositionPercentile()
Returns each open position’s percentile in the unwind queue — useful for understanding liquidation priority.
- HTTP method:
GET - Endpoint:
derivatives/api/v3/unwindqueue - Auth required: Yes
Promise<DerivativesAPISuccessResponse<{ queue: FuturesUnwindQueuePosition[] }>>
getPositionEvents(params?)
Lists position update events — opened, closed, increased, decreased, reversed, and settled positions — for your account. Supports rich filtering by event type and time range.
- HTTP method:
GET - Endpoint:
api/history/v3/positions - Auth required: Yes
Return events after this timestamp in milliseconds.
Return events before this timestamp in milliseconds.
Sort order.
Number of events to return per page.
Pagination token from a previous response.
Filter to a specific symbol, e.g.
PF_ETHUSD.Include position-opened events.
Include position-closed events.
Include position-increased events.
Include position-decreased events.
Include position-reversed events.
Include funding realisation events.
Include settlement events.
Promise<DerivativesAPISuccessResponse<FuturesHistoryResponse<FuturesPositionUpdateEvent>>>
Fills & Executions
getFills(params?)
Returns trade fill history for your account. Returns the 100 most recent fills, or fills before a specified time.
- HTTP method:
GET - Endpoint:
derivatives/api/v3/fills - Auth required: Yes
ISO 8601 timestamp. Returns the 100 most recent fills before this time.
Promise<DerivativesAPISuccessResponse<{ fills: FuturesFill[] }>>
Each FuturesFill includes:
| Field | Type | Description |
|---|---|---|
fill_id | string | Unique fill identifier |
order_id | string | Associated order ID |
symbol | string | Futures contract |
side | 'buy' | 'sell' | 'unknown' | Fill direction |
size | number | Fill size |
price | number | Fill price |
fillTime | string | ISO 8601 execution timestamp |
fillType | string | maker, taker, liquidation, assignor, assignee, etc. |
cliOrdId | string | null | Client order ID if provided |
- Recent fills
- Historical fills
getExecutionEvents(params?)
Lists detailed execution events for your account using the history API. Provides richer data than getFills() and supports full pagination.
- HTTP method:
GET - Endpoint:
api/history/v3/executions - Auth required: Yes
Return events after this timestamp in milliseconds.
Return events before this timestamp in milliseconds.
Sort order.
Number of events per page.
Pagination token from a previous response.
Filter by symbol, e.g.
PF_ETHUSD.Promise<DerivativesAPISuccessResponse<FuturesHistoryResponse<FuturesHistoryExecutionEvent>>>
Orders
getOpenOrders()
Returns all currently open orders across all futures contracts.
- HTTP method:
GET - Endpoint:
derivatives/api/v3/openorders - Auth required: Yes
Promise<DerivativesAPISuccessResponse<{ openOrders: FuturesOpenOrder[] }>>
Each FuturesOpenOrder includes:
| Field | Type | Description |
|---|---|---|
order_id | string | Unique order identifier |
cliOrdId | string? | Client-assigned order ID |
status | 'untouched' | 'partiallyFilled' | Fill status |
side | 'buy' | 'sell' | 'unknown' | Order direction |
orderType | 'lmt' | 'stop' | 'take_profit' | 'unknown' | Order type |
symbol | string | Futures contract |
limitPrice | number? | Limit price |
stopPrice | number? | Stop trigger price |
filledSize | number | Amount already filled |
unfilledSize | number? | Remaining unfilled quantity |
reduceOnly | boolean | Whether order is reduce-only |
receivedTime | string | ISO 8601 timestamp when order was received |
getOrderStatus(params)
Returns the current status of specific orders — open orders, or orders filled/cancelled within the last 5 seconds. Query by order ID array, client order ID array, or both.
- HTTP method:
POST - Endpoint:
derivatives/api/v3/orders/status - Auth required: Yes
Array of exchange-assigned order IDs to query.
Array of client-assigned order IDs to query.
Promise<DerivativesAPISuccessResponse<{ orders: FuturesOrderStatusInfo[] }>>
getOrderEvents(params?)
Lists the full order event history for your account — placements, cancellations, edits, rejections, and executions — with filtering by event type and symbol.
- HTTP method:
GET - Endpoint:
api/history/v3/orders - Auth required: Yes
Return events after this timestamp in milliseconds.
Return events before this timestamp in milliseconds.
Sort order.
Number of events per page.
Pagination token from a previous response.
Filter to a specific symbol.
Include order-opened events.
Include order-closed events.
Promise<DerivativesAPISuccessResponse<FuturesHistoryResponse<FuturesHistoryOrderEvent>>>
getTriggerEvents(params?)
Lists trigger order events — placements, cancellations, and rejections of stop, take-profit, and trailing-stop triggers.
- HTTP method:
GET - Endpoint:
api/history/v3/triggers - Auth required: Yes
getOrderEvents() (including opened, closed, since, before, count, sort, continuation_token, tradeable).
Returns: Promise<DerivativesAPISuccessResponse<FuturesHistoryResponse<FuturesHistoryTriggerEvent>>>
Preferences
getLeverageSettings()
Returns the configured leverage preferences for all futures contracts — showing max leverage per symbol and whether isolated or cross margin is in effect.
- HTTP method:
GET - Endpoint:
derivatives/api/v3/leveragepreferences - Auth required: Yes
Promise<DerivativesAPISuccessResponse<{ leveragePreferences: FuturesLeveragePreference[] }>>
setLeverageSettings(params)
Sets the leverage preference for a contract. Specifying a maxLeverage sets the contract to isolated margin mode with that leverage cap. Omitting maxLeverage sets it to cross margin.
- HTTP method:
PUT - Endpoint:
derivatives/api/v3/leveragepreferences - Auth required: Yes
The futures symbol to configure, e.g.
PF_ETHUSD.Maximum leverage multiplier. Omit for cross margin mode.
Promise<DerivativesAPISuccessResponse<Record<string, never>>>
getPnlPreferences()
Returns the PnL currency preferences per contract — the currency used to pay out realised gains on multi-collateral futures.
- HTTP method:
GET - Endpoint:
derivatives/api/v3/pnlpreferences - Auth required: Yes
Promise<DerivativesAPISuccessResponse<{ preferences: FuturesPnlPreference[] }>>
setPnlPreference(params)
Sets the PnL currency for a specific multi-collateral futures contract.
- HTTP method:
PUT - Endpoint:
derivatives/api/v3/pnlpreferences - Auth required: Yes
The multi-collateral futures symbol to configure.
The currency to use for PnL payouts, e.g.
USD, USDT, BTC, ETH.Promise<DerivativesAPISuccessResponse<Record<string, never>>>
Possible errors: 87 (contract not found), 88 (not a multi-collateral contract), 89 (currency not found), 90 (currency not enabled for multi-collateral), 41 (would cause liquidation).
getSelfTradeStrategy()
Returns the account-wide self-trade prevention strategy currently configured.
- HTTP method:
GET - Endpoint:
derivatives/api/v3/self-trade-strategy - Auth required: Yes
Promise<DerivativesAPISuccessResponse<{ strategy: FuturesSelfTradeStrategy }>>
updateSelfTradeStrategy(params)
Updates the account-wide self-trade prevention strategy.
- HTTP method:
PUT - Endpoint:
derivatives/api/v3/self-trade-strategy - Auth required: Yes
One of:
REJECT_TAKER, CANCEL_MAKER_SELF, CANCEL_MAKER_CHILD, CANCEL_MAKER_ANY.Promise<DerivativesAPISuccessResponse<{ strategy: FuturesSelfTradeStrategy }>>
| Strategy | Behaviour |
|---|---|
REJECT_TAKER | The incoming taker order is rejected if it would match a maker order from the same account |
CANCEL_MAKER_SELF | The resting maker order from the same API key is cancelled |
CANCEL_MAKER_CHILD | The resting maker from any key on the same account is cancelled |
CANCEL_MAKER_ANY | Any resting maker that would self-trade is cancelled |
Subaccounts
getSubaccounts()
Returns information about all subaccounts under the master account, including balances and UIDs.
- HTTP method:
GET - Endpoint:
derivatives/api/v3/subaccounts - Auth required: Yes
Promise<DerivativesAPISuccessResponse<FuturesSubaccountsInfo>>
getSubaccountTradingStatus(params)
Returns trading capability information for a specific subaccount.
- HTTP method:
GET - Endpoint:
derivatives/api/v3/subaccount/{subaccountUid}/trading-enabled - Auth required: Yes
The UID of the subaccount to query.
Promise<DerivativesAPISuccessResponse<{ tradingEnabled: boolean }>>
updateSubaccountTradingStatus(params)
Enables or disables trading capabilities for a specific subaccount.
- HTTP method:
PUT - Endpoint:
derivatives/api/v3/subaccount/{subaccountUid}/trading-enabled - Auth required: Yes
The UID of the subaccount to update.
true to enable trading, false to disable.Promise<DerivativesAPISuccessResponse<{ tradingEnabled: boolean }>>