Liberal Alpha Python SDK for interacting with gRPC-based backend
Project description
Liberal Alpha Python SDK (Historical HTTP APIs)
This SDK provides historical upload and historical download APIs over HTTP.
Install
pip install liberal_alpha
# Optional: override default API base (default is https://api.liberalalpha.com)
export LIBALPHA_API_BASE="https://api.liberalalpha.com"
# Upload auth (X-API-Key)
export LIBALPHA_API_KEY="YOUR_API_KEY"
# Download auth (used to obtain JWT via /api/users/auth)
export LIBALPHA_PRIVATE_KEY="0xYOUR_PRIVATE_KEY"
Optional upload tuning:
export LIBALPHA_UPLOAD_BATCH_ID="12345" # optional batch id (int)
export LIBALPHA_UPLOAD_CHUNK_SIZE="1048576" # default 1MB
export LIBALPHA_UPLOAD_RESUME="1" # 1=enable resume, 0=disable
Initialize Client
from liberal_alpha.client import LiberalAlphaClient
# api_base defaults to https://api.liberalalpha.com
# can be overridden by env LIBALPHA_API_BASE or by passing api_base=...
client = LiberalAlphaClient(
api_key="YOUR_API_KEY", # optional if using env LIBALPHA_API_KEY
private_key="0xYOUR_PRIVATE_KEY", # optional if using env LIBALPHA_PRIVATE_KEY
)
Historical Upload API (Python)
def upload_data(record_id: int, df: pandas.DataFrame) -> bool:
pass
DataFrame Format
Your DataFrame must contain these columns:
-record_id (int)
-symbol (str)
-data (dict) — e.g. {"open": 50000.0, "close": 51000.0}
-timestamp (int) — milliseconds since epoch
(seconds are also accepted and will be auto-converted to milliseconds)
Example
import pandas as pd
from liberal_alpha.client import LiberalAlphaClient
client = LiberalAlphaClient(
api_key="YOUR_API_KEY",
# api_base defaults to https://api.liberalalpha.com
)
sample_data = []
for i in range(1000):
sample_data.append({
"record_id": 4,
"symbol": "BNfBTC",
"data": {"open": 50000.0 + i, "close": 51000.0 + i},
"timestamp": 1733299200000 + i * 1000,
})
df = pd.DataFrame(sample_data)
# Optional batch_id: set via env because public API has only 2 args
# export LIBALPHA_UPLOAD_BATCH_ID=12345
ok = client.upload_data(record_id=4, df=df)
print("Upload ok:", ok)
Notes:
-Upload uses X-API-Key authentication.
-Upload is chunked and supports resume if enabled (default enabled).
Historical Download API (Python)
def download_data(
record_id: int,
symbols: list[str],
dates: list[int],
tz_info: datetime.tzinfo | str = "Asia/Singapore"
) -> pandas.DataFrame:
pass
Parameters
-record_id: the record id to download
-symbols: list of symbols, e.g. ["BTCUSDT", "ETHUSDT"]
If you pass [], the SDK will automatically fetch all symbols (if supported by backend).
-dates: list of local dates in YYYYMMDD format, e.g. [20251214, 20251215]
If you pass [], no date filter is applied.
-tz_info: controls how local_date is computed
"Asia/Singapore" (IANA tz string)
numeric offsets like 8, -4, or strings like "+8", "-4"
8 means UTC+8 (SGT/HKT)
-4 means UTC-4 (NYC during DST)
Example
from liberal_alpha.client import LiberalAlphaClient
client = LiberalAlphaClient(
private_key="0xYOUR_PRIVATE_KEY",
# api_base defaults to https://api.liberalalpha.com
)
df = client.download_data(
record_id=24,
symbols=[], # empty => auto fetch all symbols
dates=[], # empty => no date filter
tz_info="Asia/Singapore" # or tz_info=8
)
print(df.head())
print("rows:", len(df))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
liberal_alpha-0.1.14.tar.gz
(24.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file liberal_alpha-0.1.14.tar.gz.
File metadata
- Download URL: liberal_alpha-0.1.14.tar.gz
- Upload date:
- Size: 24.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fa187d18e48fa3a7f1a561dc00438b1ef6ff8ebb5df15ddb58abf091cba81c8
|
|
| MD5 |
a3f1882a3cffc379d0fff5c4821a934d
|
|
| BLAKE2b-256 |
49ad4f025be1507e1d9cc6f39cc36e9074af3d02bca472a2408308aa3f28fbfe
|
File details
Details for the file liberal_alpha-0.1.14-py3-none-any.whl.
File metadata
- Download URL: liberal_alpha-0.1.14-py3-none-any.whl
- Upload date:
- Size: 25.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a65ae20e308c7be820f28c271a8a87e277b315a9f8b5aca4fcc7ebe849f127c
|
|
| MD5 |
37cc62326db6ce81406ea491d5e4d7b8
|
|
| BLAKE2b-256 |
493a43beafe8cd14f86b609784f487b05dd6de0faca1a0a6fa5c809a0a93b0f1
|