A Websocket connection can fail for various reasons. Your side, my side, roadworks, JCB, whatever.
I'm having to do a lot of error handling, which usually boils down to my reconnecting and re-subscribing (all of my terms).
Lets say I have a lot of terms ( 2000+ at any given time), adding one new search term will involve a disproportionate overhead.
And while the sequence of search terms are being registered (perhaps it could take a minute), that's a minute where my data stream burns of into the atmosphere.
It would be much nicer if I could incrementally add and remove terms (which your endpoint currently supports), but also send a 'list-subscribed' message to the websocket endpoint and receive a list of what I'm currently subscribed to. Or have your service transmit that information, say every 60 seconds.
There is also the billing aspect.
Obviously this stuff costs money, being subscribed to a lot of terms which I no longer require is going to cost about as much as call to Diego Garcia.