I’m on a paid account. I signed up in order specifically to access real time data.
Here’s the test code:
public class AlpacaStreamingTest
{
public static async Task RunTest(string apiKey, string apiSecret)
{
try
{
Console.WriteLine("=== Alpaca Streaming Test ===");
// 1. Create credentials
var credentials = new SecretKey(apiKey, apiSecret);
// 2. Get streaming client for live environment with real-time data
var streamingClient = Alpaca.Markets.Environments.Live.GetAlpacaDataStreamingClient(credentials);
Console.WriteLine("Created streaming client for live environment");
// 3. Connect and authenticate
Console.WriteLine("Connecting to Alpaca streaming...");
await streamingClient.ConnectAndAuthenticateAsync();
Console.WriteLine("✓ Connected and authenticated successfully!");
// 4. Test subscription to trades for AAPL
var symbol = "AAPL";
Console.WriteLine($"Testing trade subscription for {symbol}...");
var tradeSubscription = streamingClient.GetTradeSubscription(symbol);
tradeSubscription.Received += (trade) =>
{
Console.WriteLine($"✓ TRADE: {trade.Symbol} at ${trade.Price} (Volume: {trade.Size})");
};
// 5. Attempt subscription
await streamingClient.SubscribeAsync(tradeSubscription);
Console.WriteLine($"Trade subscription status: {(tradeSubscription.Subscribed ? "SUCCESS" : "FAILED")}");
// 6. Test subscription to quotes
Console.WriteLine($"Testing quote subscription for {symbol}...");
var quoteSubscription = streamingClient.GetQuoteSubscription(symbol);
quoteSubscription.Received += (quote) =>
{
Console.WriteLine($"✓ QUOTE: {quote.Symbol} Bid=${quote.BidPrice} Ask=${quote.AskPrice}");
};
await streamingClient.SubscribeAsync(quoteSubscription);
Console.WriteLine($"Quote subscription status: {(quoteSubscription.Subscribed ? "SUCCESS" : "FAILED")}");
// 7. Wait for data
if (tradeSubscription.Subscribed || quoteSubscription.Subscribed)
{
Console.WriteLine("✓ Subscriptions successful! Waiting for real-time data for 30 seconds...");
await Task.Delay(30000);
}
else
{
Console.WriteLine("✗ No subscriptions successful. Market data access may not be enabled.");
}
// 8. Cleanup
await streamingClient.DisconnectAsync();
Console.WriteLine("Disconnected from Alpaca streaming");
}
catch (Exception ex)
{
Console.WriteLine($"✗ Test failed: {ex.Message}");
Console.WriteLine($"Stack trace: {ex.StackTrace}");
}
}
}
And here’s what I get:
=== Alpaca Streaming Test ===
Created streaming client for live environment
Connecting to Alpaca streaming...
✓ Connected and authenticated successfully!
Testing trade subscription for AAPL...
Trade subscription status: FAILED
Testing quote subscription for AAPL...
Quote subscription status: FAILED
✗ No subscriptions successful. Market data access may not be enabled.
Disconnected from Alpaca streaming
Why is this failing? REST apis work fine so far.
It’s noon, during market hours.