Coinbase Pro API
Coinbase Pro API for Node.js, written in TypeScript and covered by tests.
Motivation
The purpose of coinbase-pro-node is to continue an active Coinbase Pro API after Coinbase deprecated the official Node.js library on January, 16 2020. Its predecessor got deprecated on July, 19th 2016.
Features
- Typed. Source code is 100% TypeScript. No need to install external typings.
- Tested. Code coverage is 100%. No surprises when using "coinbase-pro-node".
- Convenient. Request throttling is built-in. Don't worry about rate limiting.
- Comfortable. More than an API client. You will get extras like candle watching.
- Maintained. Automated security updates. No threats from outdated dependencies.
- Documented. Get started with demo scripts and generated documentation.
- Modern. HTTP client with Promise API. Don't lose yourself in callback hell.
- Robust. WebSocket reconnection is built-in. No problems if your Wi-Fi is gone.
Installation
npm
npm install coinbase-pro-node
Yarn
yarn add coinbase-pro-node
Setup
JavaScript
const {CoinbasePro} = require('coinbase-pro-node');
const client = new CoinbasePro();
TypeScript
import {CoinbasePro} from 'coinbase-pro-node';
const client = new CoinbasePro();
Usage
The demo section provides many examples on how to use "coinbase-pro-node". There is also an automatically generated API documentation. For a quick start, here is a simple example for a REST request:
REST example
import {CoinbasePro} from 'coinbase-pro-node';
const auth = {
apiKey: '',
apiSecret: '',
passphrase: '',
useSandbox: true,
};
const client = new CoinbasePro(auth);
client.rest.account.listAccounts().then(accounts => {
const message = `You can trade "${accounts.length}" different pairs.`;
console.log(message);
});
WebSocket example
If you want to listen to WebSocket messages, have a look at these demo scripts:
Demos
All demo scripts are executable from the root directory. If you want to use specific credentials with a demo script, simply add a .env
file to the root of this package to modify environment variables used in init-client.ts.
npx ts-node ./src/demo/dump-candles.ts
Tip: There is a .env.defaults file which serves as a template. Just remove its .defaults
extension and enter your credentials to get started. Do not commit this file (or your credentials) to any repository!
Real-world examples
Checkout GitHub's dependency graph to see who uses "coinbase-pro-node" in production. There are also npm packages depending on "coinbase-pro-node".
Maintainers
Contributing
Contributions, issues and feature requests are welcome!
Feel free to check the issues page.
The following commits will help you getting started quickly with the code base:
All resources can be found in the Coinbase Pro API reference.
License
This project is MIT licensed.
⭐️ Show your support ⭐️
Please leave a star if you find this project useful.
If you like this project, you might also like these related projects:
- trading-signals, Technical indicators written in TypeScript with arbitrary-precision arithmetic.
- binance-api-node, Heavily tested and Promise-based Binance API.