Introduction
Get Your API Key and Secret Key
- Create your API Key and Secret Key from Bitronit API Management page in Bitronit dashboard.
- You can manage scope restrictions for your API Key afterwards.
- You can bind an IP for your API Key to increase your account security.
API Key Setup
- Endpoints will require an API Key.
- Once API key is created, it is recommended to set IP restrictions on the key for security reasons.
- Never share your API key/secret key to ANYONE.
API Key Restrictions
- To enable withdrawals and trading via the API, the API key restriction needs to be modified through the Bitronit UI.
General Info
General API Information
- The base endpoint is: https://bitronit.com/api/v2
- All endpoints successful requests returns either a JSON object or array.
- There are
PUBLIC
andSIGNED
endpoints. PUBLIC
endpoints don't require Authentication and Signature Headers.SIGNED
endpoints require Authentication and Signature Headers.
Error response:
{
"error": "Not Found",
"message": "IBAN_NOT_FOUND",
"path": "/users/me/withdrawals/fiat",
"requestId": "7ecc8c03-36054",
"status": 404,
"timestamp": "2021-12-15T15:35:20.603+03:00"
}
Error Codes and Messages
- If there is an error, the API will return an error with a message of the reason.
General Information on Endpoints
- For
GET
endpoints, parameters must be sent as a query string. - For
POST
,PUT
, andDELETE
endpoints, the parameters may be sent as a query string or in the request body. - Parameters may be sent in any order.
Limits
IP Limits
- Users can have at most 30 API-keys.
- An API-key can have at most 4 IP restrictions.
- IP's should be in public range. Private ranges are not allowed.
- The limits on the API are based on the IPs, not the API keys.
Rate Limits
- The Bitronit API is rate limited to prevent abuse that would degrade our ability to maintain consistent API performance for all users.
- By default, every user has a 20000 total hourly cost capacity. Some API requests cost more than the others, users can find the cost of each api request in the documentation for that request.
- When request limit exceeds, will be returned a 429.
- Rate Limit Cost : Rate limit cost refers to the resources consumed by each request.
- Remaining-Token: The remaining-token header indicates the number of remaining rate limit available.
Retry-After: When you receive 429 (Too Many Requests) response, this indicates how long you have to wait before making a new request. This information is returned from the header.
- Example: 'Retry-After': '60' This means that you need to wait 60 seconds to make a new request.
Authentication
For
SIGNED
requests, the following headers must be sent with the request:Authorization
: Your API key as bearer tokenSignature
: SHA256 HMAC of the query string concatenated with the request body, using yourAPI secret
, as aBase64
string
All endpoints are
SIGNED
endpoints.The signature is not case-sensitive.
API-keys and secret-keys are case-sensitive.
Signed Endpoint Examples
Here are step-by-step examples of how to send a valid signed payload from the Linux command line using echo
, openssl
, and curl
.
Query parametered requests' signatures should be calculated in parameters order.
Key | Value |
---|---|
apiKey | 966304e1-9be0-4d79-a1b0-95d069a7bfaf |
secretKey | c0bad7a7eb95876bcd646bcf7f42e39ff1dd75311edb4f4df84de3e41f3b3c5d |
HMAC SHA256 signature:
$ echo -n "asset=ETH&type=Withdraw" | openssl dgst -sha256 -hmac "c0bad7a7eb95876bcd646bcf7f42e39ff1dd75311edb4f4df84de3e41f3b3c5d" -binary | base64
(stdin)= 4+NG7pPYMfs51VmIlZZNPe69Bamo/PsG6aMix0q6iSs=
curl command:
(HMAC SHA256)
$ curl -H "Authorization: Bearer 966304e1-9be0-4d79-a1b0-95d069a7bfaf" -H "Signature: yDyq8EkvBoOm+GKKxch4TwD6K0L0q5KaTNLVQv8F0rg=" -X GET 'https://bitronit.com/api/v2/users/restrictions?asset=ETH&type=Withdraw'
GET /users/me/restrictions
Parameter | Value |
---|---|
asset | ETH |
type | Withdraw |
- queryString:
asset=ETH&type=Withdraw
POST /users/me/orders/cancel
HMAC SHA256 signature:
$ echo -n '{"priceBelow": 12.5, "priceAbove": 7.8, "operationDirection": "Buy", "baseAsset": "ETH", "quoteAsset": "TRY"}' | openssl dgst -sha256 -hmac "c0bad7a7eb95876bcd646bcf7f42e39ff1dd75311edb4f4df84de3e41f3b3c5d" -binary | base64
(stdin)= zEakMgO8mSn+L3DIN9mEMOdoBvHuzucjdDuTvpL1xCQ=
curl command:
(HMAC SHA256)
$ curl -H "Authorization: Bearer 966304e1-9be0-4d79-a1b0-95d069a7bfaf" -H "Signature: xfxO7ec5WyzUleFLNjqFyUmsKOvLnTxYCvYXb7SNkfQ=" -X POST 'https://bitronit.com/api/v2/users/me/orders/cancel' -d '{"priceBelow":12.5,"priceAbove":7.8,"operationDirection":"Buy","baseAsset":"ETH","quoteAsset":"TRY"}'
Parameter | Value |
---|---|
priceBelow | 12.5 |
priceAbove | 7.8 |
operationDirection | Buy |
baseAsset | "ETH" |
quoteAsset | "TRY" |
- requestBody:
{"priceBelow": 12.5, "priceAbove": 7.8, "operationDirection": "Buy", "baseAsset": "ETH", "quoteAsset": "TRY"}
Python Client
Installation
Install bitronit from PyPI using pip:
pip install bitronit
For the project, please see Bitronit/Bitronit-Python
Public HTTP API
Get assets
Request:
GET /assets
Response:
[
{
"id": 2,
"ticker": "ETH",
"fullName": "Ethereum",
"circulatingSupply": 121822787.43650000,
"circulatingSupplyUpdateDate": "2022-08-04T09:00:05.881614Z",
"precision": 8,
"fiat": false
}
]
Python:
client = BitronitClient()
client.get_assets()
Returns all assets.
Rate limit cost: 6
Response Format
Field | Type | Description |
---|---|---|
id | LONG | Unique ID of the asset |
ticker | STRING | Symbol of the asset |
fullName | STRING | Full name of the asset |
circulatingSupply | DECIMAL | Circulating supply of the asset |
circulatingSupplyUpdateDate | DATE | ISO8601 date |
precision | INTEGER | Precision of the asset |
fiat | BOOLEAN | True if asset is a fiat like TRY |
Get a specific asset
Request:
GET /assets/{asset}
Response:
{
"id": 2,
"ticker": "ETH",
"fullName": "Ethereum",
"circulatingSupply": 121822787.43650000,
"circulatingSupplyUpdateDate": "2022-08-04T09:00:05.881614Z",
"fiat": false
}
Python:
client = BitronitClient()
client.get_asset("ETH")
Returns the assets detail.
Rate limit cost: 6
URL Parameters
Parameter | Description |
---|---|
asset | Symbol(ticker) of the asset |
Response Format
For the response format please refer to Get assets
Get network configuration
Request:
GET /crypto-network
Response:
[
{
"id": 17,
"network": "ETH",
"asset": "USDT",
"minConfirmations": 1,
"depositEnabled": true,
"withdrawEnabled": true,
"withdrawFee": 0.00020000,
"minWithdrawAmount": 0.00040000,
"name": "Ethereum (ERC20)"
},
]
Python:
client = BitronitClient()
client.get_networks(
asset = "ETH" #optional
)
Returns the crypto network detail(s).
Rate limit cost: 6
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
asset | no | STRING | Symbol(ticker) of the asset |
Response Format
Field | Type | Description |
---|---|---|
id | LONG | Unique ID of the network config |
network | STRING | Symbol of the Network |
asset | STRING | Asset(ticker) of the network config |
minConfirmations | INTEGER | Minimum confirmations required after the deposit |
depositEnabled | BOOLEAN | True if deposits enabled for the network |
withdrawEnabled | BOOLEAN | True if withdrawals enabled for the network |
minWithdrawAmount | DECIMAL | Minimum amount to withdraw |
withdrawFee | DECIMAL | Withdraw fee of the network |
name | STRING | Long name of the network |
Get crypto withdraw config
Request:
GET /assets/{asset}/network/{network}/crypto-withdraw-config
Response:
{
"withdrawEnabled": true,
"minWithdrawAmount": 0.00040000,
"withdrawFee": 0.00020000
}
Python:
client = BitronitClient()
client.get_crypto_withdraw_config(
asset = "ETH",
network = "ETH"
)
Returns the crypto withdraw config for the asset with given network.
Rate limit cost: 6
URL Parameters
Parameter | Description |
---|---|
asset | Symbol(ticker) of the asset |
network | Crypto Network |
Available networks can be retrieved from Get assets
Response Format
Field | Type | Description |
---|---|---|
withdrawEnabled | BOOLEAN | True if withdrawals enabled |
minWithdrawAmount | DECIMAL | Minimum amount to withdraw |
withdrawFee | DECIMAL | Current withdraw fee |
Get fiat withdraw config
Request:
GET /assets/{asset}/fiat-withdraw-config
Response:
{
"withdrawEnabled": true,
"minWithdrawAmount": 5.00000000,
"withdrawFee": 1.00000000
}
Python:
client = BitronitClient()
client.get_fiat_withdraw_config(
asset = "TRY"
)
Returns the fiat withdraw config for the asset.
Rate limit cost: 6
URL Parameters
Parameter | Description |
---|---|
asset | Symbol(ticker) of the asset |
Response Format
For the response format please refer to Get crypto withdraw config
Get candlesticks
Request:
Limit, period calculation:
For 1 week candlestick data,
period = 240(4 hours),
limit = 42
42*4 = 168(1 week)
GET /candlesticks?baseAsset={baseAsset}"eAsset={quoteAsset}&period={period}&startTime={startTime}&endTime={endTime}&limit={limit}
Response:
[
[opentime(timestamp), open, high, low, close, volume],
[LONG, DECIMAL, DECIMAL, DECIMAL, DECIMAL, DECIMAL],
[1659529500000, 1671.780000000000000, 1671.780000000000000, 1671.780000000000000, 1671.780000000000000, 10.114269000000000],
...
]
Python:
client = BitronitClient()
client.get_candlesticks(
base_asset = "ETH",
quote_asset = "USDT",
period = 5,
start_timestamp = 1665317486000, #optional
end_timestamp = 1665403886000, #optional
limit = 100 #optional
)
Filter or limit the candlesticks with query parameters.
Rate limit cost: 6
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
baseAsset | yes | STRING | Symbol(ticker) of the base asset |
quoteAsset | yes | STRING | Symbol(ticker) of the quote asset |
period | yes | INTEGER | Period of the candlestick in minutes. |
startTime | no | LONG | Epoch timestamp milliseconds |
endTime | no | LONG | Epoch timestamp milliseconds |
limit | no | INTEGER | Maximum number of data. [1-500] Default: 500 |
Get market info
Request:
GET /markets
Response:
[
{
"currentPrice": 29332.00,
"dailyVolume": 17287.229462800000000,
"dailyChange": -1.39,
"baseAsset": "ETH",
"quoteAsset": "TRY",
"highestPrice": 30237.000000000000000,
"lowestPrice": 29032.000000000000000,
"dailyNominalChange": -414.000000000000000
}
]
Python:
client = BitronitClient()
client.get_markets()
Returns market info for all pairs.
Rate limit cost: 6
Response Format
Field | Type | Description |
---|---|---|
currentPrice | DECIMAL | Current market price of the pair |
dailyVolume | DECIMAL | Daily volume of the pair |
dailyChange | DECIMAL | Daily percentage of change in the price |
baseAsset | STRING | Symbol(ticker) of the base asset |
quoteAsset | STRING | Symbol(ticker) of the quote asset |
highestPrice | DECIMAL | Daily highest price of the pair |
lowestPrice | DECIMAL | Daily lowest price of the pair daily |
dailyNominalChange | DECIMAL | Daily nominal change in the pair |
Get orderbook data
Request
GET /orders/group?baseAsset={baseAsset}"eAsset={quoteAsset}&scale={scale}
Response:
{
"timestamp": "2022-08-04T10:50:30.829108Z",
"version": 0,
"sell": {
"1621.15": 0.003210000000000,
"1621.28": 0.003300000000000,
"1621.43": 0.003170000000000,
"1621.68": 0.006500000000000
},
"buy": {
"1610.43": 0.004220000000000,
"1610.40": 0.008120000000000,
"1610.39": 0.004840000000000,
"1610.33": 0.007150000000000
}
}
Python:
client = BitronitClient()
client.get_orderbook(
base_asset = "ETH",
quote_asset = "USDT",
scale = 2
)
Get orderbook data for the given trading pair and scale.
Rate limit cost: 5
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
baseAsset | yes | STRING | Symbol(ticker) of the base asset |
quoteAsset | yes | STRING | Symbol(ticker) of the quote asset |
scale | yes | INTEGER |
Response Format
Field | Type | Description |
---|---|---|
timestamp | DATE | ISO8601 Time of the fetched data |
version | LONG | |
sell | JSON | Sell orders key as price and the value as its amount |
buy | JSON | Buy orders key as price and the value as its amount |
Get transactions
Request:
GET /transactions?baseAsset={baseAsset}"eAsset={quoteAsset}&page={page}&size={size}
Response:
[
{
"baseAsset": "ETH",
"quoteAsset": "TRY",
"transactionDate": "2021-08-31T11:56:31.245652Z",
"matchedQuantity": 0.00390000,
"matchedPrice": 28408.20300000,
"buyerTaker": true
}
]
Python:
client = BitronitClient()
client.get_candlesticks(
base_asset = "ETH",
quote_asset = "USDT",
page = 0, #optional
size = 10 #optional
)
Filter transactions with query parameters.
Rate limit cost: 5
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
baseAsset | no | STRING | Symbol(ticker) of the base asset |
quoteAsset | no | STRING | Symbol(ticker) of the quote asset |
page | no | INTEGER | Page number |
size | no | INTEGER | Number of items per page |
Response Format
Field | Type | Description |
---|---|---|
baseAsset | STRING | Symbol(ticker) of the base asset |
quoteAsset | STRING | Symbol(ticker) of the quote asset |
transactionDate | DATE | ISO8601 date of the transaction |
matchedQuantity | DECIMAL | Matched quantity of transaction |
matchedPrice | DECIMAL | Matched price of the transaction |
buyerTaker | BOOLEAN | True if the buy order is a taker |
Get trading pairs
Request:
GET /trading-pairs
Response:
[
{
"baseAsset": "ETH",
"quoteAsset": "USDT",
"symbol": "ETHUSDT",
"status": "Trading",
"maxNumOrders": 100000,
"minPrice": 0.01,
"maxPrice": 1000000.1324123412,
"tickScale": 2,
"multiplierUp": 5,
"multiplierDown": 0.2,
"minQuantity": 0.00001,
"maxQuantity": 0.5,
"stepScale": 5,
"minNotional": 10,
"marketMinQuantity": 0.00001,
"marketMaxQuantity": 0.5,
"makerFeePercentageValue": 0.25,
"takerFeePercentageValue": 0.35,
"isMarketEnabled": false,
"isLimitEnabled": false,
"isStopEnabled": false,
"marketStepSize": 0.00001
}
]
Python:
client = BitronitClient()
client.get_trading_pairs()
Retrieve all trading pair details.
Rate limit cost: 10
Response Format
Field | Type | Description |
---|---|---|
baseAsset | STRING | Symbol(ticker) of the base asset |
quoteAsset | STRING | Symbol(ticker) of the quote asset |
symbol | STRING | Pair symbol |
status | ENUM | Trading, Maintenance, ClosedForOrders, Preparing, Suspended, UnderInvestigation, PendingForApproval |
maxNumOrders | INTEGER | Maximum number of orders for the pair |
minPrice | DECIMAL | Minimum price to place order |
maxPrice | DECIMAL | Maximum price for to place order |
tickScale | STRING | Scale of limit price |
multiplierUp | DECIMAL | Multiplier that determines the maximum order price. Price of orders cannot be less than market price * multiplier up |
multiplierDown | DECIMAL | Multiplier that determines the minimum order price. Price of orders cannot be less than market price * multiplier down |
minQuantity | DECIMAL | Minimum quantity to place order |
maxQuantity | DECIMAL | Max quantity to place order |
stepScale | INTEGER | Scale of quantity |
minNotional | DECIMAL | Minimum value of price * quantity to place order |
marketMinQuantity | DECIMAL | Minimum quantity to place market order |
marketMaxQuantity | DECIMAL | Maximum quantity to place market order |
makerFeePercentageValue | DECIMAL | Maker orders fee percentage |
takerFeePercentageValue | DECIMAL | Taker orders fee percentage |
isMarketEnabled | BOOLEAN | True when market orders enabled |
isLimitEnabled | BOOLEAN | True when limit orders enabled |
isStopEnabled | BOOLEAN | True when stop orders enabled |
marketStepSize | DECIMAL | Defines the intervals that a quantity can be increased/decreased by |
Get trading pair detail
Request:
GET /trading-pairs/base-asset/{baseAsset}/quote-asset/{quoteAsset}
Response:
{
"baseAsset": "ETH",
"quoteAsset": "USDT",
"symbol": "ETHUSDT",
"status": "Trading",
"maxNumOrders": 100000,
"minPrice": 0.01,
"maxPrice": 1000000.1324123412,
"tickScale": 2,
"multiplierUp": 5,
"multiplierDown": 0.2,
"minQuantity": 0.00001,
"maxQuantity": 0.5,
"stepScale": 5,
"minNotional": 10,
"marketMinQuantity": 0.00001,
"marketMaxQuantity": 0.5,
"makerFeePercentageValue": 0.25,
"takerFeePercentageValue": 0.35,
"isMarketEnabled": false,
"isLimitEnabled": false,
"isStopEnabled": false,
"marketStepSize": 0.00001
}
Python:
client = BitronitClient()
client.get_trading_pair(
base_asset = "ETH",
quote_asset = "USDT"
)
Retrieve trading pair detail by asset.
Rate limit cost: 5
URL Parameters
Parameter | Description |
---|---|
baseAsset | Symbol(ticker) of the base asset |
quoteAsset | Symbol(ticker) of the quote asset |
Response Format
For the response format please refer to Get trading pairs
Private HTTP API
Get API Key Info
Request:
GET /users/me/api-key/info
Response:
{
"userId": 13863,
"permissions": [
"PublicAPI",
"Withdraw",
"Trade"
]
}
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_api_key_info()
Returns user id and permissions info for API Key.
Rate limit cost: 8
Response Format
Field | Type | Description |
---|---|---|
userId | LONG | Unique user identifier |
permissions | LIST | API Key permission scopes |
Required Scope
PublicApi
: Basic Scope
Get crypto deposit history
Request:
GET /users/me/deposits/crypto?asset={asset}&page={page}&size={size}
Response:
[
{
"id": 0,
"type": "Deposit",
"transactionHash": "0xd6c595d3a51bd90f3a9d13737c410bd29129115b0778dfb5d046652ee61940ad",
"transactionUUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"address": "0x4a9e4491c60ff88bb4253bd7f1c0d25b51138e97",
"asset": "ETH",
"amount": 1000,
"fee": 0,
"status": "WaitingForConfirmation",
"confirmedBlockCount": 5,
"statusUpdateDate": "2021-12-13T14:01:37.047Z",
"completeDate": "2021-12-13T14:01:37.047Z",
"network": "ETH"
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_crypto_deposit_history(
asset = "ETH", #optional
page = "0", #optional
size = "10" #optional
)
Filter users crypto deposit history with query parameters.
Rate limit cost: 6
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
asset | no | STRING | Symbol(ticker) of the asset |
page | no | INTEGER | Page number |
size | no | INTEGER | Number of items per page |
Response Format
Field | Type | Description |
---|---|---|
id | LONG | Unique Id of the external transaction |
type | ENUM | Withdraw, Deposit |
transactionHash | STRING | Crypto network transaction hash |
transactionUUID | UUID | Transaction UUID of the external transaction |
address | INTEGER | Crypto wallet address |
asset | STRING | Symbol(ticker) of the asset |
amount | DECIMAL | Amount of the asset |
fee | STRING | Fee of the external transaction |
status | ENUM | Waiting, Pending, Cancelled, Success, WaitingForConfirmation, Verified, Failed |
confirmedBlockCount | INTEGER | Confirmed block count of the crypto network transaction |
statusUpdateDate | DATE | ISO8601 date of the last status update |
completeDate | DATE | ISO8601 date of the transaction completion |
network | STRING | Crypto network symbol |
Required Scope
PublicApi
: Basic Scope
Get fiat deposit history
Request:
GET /users/me/deposits/fiat?asset={asset}&page={page}&size={size}
Response:
[
{
"id": 0,
"type": "Deposit",
"transactionUUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"asset": "TRY",
"amount": 1000,
"fee": 0,
"status": "WaitingForConfirmation",
"statusUpdateDate": "2021-12-13T14:01:37.047Z",
"completeDate": "2021-12-13T14:01:37.047Z",
"senderIban": "TR050202000000000001091100",
"senderBankName": "Test Bankası",
"receiverIban": "TR400006201493719805071327",
"receiverBankName": "Test Bankası"
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_fiat_deposit_history(
asset = "TRY", #optional
page = "0", #optional
size = "10" #optional
)
Filter users fiat deposit history with query parameters.
Rate limit cost: 5
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
asset | no | STRING | Symbol(ticker) of the asset |
page | no | INTEGER | Page number |
size | no | INTEGER | Number of items per page |
Response Format
Field | Type | Description |
---|---|---|
id | LONG | Unique Id of the external transaction |
type | ENUM | Withdraw, Deposit |
transactionUUID | UUID | Transaction UUID of the external transaction |
asset | STRING | Symbol(ticker) of the asset |
amount | DECIMAL | Amount of the asset |
fee | STRING | Fee of the external transaction |
status | ENUM | Waiting, Pending, Cancelled, Success, WaitingForConfirmation, Verified, Failed |
statusUpdateDate | DATE | ISO8601 date of the last status update |
completeDate | DATE | ISO8601 date of the transaction completion |
senderIban | STRING | Sender IBAN address |
senderBankName | STRING | Sender bank name |
receiverIban | STRING | Receiver IBAN address |
receiverBankName | STRING | Receiver bank name |
Required Scope
PublicApi
: Basic Scope
Get crypto withdraw history
Request:
GET /users/me/withdrawals/crypto?asset={asset}&page={page}&size={size}
Response:
[
{
"id": 0,
"type": "Withdraw",
"transactionHash": "0xd6c595d3a51bd90f3a9d13737c410bd29129115b0778dfb5d046652ee61940ad",
"transactionUUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"address": "0x4a9e4491c60ff88bb4253bd7f1c0d25b51138e96",
"asset": "ETH",
"amount": 1000,
"fee": 0.001,
"status": "Pending",
"confirmedBlockCount": 0,
"statusUpdateDate": "2021-12-13T14:01:37.047Z",
"completeDate": "2021-12-13T14:01:37.047Z",
"network": "ETH"
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_crypto_withdraw_history(
asset = "TRY", #optional
page = "0", #optional
size = "10" #optional
)
Filter users withdraw history with query parameters.
Rate limit cost: 5
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
asset | no | STRING | Symbol(ticker) of the asset |
page | no | INTEGER | Page number |
size | no | INTEGER | Number of items per page |
Response Format
For the response format please refer to Get Crypto Deposit History
Required Scope
PublicApi
: Basic Scope
Get fiat withdraw history
Request:
GET /users/me/withdrawals/fiat?asset={asset}&page={page}&size={size}
Response:
[
{
"id": 0,
"type": "Withdraw",
"transactionUUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"asset": "TRY",
"amount": 1000,
"fee": 5,
"status": "Pending",
"statusUpdateDate": "2021-12-13T14:01:37.047Z",
"completeDate": "2021-12-13T14:01:37.047Z",
"senderIban": "TR050202000000000001091100",
"senderBankName": "Test Bankası",
"receiverIban": "TR400006201493719805071327",
"receiverBankName": "Test Bankası"
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_fiat_withdraw_history(
asset = "TRY", #optional
page = "0", #optional
size = "10" #optional
)
Filter users withdraw history with query parameters.
Rate limit cost: 5
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
asset | no | STRING | Symbol(ticker) of the asset |
page | no | INTEGER | Page number |
size | no | INTEGER | Number of items per page |
Response Format
For the response format please refer to Get Fiat Deposit History
Required Scope
PublicApi
: Basic Scope
Get address book
Request:
GET /users/me/address-book?whitelisted=true&network=ETH&address=0x4a9e4491c60ff88bb4253bd7f1c0d25b51138e96&page=0&size=10
Response:
[
{
"id": 1,
"network": "ETH",
"address": "0x4a9e4491c60ff88bb4253bd7f1c0d25b51138e96",
"asset": "ETH",
"name": "My ETH wallet",
"whitelisted": true
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_address_book(
whitelisted = True, #optional
network = "ETH", #optional
address = "0x4a9e4491c60ff88bb4253bd7f1c0d25b51138e96", #optional
page = "0", #optional
size = "10" #optional
)
List user's address book records. Addresses can be filtered with given query parameters.
Rate limit cost: 6
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
whitelisted | no | BOOLEAN | Whitelisted addresses |
network | no | STRING | Crypto network symbol |
address | no | STRING | Crypto withdraw address |
page | no | INTEGER | Page number |
size | no | INTEGER | Number of items per page |
Response Format
Field | Type | Description |
---|---|---|
id | LONG | Unique identifier of the address |
network | STRING | Crypto network symbol |
address | STRING | Crypto withdraw address |
asset | STRING | Symbol(ticker) of the asset |
name | STRING | Label of the address |
whitelisted | BOOLEAN | Whitelist status of the address |
Required Scope
PublicApi
: Basic Scope
Initiate crypto withdraw
Request:
POST /users/me/withdrawals/crypto
{
"asset": "ETH",
"amount": 1,
"targetAddress": "0x4a9e4491c60ff88bb4253bd7f1c0d25b51138e96",
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"network": "ETH",
"withdrawFee": 0.0001
}
Response:
{
"id": 0,
"type": "Withdraw",
"transactionHash": "0xd6c595d3a51bd90f3a9d13737c410bd29129115b0778dfb5d046652ee61940ad",
"transactionUUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"address": "0x4a9e4491c60ff88bb4253bd7f1c0d25b51138e96",
"asset": "ETH",
"amount": 1000,
"fee": 0.0001,
"status": "Pending",
"confirmedBlockCount": 0,
"statusUpdateDate": "2021-12-13T14:01:37.047Z",
"completeDate": "2021-12-13T14:01:37.047Z",
"network": "ETH"
}
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.initiate_crypto_withdraw(
asset = "ETH",
amount = 0.1,
target_address = "0x4a9e4491c60ff88bb4253bd7f1c0d25b51138e96",
uuid = uuid.uuid4(),
network = "0",
fee = 0.0001
)
Initiate crypto withdraw order from the given parameters. In crypto withdraws target address must be in whitelist. Withdraw amounts scale after stripping trailing zeros should not exceed allowed precision for the asset. Precision of an asset can be reached from Get a specific asset endpoint
Rate limit cost: 5
Body Parameters
Parameter | Required | Type | Description |
---|---|---|---|
asset | yes | STRING | Symbol(ticker) of the asset |
amount | yes | DECIMAL | |
targetAddress | yes | STRING | Address you want to withdraw |
uuid | yes | UUID | Created from client |
network | yes | STRING | Crypto network symbol |
withdrawFee | yes | DECIMAL | Required for crypto withdraws. Dynamic withdraw crypto fee retrieved from Get network configuration endpoint |
Available networks can be retrieved from Get network configuration endpoint
Response Format
For the response format please refer to Get Crypto Deposit History
Required Scope
Withdraw
: Authorized to withdraw
Initiate fiat withdraw
Request:
POST /users/me/withdrawals/fiat
{
"asset": "TRY",
"amount": 1000,
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"iban": "TR400006201493719805071327",
"withdrawFee": 0.001
}
Response:
{
"id": 0,
"type": "Withdraw",
"transactionUUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"asset": "TRY",
"amount": 1000,
"fee": 0.001,
"status": "Pending",
"statusUpdateDate": "2021-12-13T14:01:37.047Z",
"completeDate": "2021-12-13T14:01:37.047Z",
"senderIban": "TR050202000000000001091100",
"senderBankName": "Test Bankası",
"receiverIban": "TR400006201493719805071327",
"receiverBankName": "Test Bankası"
}
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.initiate_fiat_withdraw(
asset = "ETH",
amount = 1000,
uuid = uuid.uuid4(),
iban = "TR400006201493719805071327",
withdrawFee = 0.001
)
Initiate fiat withdraw order from the given parameters. Withdraw amounts scale after stripping trailing zeros should not exceed allowed precision for the asset. Precision of an asset can be reached from Get a specific asset endpoint
Rate limit cost: 5
Body Parameters
Parameter | Required | Type | Description |
---|---|---|---|
asset | yes | STRING | Symbol(ticker) of the asset |
amount | yes | DECIMAL | |
uuid | yes | UUID | Created from client |
iban | yes | STRING | IBAN address you want to withdraw |
withdrawFee | yes | DECIMAL | Required for fiat withdraws. |
Available networks can be retrieved from Get network configuration endpoint
Response Format
For the response format please refer to Get Fiat Deposit History
Required Scope
Withdraw
: Authorized to withdraw
Cancel fiat withdraw
POST /users/me/withdrawals/fiat/{transactionUuid}/cancel
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.cancel_fiat_withdraw(
uuid = "3fa85f64-5717-4562-b3fc-2c963f66afa6"
)
Cancels withdraw order of the transaction uuid.
Rate limit cost: 5
URL Parameters
Parameter | Description |
---|---|
transactionUuid | UUID of the transaction |
Required Scope
Withdraw
: Authorized to withdraw
Get IBANs
Request:
GET /users/me/ibans
Response:
[
{
"id": 0,
"iban": "TR400006201493719805071327",
"bankName": "Test Bank",
"accountName": "Account Name"
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_ibans()
Returns user's available IBANs.
Rate limit cost: 10
Response Format
Field | Type | Description |
---|---|---|
id | LONG | |
iban | STRING | |
bankName | STRING | |
accountName | STRING |
Required Scope
PublicApi
: Basic Scope
Get open orders
Request:
GET /users/me/orders/open?baseAsset={baseAsset}"eAsset={quoteAsset}&orderType={orderType}&after={after}&before={before}&page={page}&size={size}
Response:
[
{
"id": 0,
"price": 28410.00000000,
"orderType": "Limit",
"operationDirection": "Buy",
"quantity": 1,
"matchStatus": "None",
"orderStatus": "Active",
"executedQuantity": 0.03900000,
"averageMatchPrice": 28408.20300000,
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"baseAsset": "ETH",
"quoteAsset": "TRY",
"orderTime": "2021-12-13T18:18:52.345Z",
"stopPrice": null
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_open_orders(
base_asset= "ETH", #optional
quote_asset = "USDT", #optional
order_type = "Limit", #optional
after = datetime.now(), #optional
before = datetime.now(), #optional
page = 0, #optional
size = 10 #optional
)
Get list of user's Active orders. Orders can be filtered with query parameters.
Rate limit cost: 2
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
baseAsset | no | STRING | Symbol(ticker) of the base asset |
quoteAsset | no | STRING | Symbol(ticker) of the quote asset |
orderType | no | ENUM | Market, Limit, StopLimit, FillOrKill, ImmediateOrCancel |
after | no | Instant | |
before | no | Instant | |
page | no | INTEGER | |
size | no | INTEGER |
Response Format
Field | Type | Description |
---|---|---|
id | LONG | Unique identifier of the order |
price | DECIMAL | price of the order |
orderType | ENUM | Market, Limit, StopLimit, FillOrKill, ImmediateOrCancel |
operationDirection | STRING | Sell, Buy |
quantity | DECIMAL | Quantity of the asset in the order |
orderStatus | ENUM | Active, Canceled, Completed |
matchStatus | STRING | None, Partial, Full |
executedQuantity | STRING | Executed quantity of the asset in the order |
averageMatchPrice | LONG | Avarage matched price of the order |
uuid | UUID | UUID of the order |
baseAsset | STRING | Symbol(ticker) of the base asset |
quoteAsset | STRING | Symbol(ticker) of the quote asset |
orderTime | DATE | ISO8601 date of the order creation |
stopPrice | DECIMAL | Stop price of the order if exist |
Order Types
Required Scope
PublicApi
: Basic Scope
Get order history
Request:
GET /users/me/orders/history?baseAsset={baseAsset}"eAsset={quoteAsset}&orderType={orderType}&after={after}&before={before}&page={page}&size={size}
Response:
[
{
"id": 0,
"price": 28410.00000000,
"orderType": "Limit",
"operationDirection": "Buy",
"quantity": 1,
"matchStatus": "None",
"orderStatus": "Completed",
"executedQuantity": 0.03900000,
"averageMatchPrice": 28408.20300000,
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"baseAsset": "ETH",
"quoteAsset": "TRY",
"orderTime": "2021-12-13T18:18:52.345Z",
"stopPrice": null
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_orders_history(
base_asset= "ETH", #optional
quote_asset = "USDT", #optional
order_type = "Limit", #optional
after = datetime.now(), #optional
before = datetime.now(), #optional
page = 0, #optional
size = 10 #optional
)
Get list of user's Completed and Cancelled orders. Orders can be filtered with query parameters.
Rate limit cost: 4
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
baseAsset | no | STRING | Symbol(ticker) of the base asset |
quoteAsset | no | STRING | Symbol(ticker) of the quote asset |
orderType | no | ENUM | Market, Limit, StopLimit, FillOrKill, ImmediateOrCancel |
after | no | DATE | ISO8601 date |
before | no | DATE | ISO8601 date |
page | no | INTEGER | |
size | no | INTEGER |
Response Format
For the response format please refer to Get open orders
Required Scope
PublicApi
: Basic Scope
Get order by UUID
Request:
GET /users/me/orders/{uuid}
Response:
{
"id": 0,
"price": null,
"orderType": "Market",
"operationDirection": "Sell",
"quantity": 1,
"orderStatus": "Completed",
"matchStatus": "Full",
"executedQuantity": 1,
"averageMatchPrice": 28410.45000000,
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"baseAsset": "ETH",
"quoteAsset": "TRY",
"orderTime": "2021-12-13T18:47:13.576Z",
"stopPrice": null,
}
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_order("3fa85f64-5717-4562-b3fc-2c963f66afa6")
Get users order detail by order UUID.
Rate limit cost: 2
URL Parameters
Parameter | Description |
---|---|
uuid | Order UUID |
Response Format
For the response format please refer to Get open orders
Required Scope
PublicApi
: Basic Scope
Create order
Request:
PUT /users/me/orders
{
"baseAsset": "ETH",
"quoteAsset": "TRY",
"orderType": "Limit",
"operationDirection": "Buy",
"quantity": 1,
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"limit": 28410.00000000,
"stopLimit": null
}
Response:
{
"matchCount": 2,
"quantity": 0,
"executedQuantity": 0,
"averageMatchPrice": null
}
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.create_order(
base_asset= "ETH",
quote_asset = "TRY",
order_type = "Limit",
operation_direction = "Buy",
quantity = 1,
uuid = uuid.uuid4(),
limit = 28410.00000000, #optional
stopLimit = None #optional
)
Creates a new order.
Rate limit cost: 2
Body Parameters
Parameter | Required | Type | Description |
---|---|---|---|
baseAsset | yes | STRING | Symbol(ticker) of the base asset |
quoteAsset | yes | STRING | Symbol(ticker) of the quote asset |
orderType | yes | ENUM | Market, Limit, StopLimit, FillOrKill, ImmediateOrCancel |
operationDirection | yes | ENUM | Sell, Buy |
quantity | yes | DECIMAL | |
uuid | yes | UUID | Created from client |
limit | no | DECIMAL | Limit value for limit order |
stopLimit | no | DECIMAL | stop limit value for StopLimit order |
Response Format
Field | Type | Description |
---|---|---|
matchCount | INTEGER | |
quantity | DECIMAL | |
executedQuantity | DECIMAL | |
averageMatchPrice | DECIMAL |
Required Scope
Trade
: Authorized to give orders
Cancel orders
Request
POST /users/me/orders/cancel
{
"baseAsset": "ETH",
"quoteAsset": "TRY",
"operationDirection": "Buy",
"priceBelow": 30000,
"priceAbove": 28000
}
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.cancel_orders(
base_asset= "ETH", #optional
quote_asset = "TRY", #optional
operation_direction = "Buy", #optional
price_below = 30000, #optional
price_above = 28000 #optional
)
Cancel filtered orders with body parameters.
Rate limit cost: 2
Body Parameters
Parameter | Required | Type | Description |
---|---|---|---|
baseAsset | no | STRING | Symbol(ticker) of the base asset |
quoteAsset | no | STRING | Symbol(ticker) of the quote asset |
operationDirection | no | ENUM | Sell, Buy |
priceBelow | no | DECIMAL | Order price below |
priceAbove | no | DECIMAL | Order price above |
Required Scope
Trade
: Authorized to give orders
Cancel order
Request
POST /users/me/orders/{uuid}/cancel
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.cancel_order("3fa85f64-5717-4562-b3fc-2c963f66afa6")
Cancels the order with given uuid.
Rate limit cost: 2
URL Parameters
Parameter | Description |
---|---|
uuid | Order UUID |
Required Scope
Trade
: Authorized to give orders
Get deposit & withdraw restrictions
Request
GET /users/me/restrictions?asset={asset}&type={type}
Response:
{
"dailyTotal": 1000000000,
"dailyRemaining": 1000000000,
"monthlyTotal": 1000000000,
"monthlyRemaining": 1000000000
}
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_restrictions(
asset = "ETH",
type = "Withdraw"
)
Get user's daily and monthly external transaction restrictions for the specified asset.
Rate limit cost: 8
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
asset | yes | STRING | Symbol(ticker) of the asset |
type | yes | ENUM | Withdraw, Deposit |
Response Format
Field | Type | Description |
---|---|---|
dailyTotal | DECIMAL | Daily total restriction |
dailyRemaining | DECIMAL | Daily remaining restriction |
monthlyTotal | DECIMAL | Monthly total restriction |
monthlyRemaining | DECIMAL | Monthly remaining restriction |
Required Scope
PublicApi
: Basic Scope
Get user transactions
Request:
GET /users/me/transactions?baseAsset={baseAsset}"eAsset={quoteAsset}&operationDirection={operationDirection}&orderUUID={orderUUID}&after={after}&before={before}&page={page}&size={size}
Response:
[
{
"hash": 2312321,
"baseAsset": "ETH",
"quoteAsset": "TRY",
"orderUUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"transactionDate": "2021-12-13T19:43:07.730Z",
"matchedQuantity": 0.5,
"matchedPrice": 28410.45000000,
"orderType": "Limit",
"feeAmount": 0.000450000,
"buyer": true
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_user_transactions(
base_asset = "ETH", #optional
quote_asset = "TRY", #optional
operation_direction = "Buy", #optional
order_uuid = "3fa85f64-5717-4562-b3fc-2c963f66afa6", #optional
after = datetime.now(), #optional
before = datetime.now(), #optional
page = 0, #optional
size = 10 #optional
)
Filter users transactions with query parameters.
Rate limit cost: 4
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
baseAsset | no | STRING | Symbol(ticker) of the base asset |
quoteAsset | no | STRING | Symbol(ticker) of the quote asset |
operationDirection | no | ENUM | Sell, Buy |
orderUUID | no | UUID | UUID of the order |
after | no | DATE | ISO8601 date |
before | no | DATE | ISO8601 date |
page | no | INTEGER | Page number |
size | no | INTEGER | Number of items per page |
Response Format
Field | Type | Description |
---|---|---|
hash | INTEGER | Unique identifier hash for the user transaction |
baseAsset | STRING | Symbol(ticker) of the base asset |
quoteAsset | STRING | Symbol(ticker) of the quote asset |
orderUUID | UUID | UUID of the order |
transactionDate | DATE | ISO8601 date of the transaction |
matchedQuantity | DECIMAL | Matched quantity of the transaction |
matchedPrice | DECIMAL | Matched price of the transaction |
orderType | ENUM | Market, Limit, StopLimit, FillOrKill, ImmediateOrCancel |
feeAmount | DECIMAL | Fee amount of the transaction |
buyer | BOOLEAN | True if it is a buy order |
Required Scope
PublicApi
: Basic Scope
Get daily total balance
Request:
GET /users/me/daily/total-balance?after={after}&before={before}
Response:
[
{
"totalAmountTry": 0.00,
"totalAmountUsd": 0.00,
"date": "2022-08-08T00:00:00Z"
},
{
"totalAmountTry": 130.00,
"totalAmountUsd": 7.28,
"date": "2022-08-09T00:00:00Z"
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_daily_total_balance(
after = datetime.now(), #optional
before = datetime.now(), #optional
)
Filter users daily total positions with query parameters. Returns the data showing the balance field on the dashboard.
Rate limit cost: 6
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
after | no | DATE | ISO8601 date |
before | no | DATE | ISO8601 date |
Response Format
Field | Type | Description |
---|---|---|
totalAmountTry | DECIMAL | Total balance value in TRY |
totalAmountUsd | DECIMAL | Total balance value in USD |
date | DATE | ISO8601 date of the snapshot |
Required Scope
PublicApi
: Basic Scope
Get daily positions
Request:
GET /users/me/daily/balance?after={after}&before={before}
Response:
[
{
"assets": {
"ETH": {
"amount": 0.00,
"amountTry": 0.00,
"amountUsd": 0.00
},
"BNB": {
"amount": 0.00,
"amountTry": 0.00,
"amountUsd": 0.00
},
"TRY": {
"amount": 0.00,
"amountTry": 0.00,
"amountUsd": 0.00
}
},
"date": "2022-08-08T00:00:00Z"
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_daily_balances(
after = datetime.now(), #optional
before = datetime.now(), #optional
)
Filter users daily positions with query parameters. Returns data showing daily balance graph.
Rate limit cost: 6
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
after | no | DATE | ISO8601 date |
before | no | DATE | ISO8601 date |
Response Format
Field | Type | Description |
---|---|---|
amount | DECIMAL | Amount of the asset |
amountTry | DECIMAL | TRY value of the asset with the amount |
amountUsd | DECIMAL | USD value of the asset with the amount |
Required Scope
PublicApi
: Basic Scope
Get wallets
Request:
GET /users/me/wallets
Response:
[
{
"id": 239560,
"asset": "ETH",
"reservedAmount": 0E-16,
"availableAmount": 0E-16
},
{
"id": 239562,
"asset": "BTC",
"reservedAmount": 0E-16,
"availableAmount": 0E-16
},
{
"id": 239555,
"asset": "TRY",
"reservedAmount": 0E-16,
"availableAmount": 120.0000000000000000
}
]
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_wallets()
Get wallets of user.
Rate limit cost: 5
Response Format
Field | Type | Description |
---|---|---|
id | LONG | Unique identifier of the wallet |
asset | STRING | Symbol(ticker) of the asset |
reservedAmount | DECIMAL | Reserved amount of the wallet due to open order, etc. |
availableAmount | DECIMAL | Amount available to use |
Required Scope
PublicApi
: Basic Scope
Get wallet by asset
Request:
GET /users/me/wallets/{asset}
Response:
{
"id": 239555,
"asset": "TRY",
"reservedAmount": 0E-16,
"availableAmount": 120.0000000000000000
}
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_wallet("TRY")
Get position of user by asset id.
Rate limit cost: 5
URL Parameters
Parameter | Description |
---|---|
asset | Symbol(ticker) of the asset |
Response Format
For the response format please refer to Get wallets
Required Scope
PublicApi
: Basic Scope
Get or Create address for wallet
Request:
GET /users/me/wallets/{asset}/network/{network}/address
Response:
{
"walletId": 239554,
"asset": "ETH",
"address": "0x4a9e4491c60ff88bb4253bd7f1c0d25b51138e96"
}
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.get_wallet_address(
asset = "ETH",
network = "ETH"
)
Get cryptocurrency address for wallet with the selected network. If not exists, create address for wallet with the selected network.
Rate limit cost: 5
URL Parameters
Parameter | Description |
---|---|
asset | Symbol(ticker) of the asset |
network | Available Networks |
Response Format
Field | Type | Description |
---|---|---|
walletId | LONG | Unique identifier of the wallet |
asset | STRING | Symbol(ticker) of the asset |
address | STRING | Crypto deposit address |
- Available Networks: Available networks can be retrieved from Get network configuration endpoint
Required Scope
PublicApi
: Basic Scope
Create socket key
Request
POST /users/me/socket/keys
Response:
{
"key": "b12f3943-a90d-4ba5-9717-test0901b316s"
}
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.create_socket_key()
Creates a key for connecting to the socket. With this key, the user listens for specific data.
Rate limit cost: 5
Response Format
Field | Type | Description |
---|---|---|
key | STRING | Socket key |
Required Scope
PublicApi
: Basic Scope
Delete socket key
Request:
DELETE /users/me/socket/keys
Python:
client = BitronitClient(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
client.delete_socket_key()
Deletes the socket key.
Rate limit cost: 8
Required Scope
PublicApi
: Basic Scope
Socket Usage
Socket Connection:
const io = require("socket.io-client");
const socket = io(
"https://socket.bitronit.com",
{
transports: ['websocket']
}
);
socket.on('connect', () => {
socket.emit('join', ${CHANNEL_NAME})
socket.on({CHANNEL_NAME}, (data) => {
// Data is retrieved
})
});
Connection to specific room:
const io = require("socket.io-client");
const socket = io(
"https://socket.bitronit.com",
{
transports: ['websocket']
}
);
socket.on('connect', () => {
console.log('connected')
socket.emit('join', "ETHTRY-orderbook-3")
socket.on("orderbook", data => {
// Data is retrieved
})
})
Orderbook for every group(based on decimal precision):
${TICKER}-orderbook-0
${TICKER}-orderbook-1
${TICKER}-orderbook-2
${TICKER}-orderbook-3
${TICKER}-orderbook-4
${TICKER}-orderbook-5
${TICKER}-orderbook-6
${TICKER}-orderbook-7
${TICKER}-orderbook-8
"orderbook" Channel Data Model:
['ETH', 2, 'TRY', 7, '2022-01-10T08:04:14.604999Z', 3, { '44295.246': 0.00216, '44292.945': 0 }, { '44382.780': 0.00341, '44395.089': 0 }, 4033464037]
[baseAsset, baseAsset, quoteAsset, quoteAsset, timestamp, scale, buy, sell, checksum]
Current candlesticks for all periods:
${TICKER}-candlestick-1
${TICKER}-candlestick-5
${TICKER}-candlestick-15
${TICKER}-candlestick-30
${TICKER}-candlestick-60
${TICKER}-candlestick-240
${TICKER}-candlestick-1440
${TICKER}-candlestick-10080
${TICKER}-candlestick-43200
"candlestick" Channel Data Model:
['2022-01-10T08:55:00Z', 44090.032, 44090.032, 44090.032, 44090.032, 0]
[opentime, open, high, low, close, volume]
Socket URL: https://socket.bitronit.com
Private socket channels provides user specific data through channel.
Channel | Type | Description |
---|---|---|
${key}-position-update | Private | Changes in users wallet |
${key}-user-transaction-execute | Private | Transaction history for user |
${key}-external-transaction-update | Private | Deposit/withdraw changes for user |
${key}-order-create | Private | Order creation for user |
${key}-order-update | Private | Order updates for user |
candlestick | Public | Candlestick data for graph |
orderbook | Public | Retrieving orderbook |
trade | Public | Recent trades |
all-ticker | Public | Retrieving ticker data for all tickers |
Private channels are used with the key that is retrieved from Create socket key endpoint
"${key}-position-update" Channel Data Model:
{
"walletId": 293567,
"userId": 28412,
"assetId": 7,
"asset": "TRY",
"positionDetail": {
"positionId": 293855,
"totalAmount": 950.75,
"reservedAmount": 79.9652192,
"reservedTryAmount": 79.9652192,
"reservedUsdAmount": 3.9411159423,
"availableAmount": 870.7847808,
"availableTryAmount": 870.7847808,
"availableUsdAmount": 42.9169558493
},
"userIds": [
28412
]
}
"${key}-user-transaction-execute" Channel Data Model:
{
"baseAssetId": 2,
"quoteAssetId": 7,
"orderUUID": "2ba3f68b-68bf-41f5-8417-f80d3b29c713",
"transactionDate": "2022-09-22T11:58:43.315106Z",
"matchedQuantity": 0.00328,
"matchedPrice": 24379.64,
"userId": 28412,
"orderType": "Limit",
"feeAmount": 0.00001148,
"buyer": true,
"userIds": [
28412
]
}
"${key}-external-transaction-update" Channel Data Model:
{
"id": 11923818,
"type": "Withdraw",
"transactionHash": null,
"transactionUUID": "d40f1cc1-796e-4c95-9493-a9855c2c8e64",
"address": "TR200006277218218578538091",
"asset": "TRY",
"network": null,
"assetId": 7,
"amount": 6,
"fee": 5,
"userId": 28412,
"status": "Pending",
"confirmedBlockCount": 0,
"statusUpdateDate": "2022-09-22T12:37:54.848868Z",
"completeDate": null,
"typicalPrice": 6,
"fiat": true,
"senderIban": null,
"senderBankName": null,
"receiverIban": "TR200006277218218578538091",
"receiverBankName": "Garanti Bankası",
"userIds": [
28412
]
}
"${key}-order-create" Channel Data Model:
{
"id": 98188998,
"orderType": "Limit",
"operationDirection": "Buy",
"quantity": 0.00328,
"executedQuantity": 0,
"userId": 28412,
"uuid": "2ba3f68b-68bf-41f5-8417-f80d3b29c713",
"baseAssetId": 2,
"quoteAssetId": 7,
"userType": null,
"price": 24379.64,
"maxVolume": null,
"stopPrice": null,
"activated": null
}
"${key}-order-update" Channel Data Model:
{
"orderType": "Limit",
"uuid": "196184db-82d2-4518-8d6b-664e96d95731",
"userId": 28412,
"executedQuantity": 0,
"averageMatchPrice": null,
"status": "Canceled"
}
"trade" Channel Data Model:
{
"id": null,
"matchId": "a7bf4399-de2f-45df-8806-70185648eb49",
"matchedQuantity": 0.00328,
"matchedPrice": 24379.64,
"baseAssetId": 2,
"quoteAssetId": 7,
"baseAsset": "ETH",
"quoteAsset": "TRY",
"isBuyerTaker": true,
"time": "2022-09-22T11:58:43.238967Z"
}
"all-ticker" Channel Data Model:
[ 'LINK', 'TRY', 357.94, 363.54, 323.39, 103109.12208, 5.91, 19.96 ]
[baseAsset, quoteAsset, currentPrice, highestPrice, lowestPrice, dailyVolume, dailyChange, dailyNominalChange]
Errors
Client Errors
HTTP Status Code | Error Code | Error Message | Reason and Actions to fix |
---|---|---|---|
400 | INVALID_LIMIT | Not valid limit size: {$limit}, it should be in [1, 500] | This error message is thrown when limit is bigger than 500 while getting candlesticks. In order to fix, limit should be in 1, 500 range. Please check your limits for a valid request. |
401 | SIGNATURE UNAUTHORIZED | Signature: {$signature} is not valid. | This error message is thrown when the signature that is retrieved from the “Signature” header is not true. Please take a look at the authentication section of the api documentation for the correct way to utilize Bitronit public api. |
401 | SIGNATURE NOT_FOUND | Signature not found in the request headers | This error message is thrown when the signature is not found in the request headers. Please take a look at the authentication section of the api documentation for the correct way to utilize Bitronit public api. |
401 | API_KEY_NOT_FOUND | Api-key not found. | This error message is thrown when the API Key is not found in the request headers. Please take a look at the section authentication section of the api documentation for the correct way to utilize Bitronit public api. |
401 | IP_ADDRESS NOT_ALLOWED | IP address $ipAddress is restricted. | This error message is thrown when the request is sent from an IP address that is not added to IP whitelist. Please take a look at the limits section of the api documentation for the correct way to utilize Bitronit public api. |
401 | API_KEY NOT_ENABLED | Api-key with id: $id is not enabled. | This error message is thrown when API Keys status is disabled or expired. Please check the validity of your API Key. |
404 | ADDRESS NOT_FOUND | Address: {$address} not found in whitelist. | This error message is thrown while initiating crypto withdraw. If target address is not in whitelist, exception is thrown. Please add address to your whitelist in order to withdraw to the target account. |
404 | ASSET_NOT_FOUND | Asset not found. | This error message is thrown when getting an asset with the wrong ticker. Please check the tickers name in your request. |
400 | WITHDRAW_IS NOT_ALLOWED FOR_ASSET | Withdraw is not allowed for asset: $assetId | This error message is thrown while initiating withdraw with a network that is not supported in Bitronit. Please check asset and network in order to proceed with your request. |
400 | WITHDRAW_AMOUNT PRECISION_ERROR | Amount scale: $scale exceeded allowed ${precision} for the ${ticker} | This error message is thrown while initiating withdraw, amount scale exceeds allowed precision. Please check amount and precision to proceed with your transaction. |
404 | NETWORK_CONFIG NOT_FOUND | Network $network for asset $asset not found. Fiat: $fiat | This error message is thrown while initiating withdraw. asset is not supported with the network config. Please check assets network support in Bitronit to find available networks for your withdraw transaction. |
403 | WITHDRAW_IS NOT_ALLOWED FOR_USER | Withdraw is not allowed for userId: $userId. | This error message is thrown while initiating withdraw with a sub user. Please try again with parent account. |
403 | TRANSFER_IS NOT_ALLOWED FOR_USER | Transfer is not allowed for userId: $userI | This error message is thrown while trying to transfer between main user and sub user, if the target account is not configured as a sub user. Please enable sub-user type for the target user. |
403 | TRANSFER_NOT ALLOWED | Transfer only allowed between main user and its sub users | This error message is thrown while trying to transfer with an account not marked as sub user. Transfers are only allowed between main user and its sub users. |
400 | ALREADY CANCELED | Order was already canceled | This error message is thrown while trying to cancel an order that was already cancelled. |
400 | ALREADY COMPLETED | Order was already matched | This error message is thrown while trying to cancel an order that was already matched. |
404 | NOT_FOUND | Version not found (baseAsset,quoteAsset,scale) | This error message is thrown while trying to retrieve orderbook data with wrong parameters. Please control baseAsset, quoteAsset and scale parameters. |
404 | PAIR_NOT_FOUND | Trading pair not found. | This error is thrown while trying to retrieve trading pair by wrong asset. Please check assets in your request. |
404 | WALLET_NOT_FOUND | Wallet not found | This error is thrown when wallet is not found for given asset |
404 | IBAN_NOT_FOUBD | Iban: {$iban} not found in user ibans | This error is thrown when iban in the request is not found in user's ibans for the fiat withdraw process. |