Description
Client for Coinbase Pro.
Description
Client for Coinbase Pro REST and Websocket APIs
README.md
coinbase-pro
Client for Coinbase Pro REST and Websocket APIs.
Here is a list of implemented/unimplemented features:
- Market Data
- [x] Products
- [x] Get Products
- [x] Get Product Order Book
- [x] Get Product Ticker
- [x] Get Trades
- [x] Get Historic Rates
- [x] Get 24hr Stats
- [x] Currencies
- [x] Get Currencies
- [x] Time
- [x] Products
- Private
- [x] Accounts
- [x] List Accounts
- [x] Get An Account
- [x] Get Account History
- [x] Get Holds
- [x] Orders
- [x] Place a New Order
- [x] Cancel an Order
- [x] Cancel all
- [x] List Orders
- [x] Get an Order
- [x] Fills
- [x] List Fills
- [x] Limits
- [x] Get Current Exchange Limits
- [x] Deposits
- [x] List Deposits
- [x] Single Deposit
- [x] Payment Method
- [x] Coinbase
- [x] Generate a Crypto Deposit Address
- [x] Withdrawals
- [x] List Withdrawals
- [x] Single Withdrawal
- [x] Payment Method
- [x] Coinbase
- [x] Crypto
- [x] Fee Estimate
- [x] Stablecoin Conversions
- [x] Create Conversion
- [x] Payment Methods
- [x] List Payment Methods
- [x] Coinbase Accounts
- [x] List Accounts
- [x] Fees
- [x] Get Current Fees
- [x] Reports
- [x] Create a new report
- [x] Get report status
- [x] Profiles
- [x] List Profiles
- [x] Get a Profile
- [x] Create a Profile Transfer
- [x] User Account
- [x] Trailing Volume
[ ] Margin(Disabled)[https://blog.coinbase.com/coinbase-pro-disables-margin-trading-42f5862f8a66]- [x] Oracle
- [x] Get Oracle
- [x] Accounts
- Websocket Feed
- [x] Channels
- [x] The heartbeat channel
- [x] The status channel
- [x] The ticker channel
- [x] The level2 channel
- [x] The user channel
- [x] The matches channel
- [x] The full channel
- [x] Channels
- FIX API
- [ ] Messages
Request API
Market Data Requests
run Sandbox (trades (ProductId "BTC-USD")) >>= print
Authenticated Private Requests
runDefCbAuthT Sandbox cpc $ do
fills (Just btcusd) Nothing >>= liftIO . print
where
accessKey = CBAccessKey "<access-key>"
secretKey = CBSecretKey "<secret-key>"
passphrase = CBAccessPassphrase "<passphrase>"
cpc = CoinbaseProCredentials accessKey secretKey passphrase
Websocket API
To print out all of the full order book updates for BTC-USD:
main :: IO ()
main = do
msgs <- subscribeToFeed [ProductId "BTC-USD"] [Ticker] Nothing
forever $ Streams.read msgs >>= print
Example
Example execs can be found in src/example/
Run Example
To run any of the authenticated endpoints in test-request
, the access key, secret key, and passphrase must be provided. See Authenticated Private Requests above.