Coinbase Advanced Trade API client library.
python -m pip install [--upgrade] cb-advanced-trade
Advanced Trade endpoints require authentication using an API Key authentication scheme. You can generate API keys here.
- Accounts
- Orders
- Products
- TransactionSummary
Required parameters:
key
: str - The API key;secret
: str - The API secret.
Optional parameters:
cache
: bool - Use caching (defaults to:True
);retries
: int - Total number of retries to allow (defaults to:3
);backoff
: int - A backoff factor to apply between attempts after the second try (defaults to:1
);timeout
: int - How long to wait for the server to send data before giving up (defaults to:30
);debug
: bool - Set to True to log all requests/responses to/from server (defaults to:False
);logger
: Logger - The handler to be used for logging (defaults to:None
).
Any of the endpoints can be instantiated or used as a context-manager:
from cb_advanced_trade import Accounts
credentials: dict = {
"key": "KEY",
"secret": "SECRET",
} # be careful where you keep your credentials!
if __name__ == '__main__':
endpoint = Accounts(**credentials)
account = endpoint.get_account("2ca72458-ade9-45fd-83f2-e1f468b70026")
endpoint.close()
# or
with Accounts(**credentials) as endpoint:
account = endpoint.get_account("2ca72458-ade9-45fd-83f2-e1f468b70026")
For each mapped resource you must read the documentation. All the parameters these resources can take are described in the official documentation.
Accounts
-
Get a list of authenticated accounts for the current user.
-
Get a list of information about an account, given an account UUID.
Orders
-
Create an order with a specified
product_id
(asset-pair),side
(buy/sell), etc.The maximum number of
OPEN
orders you can have for a givenproduct_id
is 500. If you have 500 open orders for aproduct_id
at submission, new orders placed for that product enter a failed state immediately. -
Initiate cancel requests for one or more orders.
-
Get a list of orders filtered by optional query parameters (
product_id
,order_status
, etc).The maximum number of
OPEN
orders returned is 1000.If you have more than 1000 open, is recommended the WebSocket User channel to retrieve all
OPEN
orders. -
Get a list of fills filtered by optional query parameters (
product_id
,order_id
, etc). -
Get a single order by order ID.
Products
-
Get a list of the available currency pairs for trading.
-
Get information on a single product by product ID.
-
Get rates for a single product by product ID, grouped in buckets.
-
Get snapshot information, by product ID, about the last trades (ticks), best bid/ask, and 24h volume.
TransactionSummary
-
Get a summary of transactions with fee tiers, total volume, and fees.
Required parameters:
key
: The API key;secret
: The API secret;channel
: The channel to subscribe to;product_ids
: Product IDs as list of strings.
Optional parameters:
debug
: Set to True to log all requests/responses to/from server (defaults to:False
).logger
: The handler to be used for logging. If given, and level is aboveDEBUG
, all debug messages will be ignored.
Note:
For information about Websocket feed channels visit the documentation.
MarketData
from cb_advanced_trade import MarketData
credentials = {
"key": "YOUR KEY",
"secret": "YOUR SECRET",
} # be careful where you keep this!
if __name__ == '__main__':
client = MarketData(
**credentials,
channel="ticker",
product_ids=["BTC-USD"],
debug=True
)
client.listen()
try:
for tick in client.queue:
print(tick)
except KeyboardInterrupt:
client.close()