Ich war jetzt mal neugierig und habe ohne Bedarf (nur für ETFs) geguckt 
Von einer Onvista-Wertpapier-Seite aus, z.B.
https://www.onvista.de/etf/handelsplaetze/BNPP-EASY-ECPI-GLOBAL-ESG-INFRASTRUCTUREUCITS-ETF-EUR-ACC-ETF-LU1291109293
kann man die historischen Kurse wie folgt einbinden. Mit
view-source:https://www.onvista.de/etf/handelsplaetze/BNPP-EASY-ECPI-GLOBAL-ESG-INFRASTRUCTUREUCITS-ETF-EUR-ACC-ETF-LU1291109293
(zumindest im Firefox geht das so, in anderen Browsern wahrscheinlich anders)
sieht man den Quellcode der Seite, in dem man dann suchen muss nach
- “entityValue”, findet die Nummer des ETFs
DER_BOX"],"entityValue":"96927946","name":"BNPP Easy ECPI Gl.ESG Infrastructure UE","u
- nach Xetra oder Gettex oder Tradegate or whatever suchen,
:"_GER","nameExchange":"Xetra","codeExchange":"GER","idNotation":22198373,"iso
O","nameExchange":"gettex","codeExchange":"TRO","idNotation":154150138,"isoC
AT","nameExchange":"Tradegate","codeExchange":"GAT","idNotation":178727258,"isoC
was dann die passende idNotation liefert.
Aus den Daten kann man sich dann die Kurs-URL für die JSON-Abfrage der historischen Kurse bauen:
https://api.onvista.de/api/v1/instruments/FUND/
# + entityValue
https://api.onvista.de/api/v1/instruments/FUND/96927946
# + /eod_history?idNotation=gefundeneNummerdesHandelsplatzes
https://api.onvista.de/api/v1/instruments/FUND/96927946/eod_history?idNotation=154150138
# + &range=M1&startDate=2021-09-08
(andere Range M2 oder so scheint nicht zu funktionieren)
https://api.onvista.de/api/v1/instruments/FUND/96927946/eod_history?idNotation=154150138&range=M1&startDate=2021-09-08
Die unterste Zeile ist dann eine gültige Kurs-URL.
Pfad zu Datum
$.datetimeLast[*]
Datumsformat bleibt leer
Pfad zu Kurs
$.last[*]
Optional
$.low[*]
$.high[*]
$.volume[*]
Es funktioniert (jetzt am 08.10.2021),
wird aber morgen nicht weiterhelfen, weil das startDate=2021-09-08 hardcodiert in der URL steht.
Dafür gibt es eigentlich die entsprechenden Makros, für die ich aber gewohnheitsgemäß zu blöd bin. startDate={TODAY:yyyy-MM-dd:-P1M} sollte richtig sein, funktioniert aber nicht.
Halt Stop Achtung: War da nicht mal was, das die Makros bei JSON noch gar nicht funktionieren? Kann es grad nicht finden, aber falls mich die Erinnerung nicht trügt, war das so.
@AndreasB Die Makros werden für JSON nun dringender gebraucht, onvista mit JSON wäre doch ein toller Lieferant.