How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Bullish Custody API

Authenticated APIs for custody, [Custody Basic Examples](https://github.com/bullish-exchange/api-examples/blob/master/bullish/rest/custody_basics.py)Custody APIs have a limit of 40 requests per IP, per minute. This is combined across all endpoints of type **/wallets/***

Bullish Custody API is one of 32 APIs that Bullish publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Custody. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, authentication docs, rate-limit docs, and a changelog.

This API exposes 10 operations across 10 paths, and defines 53 schemas. It is described by OpenAPI 3.2.0, at version 1.0.0.

Requests are made against 7 base URLs: https://api.exchange.bullish.com/trading-api, https://registered.api.exchange.bullish.com/trading-api, https://prod.access.bullish.com/trading-api, https://api.bugbounty.bullish.com/trading-api, https://api.simnext.bullish-test.com/trading-api, https://registered.api.simnext.bullish-test.com/trading-api, https://simnext.access.bullish.com/trading-api.

10 operations 10 paths 53 schemas 1 DELETE7 GET2 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.0.0
Base URL
https://api.exchange.bullish.com/trading-api
Authentication
HTTP Bearer
Resource Areas
1

Authentication & Security 1

Bullish Custody API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (JWT) (jwtTokenAuth).

Paths & Operations 10

Across 10 paths, the API surfaces 10 operations — 1 DELETE, 7 GET, 2 POST. Each is listed below with its method, path, parameters, and response codes.

custody 10

Authenticated APIs for custody, [Custody Basic Examples](https://github.com/bullish-exchange/api-examples/blob/master/bullish/rest/custodybasics.py) Custody APIs have a limit of 4…

GET
/v1/wallets/transactions
Get Custody Transaction History
getCustodyTransactionHistory 2 params → 200429500
GET
/v1/wallets/limits/{symbol}
Get Withdrawal Limits for Symbol
getCustodyWithdrawalLimits 1 param → 200429500
GET
/v1/wallets/deposit-instructions/crypto/{symbol}
Get Deposit Instructions for Crypto
getCryptoDepositInstructions 1 param → 200429500
GET
/v1/wallets/withdrawal-instructions/crypto/{symbol}
Get Withdrawal Instructions for Crypto
getCryptoWithdrawalInstructions 3 params → 200429500
GET
/v1/wallets/deposit-instructions/fiat/{symbol}
Get Deposit Instructions for Fiat
getFiatDepositInstructions 1 param → 200429500
GET
/v1/wallets/withdrawal-instructions/fiat/{symbol}
Get Withdrawal Instructions for Fiat
getFiatWithdrawalInstructions 1 param → 200429500
POST
/v1/wallets/self-hosted/initiate
Initiate Self-Hosted Wallet Verification
custody-initiate-self-hosted-verification body → 200429500
GET
/v1/wallets/self-hosted/verification-attempts
Get a List of Self-Hosted Wallet Verification Attempts
custody-get-self-hosted-verifications 2 params → 200429500
DELETE
/v1/wallets/withdrawal-instructions/{destinationId}
Delete Existing Wallet Address
custody-delete-withdrawal-instructions 1 param → 200404429500
POST
/v1/wallets/withdrawal
Create Withdrawal
createCustodyWithdrawal 1 param body → 200429500

Schemas 53

The contract defines 53 schemas that model the data the API accepts and returns. The most detailed are CustodyCryptoWithdrawalInstructions (12 properties), CustodyHistory (10 properties), CustodyFiatWithdrawalInstructions (10 properties), CustodyGetSelfHostedVerificationResponse (10 properties). Each schema is shown below with its type and property counts.

CustodyWithdrawalLabel
string
descriptive label of destination provided by user
CustodySelfHostedInitiateRequest
object
6 properties 5 required
CustodyBankAccountNumber
string
bank account number
CustodyTransactionID
string
unique identifier for tracking a withdrawal during signing and in history
CustodyPhysicalBankAddress
string
physical location of bank
CustodySelfHostedVerificationStatus
string
The status for the self-hosted wallet verification attempt. - VERIFIED - Self-hosted wallet has been verified - PENDINGVERIFICATION - pending verification via…
CustodyLimits
object
3 properties
CustodyDestinationUserWalletType
string
The host type of the wallet. HOSTED wallet uses a custodial wallet service, SELFHOSTED wallet is a non-custodial wallet.
CustodyFiatSymbol
string
symbol representing fiat currency, e.g. USD, EUR
CustodyGetSelfHostedVerificationResponse
object
10 properties 9 required
Custody24HWithdrawalLimit
string
limit on amount of coin or token that can be withdrawn over a 24 hour period, in units of the symbol itself, not in smaller denominations (e.g. BTC not Satoshi…
CustodyFiatWithdrawalInstructions
object
10 properties
TimeStampAsString
string
unsigned 64 bit integer value which is the number of milliseconds since EPOCH expressed as string
CustodyBankRoutingCode
string
routing code of bank
CustodySelfHostedVerificationAmount
string
Bullish specified additional small deposit amount to add to the requestedDepositAmount for wallet verification.
CustodySelfHostedInitiateResponse
object
9 properties
CustodySelfHostedDepositMemo
string
The memo or destination tag of the Bullish trading account that the user should deposit to during a self hosted deposit attempt.
CustodyBankIntermediateDetails
object
3 properties
CustodyMinimumDepositAmount
string
the minimum deposit amount required for this symbol and network. Deposits under this amount will not be credited to your account
CustodyDestinationLocked
boolean
Whether this destination is currently in a withdrawal lock period. Addresses are locked upon whitelisting for a 24-hour security period.
CustodyDestinationID
string
destination id provided by bullish that uniquely identifies a whitelisted address or account
CustodyDirection
string
direction of transaction from API user's perspective, 'DEPOSIT' or 'WITHDRAWAL'
CustodyDestinationVaspName
string
The name of the hosting VASP of the wallet. This is only applicable for HOSTED wallets.
InstrumentId
string
custody identifier for instrument
CustodyWithdrawalMemo
string
memo or destination tag that will be used as a reference on transaction
CustodyWithdrawalFee
string
withdrawal fee charged in units of symbol, not in smaller denominations (e.g. BTC not Satoshi, ETH not Wei)
CustodyBankDetails
object
3 properties
CustodyLockExpiryDateTime
string
ISO 8601 Zulu timestamp of when the withdrawal lock period expires. Applies only when locked is true.
CustodyFiatDepositInstructions
object
7 properties
CustodyAvailableWithdrawalLimit
string
remaining limit on amount of coin or token that could be withdrawn now, in units of the symbol itself, not in smaller denominations (e.g. BTC not Satoshi, ETH…
DateTime
string
ISO 8601 with millisecond as string
CustodyNetworkAddress
string
an address on the given network
CustodyDestinationSigned
boolean
Whether this destination has been signed by the user. Some operations such as withdrawal requires the destination to be signed.
CustodyCryptoWithdrawalInstructions
object
12 properties 8 required
CustodyApiEcdsaWithdrawalRequest
object
4 properties 4 required
CustodyHistory
object
10 properties
CustodyQuantity
string
total quantity of symbol to withdraw including fee in units of symbol, not in smaller denominations (e.g. BTC not Satoshi, ETH not Wei) - quantity received wil…
CustodyTransactionStatus
string
one of 'PENDING', 'COMPLETE', 'CANCELLED', 'FAILED'
CustodySymbol
string
symbol representing coin or token, e.g. USDC, BTC, ETH, SHIB
CustodyTransactionHistoryID
string
unique identifier for tracking a deposit or withdrawal
CustodySelfHostedTotalDepositAmount
string
The actual amount that the user should deposit for wallet verification. It is the sum of requestedDepositAmount and verificationAmount.
CustodySelfHostedDepositAddress
string
The address of the Bullish trading account that the user should deposit to during a self hosted deposit attempt.
CustodyBankNetworkID
string
the fiat network, e.g. SWIFT, ABA or SEPA
CustodyDepositMemo
string
memo or destination tag used during deposit to help identify account to credit funds to
CustodyApiWithdrawalResponse
object
3 properties
CustodyApiEcdsaWithdrawalCommand
object
5 properties 5 required
CustodySelfHostedRequestedDepositAmount
string
User-requested amount for the deposit.
CustodyCryptoDepositInstructions
object
5 properties 3 required
CustodyCreatedAtDateTime
string
time of initial transaction
NetworkID
string
the network of the native coin or token, e.g. BTC, ETH, SOL
Authorizer
string
JWT authorizer you obtain along with the [JWT token](/rest/authenticationgenerate-a-jwt-token)
CustodyBankName
string
name of bank
CustodyTransactionDetails
object
3 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

bullish-custody-api-openapi.yml Raw ↑

Other APIs Bullish publishes across the network.

Bullish Deprecated Features and APIs
Bullish WebSocket Multi-Order Book API
Bullish WebSocket Anonymous Trades API
Bullish WebSocket Anonymous Ticks API
Bullish WebSocket Auction Feed API
Bullish WebSocket Index Data API
Bullish WebSocket Private Data API
Bullish FIX API
Bullish Aggregator API
Bullish Account Assets API
Bullish Amm Instructions API
Bullish Asset Data API
Where this information came from

This is an independent, third-party profile of Bullish Custody API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.