Skip to main content


Withdraw assets from your Bybit account. You can make an off-chain transfer if the target wallet address is from Bybit. This means that no blockchain fee will be charged.

  • UTA does not have SPOT account
  • How do I know if my account is a UTA account? Call this endpoint, and if uta=1, then it is a UTA account.
  • Make sure you have whitelisted your wallet address here
  • Can query by the master UID's api key only


  • withdrawPercentageFee != 0: handlingFee = inputAmount / (1 - withdrawPercentageFee) * withdrawPercentageFee + withdrawFee
  • withdrawPercentageFee = 0: handlingFee = withdrawFee


  • withdrawPercentageFee != 0: handlingFee = withdrawFee + (inputAmount - withdrawFee) * withdrawPercentageFee
  • withdrawPercentageFee = 0: handlingFee = withdrawFee

HTTP Request

POST /v5/asset/withdraw/create

Request Parameters

  • forceChain=0 or 1: this field is required
  • forceChain=2: this field can be null
  • forceChain=0 or 1: fill wallet address, and make sure you add address in the address book first. Please note that the address is case sensitive, so use the exact same address added in address book
  • forceChain=2: fill Bybit UID, and it can only be another Bybit main account UID. Make sure you add UID in the address book first
  • Required if tag exists in the wallet address list.
  • Note: please do not set a tag/memo in the address book if the chain does not support tag
amounttruestringWithdraw amount
timestamptrueintegerCurrent timestamp (ms). Used for preventing from withdraw replay
forceChainfalseintegerWhether or not to force an on-chain withdrawal
  • 0(default): If the address is parsed out to be an internal address, then internal transfer
  • 1: Force the withdrawal to occur on-chain
  • 2: Use UID to withdraw
accountTypefalsestringSelect the wallet to be withdrawn from
  • SPOT:spot wallet (default)
  • FUND:Funding wallet
feeTypefalseintegerHandling fee option
  • 0(default): input amount is the actual amount received, so you have to calculate handling fee manually
  • 1: input amount is not the actual amount you received, the system will help to deduct the handling fee automatically
requestIdfalsestringCustomised ID, globally unique, it is used for idempotent verification
  • A combination of letters (case sensitive) and numbers, which can be pure letters or pure numbers and the length must be between 1 and 32 digits
  • beneficiaryfalseObjectTravel rule info, only required for kyc=KOR (korean) users
    > vaspEntityIdtruestringReceiver exchange entity Id. Please call this endpoint to get this ID
    > beneficiaryNamefalsestringReceiver exchange user KYC name, like John Wilson or Wilson John
  • Please refer to target exchange kyc name
  • When vaspEntityId="others", this field can be null
  • Response Parameters

    idstringWithdrawal ID

    Request Example

    POST /v5/asset/withdraw/create HTTP/1.1
    X-BAPI-TIMESTAMP: 1672196570254
    Content-Type: application/json

    "coin": "USDT",
    "chain": "ETH",
    "address": "0x99ced129603abc771c0dabe935c326ff6c86645d",
    "tag": null,
    "amount": "24",
    "timestamp": 1672196561407,
    "forceChain": 0,
    "accountType": "FUND"

    Response Example

    "retCode": 0,
    "retMsg": "success",
    "result": {
    "id": "10195"
    "retExtInfo": {},
    "time": 1672196571239