Skip to main content

A Python SDK for accessing the Historical Market Data API and Smart Order Router API of Bjarkan

Project description

Bjarkan SDK

A Python SDK for accessing both the Smart Order Router (SOR) API and Historical Market Data services of Bjarkan.

Installation

You can install the Bjarkan SDK using pip:

pip install bjarkan-sdk

Usage

The SDK provides two main client classes:

  1. BjarkanDataClient: For interacting with the Historical Market Data API (data.bjarkan.io)
  2. BjarkanSORClient: For interacting with the Smart Order Router API (api.bjarkan.io)

Here's a quick example of how to use both clients:

from bjarkan_sdk import BjarkanDataClient, BjarkanSORClient
from datetime import datetime, timedelta

# Initialize the clients
data_client = BjarkanDataClient()
sor_client = BjarkanSORClient()

# Authenticate
data_client.authenticate("your_username", "your_password")
sor_client.authenticate("your_username", "your_password")

# Using the SOR API
orderbook_config = {
    "aggregated": True,
    "exchanges": ["binance", "okx", "htx"],
    "symbols": ["BTC/USDT", "ETH/USDT"],
    "depth": 10
}
result = sor_client.set_orderbook_config(orderbook_config)
print("Orderbook config set:", result)

latest_orderbook = sor_client.get_latest_orderbook()
print("Latest orderbook:", latest_orderbook)

# Using the Data API
tables = data_client.get_tables()
print("Available tables:", tables)

result = data_client.get_history(
    table_name="example_table",
    start_time=datetime.now() - timedelta(hours=1),
    end_time=datetime.now(),
    exchange='binance',
    symbol="BTC/USDT",
    bucket_period="1 minute",
    sort_descending=False,
    limit=100
)
print("Historical data:", result['data'][:5])  # Print first 5 entries
print(f"Query performance: {result['query_performance_seconds']:.4f} seconds")

API Reference

BjarkanDataClient

The BjarkanDataClient class is used for interacting with the Bjarkan Historical Market Data service.

__init__(base_url: str = 'https://data.bjarkan.io')

Initialize the client with the base URL of the Bjarkan Data service.

authenticate(username: str, password: str)

Authenticate with the Data service using your username and password. This method must be called before making any other API calls.

Methods

  • get_tables() -> List[Dict[str, any]]
  • get_history(table_name: str, start_time: datetime, end_time: datetime, ...) -> Dict[str, any]
  • get_paginated_history(table_name: str, start_time: datetime, end_time: datetime, ...) -> Iterator[Dict[str, any]]
  • validate_bucket_period(bucket_period: str) -> bool

BjarkanSORClient

The BjarkanSORClient class is used for interacting with the Bjarkan Smart Order Router API.

__init__(base_url: str = 'https://api.bjarkan.io')

Initialize the client with the base URL of the Bjarkan SOR API service.

authenticate(username: str, password: str)

Authenticate with the SOR API service using your username and password. This method must be called before making any other API calls.

Methods

  • set_orderbook_config(config: Dict) -> Dict
  • get_orderbook_config() -> Dict
  • set_trades_config(config: Dict) -> Dict
  • get_trades_config() -> Dict
  • set_api_keys(api_configs: List[Dict]) -> Dict
  • get_api_keys() -> Dict
  • get_latest_orderbook() -> Dict
  • execute_order(order: Dict) -> Dict
  • get_balances() -> Dict

For detailed information on each method, please refer to the docstrings in the source code.

Examples

Setting Orderbook Configuration (SOR API)

sor_client = BjarkanSORClient()
sor_client.authenticate("your_username", "your_password")

orderbook_config = {
    "aggregated": True,
    "exchanges": ["binance", "okx", "htx"],
    "symbols": ["BTC/USDT", "ETH/USDT"],
    "depth": 10
}
result = sor_client.set_orderbook_config(orderbook_config)
print("Orderbook config set:", result)

Fetching Historical Data with Pagination (Data API)

from datetime import datetime, timedelta

data_client = BjarkanDataClient()
data_client.authenticate("your_username", "your_password")

start_time = datetime.now() - timedelta(days=1)
end_time = datetime.now()

for page in data_client.get_paginated_history(
    table_name="example_table",
    start_time=start_time,
    end_time=end_time,
    exchange="binance",
    symbol="BTC/USDT",
    bucket_period="5 minutes",
    page_size=500
):
    print(f"Retrieved {len(page['data'])} records")
    print(f"Query performance: {page['query_performance_seconds']:.4f} seconds")
    # Process the data in the current page
    for record in page['data']:
        # Do something with each record
        pass

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bjarkan_sdk-0.2.21.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

bjarkan_sdk-0.2.21-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file bjarkan_sdk-0.2.21.tar.gz.

File metadata

  • Download URL: bjarkan_sdk-0.2.21.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for bjarkan_sdk-0.2.21.tar.gz
Algorithm Hash digest
SHA256 0940d956d2e925633b6e089b54de7e8b0f1ae2bf4d48128969e963abcec98d6d
MD5 a5dab3ae5f4af6b98eec9181d370f55c
BLAKE2b-256 85e5497362bd06212b5d6955430689671375517f52dfb337b70fac242e711404

See more details on using hashes here.

File details

Details for the file bjarkan_sdk-0.2.21-py3-none-any.whl.

File metadata

File hashes

Hashes for bjarkan_sdk-0.2.21-py3-none-any.whl
Algorithm Hash digest
SHA256 7f29805ff6fcd6654adbba32f12c47df79bd1b5834e60b6b84ead9ae2b5dec9e
MD5 15b480ba8e47daba551730ae5b2b2918
BLAKE2b-256 c5e6b435cf450c133307589c95ef157bb58d5ba947a3726b377dff58ca7dcdee

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page