Skip to main content

Crate tradestation_api

Crate tradestation_api 

Source
Expand description

§tradestation-api

A complete, typed wrapper for the TradeStation REST API v3.

This crate provides async access to all 38 TradeStation v3 endpoints with:

  • OAuth2 Authorization Code flow with automatic token refresh
  • Market Data: Historical bars (OHLCV), quotes, symbol info, crypto pairs, options
  • Brokerage: Accounts, balances, positions, orders, wallets
  • Execution: Place, replace, cancel orders; OCO/bracket groups; activation triggers; routes
  • Streaming: HTTP chunked-transfer for live quotes, bars, market depth, options, orders, positions
  • Simulation: Built-in support for TradeStation’s sim API

§Quickstart

use tradestation_api::{Client, Credentials, Scope};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let creds = Credentials::new("CLIENT_ID", "CLIENT_SECRET");

    // 1. Direct user to authorization URL
    let url = creds.authorization_url(&Scope::defaults());
    println!("Visit: {url}");

    // 2. Exchange the callback code for tokens
    let mut client = Client::new(creds);
    client.authenticate("AUTH_CODE").await?;

    // 3. Fetch data
    let quotes = client.get_quotes(&["AAPL", "MSFT"]).await?;
    for q in &quotes {
        println!("{}: last={}", q.symbol, q.last);
    }
    Ok(())
}

§Standalone crate

This is a standalone library with zero Cannopy dependencies. It can be used independently in any Rust project that needs TradeStation API access.

Re-exports§

pub use auth::Credentials;
pub use auth::Scope;
pub use auth::Token;
pub use brokerage::Account;
pub use brokerage::Balance;
pub use brokerage::BodBalance;
pub use brokerage::Order;
pub use brokerage::Position;
pub use brokerage::Wallet;
pub use client::Client;
pub use execution::ActivationTrigger;
pub use execution::OrderGroupRequest;
pub use execution::OrderRequest;
pub use execution::OrderResponse;
pub use execution::Route;
pub use execution::TimeInForce;
pub use market_data::Bar;
pub use market_data::BarChartQuery;
pub use market_data::CryptoPair;
pub use market_data::OptionExpiration;
pub use market_data::OptionStrike;
pub use market_data::ParseNumeric;
pub use market_data::Quote;
pub use market_data::RiskRewardRequest;
pub use market_data::RiskRewardResponse;
pub use market_data::SpreadType;
pub use market_data::SymbolInfo;
pub use streaming::BoxStream;
pub use streaming::StreamBar;
pub use streaming::StreamMarketDepthAggregate;
pub use streaming::StreamMarketDepthQuote;
pub use streaming::StreamOptionChain;
pub use streaming::StreamOptionQuote;
pub use streaming::StreamOrder;
pub use streaming::StreamPosition;
pub use streaming::StreamQuote;

Modules§

auth
OAuth2 Authorization Code flow with token refresh for TradeStation API.
brokerage
Brokerage account endpoints for TradeStation v3.
client
TradeStation API client with automatic token management.
execution
Order execution endpoints for TradeStation v3.
market_data
Market data endpoints: historical bars, quotes, symbols, crypto, and options.
streaming
HTTP chunked-transfer streaming for TradeStation v3.

Enums§

Error
Errors returned by the TradeStation API client.