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 "es {
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.