Level2, level3, and full channels now require authentication


Starting from 2023-08-01 we started receiving errors “level2, level3, and full channels now require authentication. Exchange WebSocket Authentication | Coinbase Cloud Failed to subscribe” using wss://ws-feed.pro.coinbase.com and subscribe (level2 channel).

Is it new changes that force authentication for level2?
Previously we didn’t have this problem and all worked perfectly.

Yes, see:


Hey @vladislav.karpovich! Welcome to the forum! We hope your question was answered. If you still have any questions feel free to ask them here. Also @muktupavels thank you for actively helping out the community, we really appreciate it!

1 Like

Thank you for quick response.

Could you advise on signature generation. It’s not totally clear what it should contain.

Based on the documentation it builds from 4 parameters, but seems like they are for API signature, not for Websocket connection

Could you provide example of how signature should look like for subscribe?

Thank you in advance

1 Like

timestamp + GET/users/self/verify

1 Like

We don’t need to pass api-key or passphrase for signature generation, right?
Just timestamp + hardcoded string

1 Like
// Request
    "type": "subscribe",
    "product_ids": [
    "channels": [
    "signature": "...",
    "key": "...",
    "passphrase": "...",
    "timestamp": "..."

You need to pass same data to websocket subscribe message that you send as headers with REST API. Difference is only in message that is used to generate signature - timestamp + hardcoded string.

Now all is clear, thank you :slightly_smiling_face:

Hi. I’m running into this same problem. I used to connect through WS to get L2 data but now I’m getting authentication errors. The problem that I have is that I don’t have an old API key created with a passphrase. If I now go to my account and create a new API key, there is no notion of a passphrase (I’m guessing this is the way the new Advanced API is supposed to work).

Is there a way to create an old type API with a passphrase or to connect to the old ws endpoint to obtain the L2 or full channels using new-style API keys (no passphrase) ?


You are supposed to use “Advanced” Trade WebSocket now:

Please correct me if I’m wrong, but the new Advanced API does not provide a “full” channel?

Yes. Enjoy “most advanced API offering yet” and “improvement upon Coinbase Pro”. :slight_smile:

Sorry but I’m not sure I understand, does the new “Advanced” trade websocket have a full (or L3) feed? According to this Advanced API ws-channels it only has a “level2” feed in adition to “market_trades” and a few other channels.

Yes was to your question - yes, it does not provide full channel.

1 Like