I’ve written a fair amount of code like this for Ally, Alpaca, AlphaVantage, Binance, Coinbase, IEX, Intrinio, Quodd, TDA, Tradier, and WorldTradingData (just scanning my git repos). I never released any because it was for personal use and either poorly generalized or half-done. Caveat: I have no clue what state the stuff is in. I haven’t looked at any of it but the Binance stuff since 2019 and I don’t know what I did or left undone; probably only 15% of what I cited was ever fully working because I was sampling whichever services were easiest to code for. Plenty is available for free but you generally need an account to talk to the APIs.
That said, I am happy to share or discuss specific pieces or mechanics. Sorry I can’t just open up my private repos. They would need a serious vetting of what I left in them and I have no time for that.
More than once I have looked at the sample python code for services and adapted it to Perl. Often the documentation for services is incomplete, dated, or just wrong and being able to read working code shows how the developers managed to figure out what was left unsaid.