No market data stream after paying subscription

I’ve been testing my app for months using free IEX data stream, on Thursday night I payed the subscription for SIP market data in realtime, trying to get closer to the production stage, no change on my code, on Friday I ran my app an no data streaming whatsoever.
I didn’t find anywhere that after paying the subs the code should change of API key or anything. I reset the paper account, created new keys, still nothing.
Am I missing something on my side AFTER I subscribed? or this is just a bug of the streaming platform?

@jnantes You shouldn’t need to change anything in your code after subscribing to a paid subscription. In the background, any connection you make will simply now authorize with both IEX and SIP data. One thing you should do is ensure you are now connecting to the full market SIP URL (wss:// That may be one change you need to make in your code?

Thanks for the reply, I am not entirely sure what wss is being used, since there is a library that takes care of it, I am not using that documentation you pointed to for stream, I use that documentation for the REST API. But I use this one for stream since I find it more simple Market Data - Alpaca-py
I will dig into the library code now… here are some pieces of code that I use for the stream:

from import StockDataStream = StockDataStream(Environment.api_key, Environment.api_secret, False, DataFeed.SIP)
I just added DataFeed.SIP since I wasn’t sure if the library take care by itself.
StockDataStream calls this BaseURL.MARKET_DATA_STREAM.value + “/v2/” + feed.value
where MARKET_DATA_STREAM = “wss://”
I would then use, symbol)
and finaly on a thread

Edit: same logic but using cryptodatastream still works fine.

This seems to match the wss values you mention, and note that I don’t get connection errors, I just don’t get any streamed data (the REST API is working fine with SIP). I opened a support request, since this looks like is Alpaca side after I subscribed.

If you have any other suggestion I will take a look.

@jnantes If you are expecting streamed data as of the time you are writing (ie middle of the afternoon market time on Sunday) then you won’t see any data simply because the markets are not open. Data is only streamed when there are trades (or quotes) and trades only occur during market hours and extended hours and not on weekends. Could that be the issue?

Yes I am aware of the market times, that’s not the issue. So I only had chance to test on Friday (my first day of subscription) so far.

That’s why I insist it should be analyzed on Alpaca side, maybe a delay on from the moment I paid until your database updates? really the only thing that change was me paying the subscription.

I will test premarket/market on Monday again, and report here if it starts working. But as you mentioned, nothing on my code changed.


@jnantes If you have Postman, you can do some checking to verify your subscription. First check you can connect to the SIP datafeed with wss:// Put your account APCA-API-KEY-ID and APCA-API-SECRET-KEY into the header as shown in the screenshot below.

You should see a message “authenticated” and then “connected”. You won’t see any data until you subscribe to something (and data is available) but if you can authenticate a connection to the SIP endpoint then you have a paid data subscription.

Another way to check if you have a paid subscription is, again with Postman, simply send a snapshot REST request and include a feed=SIP parameter. First, you will not get an error if you have a paid subscription, but additionally look at the header info in the response. There is a field called X-Ratelimit-Limit. That will be 10000 for paid subscriptions and 200 for Free subscriptions. See below

Subscription is recognized fine, below the screenshots for both cases. But as I explained before, everything but actually receiving data worked fine. REST API fine, connected fine, no streamed data. I remember at least two symbols from Friday, FDX, and NKE, both with over 2millon trades in volume

@jnantes Hmmm? If you 1) connect to the /SIP feed and 2) subscribe to data and 3) if there is data available to stream, then you will be getting data. Once connected, everyone gets the same data independent of their subscription. The subscription check is only made at the time the connection is made.

So, either 1) your code isn’t connecting for some reason or 2) your code isn’t subscribing to data or 3) there isn’t data available. Maybe wait until markets open and see what you get. Since you can connect using Postman it must be something going on in your code.

I tested premarket today, I did received data so far. Will do further tests anyways.

No change on my code between Friday and today!

The code seems to be correct, is connecting, is correctly subscribing, and there was data on the market when I tested on Friday, also internet was working and REST API was working, just to get out of the way any other connection issue between my PC and Alpaca servers.

I gave support my connection portion of the code so they can review it (they also think is my code), I will consider any improvement they suggest. But can you also check on Alpaca logs to see what did Alpaca received from my program on Friday? To get the full picture.


I created a :heart::heart::heart::heart:-ton of log on my program, and looks like the data stream, and only the data stream, is “case sensitive” regarding the symbol names.

Today my program used “RDDT, VKTX, BHVN, MKC, riot, aapl, baba, coin” and only those in capital letter streamed data.

Once I noticed this I ran the program once in capital and on lower case, only capital letters worked. No error on the lower case, just nothing happens.

I don’t see this case sensitiveness mentioned in documentation, and REST API handles this fine, which seems inconsistent.

With this information I looked in the forum, you mention this on 2020, I guess is not going to be fixed?