Skip to main content
POST
Intra Account Transfer

Authorizations

KALSHI-ACCESS-KEY
string
header
required

Your API key ID

KALSHI-ACCESS-SIGNATURE
string
header
required

Base64 signature of the pre-sign text (timestamp + method + path) made with the API key's algorithm - RSA-PSS with SHA-256 for RSA keys, Ed25519 for Ed25519 keys

KALSHI-ACCESS-TIMESTAMP
string
header
required

Request timestamp in milliseconds

Body

application/json
source
enum<string>
required

The source exchange instance

Available options:
event_contract,
margined
destination
enum<string>
required

The destination exchange instance

Available options:
event_contract,
margined
amount
integer<int64>
required

The amount to transfer in centicents

client_transfer_id
string<uuid>

Client ID for duplicate prevention. Reuse only to retry the same request: if a transfer from the same source exchange instance and shard was already accepted with this ID, the request returns 409 and creates no new transfer. The returned transfer_id is always generated by Kalshi. Only supported for primary accounts. Transfers involving numbered subaccounts reject this field. If omitted, each request creates a new transfer.

source_exchange_shard
integer
default:0

Source exchange shard index (default 0)

Required range: 0 <= x <= 100
destination_exchange_shard
integer
default:0

Destination exchange shard index (default 0)

Required range: 0 <= x <= 100
source_subaccount
integer
default:0

Source subaccount number (default 0 for the primary account). Only supported for event contract to event contract transfers.

destination_subaccount
integer
default:0

Destination subaccount number (default 0 for the primary account). Only supported for event contract to event contract transfers.

Response

Transfer request accepted. The transfer is processed asynchronously.

transfer_id
string
required

The ID of the transfer that was created