No not possible, they must be using APIs of zerodha some way around, because it need many parameters in order to place a new order, very tricky and tough to be handled dynamically via websockets.
Websockets are good for streaming ohlc not for placing/modifying orders. There must be some way, using which they are using backend RST APIs
Yes this workaround is possible and it is also used widely in the algo trading community.
There is a library called “jugaad_trader” on GitHub that bypasses the need to have Kite Connect API Key & Secret in order to access the Kite API.
The way this library works is by capturing the “enc_token” from an active user session (like the one that is generated when you login to Kite from a web browser) and then using it to access the Kite API without having to buy the API subscription which costs ₹2,000 per month.
There is however a BIG caveat to using this library. You can have only one single session active at any given time. This means, when your algo code is running using this token, and you login to Kite on the web then the algo session is terminated which can be disastrous if the algo is supposed to track live orders and positions and take necessary actions.
PS: It is better to access the API using the subscription method since that is the most reliable way to implement any algo trading strategies. Trying to save money on API subscription in the short-term can cost you a lot in the long-term when something goes wrong with your algo positions.