Skip to main content

Python package for interacting with TradeStation APIs.

Project description

tradestation-python-client

CI/CD Pipeline Code Coverage Latest Release License Platform

Python Requests PyTest Docker ThreadPoolExecutor Thread Safety

Fully Thread-Safe · Streaming Ready
Built for TradeStation APIs

 

tradestation-python-client is an unofficial Python client for interacting with the TradeStation REST and Streaming APIs.

📦 Installation (PyPI Package)

Install the package from PyPI:

pip install tradestation-python-client

Import it in your project:

from tradestation_python_client import TradeStationClient, TokenManager

This repository also includes a full development environment, but the primary distribution is a PyPI-installable client.

⚠️ Disclaimer

tradestation-python-client is an unofficial Python client for interacting with the TradeStation REST and Streaming APIs.
It is not affiliated with or endorsed by TradeStation Technologies, Inc.

  • By default, it connects to the SIM (sandbox) environment.
  • To use LIVE trading:
TokenManager(use_sim=False)

🧩 Overview

This client provides:

  • OAuth2 token handling with automatic refresh and thread safety
  • REST endpoints (Brokerage & Market Data)
  • Real-time streaming support
  • Parallel historical data fetching
  • Clean, modern Python interface

🔧 Core Modules

Module Description
auth.py OAuth2 token management with thread-safe refresh
base_client.py HTTP layer with retries, timeouts, and error handling
client.py Main high-level interface for all services
endpoints/broker.py Orders, balances, positions, accounts
endpoints/mkt_data.py Historical + intraday market data
endpoints/ts_stream.py Real-time streaming (bars, quotes, orders, etc.)

🧪 Testing

Run the test suite:

pytest -v

Includes tests for:

  • Token refresh
  • Thread safety
  • Streaming message parsing
  • HTTP error handling

🧰 Development Environment (DevContainer + Docker)

For contributors or advanced users, the repository provides a fully reproducible development environment.

Prerequisites

  • Docker Desktop
  • Visual Studio Code
  • Dev Containers extension

Setup

1️⃣ Clone the repository

git clone https://github.com/santarsierilorenzo/tradestation-python-client
cd tradestation-python-client

2️⃣ Open inside DevContainer

Ctrl + Shift + P → Dev Containers: Rebuild Without Cache and Reopen

3️⃣ Configure environment variables

Create a .env file:

TS_CLIENT_ID=your_client_id
TS_CLIENT_SECRET=your_client_secret
TS_REFRESH_TOKEN=your_refresh_token

4️⃣ Run an example

python -m examples.get_market_data_example

⚙️ Usage Examples

Basic Initialization

from tradestation_python_client import TradeStationClient, TokenManager

token_manager = TokenManager(use_sim=True)
ts = TradeStationClient(token_manager=token_manager)

Parallel Historical Data Fetching

data = ts.market_data.get_bars_between(
    symbol="AAPL",
    first_date="2025-01-01",
    last_date="2025-02-01",
    unit="Minute",
    interval=5,
    max_workers=10
)

Real-Time Streaming

ts.market_data_stream.stream_bars(
    symbol="AAPL",
    interval=1,
    unit="Minute",
    on_message=lambda msg: print(msg)
)

🪪 License

MIT © 2025 — Developed with ❤️ by Lorenzo Santarsieri

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

tradestation_python_client-0.1.2.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tradestation_python_client-0.1.2-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

Details for the file tradestation_python_client-0.1.2.tar.gz.

File metadata

File hashes

Hashes for tradestation_python_client-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ec5485a8a7f965f8d1c44c49c1435fa22ec843414e0e79b1558b54cfe2ab95c2
MD5 38c17aa63d030f8831efd6daba365a5c
BLAKE2b-256 cd5c782ab726176ea36bd43fb28a03f6766a18f612d32b4ed35b5f745bcb36e0

See more details on using hashes here.

File details

Details for the file tradestation_python_client-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for tradestation_python_client-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bd30a564c4324da6b1c30b5b797e8fadce7cacbfb380cd6cba58bb7a85c795f7
MD5 4a0cb0b1cd97bd94e38442bbd3f5c816
BLAKE2b-256 07a8433b6fd0ec00e4b6fe39236cddfad8f99b8c4b5da4f871097db89d08be52

See more details on using hashes here.

Supported by

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