
Research
/Security News
Critical Vulnerability in NestJS Devtools: Localhost RCE via Sandbox Escape
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Connect to 100+ Crypto Currency eXchange Trading platforms using the same REST API!
CCXT-REST provides a Unified REST APIs to allow clients access to retrieve data (ticker, order book, trades, your order, your trades, balances, etc) and to create and cancel orders from over 100 cryptocurrency exhange sites. And it is built on top of the popular open source project CCXT
You can install either through docker or as a global node package
$ docker run -p 3000:3000 ccxtrest/ccxt-rest
$ npm install -g ccxt-rest
$ ccxt-rest
CCXT-REST supports over 100 crytpocurrency exchange sites. If you want to access public data, for most exchanges, you can access them directly without any API Keys or Secret.
GET:/exchanges/{exchangeName}/markets
GET:/exchanges/{exchangeName}/ticker
GET:/exchanges/{exchangeName}/tickers
GET:/exchanges/{exchangeName}/orderBook
GET:/exchanges/{exchangeName}/trades
In binance, it would look something like this
GET:/exchanges/binance/markets
GET:/exchanges/binance/ticker?symbol=BTC/USDT
GET:/exchanges/binance/tickers
GET:/exchanges/binance/orderBook?symbol=BTC/USDT
GET:/exchanges/binance/trades?symbol=BTC/USDT
However, some exchanges though require you to have an API Key and Secret even when accessing public data. For example, for cointiger, you would need to get an API Key and Secret first from cointiger see cointiger's official documentation for more info, and then you would need to provide those to ccxt-rest
POST:/exchanges/cointiger -d {"id":"myCoinTiger","apiKey":"myApiKey","secret":"$hcreT"}
GET:/exchanges/cointiger/markets -H 'Authorization: Bearer xxx.yyy.zzz'
(where xxx.yyy.zzz
was part of the response of POST:/exchanges/cointiger
)GET:/exchanges/cointiger/ticker?symbol=BTC/LTC -H 'Authorization: Bearer xxx.yyy.zzz'
GET:/exchanges/cointiger/tickers -H 'Authorization: Bearer xxx.yyy.zzz'
GET:/exchanges/cointiger/orderBook?symbol=BTC/LTC -H 'Authorization: Bearer xxx.yyy.zzz'
GET:/exchanges/cointiger/trades?symbol=BTC/LTC -H 'Authorization: Bearer xxx.yyy.zzz'
Lastly, for private data like your user orders, trades, balances and for actions like placing and cancelling orders, you would definitely need to provide the API Key and Secret for your exchange to ccxt-rest
.
Note: The API listing below is now comprehensive. For a full list of APIs supported, see https://ccxt-rest.io
$ curl -X POST http://localhost:3000/exchange/binance \
-H 'Accept: application/json'
-d {
"id" : "myBinance",
"apiKey" : "myApiKey",
"secret" : "s3cr3t"
}
This would then return something like this
{
"token":"xxx.yyy.zzz"
}
$ curl -X GET http://localhost:3000/exchange/binance/markets \
-H 'Accept: application/json'
$ curl -X GET http://localhost:3000/exchange/binance/ticker?symbol=BTC/USDT \
-H 'Accept: application/json'
$ curl -X GET http://localhost:3000/exchange/binance/orderBook?symbol=BTC/USDT \
-H 'Accept: application/json'
$ curl -X POST http://localhost:3000/exchange/binance/order \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer xxx.yyy.zzz'
-d {
"symbol": "string",
"type": "market",
"side": "buy",
"amount": 0,
"price": 0
}
Note: 12345
is the id of the order you want to cancel
$ curl -X DELETE http://localhost:3000/exchange/binance/order/12345 \
-H 'Accept: application/json'
-H 'Authorization: Bearer xxx.yyy.zzz'
For a complete list of API, see https://ccxt-rest.io
For a full list of supported exchanges and as to which of their APIs are public, private or even broken, checkout https://ccxt-rest.io/docs/exchange_api_status. The format there looks something like this
Note: The table below is just an example. This does NOT represent the current state of these API statuses
Exchange | Connect | Market | Ticker | Tickers | Order Book | Trades |
---|---|---|---|---|---|---|
... | ... | ... | ... | ... | ... | ... |
(sample only) | (sample only) | (sample only) | (sample only) | (sample only) | (sample only) | (sample only) |
binance | ||||||
coinspot | ||||||
gemini | ||||||
kraken | ||||||
poloniex | ||||||
(sample only) | (sample only) | (sample only) | (sample only) | (sample only) | (sample only) | (sample only) |
... | ... | ... | ... | ... | ... | ... |
Note: The table above is just an example. This does NOT represent the current state of these API statuses
For full list of the current statuses, see https://ccxt-rest.io/docs/exchange_api_status
Need a feature or need support? Reach out and let us know what you need.
FAQs
Open Source Unified REST API of 100+ Crypto Exchange Sites
The npm package ccxt-rest receives a total of 26 weekly downloads. As such, ccxt-rest popularity was classified as not popular.
We found that ccxt-rest demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Product
Customize license detection with Socket’s new license overlays: gain control, reduce noise, and handle edge cases with precision.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.