mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-20 07:14:20 +01:00
Write Quickstart section in README.md.
This commit is contained in:
90
README.md
90
README.md
@@ -8,6 +8,7 @@ Beta versions should not be used in applications which require user authenticati
|
|||||||
Provide your API-KEY/API-SECRET, and manage your account and funds at your own risk.
|
Provide your API-KEY/API-SECRET, and manage your account and funds at your own risk.
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
- User-friendly implementations for 75+ public and authenticated REST endpoints.
|
- User-friendly implementations for 75+ public and authenticated REST endpoints.
|
||||||
* A complete list of available REST endpoints can be found [here](https://docs.bitfinex.com/reference).
|
* A complete list of available REST endpoints can be found [here](https://docs.bitfinex.com/reference).
|
||||||
- New WebSocket client to ensure fast, secure and persistent connections.
|
- New WebSocket client to ensure fast, secure and persistent connections.
|
||||||
@@ -19,27 +20,72 @@ Provide your API-KEY/API-SECRET, and manage your account and funds at your own r
|
|||||||
- Full type hinting and type checking support with [`mypy`](https://github.com/python/mypy).
|
- Full type hinting and type checking support with [`mypy`](https://github.com/python/mypy).
|
||||||
* This allow text editors to show helpful hints about the value of a variable: 
|
* This allow text editors to show helpful hints about the value of a variable: 
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
To install the latest beta release of `bitfinex-api-py`:
|
|
||||||
```console
|
```console
|
||||||
python3 -m pip install --pre bitfinex-api-py
|
python3 -m pip install --pre bitfinex-api-py
|
||||||
```
|
```
|
||||||
To install a specific beta version:
|
|
||||||
|
### Selecting and installing a specific beta version
|
||||||
|
|
||||||
|
It's also possible to select and install a specific beta version:
|
||||||
```console
|
```console
|
||||||
python3 -m pip install bitfinex-api-py==3.0.0b1
|
python3 -m pip install bitfinex-api-py==3.0.0b1
|
||||||
```
|
```
|
||||||
|
|
||||||
## Basic usage
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Index
|
# Quickstart
|
||||||
|
|
||||||
|
```python
|
||||||
|
from bfxapi import Client, REST_HOST
|
||||||
|
|
||||||
|
from bfxapi.rest.types import Notification, Order
|
||||||
|
|
||||||
|
bfx = Client(
|
||||||
|
rest_host=REST_HOST,
|
||||||
|
api_key="<YOUR BFX API-KEY>",
|
||||||
|
api_secret="<YOUR BFX API-SECRET>"
|
||||||
|
)
|
||||||
|
|
||||||
|
notification: Notification[Order] = bfx.rest.auth.submit_order(
|
||||||
|
type="EXCHANGE LIMIT", symbol="tBTCUSD", amount=0.165212, price=30264.0)
|
||||||
|
|
||||||
|
order: Order = notification.data
|
||||||
|
|
||||||
|
if notification.status == "SUCCESS":
|
||||||
|
print(f"Successful new order for {order.symbol} at {order.price}$.")
|
||||||
|
|
||||||
|
if notification.status == "ERROR":
|
||||||
|
raise Exception(f"Something went wrong: {notification.text}")
|
||||||
|
```
|
||||||
|
|
||||||
|
## Authenticating in your account
|
||||||
|
|
||||||
|
To authenticate in your account, you must provide a valid API-KEY and API-SECRET:
|
||||||
|
```python
|
||||||
|
bfx = Client(
|
||||||
|
[...],
|
||||||
|
api_key=os.getenv("BFX_API_KEY"),
|
||||||
|
api_secret=os.getenv("BFX_API_SECRET")
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Warning
|
||||||
|
|
||||||
|
Remember to not share your API-KEYs and API-SECRETs with anyone. \
|
||||||
|
Everyone who owns one of your API-KEYs and API-SECRETs will have full access to your account. \
|
||||||
|
We suggest saving your credentials in a local `.env` file and accessing them as environment variables.
|
||||||
|
|
||||||
|
_Revoke your API-KEYs and API-SECRETs immediately if you think they might have been stolen._
|
||||||
|
|
||||||
|
> **NOTE:** A guide on how to create, edit and revoke API-KEYs and API-SECRETs can be found [here](https://support.bitfinex.com/hc/en-us/articles/115003363429-How-to-create-and-revoke-a-Bitfinex-API-Key).
|
||||||
|
|
||||||
|
## Next
|
||||||
|
|
||||||
* [WebSocket client documentation](#websocket-client-documentation)
|
* [WebSocket client documentation](#websocket-client-documentation)
|
||||||
- [Advanced features](#advanced-features)
|
- [Advanced features](#advanced-features)
|
||||||
|
- [Examples](#examples)
|
||||||
* [How to contribute](#how-to-contribute)
|
* [How to contribute](#how-to-contribute)
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -56,9 +102,11 @@ python3 -m pip install bitfinex-api-py==3.0.0b1
|
|||||||
4. [Listening to events](#listening-to-events)
|
4. [Listening to events](#listening-to-events)
|
||||||
|
|
||||||
### Advanced features
|
### Advanced features
|
||||||
* [Sending custom notifications](#sending-custom-notifications)
|
* [Using custom notifications](#using-custom-notifications)
|
||||||
* [Setting up connection multiplexing](#setting-up-connection-multiplexing)
|
* [Setting up connection multiplexing](#setting-up-connection-multiplexing)
|
||||||
|
|
||||||
|
#### Examples
|
||||||
|
|
||||||
## Instantiating the client
|
## Instantiating the client
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@@ -80,18 +128,11 @@ PUB_WSS_HOST is recommended over WSS_HOST for applications that don't require au
|
|||||||
|
|
||||||
### Authentication
|
### Authentication
|
||||||
|
|
||||||
Users can authenticate in their accounts by providing a pair of API-KEY and API-SECRET:
|
To learn how to authenticate in your account, have a look at [Authenticating in your account](#authenticating-in-your-account).
|
||||||
```python
|
|
||||||
bfx = Client(
|
|
||||||
[...],
|
|
||||||
api_key=os.getenv("BFX_API_KEY"),
|
|
||||||
api_secret=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
```
|
|
||||||
|
|
||||||
If authentication succeeds, the client will emit the `authenticated` event. \
|
If authentication is successful, the client will emit the `authenticated` event. \
|
||||||
All operations that require authentication will fail if run before the emission of this event. \
|
All operations that require authentication will fail if run before the emission of this event. \
|
||||||
The `data` argument contains various information about the authentication, such as the `userId`, the `auth_id`, etc...
|
The `data` argument contains information about the authentication, such as the `userId`, the `auth_id`, etc...
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@bfx.wss.on("authenticated")
|
@bfx.wss.on("authenticated")
|
||||||
@@ -99,7 +140,7 @@ def on_authenticated(data: Dict[str, Any]):
|
|||||||
print(f"Successful login for user <{data['userId']}>.")
|
print(f"Successful login for user <{data['userId']}>.")
|
||||||
```
|
```
|
||||||
|
|
||||||
`data` can also be useful for checking API-KEY's permissions:
|
`data` can also be useful for checking if an API-KEY has certain permissions:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@bfx.wss.on("authenticated")
|
@bfx.wss.on("authenticated")
|
||||||
@@ -111,8 +152,6 @@ def on_authenticated(data: Dict[str, Any]):
|
|||||||
raise Exception("This application requires write permissions on positions.")
|
raise Exception("This application requires write permissions on positions.")
|
||||||
```
|
```
|
||||||
|
|
||||||
> **NOTE:** A guide on how to create, edit and revoke API-KEYs and API-SECRETs can be found [here](https://support.bitfinex.com/hc/en-us/articles/115003363429-How-to-create-and-revoke-a-Bitfinex-API-Key).
|
|
||||||
|
|
||||||
## Running the client
|
## Running the client
|
||||||
|
|
||||||
The client can be run using `BfxWebSocketClient::run`:
|
The client can be run using `BfxWebSocketClient::run`:
|
||||||
@@ -214,9 +253,9 @@ bfx.wss.on("t_ticker_update", "f_ticker_update", callback=on_ticker_update)
|
|||||||
|
|
||||||
# Advanced features
|
# Advanced features
|
||||||
|
|
||||||
## Sending custom notifications
|
## Using custom notifications
|
||||||
|
|
||||||
**Sending custom notifications requires user authentication.**
|
**Using custom notifications requires user authentication.**
|
||||||
|
|
||||||
Users can send custom notifications using `BfxWebSocketClient::notify`:
|
Users can send custom notifications using `BfxWebSocketClient::notify`:
|
||||||
```python
|
```python
|
||||||
@@ -255,13 +294,16 @@ Keep in mind that using a large number of connections could slow down the client
|
|||||||
|
|
||||||
The use of more than 20 connections is not recommended.
|
The use of more than 20 connections is not recommended.
|
||||||
|
|
||||||
|
# Examples
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# How to contribute
|
# How to contribute
|
||||||
|
|
||||||
All contributions are welcome! :D
|
All contributions are welcome! :D
|
||||||
|
|
||||||
|
|
||||||
A guide on how to install and set up `bitfinex-api-py`'s source code can be found [here](#installation-and-setup). \
|
A guide on how to install and set up `bitfinex-api-py`'s source code can be found [here](#installation-and-setup). \
|
||||||
Before opening any pull requests, please have a look at [Before Opening a PR](#before-opening-a-pr). \
|
Before opening any pull requests, please have a look at [Before Opening a PR](#before-opening-a-pr). \
|
||||||
Contributors must uphold the [Contributor Covenant code of conduct](https://github.com/bitfinexcom/bitfinex-api-py/blob/v3-beta/CODE_OF_CONDUCT.md).
|
Contributors must uphold the [Contributor Covenant code of conduct](https://github.com/bitfinexcom/bitfinex-api-py/blob/v3-beta/CODE_OF_CONDUCT.md).
|
||||||
|
|||||||
Reference in New Issue
Block a user