Introduction
Welcome to the documentation of the LiteBit Exchange API!
- The LiteBit Exchange API is designed to allow access to all the features of the LiteBit Exchange platform.
- We currently offer 2 gateways:
REST API
andWebSockets
. - All gateways implement the same unified message protocol.
Colocation
LiteBit's servers are hosted in Frankfurt (AWS' eu-central-1
region).
Errors
We have divided the errors into 5 code ranges to ease error handling:
1xxxx - permanent request error
- The request is invalid, malformed or similar. Retrying doesn't make sense.2xxxx - transient request error
- The request itself is valid, but could not be processed due to some other condition. Retrying could make sense.3xxxx - exchange error
- The request could not be processed due to an error related to the (whole) exchange.4xxxx - market error
- The request could not be processed due to an error related to a specific market.5xxxx - network error
- The request could not be processed due to an error related to networking.
code | message | description |
---|---|---|
10000 | - | This error code is used for validation errors. See message for more information about the validation error. |
10001 | Minimum order amount is <amount> <quote_asset>. | The notional value of your order is too low. Use GET /market 's minimum_amount_quote to retrieve the market's minimum notional value. |
10002 | Time in force is only allowed for limit orders. | Order time in force is missing. |
10003 | Post-only is only allowed for limit orders. | |
10004 | Price must be higher than zero. | Order price is too low. |
10005 | Price is required for limit orders. | Order price is missing. |
10006 | Type is required for orders. | Order type is missing. |
10007 | Invalid time window. | Time window cannot be smaller than 1 or larger than 60000 milliseconds. |
10008 | Unauthenticated. | Authentication is required to perform the operation. |
10009 | Unauthorized. | The access scope(s) required to perform the operation are missing. |
10010 | Invalid JSON. | |
10011 | Invalid event. | |
10012 | Invalid channel. | |
10013 | Could not derive authentication method. Invalid API key and/or signature. Invalid timestamp. Invalid API key. Invalid signature. Connection is already authenticated. |
|
20000 | Insufficient funds. | |
20001 | Maximum of open orders allowed per user per market. | |
20002 | Insufficient liquidity. | |
20003 | Rate limit exceeded. | |
20004 | Error. | Transient request error without any available public information. |
20005 | - | Operation could not be performed for legal reasons. See message for more information about the error. |
30000 | Maintenance mode. | Exchange is in maintenance mode. |
30001 | Internal server error. | An unexpected error occurred. The execution status of your request is unknown. |
40000 | Market in post-only mode. | Only post-only orders are currently accepted by the matching engine. |
40001 | Market in cancel-only mode. | Only cancel order requests are currently accepted by the matching engine. |
40002 | Order book limit reached, only taker orders are allowed. | |
40003 | Market overloaded. | |
40004 | Market is halted. | |
40005 | Market is inactive. | |
50000 | Request received outside the allowed time window. | Your request was rejected, because it was received outside the allowed time window. |
Rate limits
Requests
LiteBit rate limits requests to its API. Our rate limiters implement the Token Bucket algorithm.
For order creation (POST /order
) and order cancellation (DELETE /orders
), we enforce a shared rate limit of 10 request/second per user per market. For the other endpoints, we use a weight-based rate limit of 1000/minute per IP address or user. Please inspect each endpoint to see its weight.
On each REST request, there are three headers that return relevant information regarding the applied rate limit:
Header | Description |
---|---|
LITEBIT-RATELIMIT-RESET |
The unix timestamp at which you have enough tokens to do the same request again. |
LITEBIT-RATELIMIT-LIMIT |
The maximum number of tokens in the bucket. |
LITEBIT-RATELIMIT-REMAINING |
The number of tokens left in the bucket. |
If you are rate limited, you will receive a 429 response. Repeatedly violating our rate limits may result in an API key or IP address ban.
Open orders
The maximum number of open orders per user per market is 200.
Authentication
The API consists of public
and private
methods. Public methods do not require authentication. Private methods require API key authentication. You can create API keys via the LiteBit Exchange website.
For more information about how to authenticate on the different gateways, see the REST API authentication and WebSocket authentication sections.
Message signing
# Python code
import hmac, hashlib
# your API keys' secret
secret = 'b5ed73bbf6fc8f5b5f41bbd85b743...'
# replace this value with the data string you would like to sign
message = 'authenticate1631787453519'
# create a sha256 hmac with the secret and sign the message
signature = hmac.new(secret.encode("utf-8"), message.encode("utf-8"), hashlib.sha256)
# hex encode the signature and return
return signature.hexdigest()
A signature can be generated by creating a SHA-256 HMAC hex digest of a certain data string (see code sample on your right). Which data string to sign depends on the gateway: REST API or WebSocket.
Access scopes
The scopes that are associated with an API key determine which methods it is authorized to use. Scopes are required and checked for private methods. Please refer to the documentation below to see which scope is required for a specific endpoint.
Name | Description |
---|---|
view | Permission to read data related to your account. |
trade | Permission to add, update, cancel and retrieve orders. |
withdraw | Permission to withdraw funds. |
manage_account | Permission to manage your account - allows to create API keys, etc.. |
REST API
General
The REST API endpoints are divided into 5 categories: supporting, market data, account management, trading and wallet. All endpoints in the account management, trading and wallet category require authentication, click here for more information. The base URL is https://api.exchange.litebit.eu/v1
.
Some remarks:
- All requests and responses are encoded in JSON format.
- All decimal fields are quoted to preserve precision.
- All time and timestamp related fields are unix timestamps in milliseconds.
- New backwards-compatible keys may be added to a message at any point in time. Client are expected to ignore keys they do not support.
Authentication
A request to a private endpoint must include the following headers:
Header | Description |
---|---|
LITEBIT-API-KEY |
The key of your API key. |
LITEBIT-SIGNATURE |
Signature of LITEBIT-TIMESTAMP + method + url + body (click here for the documentation regarding message signing). Body may be empty (e.g. in case of GET requests), otherwise this is a string representation of the body. See examples below. |
LITEBIT-TIMESTAMP |
The current unix timestamp in milliseconds. |
Examples
In case of an API key with secret secret
and LITEBIT-TIMESTAMP
header equal to 1640086253583
:
- a POST request to
/v1/order
with payload{"market": "BTC-EUR", "side": "buy", "type": "limit", "amount": "0.01", "price": "1000"}
requires you to sign the following data string:1640086253583POST/v1/order{"market": "BTC-EUR", "side": "buy", "type": "limit", "amount": "0.01", "price": "1000"}
. The resulting signature is96025465165b35936a1bf851e757ee3ff2bc214fd0100175b15b1c85abacbe53
. - a GET request to
/v1/orders/closed?market=BTC-EUR&limit=5
requires you to sign the following data string:1640086253583GET/v1/orders/closed?market=BTC-EUR&limit=5
. The resulting signature is9393b4c9f92130413e56ba179e27f93512d1a627602e5e400e191bac26509f82
.
Errors
{
"code": 10007,
"message": "Invalid time window."
}
The following HTTP status codes may be returned in case of an error:
HTTP status code | description |
---|---|
400 - Bad Request | See response body for more information (example on the right). For more information about the error codes that you may encounter, see this section. |
401 - Unauthorized | Authentication is required to perform the operation. |
403 - Forbidden | The access scope(s) required to perform the operation are missing. |
404 - Not Found | The requested resource does not exist. |
429 - Too Many Requests | Rate limit exceeded. |
5xx - Server Errors | An unexpected error occurred. The execution status of your request is unknown. |
Timing
The header LITEBIT-WINDOW
may be used to specify the number of milliseconds after LITEBIT-TIMESTAMP
the request is valid for. If LITEBIT-WINDOW
is not sent, it defaults to 5000.
Methods
Supporting
GET /time
curl "https://api.exchange.litebit.eu/v1/time"
The above command returns JSON structured like this:
{
"timestamp": 1622037056047
}
This endpoint retrieves the current server time.
Rate limiting weight: 1
HTTP Request
GET https://api.exchange.litebit.eu/v1/time
Response
200 OK
Name | Type | Description |
---|---|---|
timestamp | integer | The current unix timestamp on the server. |
Market data
GET /assets
curl "https://api.exchange.litebit.eu/v1/assets"
The above command returns JSON structured like this:
[
{
"code": "BTC",
"name": "Bitcoin",
"decimals": "8"
}
]
This endpoint retrieves all assets.
Rate limiting weight: 1
HTTP Request
GET https://api.exchange.litebit.eu/v1/assets
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
code | string | The code of the asset. |
name | string | The full name of the asset. |
decimals | string | The number of decimal places in which amounts are specified. |
GET /asset
curl "https://api.exchange.litebit.eu/v1/asset?code=BTC"
The above command returns JSON structured like this:
{
"code": "BTC",
"name": "Bitcoin",
"decimals": "8"
}
This endpoint retrieves an asset.
Rate limiting weight: 1
HTTP Request
GET https://api.exchange.litebit.eu/v1/asset
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
code | true | string | The code of the asset. |
Response
200 OK
Name | Type | Description |
---|---|---|
code | string | The code of the asset. |
name | string | The full name of the asset. |
decimals | string | The number of decimal places in which amounts are specified. |
GET /markets
curl "https://api.exchange.litebit.eu/v1/markets"
The above command returns JSON structured like this:
[
{
"market": "BTC-EUR",
"status": "active",
"tick_size": "0.01",
"step_size": "0.00000001",
"minimum_amount_quote": "5.00",
"base_asset": "BTC",
"quote_asset": "EUR"
}
]
This endpoint retrieves all markets.
Rate limiting weight: 1
HTTP Request
GET https://api.exchange.litebit.eu/v1/markets
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
market | string | The symbol of the market. |
status | string | The status of the market. Possible values: active , post_only , cancel_only , inactive , maintenance and halted . |
tick_size | string | The minimum increment in which prices may change. |
step_size | string | The minimum increment in which amounts may change. |
minimum_amount_quote | string | The minimum notional value for valid orders. |
base_asset | string | The code of the base asset. |
quote_asset | string | The code of the quote asset. |
GET /market
curl "https://api.exchange.litebit.eu/v1/market?market=BTC-EUR"
The above command returns JSON structured like this:
{
"market": "BTC-EUR",
"status": "active",
"tick_size": "0.01",
"step_size": "0.00000001",
"minimum_amount_quote": "5.00",
"base_asset": "BTC",
"quote_asset": "EUR"
}
This endpoint retrieves a market.
Rate limiting weight: 1
HTTP Request
GET https://api.exchange.litebit.eu/v1/market
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
market | true | string | The symbol of the market. |
Response
200 OK
Name | Type | Description |
---|---|---|
market | string | The symbol of the market. |
status | string | The status of the market. Possible values: active , post_only , cancel_only , inactive , maintenance and halted . |
tick_size | string | The minimum increment in which prices may change. |
step_size | string | The minimum increment in which amounts may change. |
minimum_amount_quote | string | The minimum notional value for valid orders. |
base_asset | string | The code of the base asset. |
quote_asset | string | The code of the quote asset. |
GET /tickers
curl "https://api.exchange.litebit.eu/v1/tickers"
The above command returns JSON structured like this:
[
{
"market": "BTC-EUR",
"open": "0.0235",
"last": "0.0324",
"volume": "3774750989.06",
"low": "0.0176",
"high": "0.0324",
"bid": "0.0323",
"ask": "0.0176"
}
]
This endpoint retrieves all tickers.
Rate limiting weight: 1
HTTP Request
GET https://api.exchange.litebit.eu/v1/tickers
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
market | string | The symbol of the market. |
open | string | The price of the first trade during the last 24 hours. |
last | string | The price of the last trade. |
volume | string | The volume during the last 24 hours in base asset. |
low | string | The lowest price of a trade during the last 24 hours. |
high | string | The highest price of a trade during the last 24 hours. |
bid | string | The current best bid price. |
ask | string | The current best ask price. |
GET /ticker
curl "https://api.exchange.litebit.eu/v1/ticker?market=BTC-EUR"
The above command returns JSON structured like this:
{
"market": "BTC-EUR",
"open": "0.0235",
"last": "0.0324",
"volume": "3774750989.06",
"low": "0.0176",
"high": "0.0324",
"bid": "0.0323",
"ask": "0.0176"
}
This endpoint retrieves a ticker.
Rate limiting weight: 1
HTTP Request
GET https://api.exchange.litebit.eu/v1/ticker
Response
200 OK
Name | Type | Description |
---|---|---|
market | string | The symbol of the market. |
open | string | The price of the first trade during the last 24 hours. |
last | string | The price of the last trade. |
volume | string | The volume during the last 24 hours in base asset. |
low | string | The lowest price of a trade during the last 24 hours. |
high | string | The highest price of a trade during the last 24 hours. |
bid | string | The current best bid price. |
ask | string | The current best ask price. |
GET /book
curl "https://api.exchange.litebit.eu/v1/book?market=BTC-EUR"
The above command returns JSON structured like this:
{
"market": "BTC-EUR",
"timestamp": 1622123573863,
"sequence": 1231232,
"update_type": "snapshot",
"bids": [
["2.0000", "201.99000000"],
...,
],
"asks": [
["2.0000", "201.99000000"],
...,
]
}
This endpoint retrieves the latest book snapshot.
Rate limiting weight: 5
HTTP Request
GET https://api.exchange.litebit.eu/v1/book
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
market | true | string | The symbol of the market. |
Response
200 OK
Name | Type | Description |
---|---|---|
market | string | The symbol of the market. |
timestamp | integer | The timestamp of this orderbook state. |
sequence | integer | Sequence number of this orderbook state. Incremented by one for every update of the book. |
update_type | string | The type of update: snapshot . |
bids | array of [string, string] | Array of bids: [price, amount]. |
asks | array of [string, string] | Array of asks: [price, amount]. |
GET /candles
curl "https://api.exchange.litebit.eu/v1/candles?market=BTC-EUR"
The above command returns JSON structured like this:
[
[
1623739800000,
"0.0237",
"0.0237",
"0.0237",
"0.0237",
"126558.40073552"
]
]
This endpoint retrieves the candles.
Rate limiting weight: 5
HTTP Request
GET https://api.exchange.litebit.eu/v1/candles
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
market | true | string | The symbol of the market. |
timestamp_from | false | integer | The earliest unix timestamp to return candles for. |
timestamp_to | false | integer | The latest unix timestamp to return candles for. |
interval | false | integer | The interval of the candles. Possible values: 60, 300, 900, 3600, 14400, 86400. |
limit | false | integer | The maximum number of candles to return. Maximum: 500. |
Response
200 OK
Array of arrays: [timestamp, open, high, low, close, volume].
Name | Type | Description |
---|---|---|
timestamp | integer | The timestamp of the candle. |
open | string | The price of the first trade during the last 24 hours. |
low | string | The lowest price of a trade during the last 24 hours. |
high | string | The highest price of a trade during the last 24 hours. |
close | string | The price of the last trade. |
volume | string | The volume during the last 24 hours in base asset. |
GET /trades
curl "https://api.exchange.litebit.eu/v1/trades?market=BTC-EUR"
The above command returns JSON structured like this:
[
{
"uuid": "9beba3ae-4755-4f06-82be-60b2a3452926",
"amount": "0.41322185",
"price": "38218.40000000",
"side": "buy",
"timestamp": 1622123573863,
"market": "BTC-EUR"
}
]
This endpoint retrieves the trades.
Rate limiting weight: 5
HTTP Request
GET https://api.exchange.litebit.eu/v1/trades
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
market | true | string | The symbol of the market. |
limit | false | integer | The maximum number of trades to return. Maximum: 200. |
timestamp_from | false | integer | The earliest unix timestamp to return trades for. |
timestamp_to | false | integer | The latest unix timestamp to return trades for. |
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
uuid | string | The UUID of the trade. |
amount | string | The amount of the trade. |
price | string | The price of the trade. |
side | string | The side of the taker. Possible values: buy , sell . |
market | string | The symbol of the market. |
timestamp | integer | The unix timestamp of the trade. |
Account management
POST /api-key
curl \
-d '{"name": "admin", "scopes": ["view", "trade"], "allowed_cidr_blocks": ["0.0.0.0/0"]}' \
-H "Content-Type: application/json" \
-X POST "https://api.exchange.litebit.eu/v1/api-key"
The above command returns JSON structured like this:
{
"secret": "a1aa4e02c0e7a6033e7401a1ea44c15f85d1e72f206997fe77dbcee055b270ec",
"key": "30646231343663392d353437312d333237352d613437362d3162356661383230383263312ee080f86c60260b2047faa3186c9833188af00534f32ebff14aeedf7523f86feb",
"name": "admin",
"scopes": [
"view",
"trade"
],
"allowed_cidr_blocks": [
"0.0.0.0/0"
]
}
This endpoint creates an API key.
Rate limiting weight: 5
Required scope: manage_account
HTTP Request
POST https://api.exchange.litebit.eu/v1/api-key
Request body
Parameter | Required | Type | Description |
---|---|---|---|
name | true | string | The name of the API key. |
scopes | true | array of string | Array of scopes (permissions) to assign to the API key. |
allowed_cidr_blocks | true | array of string | Array of CIDR blocks to allow to use the API key. |
Response
201 Created
Name | Type | Description |
---|---|---|
key | string | The key of the API key. |
secret | string | The secret of the API key. This is the only moment it is exposed. |
name | string | The name of the API key. |
scopes | array of string | Array of scopes (permissions) that are assigned to the API key. |
allowed_cidr_blocks | array of string | Array of CIDR blocks that are allowed to use the API key. |
GET /api-keys
curl "https://api.exchange.litebit.eu/v1/api-keys"
The above command returns JSON structured like this:
[
{
"key": "30646231343663392d353437312d333237352d613437362d3162356661383230383263312ed8de9189478fce771b35f7f723651b68495f7aadc7bee75155ae4bced71e2ab7",
"name": "test",
"scopes": [
"trade",
"withdraw"
],
"allowed_cidr_blocks": [
"0.0.0.0/0"
]
}
]
This endpoint retrieves your API keys.
Rate limiting weight: 5
Required scope: manage_account
HTTP Request
GET https://api.exchange.litebit.eu/v1/api-keys
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
key | string | The key of the API key. |
name | string | The name of the API key. |
scopes | array of string | Array of scopes (permissions) that are assigned to the API key. |
allowed_cidr_blocks | array of string | Array of CIDR blocks that are allowed to use the API key. |
PUT /api-key
curl \
-d '{"key": "30646231343663392d353437312d333237352d613437362d3162356661383230383263312ee080f86c60260b2047faa3186c9833188af00534f32ebff14aeedf7523f86feb", "name": "admin", "scopes": ["view", "trade"], "allowed_cidr_blocks": ["0.0.0.0/0"]}' \
-H "Content-Type: application/json" \
-X PUT "https://api.exchange.litebit.eu/v1/api-key"
This endpoint updates an API key.
Rate limiting weight: 5
Required scope: manage_account
HTTP Request
PUT https://api.exchange.litebit.eu/v1/api-key
Request body
Parameter | Required | Type | Description |
---|---|---|---|
key | true | string | The key of the API key that you want to update. |
name | true | string | The name of the API key. |
scopes | true | array of string | Array of scopes (permissions) to assign to the API key. |
allowed_cidr_blocks | true | array of string | Array of CIDR blocks to allow to use the API key. |
Response
204 No Content
DELETE /api-key
curl \
-d '{"key": "30646231343663392d353437312d333237352d613437362d3162356661383230383263312ee080f86c60260b2047faa3186c9833188af00534f32ebff14aeedf7523f86feb"}' \
-H "Content-Type: application/json" \
-X DELETE "https://api.exchange.litebit.eu/v1/api-key"
This endpoint deletes an API key.
Rate limiting weight: 5
Required scope: manage_account
HTTP Request
DELETE https://api.exchange.litebit.eu/v1/api-key
Request body
Parameter | Required | Type | Description |
---|---|---|---|
key | true | string | The key of the API key that you want to delete. |
Response
204 No content
Trading
POST /order
curl \
-d '{"market": "BTC-EUR", "amount": "0.01", "type": "limit", "price": "1000", "side": "buy", "stop": "entry", "stop_price": "800", "post_only": true, "time_in_force": "gtd", "expire_at": 1625038240391, "client_id": "d22a7a4e-c28b-40f5-a5a4-79ca8a4fc41c", "self_trade_prevention": "cancel_oldest"}' \
-H "Content-Type: application/json" \
-X POST "https://api.exchange.litebit.eu/v1/order"
The above command returns JSON structured like this:
{
"uuid": "69d353dc-a80f-491e-b5cf-d2589682664e",
"amount": "0.01000000",
"amount_filled": "0.00000000",
"amount_quote": null,
"amount_quote_filled": "0.00000000",
"fee": "0.00000000",
"price": "1000.00",
"side": "buy",
"type": "limit",
"status": "open",
"filled_status": "not_filled",
"cancel_status": null,
"stop": "entry",
"stop_price": "800.00",
"post_only": true,
"time_in_force": "gtd",
"created_at": 1637147943854,
"updated_at": 1637147943854,
"expire_at": 1625038240391,
"market": "BTC-EUR",
"client_id": "d22a7a4e-c28b-40f5-a5a4-79ca8a4fc41c",
"market_protection": null,
"self_trade_prevention": "cancel_oldest"
}
This endpoint creates an order.
Rate limiting weight: 1
Required scope: trade
HTTP Request
POST https://api.exchange.litebit.eu/v1/order
Request body
Parameter | Required | Type | Description |
---|---|---|---|
market | true | string | The symbol of the market. |
side | true | string | Determines whether the base asset will be bought or sold. Possible values: buy , sell . |
type | true | string | The type of the order. For limit orders, amount and price are required. For market orders, amount is required. Possible values: limit , market . |
amount | Only if amount_quote is not set | string | The amount to buy or sell in base asset. |
amount_quote | Only if amount is not set | string | Only for market orders: the amount to buy or sell in quote asset including fee. |
price | Only for limit orders | string | Specifies the amount in quote asset that is paid/received for each unit of base asset. |
stop | false | string | Possible values: entry , loss . When set to entry , the order is triggered when the price of the last trade is greater than or equal to stop_price . When set to loss , the order is triggered when the price of the last trade is less than or equal to stop_price . |
stop_price | Only when stop is set | string | The price at which the order will be triggered. |
post_only | false | boolean | Only for limit orders: when set to true, the order will not fill against existing orders. This is useful if you want to ensure you pay the maker fee. If the order would fill against existing orders, the entire order will be canceled. Default: false . |
time_in_force | false | string | Only for limit orders: determines how long the order remains active. Default: gtc . Possible values: gtc , ioc , fok , day , gtd . |
expire_at | false | integer | Only for gtd orders: the unix timestamp at which the order expires. |
client_id | false | string | The ID that you would like to assign to the order. You may use this field to more easily identify your orders. |
market_protection | false | integer | Only for market orders: In order to protect clients from filling market orders with undesirable prices, the remainder of market orders will be canceled once the next fill price if this percentage (with a ratio of 1 = 0.01%) is worse than the best fill price (best bid/ask at first match). If you wish to disable this protection, set this value to null . |
self_trade_prevention | false | string | Self trading is not allowed. Multiple options are available to prevent this from happening. The default ‘cancel_oldest’ will cancel the entire oldest order and places the new order, ‘decrement_and_cancel’ decrements both orders by the amount that would have been filled, which in turn cancels the smallest of the two orders. ‘cancel_newest’ will cancel the order that is submitted. ‘cancel_both’ will cancel both the current and the old order. Possible values: cancel_both , cancel_oldest , decrement_and_cancel , cancel_newest . |
Response
201 Created
Name | Type | Description |
---|---|---|
uuid | string | The UUID of the order. |
amount | string | The amount of base asset to buy or sell. |
amount_filled | string | The total amount of base asset bought/sold. |
amount_quote | string | Only for market orders: the amount to buy or sell in quote asset including fee. |
amount_quote_filled | string | The total amount of quote asset paid/received including fee. |
fee | string | The fee paid for the order. |
price | string | Only for limit orders: specifies the amount in quote asset that is paid/received for each unit of base asset. |
side | string | The side of the order. Possible values: buy , sell . |
type | string | The type of the order. Possible values: limit , market . |
status | string | The status of the order. Possible values: created , open , closed . |
filled_status | string | The filled status of the order. Possible values: not_filled , partially_filled , filled . |
cancel_status | string | The cancel status of the order. Possible values: cancelled_user , cancelled_obsolete_market , cancelled_market_protection , cancelled_post_only , cancelled_self_trade_prevention , cancelled_tif_ioc , cancelled_tif_fok , cancelled_tif_day , cancelled_tif_gtd , cancelled_insufficient_liquidity , cancelled_insufficient_reserved_amount , cancelled_max_number_of_open_orders_reached , cancelled_other . |
stop | string | Possible values: entry , loss . When set to entry , the order is triggered when the price of the last trade is greater than or equal to stop_price . When set to loss , the order is triggered when the price of the last trade is less than or equal to stop_price . |
stop_price | string | The price at which the order will be triggered. |
post_only | boolean | Only for limit orders: when set to true, the order will not fill against existing orders. This is useful if you want to ensure you pay the maker fee. If the order would fill against existing orders, the entire order will be canceled. |
time_in_force | string | Only for limit orders: determines how long the order remains active. Possible values: gtc , ioc , fok , day , gtd . |
created_at | integer | The unix timstamp at which the order was created. |
updated_at | integer | The unix timestamp of the last update of the order. |
expire_at | integer | The unix timestamp at which the order expires. |
market | string | The symbol of the market. |
client_id | string | The ID that you assigned to the order. |
market_protection | integer | Only for market orders: In order to protect clients from filling market orders with undesirable prices, the remainder of market orders will be canceled once the next fill price if this percentage (with a ratio of 1 = 0.01%) is worse than the best fill price (best bid/ask at first match). If you wish to disable this protection, set this value to null . |
self_trade_prevention | string | Self trading is not allowed. Multiple options are available to prevent this from happening. The default ‘cancel_oldest’ will cancel the entire oldest order and places the new order, ‘decrement_and_cancel’ decrements both orders by the amount that would have been filled, which in turn cancels the smallest of the two orders. ‘cancel_newest’ will cancel the order that is submitted. ‘cancel_both’ will cancel both the current and the old order. Possible values: cancel_both , cancel_oldest , decrement_and_cancel , cancel_newest . |
GET /orders/open
curl "https://api.exchange.litebit.eu/v1/orders/open"
The above command returns JSON structured like this:
[
{
"uuid": "4260cd4a-35ba-41af-a63d-b0f1a127f2ab",
"amount": "0.49875000",
"amount_filled": "0.00000000",
"amount_quote": null,
"amount_quote_filled": "0.00000000",
"fee": "0.00000000",
"price": "0.0000",
"side": "buy",
"type": "market",
"status": "open",
"filled_status": "not_filled",
"cancel_status": null,
"stop": null,
"stop_price": null,
"post_only": false,
"time_in_force": "gtc",
"created_at": 1620112337000,
"updated_at": 1620112337000,
"expire_at": null,
"market": "BTC-EUR",
"client_id": null,
"market_protection": null,
"self_trade_prevention": "cancel_oldest"
}
]
This endpoint retrieves all open orders.
Rate limiting weight: 5 (single market) / 20 (all markets)
Required scope: trade
or view
HTTP Request
GET https://api.exchange.litebit.eu/v1/orders/open
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
market | false | string | The symbol of the market. |
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
uuid | string | The UUID of the order. |
amount | string | The amount of base asset to buy or sell. |
amount_filled | string | The total amount of base asset bought/sold. |
amount_quote | string | Only for market orders: the amount to buy or sell in quote asset including fee. |
amount_quote_filled | string | The total amount of quote asset paid/received including fee. |
fee | string | The fee paid for the order. |
price | string | Only for limit orders: specifies the amount in quote asset that is paid/received for each unit of base asset. |
side | string | The side of the order. Possible values: buy , sell . |
type | string | The type of the order. Possible values: limit , market . |
status | string | The status of the order. Possible values: created , open , closed . |
filled_status | string | The filled status of the order. Possible values: not_filled , partially_filled , filled . |
cancel_status | string | The cancel status of the order. Possible values: cancelled_user , cancelled_obsolete_market , cancelled_market_protection , cancelled_post_only , cancelled_self_trade_prevention , cancelled_tif_ioc , cancelled_tif_fok , cancelled_tif_day , cancelled_tif_gtd , cancelled_insufficient_liquidity , cancelled_insufficient_reserved_amount , cancelled_max_number_of_open_orders_reached , cancelled_other . |
stop | string | Possible values: entry , loss . When set to entry , the order is triggered when the price of the last trade is greater than or equal to stop_price . When set to loss , the order is triggered when the price of the last trade is less than or equal to stop_price . |
stop_price | string | The price at which the order will be triggered. |
post_only | boolean | Only for limit orders: when set to true, the order will not fill against existing orders. This is useful if you want to ensure you pay the maker fee. If the order would fill against existing orders, the entire order will be canceled. |
time_in_force | string | Only for limit orders: determines how long the order remains active. Possible values: gtc , ioc , fok , day , gtd . |
created_at | integer | The unix timstamp at which the order was created. |
updated_at | integer | The unix timestamp of the last update of the order. |
expire_at | integer | The unix timestamp at which the order expires. |
market | string | The symbol of the market. |
client_id | string | The ID that you assigned to the order. |
market_protection | integer | Only for market orders: In order to protect clients from filling market orders with undesirable prices, the remainder of market orders will be canceled once the next fill price if this percentage (with a ratio of 1 = 0.01%) is worse than the best fill price (best bid/ask at first match). If you wish to disable this protection, set this value to null . |
self_trade_prevention | string | Self trading is not allowed. Multiple options are available to prevent this from happening. The default ‘cancel_oldest’ will cancel the entire oldest order and places the new order, ‘decrement_and_cancel’ decrements both orders by the amount that would have been filled, which in turn cancels the smallest of the two orders. ‘cancel_newest’ will cancel the order that is submitted. ‘cancel_both’ will cancel both the current and the old order. Possible values: cancel_both , cancel_oldest , decrement_and_cancel , cancel_newest . |
GET /orders/closed
curl "https://api.exchange.litebit.eu/v1/orders/closed?market=BTC-EUR"
The above command returns JSON structured like this:
[
{
"uuid": "4260cd4a-35ba-41af-a63d-b0f1a127f2ab",
"amount": "0.49875000",
"amount_filled": "0.00000000",
"amount_quote": null,
"amount_quote_filled": "0.00000000",
"fee": "0.00000000",
"price": "0.0000",
"side": "buy",
"type": "market",
"status": "closed",
"filled_status": "not_filled",
"cancel_status": null,
"stop": null,
"stop_price": null,
"post_only": false,
"time_in_force": "gtc",
"created_at": 1620112337000,
"updated_at": 1620112337000,
"expire_at": null,
"market": "BTC-EUR",
"client_id": null,
"market_protection": null,
"self_trade_prevention": "cancel_oldest"
}
]
This endpoint retrieves all closed orders.
Rate limiting weight: 5
Required scope: trade
or view
HTTP Request
GET https://api.exchange.litebit.eu/v1/orders/closed
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
market | true | string | The symbol of the market. |
limit | false | integer | The maximum number of orders to return. Maximum: 200. |
created_at_from | false | integer | The earliest unix timestamp to return orders for. |
created_at_to | false | integer | The latest unix timestamp to return orders for. |
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
uuid | string | The UUID of the order. |
amount | string | The amount of base asset to buy or sell. |
amount_filled | string | The total amount of base asset bought/sold. |
amount_quote | string | Only for market orders: the amount to buy or sell in quote asset including fee. |
amount_quote_filled | string | The total amount of quote asset paid/received including fee. |
fee | string | The fee paid for the order. |
price | string | Only for limit orders: specifies the amount in quote asset that is paid/received for each unit of base asset. |
side | string | The side of the order. Possible values: buy , sell . |
type | string | The type of the order. Possible values: limit , market . |
status | string | The status of the order. Possible values: created , open , closed . |
filled_status | string | The filled status of the order. Possible values: not_filled , partially_filled , filled . |
cancel_status | string | The cancel status of the order. Possible values: cancelled_user , cancelled_obsolete_market , cancelled_market_protection , cancelled_post_only , cancelled_self_trade_prevention , cancelled_tif_ioc , cancelled_tif_fok , cancelled_tif_day , cancelled_tif_gtd , cancelled_insufficient_liquidity , cancelled_insufficient_reserved_amount , cancelled_max_number_of_open_orders_reached , cancelled_other . |
stop | string | Possible values: entry , loss . When set to entry , the order is triggered when the price of the last trade is greater than or equal to stop_price . When set to loss , the order is triggered when the price of the last trade is less than or equal to stop_price . |
stop_price | string | The price at which the order will be triggered. |
post_only | boolean | Only for limit orders: when set to true, the order will not fill against existing orders. This is useful if you want to ensure you pay the maker fee. If the order would fill against existing orders, the entire order will be canceled. |
time_in_force | string | Only for limit orders: determines how long the order remains active. Possible values: gtc , ioc , fok , day , gtd . |
created_at | integer | The unix timstamp at which the order was created. |
updated_at | integer | The unix timestamp of the last update of the order. |
expire_at | integer | The unix timestamp at which the order expires. |
market | string | The symbol of the market. |
client_id | string | The ID that you assigned to the order. |
market_protection | integer | Only for market orders: In order to protect clients from filling market orders with undesirable prices, the remainder of market orders will be canceled once the next fill price if this percentage (with a ratio of 1 = 0.01%) is worse than the best fill price (best bid/ask at first match). If you wish to disable this protection, set this value to null . |
self_trade_prevention | string | Self trading is not allowed. Multiple options are available to prevent this from happening. The default ‘cancel_oldest’ will cancel the entire oldest order and places the new order, ‘decrement_and_cancel’ decrements both orders by the amount that would have been filled, which in turn cancels the smallest of the two orders. ‘cancel_newest’ will cancel the order that is submitted. ‘cancel_both’ will cancel both the current and the old order. Possible values: cancel_both , cancel_oldest , decrement_and_cancel , cancel_newest . |
GET /order
curl "https://api.exchange.litebit.eu/v1/order?market=BTC-EUR&uuid=4260cd4a-35ba-41af-a63d-b0f1a127f2ab"
The above command returns JSON structured like this:
{
"uuid": "4260cd4a-35ba-41af-a63d-b0f1a127f2ab",
"amount": "0.49875000",
"amount_filled": "0.00000000",
"amount_quote": null,
"amount_quote_filled": "0.00000000",
"fee": "0.00000000",
"price": "0.0000",
"side": "buy",
"type": "market",
"status": "open",
"filled_status": "not_filled",
"cancel_status": null,
"stop": null,
"stop_price": null,
"post_only": false,
"time_in_force": "gtc",
"created_at": 1620112337000,
"updated_at": 1620112337000,
"expire_at": null,
"market": "BTC-EUR",
"client_id": null,
"market_protection": null,
"self_trade_prevention": "cancel_oldest"
}
This endpoint retrieves an order.
Rate limiting weight: 1
Required scope: trade
or view
HTTP Request
GET https://api.exchange.litebit.eu/v1/order
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
market | true | string | The symbol of the market. |
uuid | true | string | The UUID of the order. |
Response
200 OK
Name | Type | Description |
---|---|---|
uuid | string | The UUID of the order. |
amount | string | The amount of base asset to buy or sell. |
amount_filled | string | The total amount of base asset bought/sold. |
amount_quote | string | Only for market orders: the amount to buy or sell in quote asset including fee. |
amount_quote_filled | string | The total amount of quote asset paid/received including fee. |
fee | string | The fee paid for the order. |
price | string | Only for limit orders: specifies the amount in quote asset that is paid/received for each unit of base asset. |
side | string | The side of the order. Possible values: buy , sell . |
type | string | The type of the order. Possible values: limit , market . |
status | string | The status of the order. Possible values: created , open , closed . |
filled_status | string | The filled status of the order. Possible values: not_filled , partially_filled , filled . |
cancel_status | string | The cancel status of the order. Possible values: cancelled_user , cancelled_obsolete_market , cancelled_market_protection , cancelled_post_only , cancelled_self_trade_prevention , cancelled_tif_ioc , cancelled_tif_fok , cancelled_tif_day , cancelled_tif_gtd , cancelled_insufficient_liquidity , cancelled_insufficient_reserved_amount , cancelled_max_number_of_open_orders_reached , cancelled_other . |
stop | string | Possible values: entry , loss . When set to entry , the order is triggered when the price of the last trade is greater than or equal to stop_price . When set to loss , the order is triggered when the price of the last trade is less than or equal to stop_price . |
stop_price | string | The price at which the order will be triggered. |
post_only | boolean | Only for limit orders: when set to true, the order will not fill against existing orders. This is useful if you want to ensure you pay the maker fee. If the order would fill against existing orders, the entire order will be canceled. |
time_in_force | string | Only for limit orders: determines how long the order remains active. Possible values: gtc , ioc , fok , day , gtd . |
created_at | integer | The unix timstamp at which the order was created. |
updated_at | integer | The unix timestamp of the last update of the order. |
expire_at | integer | The unix timestamp at which the order expires. |
market | string | The symbol of the market. |
client_id | string | The ID that you assigned to the order. |
market_protection | integer | Only for market orders: In order to protect clients from filling market orders with undesirable prices, the remainder of market orders will be canceled once the next fill price if this percentage (with a ratio of 1 = 0.01%) is worse than the best fill price (best bid/ask at first match). If you wish to disable this protection, set this value to null . |
self_trade_prevention | string | Self trading is not allowed. Multiple options are available to prevent this from happening. The default ‘cancel_oldest’ will cancel the entire oldest order and places the new order, ‘decrement_and_cancel’ decrements both orders by the amount that would have been filled, which in turn cancels the smallest of the two orders. ‘cancel_newest’ will cancel the order that is submitted. ‘cancel_both’ will cancel both the current and the old order. Possible values: cancel_both , cancel_oldest , decrement_and_cancel , cancel_newest . |
DELETE /orders
This endpoint cancels one or multiple orders.
curl -X DELETE "https://api.exchange.litebit.eu/v1/orders"
The above command returns JSON structured like this:
[
{
"uuid": "234234897234-1243-1234-qsf234"
}
]
Rate limiting weight: 1
Required scope: trade
HTTP Request
DELETE https://api.exchange.litebit.eu/v1/orders
Request body
Parameter | Required | Type | Description |
---|---|---|---|
market | Only if orders is set | string | Filter used to specify for which market orders should be canceled. If market is not specified, all open orders will be canceled. |
orders | false | array | Array of UUIDs of the orders. |
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
uuid | string | The UUID of the order that has been canceled. |
GET /fills
curl "https://api.exchange.litebit.eu/v1/fills?market=BTC-EUR"
The above command returns JSON structured like this:
[
{
"uuid": "234234897234-1243-1234-qsf234",
"order_uuid": "234234897234-1243-1234-qsf235",
"amount": "0.00100000",
"price": "42986.64",
"amount_quote": "43.09410660",
"side": "buy",
"fee": "0.10746660",
"market": "BTC-EUR",
"liquidity": "taker",
"timestamp": 1622123573863
}
]
This endpoint retrieves all fills.
Rate limiting weight: 5
Required scope: trade
or view
HTTP Request
GET https://api.exchange.litebit.eu/v1/fills
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
market | true | string | The symbol of the market. |
order_uuid | false | string | The UUID of the order. |
limit | false | integer | The maximum number of fills to return. Maximum: 200. |
timestamp_from | false | integer | The earliest unix timestamp to return fills for. |
timestamp_to | false | integer | The latest unix timestamp to return fills for. |
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
uuid | string | The UUID of the fill. |
order_uuid | string | The UUID of the order. |
amount | string | The total amount of base asset bought/sold. |
price | string | The price of the fill. |
amount_quote | string | The total amount of quote asset paid/received including fee. |
side | string | The side of the fill. Possible values: buy , sell . |
fee | string | The fee paid for this fill. |
market | string | The symbol of the market. |
liquidity | string | The liquidity of fill. Possiblue values: taker , maker . |
timestamp | integer | The unix timestamp of the fill. |
GET /fee
curl "https://api.exchange.litebit.eu/v1/fee"
The above command returns JSON structured like this:
{
"maker": "0.15000000",
"taker": "0.25000000",
"volume": "11.70"
}
This endpoint retrieves your current fee level.
Rate limiting weight: 5
Required scope: trade
or view
HTTP Request
GET https://api.exchange.litebit.eu/v1/fee
Response
200 OK
Name | Type | Description |
---|---|---|
maker | string | Current maker fee (in %). |
taker | string | Current taker fee (in %). |
volume | string | Volume in € during the the last 30 days. |
GET /fees
curl "https://api.exchange.litebit.eu/v1/fees"
The above command returns JSON structured like this:
[
{
"volume": "0.00000000",
"maker": "0.15000000",
"taker": "0.25000000"
}
]
This endpoint retrieves the fee schedules.
Rate limiting weight: 1
HTTP Request
GET https://api.exchange.litebit.eu/v1/fees
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
maker | string | Maker fee (in %). |
taker | string | Taker fee (in %). |
volume | string | Volume in € during the the last 30 days. |
Wallet
GET /balances
curl "https://api.exchange.litebit.eu/v1/balances"
The above command returns JSON structured like this:
[
{
"available": "8719.52490619",
"reserved": "101.55383733",
"total": "8821.07874352",
"asset": "EUR"
}
]
This endpoint retrieves your balances.
Rate limiting weight: 5
Required scope: view
HTTP Request
GET https://api.exchange.litebit.eu/v1/balances
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
available | string | The amount that is available to trade or withdraw. |
reserved | string | The amount that is currently reserved, e.g. for open orders. |
total | string | The total amount (available + reserved). |
asset | string | The code of the asset. |
GET /balance
curl "https://api.exchange.litebit.eu/v1/balance?asset=BTC"
The above command returns JSON structured like this:
{
"available": "8719.52490619",
"reserved": "101.55383733",
"total": "8821.07874352",
"asset": "EUR"
}
This endpoint retrieves a balance.
Rate limiting weight: 5
Required scope: view
HTTP Request
GET https://api.exchange.litebit.eu/v1/balance
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
asset | true | string | The code of the asset. |
Response
200 OK
Name | Type | Description |
---|---|---|
available | string | The amount that is available to trade or withdraw. |
reserved | string | The amount that is currently reserved, e.g. for open orders. |
total | string | The total amount (available + reserved). |
asset | string | The code of the asset. |
POST /withdraw/blockchain
curl
-d '{"asset": "BTC", "amount": "0.01", "address": "3E8ociqZa9mZUSwGdSmAEMAoAxBK3FNDcd"}'
-H "Content-Type: application/json"
-X POST "https://api.exchange.litebit.eu/v1/withdraw/blockchain"
The above command returns JSON structured like this:
{
"id": "crypto-391295",
"method": "blockchain",
"asset": "BTC",
"amount": "0.01000000",
"fee": "0.00000001",
"status": "pending",
"created_at": 1662622018800,
"updated_at": 1662622026063,
"transaction_details": {
"address": "3E8ociqZa9mZUSwGdSmAEMAoAxBK3FNDcd",
"tag": "",
"transaction_id": ""
}
}
This endpoint creates a withdrawal.
Rate limiting weight: 5
Required scope: withdraw
HTTP Request
POST https://api.exchange.litebit.eu/v1/withdraw/blockchain
Request body
Parameter | Required | Type | Description |
---|---|---|---|
asset | true | string | The code of the asset. |
amount | true | string | The amount to be withdrawn including fee. |
address | true | string | The wallet address to withdraw the funds to. |
tag | false | string | Tag/memo/payment_id for the transaction. |
Response
201 Created
Name | Type | Description |
---|---|---|
id | string | The ID of the withdrawal. |
method | string | The method of the withdrawal. Possible values: sepa , blockchain . |
asset | string | The code of the asset. |
amount | string | The amount that was withdrawn including fee. |
fee | string | The fee paid for this withdrawal. |
status | string | The status of the withdrawal. Possible values for method sepa : confirmed , cancelled , completed , in_sepa_batch , invalid_payment_details , on_hold . Possible values for method blockchain : pending , checked , complete , on hold , invalid address , cancelled , being withdrawn . |
created_at | integer | The unix timestamp at which the withdrawal was created. |
updated_at | integer | The unix timestamp of the last update of the withdrawal. |
transaction_details | object | The transaction details of the withdrawal. |
transaction_details.address | string | The address funds were withdrawn to. |
transaction_details.tag | string | Only for blockchain method: tag/memo/payment_id of the transaction. |
transaction_details.transaction_id | string | Only for blockchain method: the transaction id of the withdrawal on the blockchain. |
POST /withdraw/sepa
curl
-d '{"amount": "1234.56", "address": "NL57RABO0123456789"}'
-H "Content-Type: application/json"
-X POST "https://api.exchange.litebit.eu/v1/withdraw/sepa"
The above command returns JSON structured like this:
{
"id": "fiat-85173",
"method": "sepa",
"asset": "EUR",
"amount": "1234.56",
"fee": "0.01",
"status": "confirmed",
"created_at": 1662622018800,
"updated_at": 1662622026063,
"transaction_details": {
"address": "NL57RABO0123456789",
"tag": "",
"transaction_id": ""
}
}
This endpoint creates a withdrawal.
Rate limiting weight: 5
Required scope: withdraw
HTTP Request
POST https://api.exchange.litebit.eu/v1/withdraw/sepa
Request body
Parameter | Required | Type | Description |
---|---|---|---|
amount | true | string | The amount to be withdrawn including fee. |
address | true | string | The IBAN address to withdraw the funds to. |
Response
201 Created
Name | Type | Description |
---|---|---|
id | string | The ID of the withdrawal. |
method | string | The method of the withdrawal. Possible values: sepa , blockchain . |
asset | string | The code of the asset. |
amount | string | The amount that was withdrawn including fee. |
fee | string | The fee paid for this withdrawal. |
status | string | The status of the withdrawal. Possible values for method sepa : confirmed , cancelled , completed , in_sepa_batch , invalid_payment_details , on_hold . Possible values for method blockchain : pending , checked , complete , on hold , invalid address , cancelled , being withdrawn . |
created_at | integer | The unix timestamp at which the withdrawal was created. |
updated_at | integer | The unix timestamp of the last update of the withdrawal. |
transaction_details | object | The transaction details of the withdrawal. |
transaction_details.address | string | The address funds were withdrawn to. |
transaction_details.tag | string | Only for blockchain method: tag/memo/payment_id of the transaction. |
transaction_details.transaction_id | string | Only for blockchain method: the transaction id of the withdrawal on the blockchain. |
GET /withdrawals
curl "https://api.exchange.litebit.eu/v1/withdrawals"
The above command returns JSON structured like this:
[
{
"id": "fiat-85173",
"method": "sepa",
"asset": "EUR",
"amount": "1234.56",
"fee": "0.01",
"status": "confirmed",
"created_at": 1662622018800,
"updated_at": 1662622026063,
"transaction_details": {
"address": "NL57RABO0123456789",
"tag": "",
"transaction_id": ""
}
}
]
This endpoint retrieves all withdrawals.
Rate limiting weight: 20
Required scope: withdraw
or view
HTTP Request
GET https://api.exchange.litebit.eu/v1/withdrawals
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
asset | false | string | The asset of the withdrawals. |
limit | false | integer | The maximum number of withdrawals to return. Maximum: 200. |
created_at_from | false | integer | The earliest unix timestamp to return withdrawals for. |
created_at_to | false | integer | The latest unix timestamp to return withdrawals for. |
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
id | string | The ID of the withdrawal. |
method | string | The method of the withdrawal. Possible values: sepa , blockchain . |
asset | string | The code of the asset. |
amount | string | The amount that was withdrawn including fee. |
fee | string | The fee paid for this withdrawal. |
status | string | The status of the withdrawal. Possible values for method sepa : confirmed , cancelled , completed , in_sepa_batch , invalid_payment_details , on_hold . Possible values for method blockchain : pending , checked , complete , on hold , invalid address , cancelled , being withdrawn . |
created_at | integer | The unix timestamp at which the withdrawal was created. |
updated_at | integer | The unix timestamp of the last update of the withdrawal. |
transaction_details | object | The transaction details of the withdrawal. |
transaction_details.address | string | The address funds were withdrawn to. |
transaction_details.tag | string | Only for blockchain method: tag/memo/payment_id of the transaction. |
transaction_details.transaction_id | string | Only for blockchain method: the transaction id of the withdrawal on the blockchain. |
GET /deposits
curl "https://api.exchange.litebit.eu/v1/deposits"
The above command returns JSON structured like this:
[
{
"id": "fiat-152175",
"method": "sepa",
"asset": "EUR",
"amount": "1234.56",
"fee": "0.01",
"status": "order_success",
"created_at": 1662622018800,
"updated_at": 1662622026063,
"transaction_details": {
"address": "NL57RABO0123456789",
"tag": "",
"transaction_id": ""
}
}
]
This endpoint retrieves all deposits.
Rate limiting weight: 20
Required scope: view
HTTP Request
GET https://api.exchange.litebit.eu/v1/deposits
Query Parameters
Parameter | Required | Type | Description |
---|---|---|---|
asset | false | string | The asset of the deposits. |
limit | false | integer | The maximum number of deposits to return. Maximum: 200. |
created_at_from | false | integer | The earliest unix timestamp to return deposits for. |
created_at_to | false | integer | The latest unix timestamp to return deposits for. |
Response
200 OK
Array of objects.
Name | Type | Description |
---|---|---|
id | string | The ID of the deposit. |
method | string | The method of the deposit. Possible values: sepa , blockchain . |
asset | string | The code of the asset. |
amount | string | The amount that was deposited before the fee has been subtracted. |
fee | string | The fee paid for this deposit. |
status | string | The status of the deposit. Possible values for method sepa : order_processing , order_paid , order_completing , order_success , order_cancelled , order_on_hold , order_expired , order_refunded , order_success , order_iban_verification , order_awaiting_payment . Possible values for method blockchain : completed , pending , cancelled . |
created_at | integer | The unix timestamp at which the deposit was created. |
updated_at | integer | The unix timestamp of the last update of the deposit. |
transaction_details | object | The transaction details of the deposit. |
transaction_details.address | string | The address funds were deposited from. |
transaction_details.tag | string | Only for blockchain method: tag/memo/payment_id of the transaction. |
transaction_details.transaction_id | string | Only for blockchain method: the transaction id of the deposit on the blockchain. |
WebSockets
General
The URL is wss://ws.exchange.litebit.eu/v1
.
Some remarks:
- All messages sent and received via WebSockets are encoded in JSON format.
- All messages have an
event
attribute that can be used to handle the message appropriately. - All decimal fields are quoted to preserve precision.
- All time and timestamp related fields are unix timestamps in milliseconds.
- New events can be added at any point in time. Clients are expected to ignore messages they do not support.
- New backwards-compatible keys may be added to a message at any point in time. Client are expected to ignore keys they do not support.
- On a regular basis a ping frame is send from our end. Connections that do not respond with a pong frame in a timely matter are disconnected.
Authentication
A WebSocket can be authenticated using the authenticate
method.
Message protocol
We distinguish two types of messages: requests and responses. Messages sent by clients to the server are considered as requests. Messages sent by the server to a client are considered as responses.
Request
Key | Required | Type | Description |
---|---|---|---|
rid | no | integer | ID of the request. If it is included, then the response will contain the same identifier. |
event | yes | string | Name of the event/method. |
data | yes | any | Body of the request. The event of the message determines the schema to which the body must adhere. |
Response
Key | Required | Type | Description |
---|---|---|---|
rid | no | integer | ID of the request. This key is only included in messages sent directly in response to a request, not in messages related to subscriptions. |
event | yes | string | Name of the event/method. |
data | yes | no | Body of the response. The event of the message determines the schema to which the body must adhere. |
Errors
{
"rid": 1147483647,
"event": "error",
"data": {
"code": 10012,
"message": "Invalid channel."
}
}
Most errors will cause a response with the event error
to be emitted. Error messages have a key data
with more information about the error.
For more information about the error codes that you may encounter, see this section.
Rate limits
The number of messages sent by a client on each connection is rate-limited to 50 per second. A maximum of 20 connections can be opened per minute.
For more information about the general rate limiting, click here.
Channels
ticker
{
"event": "ticker",
"data": {
"market": "BTC-EUR",
"open": "1.12345678",
"last": "1.12345678",
"volume": "1.12345678",
"low": "1.12345678",
"high": "1.12345678",
"bid": "1.12345678",
"ask": "1.12345678"
}
}
Channel on which ticker updates are published.
Name: ticker
for all markets or ticker:<market>
for a given market (e.g. ticker:BTC-EUR
)
Name | Type | Description |
---|---|---|
market | string | The symbol of the market. |
open | string | The price of the first trade during the last 24 hours. |
last | string | The price of the last trade. |
volume | string | The volume during the last 24 hours in base asset. |
low | string | The lowest price of a trade during the last 24 hours. |
high | string | The highest price of a trade during the last 24 hours. |
bid | string | The current best bid price. |
ask | string | The current best ask price. |
book
{
"event": "book",
"data": {
"market": "BTC-EUR",
"sequence": 1231232,
"update_type": "snapshot",
"timestamp": 1622123573863,
"asks": [
[<price>, <amount>],
...,
],
"bids": [
[<price>, <amount>],
...,
]
}
}
Channel on which book updates are published.
Name: book:<market>
, e.g. book:BTC-EUR
Name | Type | Description |
---|---|---|
market | string | The symbol of the market. |
timestamp | integer | The timestamp of this orderbook state. |
sequence | integer | Sequence number of this orderbook state. Incremented by one for every update of the book. |
update_type | string | The type of update: snapshot or delta . |
bids | array of [string, string] | Array of bids: [price, amount], where an amount of 0 means the price level no longer exists, otherwise the returned amount is the new total amount on that price level. |
asks | array of [string, string] | Array of asks: [price, amount], where an amount of 0 means the price level no longer exists, otherwise the returned amount is the new total amount on that price level. |
Keeping track of an orderbook locally
- Subscribe to the book channel of the market of your choice, e.g.
book:BTC-EUR
. - The first message provides a snapshot of the current orderbook. After the snapshot, delta updates will be provided.
- The sequence number of a message should be equal to the sequence number of the previous message + 1.
- If the amount is 0, then remove the price level from the book.
- If the amount is not equal to 0, then create or update the price level. The amount is the absolute amount at the price level.
trades
{
"event": "trade",
"data": {
"uuid": "9beba3ae-4755-4f06-82be-60b2a3452926",
"amount": "0.41322185",
"price": "38218.40000000",
"side": "buy",
"timestamp": 1622123573863,
"market": "BTC-EUR"
}
}
Channel on which new trades are published.
Name: trades:<market>
, e.g. trades:BTC-EUR
Name | Type | Description |
---|---|---|
uuid | string | The UUID of the trade. |
amount | string | The amount of the trade. |
price | string | The price of the trade. |
side | string | The side of the taker. Possible values: buy , sell . |
market | string | The symbol of the market. |
timestamp | integer | The unix timestamp of the trade. |
candles
{
"event": "candle",
"data": {
"market": "BTC-EUR",
"interval": 900,
"ohlcv": [1525337100, "0.1221", "0.1460", "0.1032", "0.1538", "5.305"]
}
}
Channel on which new and updated candles are published.
Name: candles:<market>:<interval>
, e.g. candles:BTC-EUR:300
Possible values for interval: 60
(1 minute), 300
(5 minutes), 900
(15 minutes), 3600
(1 hour), 14400
(4 hours) and 86400
(1 day)
Name | Type | Description |
---|---|---|
market | string | The symbol of the market. |
interval | integer | The interval of the candle. |
ohlcv | array | Timestamp, open, high, low, close and volume of the candle. |
orders
{
"event": "order",
"data": {
"uuid": "5f7bda37-5dac-4525-bd72-14df3fbc6f82",
"amount": "1.00000000",
"amount_filled": "0.00000000",
"amount_quote": null,
"amount_quote_filled": "0.00000000",
"fee": "0.00000000",
"price": "0.01635866",
"side": "buy",
"type": "limit",
"status": "open",
"filled_status": "not_filled",
"cancel_status": null,
"stop": null,
"stop_price": null,
"post_only": false,
"time_in_force": "gtc",
"created_at": 1614919085000,
"updated_at": 1614919085000,
"expire_at": null,
"market": "BTC-EUR",
"client_id": null
}
}
Channel on which new and updated orders are published.
Name: orders
Required scope: trade
or view
Name | Type | Description |
---|---|---|
uuid | string | The UUID of the order. |
amount | string | The amount of base asset to buy or sell. |
amount_filled | string | The total amount of base asset bought/sold. |
amount_quote | string | Only for market orders: the amount to buy or sell in quote asset including fee. |
amount_quote_filled | string | The total amount of quote asset paid/received including fee. |
fee | string | The fee paid for the order. |
price | string | Only for limit orders: specifies the amount in quote asset that is paid/received for each unit of base asset. |
side | string | The side of the order. Possible values: buy , sell . |
type | string | The type of the order. Possible values: limit , market . |
status | string | The status of the order. Possible values: created , open , closed . |
filled_status | string | The filled status of the order. Possible values: not_filled , partially_filled , filled . |
cancel_status | string | The cancel status of the order. Possible values: cancelled_user , cancelled_obsolete_market , cancelled_market_protection , cancelled_post_only , cancelled_self_trade_prevention , cancelled_tif_ioc , cancelled_tif_fok , cancelled_tif_day , cancelled_tif_gtd , cancelled_insufficient_liquidity , cancelled_insufficient_reserved_amount , cancelled_max_number_of_open_orders_reached , cancelled_other . |
stop | string | Possible values: entry , loss . When set to entry , the order is triggered when the price of the last trade is greater than or equal to stop_price . When set to loss , the order is triggered when the price of the last trade is less than or equal to stop_price . |
stop_price | string | The price at which the order will be triggered. |
post_only | boolean | Only for limit orders: when set to true, the order will not fill against existing orders. This is useful if you want to ensure you pay the maker fee. If the order would fill against existing orders, the entire order will be canceled. |
time_in_force | string | Only for limit orders: determines how long the order remains active. Possible values: gtc , ioc , fok , day , gtd . |
created_at | integer | The unix timstamp at which the order was created. |
updated_at | integer | The unix timestamp of the last update of the order. |
expire_at | integer | The unix timestamp at which the order expires. |
market | string | The symbol of the market. |
client_id | string | The ID that you assigned to the order. |
market_protection | integer | Only for market orders: In order to protect clients from filling market orders with undesirable prices, the remainder of market orders will be canceled once the next fill price if this percentage (with a ratio of 1 = 0.01%) is worse than the best fill price (best bid/ask at first match). If you wish to disable this protection, set this value to null . |
self_trade_prevention | string | Self trading is not allowed. Multiple options are available to prevent this from happening. The default ‘cancel_oldest’ will cancel the entire oldest order and places the new order, ‘decrement_and_cancel’ decrements both orders by the amount that would have been filled, which in turn cancels the smallest of the two orders. ‘cancel_newest’ will cancel the order that is submitted. ‘cancel_both’ will cancel both the current and the old order. Possible values: cancel_both , cancel_oldest , decrement_and_cancel , cancel_newest . |
fills
{
"event": "fill",
"data": {
"uuid": "234234897234-1243-1234-qsf234",
"order_uuid": "234234897234-1243-1234-qsf235",
"amount": "0.00100000",
"price": "42986.64",
"amount_quote": "43.09410660",
"side": "buy",
"fee": "0.10746660",
"market": "BTC-EUR",
"liquidity": "taker",
"timestamp": 1622123573863
}
}
Channel on which new fills are published.
Name: fills
Required scope: trade
or view
Name | Type | Description |
---|---|---|
uuid | string | The UUID of the fill. |
order_uuid | string | The UUID of the order. |
amount | string | The total amount of base asset bought/sold. |
price | string | The price of the fill. |
amount_quote | string | The total amount of quote asset paid/received including fee. |
side | string | The side of the fill. Possible values: buy , sell . |
fee | string | The fee paid for this fill. |
market | string | The symbol of the market. |
liquidity | string | The liquidity of fill. Possiblue values: taker , maker . |
timestamp | integer | The unix timestamp of the fill. |
Methods
authenticate
{
"rid": 1147483647,
"event": "authenticate",
"data": {
"api_key": "<api_key>",
"timestamp": 1632392797512,
"signature": "<signature>"
}
}
The above request returns a response like this:
{
"rid": 1147483647,
"event": "authenticate"
}
This method authenticates the current connection. This is required for certain messages, such as private subscriptions.
Authentication requests that are not received within a window of 10 seconds from the timestamp of the message are not processed.
Request body
Parameter | Required | Type | Description |
---|---|---|---|
api_key | true | string | The key of your API key. |
timestamp | true | integer | The current unix timestamp in milliseconds. |
signature | true | string | Signature of event + timestamp (click here for the documentation regarding message signing), e.g. authenticate1632392797512 . |
Response
Result | Response |
---|---|
SUCCESS | acknowledgement |
ERROR | error |
subscribe
{
"rid": 1147483647,
"event": "subscribe",
"data": ["book:BTC-EUR"]
}
The above request returns a response like this:
{
"rid": 1147483647,
"event": "subscribe"
}
This method subscribes the current connection to the given channels.
Please note that in order to subscribe to private channels, you first need to authenticate your connection.
Request body
Array of channel names to subscribe to. For the list of available channels, click here.
Response
Result | Response |
---|---|
SUCCESS | acknowledgement |
ERROR | error |
unsubscribe
{
"rid": 1147483647,
"event": "unsubscribe",
"data": ["book:BTC-EUR"]
}
The above request returns a response like this:
{
"rid": 1147483647,
"event": "unsubscribe"
}
This method unsubscribes the current connection from the given channels.
Request body
Array of channel names to unsubscribe from.
Response
Result | Response |
---|---|
SUCCESS | acknowledgement |
ERROR | error |
ping
{
"rid": 1147483647,
"event": "ping"
}
The above request returns a response like this:
{
"rid": 1147483647,
"event": "ping"
}
This method can be used to determine whether the current connection is still alive. This is an application level ping as opposed to the default ping in the WebSockets protocol (which is server initiated).
Response
Result | Response |
---|---|
SUCCESS | acknowledgement |