Yahoo a opté pour un frontal Reactjs, ce qui signifie que si vous analysez les en-têtes de requête du client vers le backend, vous pouvez obtenir le JSON réel qu'ils utilisent pour remplir les magasins côté client.
Hôtes :
Si vous prévoyez d'utiliser un proxy ou des connexions persistantes utilisez query2.finance.yahoo.com
. Mais pour les besoins de cet article, l'hôte utilisé pour les URLs d'exemple n'est pas censé impliquer quoi que ce soit sur le chemin avec lequel il est utilisé.
Données fondamentales
(remplacez votre symbole par : AAPL)
/v10/finance/quoteSummary/AAPL?modules=
Entrées pour le ?modules=
requête :
[
'assetProfile',
'summaryProfile',
'summaryDetail',
'esgScores',
'price',
'incomeStatementHistory',
'incomeStatementHistoryQuarterly',
'balanceSheetHistory',
'balanceSheetHistoryQuarterly',
'cashflowStatementHistory',
'cashflowStatementHistoryQuarterly',
'defaultKeyStatistics',
'financialData',
'calendarEvents',
'secFilings',
'recommendationTrend',
'upgradeDowngradeHistory',
'institutionOwnership',
'fundOwnership',
'majorDirectHolders',
'majorHoldersBreakdown',
'insiderTransactions',
'insiderHolders',
'netSharePurchaseActivity',
'earnings',
'earningsHistory',
'earningsTrend',
'industryTrend',
'indexTrend',
'sectorTrend']
Exemple d'URL : l'interrogation de tous les modules ci-dessus
https://query2.finance.yahoo.com/v10/finance/quoteSummary/AAPL?modules=assetProfile%2CsummaryProfile%2CsummaryDetail%2CesgScores%2Cprice%2CincomeStatementHistory%2CincomeStatementHistoryQuarterly%2CbalanceSheetHistory%2CbalanceSheetHistoryQuarterly%2CcashflowStatementHistory%2CcashflowStatementHistoryQuarterly%2CdefaultKeyStatistics%2CfinancialData%2CcalendarEvents%2CsecFilings%2CrecommendationTrend%2CupgradeDowngradeHistory%2CinstitutionOwnership%2CfundOwnership%2CmajorDirectHolders%2CmajorHoldersBreakdown%2CinsiderTransactions%2CinsiderHolders%2CnetSharePurchaseActivity%2Cearnings%2CearningsHistory%2CearningsTrend%2CindustryTrend%2CindexTrend%2CsectorTrend
Le site %2C
est la représentation hexagonale de ,
et doit être inséré entre chaque module que vous demandez. détails sur le bit d'encodage hexagonal (si cela vous intéresse)
Contrats d'options
-
/v7/finance/options/AAPL
(expiration en cours)
-
/v7/finance/options/AAPL?date=1679011200
(expiration le 17 mars 2023)
Exemple d'URL :
-
https://query2.finance.yahoo.com/v7/finance/options/AAPL
(expiration en cours)
-
https://query2.finance.yahoo.com/v7/finance/options/AAPL?date=1679011200
(expiration du Match 17, 2023)
Toute expiration future valide représentée par un horodatage UNIX peut être utilisée dans la fonction ?date=
requête. Si vous demandez l'expiration en cours, la réponse JSON contiendra une liste de toutes les expirations valides qui peuvent être utilisées dans l'application ?date=
requête. (voici un post expliquant la conversion de dates lisibles par l'homme en timestamp UNIX en Python)
Prix
/v8/finance/chart/AAPL?symbol=AAPL&period1=0&period2=9999999999&interval=3mo
Entrées possibles pour &interval=
: 1m, 5m, 15m, 30m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo
m
(minute) Les intervalles sont limités à 30 jours avec period1
et period2
s'étendant sur un maximum de 7 jours par/demande. Le dépassement de l'une ou l'autre de ces limites entraînera une erreur et ne fera pas le tour
h
(heure) L'intervalle est limité à 730 jours, sans limite de portée. Le dépassement de cette limite entraînera une erreur et une ne fera pas le tour
period1=
: Représentation de l'horodatage UNIX de la date que vous souhaitez commencer à.
d
(jour) , wk
(semaine) , mo
(mois) Les intervalles dont la valeur est inférieure à la date de négociation initiale seront arrondis à la date de négociation initiale.
period2=
: Représentation de l'horodatage UNIX de la date que vous souhaitez fin à.
Pour tous les intervalles : les valeurs supérieures à la dernière date de transaction seront arrondies à l'horodatage le plus récent disponible.
Ajouter des données pré et post marché
&includePrePost=true
Ajouter les dividendes et les fractionnements
&events=div%7Csplit
%7C
est un hexagone pour |
. ,
fonctionnera mais yahoo utilise en interne le pipe
Exemple d'URL :
https://query1.finance.yahoo.com/v8/finance/chart/AAPL?symbol=AAPL&period1=0&period2=9999999999&interval=1d&includePrePost=true&events=div%7Csplit
La requête ci-dessus renverra toutes les données de prix pour le ticker AAPL sur un intervalle d'un jour, y compris les données avant et après le marché, ainsi que les dividendes et les fractionnements.
Note : les valeurs utilisées dans l'exemple de prix URL pour period1=
& period2=
sont pour démontrer le comportement d'arrondi respectif de chaque entrée. `
4 votes
Il semble que cela soit arrivé sans aucun avertissement. C'est quoi ce bordel.
0 votes
Cela ne fonctionne plus, cela m'est arrivé aussi, mais j'ai trouvé un moyen très simple de contourner le problème en créant des urls et en récupérant les données directement à l'aide de pandas.