ccxt-rest
Version:
Open Source Unified REST API of 100+ Crypto Exchange Sites
1,335 lines (1,300 loc) • 55.2 kB
YAML
openapi: 3.0.0
info:
version: "2.5.0"
title: CCXT REST
contact:
name: "Adroit"
email: "hello@adroit.ph"
url: "https://adroit.ph/ccxt-rest-contact-us/"
license:
name: "MIT"
url: "https://github.com/ccxt-rest/ccxt-rest/blob/master/LICENSE.txt"
servers:
- url: 'http://localhost:3000/'
tags:
- name: Authentication API
description: >-
APIs that manage [creation](/#createPrivateConnection) / [deletion](/#deletePrivateConnection) / [retrieving](/#getone) of exchange connections.
Most [Public Data APIs](/#ccxt-rest-public-data-api) by most exchanges can be used without providing the API Key and Secret.
For example, you get retrieve the market of binance by doing `GET:/exchange/binance/market` directly and would be able to get
the markets of binance.
But some exchanges though would require you to use an API Key and Secret even when accessing their Public Data API. For
example, for cointiger, if you want to retrieve its market and you do `GET:/exchange/cointiger/market`, you will a `403` error
(_i.e. meaning you were unauthorized to access it_). Thus, to use that api of continger, you would first have to provide your
API Key and Secret to continger via `POST:/exchange/continger -d {"id":"myCoinTiger","apiKey":"My-COINTIGER-KEY","secret":"s3cret"}`.
From there, you will get a response `{"token":"xxx.yyy.zzz"}`. That `"xxx.yyy.zzz"` would then what you will use to connect to
coiniger - i.e. `GET:/exchange/cointiger/market -H "Authorization: Bearer xxx.yyy.zzz"` and this time, your request will push
through and would be able to get cointiger's market.
Furthemore, all [Private Data APIs](/#ccxt-rest-private-data-api) of all exchanges would require API Key and Secret. Thus,
although `GET:/exchange/binance/market` would work, doing `GET:/exchange/binance/balances` will not. You'd have to provide first
binance your API Key and Secret like `POST:/exchange/binance -d {"id":"myBinance","apiKey":"binance-key","secret":"s3cret"}`, to
get something like `{"token":"aaa.bbb.ccc"}`, which you can then use to execute
`GET:/exchange/binance/balances -H "Authorization: Bearer aaa.bbb.ccc"` which would finally get your balances.
- name: Exchange Management API
description: APIs for retrieving supported exchanges
- name: Public Data API
description: APIs that retrieve public data (like ticker, order books, trades, etc)
- name: Private Data API
description: APIs that retrieve private data (like your balances, your open orders, your closed orders, your trades, etc)
- name: Experimental API
description: APIs that may be useful but are in experimental stage. Some of these APIs may potentially be removed in the future or be moved into one of the previous categories
paths:
/exchanges:
get:
description: List all support exchanges by this server
tags:
- Exchange Management API
x-swagger-router-controller: exchange
operationId: list
responses:
"200":
description: Success
content:
application/json:
schema:
type: array
items:
$ref : "#/components/schemas/Exchange"
example: ["_1btcxe","acx","anxpro","anybits","bcex","bequant","bibox","bigone","binance","binanceje","bit2c","bitbank","bitbay","bitfinex","bitfinex2","bitflyer","bitforex","bithumb","bitibu","bitkk","bitlish","bitmarket","bitmex","bitsane","bitso","bitstamp","bitstamp1","bittrex","bitz","bl3p","bleutrade","braziliex","btcalpha","btcbox","btcchina","btcexchange","btcmarkets","btctradeim","btctradeua","btcturk","buda","bxinth","ccex","cex","chbtc","chilebit","cobinhood","coinbase","coinbaseprime","coinbasepro","coincheck","coinegg","coinex","coinexchange","coinfalcon","coinfloor","coingi","coinmarketcap","coinmate","coinnest","coinone","coinspot","cointiger","coolcoin","coss","crex24","crypton","cryptopia","deribit","dsx","ethfinex","exmo","exx","fcoin","fcoinjp","flowbtc","foxbit","fybse","fybsg","gateio","gdax","gemini","getbtc","hadax","hitbtc","hitbtc2","huobipro","huobiru","ice3x","independentreserve","indodax","itbit","jubi","kkex","kraken","kucoin","kucoin2","kuna","lakebtc","lbank","liqui","liquid","livecoin","luno","lykke","mandala","mercado","mixcoins","negociecoins","nova","okcoincny","okcoinusd","okex","paymium","poloniex","rightbtc","southxchange","stronghold","surbitcoin","theocean","therock","tidebit","tidex","uex","upbit","urdubit","vaultoro","vbtc","virwox","xbtce","yobit","zaif","zb"]
x-content-type: application/json
"500":
description: If an unexpected error occurred
/exchange/{exchangeName}:
get:
description: Retreives the current exchange connection details given the {exchangeName} and access token in the header
security:
- bearerAuth: []
tags:
- Authentication API
x-swagger-router-controller: exchange
operationId: getConnection
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ExchangeResponse'
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
post:
description: Creates a private connection to the exchange referenced in {exchangeName}
security:
- bearerAuth: []
tags:
- Authentication API
operationId: createPrivateConnection
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
requestBody:
description: The exchange to create.
content:
application/json:
schema:
$ref: '#/components/schemas/exchangeConfig'
required: true
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AccessToken'
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"503":
description: Support for exchange is currently broken
x-swagger-router-controller: exchange
delete:
description: Delete the exchange connection referenced by access token in the header
security:
- bearerAuth: []
tags:
- Authentication API
x-swagger-router-controller: exchange
operationId: deletePrivateConnection
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ExchangeResponse'
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
/exchange/{exchangeName}/markets:
get:
description: >-
Get the markets of the exchange referenced by the {exchangeName}.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Public Data API
x-swagger-router-controller: exchange
operationId: markets
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
responses:
"200":
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MarketResponse'
x-content-type: application/json
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/orderBook:
get:
description: >-
Get the order book of the exchange referenced by the {exchangeName} and `?symbol=`.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Public Data API
x-swagger-router-controller: exchange
operationId: orderBook
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- $ref: "#/components/parameters/requiredExchangeSymbolParam"
- name: limit
in: query
description: The limit of the exchange's order book to be retrieved.
required: false
style: form
explode: true
schema:
type: number
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrderBookResponse'
x-content-type: application/json
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/l2OrderBook:
get:
description: >-
Get the Level 2 Order Book of the exchange referenced by the {exchangeName} and `?symbol=`.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Public Data API
x-swagger-router-controller: exchange
operationId: l2OrderBook
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- $ref: "#/components/parameters/requiredExchangeSymbolParam"
- name: limit
in: query
description: The limit of the exchange's order book to be retrieved.
required: false
style: form
explode: true
schema:
type: number
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrderBookResponse'
x-content-type: application/json
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/trades:
get:
description: >-
Get the trades of the exchange referenced by the {exchangeName} and `?symbol=`.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Public Data API
x-swagger-router-controller: exchange
operationId: trades
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- $ref: "#/components/parameters/requiredExchangeSymbolParam"
- name: since
in: query
description: Retrieve the trades starting from 'since'
required: false
style: form
explode: true
schema:
type: string
- name: limit
in: query
description: The limit of the exchange's trades to be retrieved.
required: false
style: form
explode: true
schema:
type: number
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TradeResponse'
x-content-type: application/json
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/ticker:
get:
description: >-
Get the ticker of the exchange referenced by the {exchangeName} and `?symbol=`.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Public Data API
x-swagger-router-controller: exchange
operationId: ticker
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- $ref: "#/components/parameters/requiredExchangeSymbolParam"
- name: symbol
in: query
description: >-
The symbol of the exchange's data to be retrieved. Possible values
are any of symbols in
GET:/exchange/{exchangeName}/markets
required: true
style: form
explode: true
schema:
type: string
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TickerResponse'
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/tickers:
get:
description: >-
Get the tickers of the exchange referenced by the {exchangeName} and `?symbol=`.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Public Data API
x-swagger-router-controller: exchange
operationId: tickers
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- $ref: "#/components/parameters/optionalExchangeSymbolParam"
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TickerResponse'
x-content-type: application/json
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/balances:
get:
description: >-
Get the balances of the exchange referenced by the {exchangeName}.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Private Data API
x-swagger-router-controller: exchange
operationId: balances
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/BalanceResponse'
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/orders:
get:
description: >-
Get the orders of the exchange referenced by the {exchangeName}.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Private Data API
x-swagger-router-controller: exchange
operationId: fetchOrders
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- $ref: "#/components/parameters/optionalExchangeSymbolParam"
- name: since
in: query
description: Retrieve the orders starting from 'since'
required: false
style: form
explode: true
schema:
type: string
- name: limit
in: query
description: The limit of the exchange's orders to be retrieved.
required: false
style: form
explode: true
schema:
type: number
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrderResponse'
x-content-type: application/json
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/orders/open:
get:
description: >-
Get the open orders of the exchange referenced by the {exchangeName}.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Private Data API
x-swagger-router-controller: exchange
operationId: fetchOpenOrders
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- $ref: "#/components/parameters/optionalExchangeSymbolParam"
- name: since
in: query
description: Retrieve the orders starting from 'since'
required: false
style: form
explode: true
schema:
type: string
- name: limit
in: query
description: The limit of the exchange's orders to be retrieved.
required: false
style: form
explode: true
schema:
type: number
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrderResponse'
x-content-type: application/json
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/orders/closed:
get:
description: >-
Get the closed orders of the exchange referenced by the {exchangeName}.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Private Data API
x-swagger-router-controller: exchange
operationId: fetchClosedOrders
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- $ref: "#/components/parameters/optionalExchangeSymbolParam"
- name: since
in: query
description: Retrieve the orders starting from 'since'
required: false
style: form
explode: true
schema:
type: string
- name: limit
in: query
description: The limit of the exchange's orders to be retrieved.
required: false
style: form
explode: true
schema:
type: number
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrderResponse'
x-content-type: application/json
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/trades/mine:
get:
description: >-
Get my trades of the exchange referenced by the {exchangeName}.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Private Data API
x-swagger-router-controller: exchange
operationId: fetchMyTrades
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- $ref: "#/components/parameters/optionalExchangeSymbolParam"
- name: since
in: query
description: Retrieve the trades starting from 'since'
required: false
style: form
explode: true
schema:
type: string
- name: limit
in: query
description: The limit of the exchange's trades to be retrieved.
required: false
style: form
explode: true
schema:
type: number
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TradeResponse'
x-content-type: application/json
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/order:
post:
description: Create an order on the exchange referenced by the {exchangeName}
security:
- bearerAuth: []
tags:
- Private Data API
x-swagger-router-controller: exchange
operationId: createOrder
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
requestBody:
description: The order to place.
content:
application/json:
schema:
$ref: '#/components/schemas/orderPlacement'
required: false
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResponse'
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/order/{orderId}:
get:
description: >-
Retrieves the information of an order on the exchange referenced by the {exchangeName} and {orderId}.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Private Data API
x-swagger-router-controller: exchange
operationId: fetchOrder
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- $ref: "#/components/parameters/orderIdParam"
- $ref: "#/components/parameters/optionalExchangeSymbolParam"
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResponse'
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
delete:
description: >-
Cancel an open order on the exchange referenced by the {exchangeName} and {orderId}.
<br/> *Parameters listed here are common to all exchanges. But any other parameter passed would be forwarded as well into the exchange.*
security:
- bearerAuth: []
tags:
- Private Data API
x-swagger-router-controller: exchange
operationId: cancelOrder
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- $ref: "#/components/parameters/orderIdParam"
- $ref: "#/components/parameters/optionalExchangeSymbolParam"
- name: exchangeSpecificParams
in: query
description: Any exchange specific parameters you want to pass in
schema:
type: object
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResponse'
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
/exchange/{exchangeName}/_/{methodName}:
post:
description: Invokes a ccxt javascript object's method call directly
security:
- bearerAuth: []
tags:
- Experimental API
x-swagger-router-controller: exchange
operationId: directCall
parameters:
- $ref: "#/components/parameters/exchangeNameParam"
- name: methodName
in: path
description: The method name of the exchange that would be invoked directly
required: true
style: simple
explode: false
schema:
type: string
requestBody:
description: The array of values that would be passed as parameters to the direct method call
content:
application/json:
schema:
type: array
required: false
responses:
"200":
description: Success
content:
application/json:
schema:
type: object
x-content-type: application/json
"400":
description: If the exchange itself complained about the parameters passed
"401":
description: If the exchange integration requires api key and secret for this function
"403":
description: If the exchange integration had an authentication issue (most probably nonce error)
"404":
description: Exchange with that name is NOT supported
"500":
description: If an unexpected error occurred
"501":
description: If the exchange integration does NOT support this function
"504":
description: If the exchange itself could not be reached because of some network error
components:
schemas:
OrderBookLevel:
required:
- price
type: object
properties:
price:
type: number
description: >-
The price being asked for. If this is a bid, then this is the amount
the bidder is willing to buy. If this is a sell, then this is the
amount the seller is willing to sell for.
amount:
type: number
description: The amount of units being sold.
BalanceInfo:
required:
- currency
- free
- total
- used
type: object
properties:
currency:
type: string
description: The currency at which this balance refers to
free:
type: number
description: The amount of currency that is free to used
used:
type: number
description: The amount of currency that is currently used
total:
type: number
description: The total amount of currency (free + used)
MarketResponse:
required:
- base
- id
- info
- limits
- lot
- precision
- quote
- symbol
type: object
properties:
id:
type: string
description: The unique identifier for this market
symbol:
type: string
description: >-
A unified way of referencing this Market. When a symbol parameter is
needed in one of the APIs, this iis where you will get it.
base:
type: string
description: 'The base currency. Given ''BTC/USD'', the base is ''BTC'''
quote:
type: string
description: 'The quote currency. Given ''BTC/USD'', the quote is ''USD'''
info:
type: object
properties: {}
description: Raw market response gotten from the exchange site's API
lot:
type: number
description: >-
When placing an order, its amount must be divisible by this lot
value
limits:
$ref: '#/components/schemas/Limits'
precision:
$ref: '#/components/schemas/Precision'
TradeResponse:
required:
- amount
- info
- price
- side
- symbol
type: object
properties:
id:
type: string
description: The unique identifier of the exchange for this trade
info:
type: object
properties: {}
description: Raw trade response gotten from the exchange site's API
timestamp:
type: number
description: The timestamp of this trade
format: date-time
symbol:
type: string
description: The currency pair of this trade
side:
$ref : "#/components/schemas/Side"
price:
type: number
description: The price of this trade
amount:
type: number
description: The amount of this trade
OrderResponse:
required:
- id
type: object
properties:
id:
type: string
description: The unique identifier of the exchange for this order
timestamp:
type: number
description: The timestamp of this order
datetime:
type: string
description: The datetime of this order
format: date-time
symbol:
type: string
description: The currency pair of this order
type:
$ref : "#/components/schemas/OrderType"
side:
$ref : "#/components/schemas/Side"
price:
type: number
description: The price of this order
amount:
type: number
description: The amount of this order
cost:
type: number
description: The cost of this order (i.e. price x amount)
filled:
type: number
description: >-
The amount of this order that is currently filled (i.e. this can be
less than or equal to 'amount')
remaining:
type: number
description: >-
The amount of this order that is still yet to be filled (i.e. this
can be less than or equal to 'amount')
status:
$ref : "#/components/schemas/OrderStatus"
info:
type: object
properties: {}
description: Raw order response gotten from the exchange site's API
Side:
type: string
description: Wether this is a bid or ask (i.e. buy or sell) order
enum:
- buy
- sell
Exchange:
type: string
enum: ["_1btcxe", "acx", "anxpro", "aofex", "bcex", "bequant", "bibox", "bigone", "binance", "binanceje", "binanceus", "bit2c", "bitbank", "bitbay", "bitfinex", "bitfinex2", "bitflyer", "bitforex", "bithumb", "bitkk", "bitmart", "bitmax", "bitmex", "bitso", "bitstamp", "bitstamp1", "bittrex", "bitvavo", "bitz", "bl3p", "bleutrade", "braziliex", "btcalpha", "btcbox", "btcmarkets", "btctradeim", "btctradeua", "btcturk", "buda", "bw", "bybit", "bytetrade", "cex", "chilebit", "coinbase", "coinbaseprime", "coinbasepro", "coincheck", "coinegg", "coinex", "coinfalcon", "coinfloor", "coingi", "coinmarketcap", "coinmate", "coinone", "coinspot", "coolcoin", "coss", "crex24", "currencycom", "deribit", "digifinex", "dsx", "eterbase", "exmo", "exx", "fcoin", "fcoinjp", "flowbtc", "foxbit", "ftx", "fybse", "gateio", "gemini", "hbtc", "hitbtc", "hollaex", "huobipro", "huobiru", "ice3x", "idex", "independentreserve", "indodax", "itbit", "kkex", "kraken", "kucoin", "kuna", "lakebtc", "latoken", "lbank", "liquid", "livecoin", "luno", "lykke", "mercado", "mixcoins", "oceanex", "okcoin", "okex", "paymium", "poloniex", "probit", "qtrade", "rightbtc", "southxchange", "stex", "stronghold", "surbitcoin", "theocean", "therock", "tidebit", "tidex", "timex", "topq", "upbit", "vaultoro", "vbtc", "whitebit", "xbtce", "yobit", "zaif", "zb"]
OrderBookResponse:
required:
- asks
- bids
type: object
properties:
bids:
type: array
description: The publicly listed buy orders
items:
$ref: '#/components/schemas/OrderBookLevel'
asks:
type: array
description: The publicly listed sell orders
items:
$ref: '#/components/schemas/OrderBookLevel'
timestamp:
type: number
description: The timestamp associated for this order book
datetime:
type: string
description: The timestamp associated for this order book
format: date-time
OrderStatus:
type: string
description: The current status of this order
enum:
- open
- closed
- canceled
- canceling
OrderType:
type: string
description: Whether this is a 'market' order or a 'limit' order
enum:
- market
- limit
Limits:
required:
- amount
- cost
- price
type: object
properties:
amount:
$ref: '#/components/schemas/Limit'
price:
$ref: '#/components/schemas/Limit'
cost:
$ref: '#/components/schemas/Limit'
BalanceResponse:
required:
- balances
- info
type: object
properties:
info:
type: object
properties: {}
description: Raw balance response gotten from the exchange site's API
balances:
type: array
description: List of balances per currency that you own
items:
$ref: '#/components/schemas/BalanceInfo'
Precision:
required:
- amount
- price
type: object
properties:
amount:
type: number
description: >-
The allowable precision of the amount when placing an order. For
example, given 2, then an amount of 0.123 must be made either 0.12
(or 0.13)
price:
type: number
description: >-
The allowable precision of the amount when placing an order. For
example, given 2, then a price of 0.123 must be made either 0.12 (or
0.13)
AccessToken:
required:
- token
properties:
token:
type: string
description: >-
The JWT token that needs to be added into the 'Authorization'
header with the 'Bearer ' prefix. For example, given a token of xyz,
do a secured request with 'Authorization: Bearer xyz'
ExchangeResponse:
required:
- id
- countries
- enableRateLimit
- name
- private
type: object
properties:
id:
type: string
description: >-
The id of the exchange. When you created the exchange (via
POST:/exchanges/{exhangeName}), the 'id' parameter there becomes the
name here
name:
type: string
description: >-
The name of the exchange.
private:
type: boolean
description: Whether this exchange is private (has apiKey) or public (no apiKey)
enableRateLimit:
type: boolean
description: >-
Whether to enable the built in rate limiter or not. The built in
rate limiter is an approximation of the actual exchange's limit. To
have a more accurate rate limiting, set this to false and implement
the rate limiter on your client
default: true
countries:
type: array
description: The list of countries where this exchange is a member of
items:
type: string
rateLimit:
type: integer
description: >-
A request rate limit in milliseconds. Specifies the required minimal
delay between two consequent HTTP requests to the same exchange. If
enableRateLimit is set to false, this would be ignored.
twofa:
type: boolean
description: Whether to enable two factor authentication or not
default: false
has:
$ref: '#/components/schemas/ExchangeHasCapabilities'
urls:
type: object
properties: {}
description: Collection of URLs this exchange has
TickerResponse:
required:
- ask
- baseVolume
- bid
- close
- datetime
- high
- info
- last
- low
- quoteVolume
- symbol
- timestamp
- vwap
type: object
properties:
symbol:
type: string
description: The currency pair of this tick
timestamp:
type: number
description: The timestamp of this tick
datetime:
type: string
description: The datetime of this tick
format: date-time
high:
type: number
description: The higest price of this tick
low:
type: number
description: The lowest price of this tick
bid:
type: number
description: The current bid price of this tick
ask:
type: number
description: The current ask price of this tick
vwap:
type: number
description: The volume weighted average price of this tick
close:
type: number
description: The closing price of this tick
last:
type: number
description: The last price of this tick
baseVolume:
type: number
description: The volume of the base currency of this tick
quoteVolume:
type: number
description: The volume of the quote currency of this tick
info:
type: object
properties: {}
description: Raw ticker response gotten from the exchange site's API
Limit:
required:
- max
- min
type: object
properties:
min:
type: number
description: The minimum allowable value
max:
type: number
description: The maximum allowable value
ExchangeCapability:
type: string
enum:
- 'true'
- 'false'
- emulated
ExchangeHasCapabilities:
required:
- CORS
- cancelOrder
- cancelOrders
- createDepositAddress
- createLimitOrder
- createMarketOrder
- createOrder
- editOrder
- fetchBalance
- fetchBidsAsks
- fetchClosedOrders
- fetchCurrencies
- fetchDepositAddress
- fetchFundingFees
- fetchL2OrderBook
- fetchMarkets
- fetchMyTrades
- fetchOHLCV
- fetchOpenOrders
- fetchOrder
- fetchOrderBook
- fetchOrderBooks
- fetchOrders
- fetchTicker
- fetchTickers
- fetchTrades
- fetchTradingFees
- fetchTradingLimits
- privateAPI
- publicAPI
- withdraw
type: object
properties:
CORS:
$ref : "#/components/schemas/ExchangeCapability"
publicAPI:
$ref : "#/components/schemas/ExchangeCapability"
privateAPI:
$ref : "#/components/schemas/ExchangeCapability"
cancelOrder:
$ref : "#/components/schemas/ExchangeCapability"
cancelOrders:
$ref : "#/components/schemas/ExchangeCapability"
createDepositAddress:
$ref : "#/components/schemas/ExchangeCapability"
createOrder:
$ref : "#/components/schemas/ExchangeCapability"