Comment construire un agent de recherche d'investissement : marchés, fondamentaux, SEC et données économiques dans une seule API

Un agent de recherche d'investissement a besoin de cinq couches de données — cours, fondamentaux, filings, macro et actualités — chacune normalement un fournisseur, une clé et un schéma distincts. Voici comment câbler les cinq derrière un seul jeu d'endpoints, avec du code fonctionnel et le calcul de coût.
L'essentiel
- •Un agent finance utile a besoin de cinq couches de données : marchés en temps réel (cours), fondamentaux d'entreprise (états financiers), filings SEC, indicateurs économiques et actualités. Assemblées chez des fournisseurs distincts, c'est 5 contrats, 5 clés, 5 schémas.
- •API Pick expose les cinq sous forme d'endpoints de recherche JSON cohérents — /search/markets, /search/financials, /search/sec, /search/economic, /search/news — plus /extract pour les documents complets. Une seule clé, déjà mise en forme pour le tool calling des LLM.
- •Le pattern de l'agent : lancer les endpoints pertinents en parallèle sous forme d'outils, fusionner le JSON, et laisser le modèle raisonner sur des données ancrées plutôt que d'halluciner des chiffres.
- •Tarification en crédits, facturée seulement en cas de succès : marchés 120, fondamentaux 200, sec 120, économique 50, actualités 15 par appel. Un tour de recherche multi-outils typique coûte bien moins de $0.01–$0.10 selon la profondeur.
- •Build-vs-buy : assembler vous-même Polygon + un fournisseur de fondamentaux + SEC EDGAR + FRED + une API d'actualités, c'est des semaines d'intégration et 5 factures mensuelles ; la voie de l'endpoint unique, c'est une journée.
Le problème des cinq couches
Demandez à un LLM "NVIDIA est-il cher en ce moment ?" et il inventera un PER avec aplomb. La solution n'est pas un modèle plus gros — c'est l'ancrage. Un agent de recherche qui inspire confiance doit récupérer des données live et citées sur cinq couches, puis raisonner dessus :
- Marchés — le cours actuel, la capitalisation, et son évolution. Crypto, forex, ETF et les plus forts mouvements du jour quand c'est pertinent.
- Fondamentaux — bilan, compte de résultat, flux de trésorerie, dividendes et transactions d'initiés. La couche "l'entreprise est-elle réellement saine".
- Filings SEC — facteurs de risque des 10-K, détail des 10-Q, événements 8-K, langage des earnings calls. La dimension qualitative que les chiffres ratent.
- Indicateurs économiques — taux, inflation, emploi, PIB depuis FRED, BLS, la Banque mondiale et l'IMF. La toile de fond macro dans laquelle s'inscrit chaque thèse.
- Actualités — le catalyseur opportun : une dégradation de note, un lancement produit, une action réglementaire.
Assemblées chez des fournisseurs distincts, ça fait cinq contrats, cinq clés API, cinq régimes de rate-limit et cinq schémas de réponse à normaliser avant qu'un modèle puisse y toucher. L'intégration, c'est là que les projets d'agent finance s'enlisent.
Un jeu d'endpoints, cinq couches
API Pick expose chaque couche sous forme d'endpoint de recherche JSON cohérent, de sorte que l'agent dialogue avec une seule clé et un seul format de réponse :
- Markets Search — actions mondiales & américaines, crypto, forex, ETF, fonds, matières premières et plus forts mouvements du marché américain.
- Financials Search — bilans, comptes de résultat, flux de trésorerie, dividendes, transactions d'initiés.
- SEC Filings Search — 10-K/10-Q/8-K, transcripts de résultats, statistiques actions.
- Economic Data Search — FRED, BLS, Banque mondiale, IMF, USAspending, Destatis.
- News Search — actualités filtrées par date à travers les grands médias.
- Extract — récupérez un filing ou un article complet en markdown propre quand un extrait ne suffit pas.
L'architecture de l'agent
Enregistrez chaque endpoint comme un outil. Quand une question arrive, l'agent décide des couches dont il a besoin, les appelle en parallèle, fusionne le JSON et raisonne sur le résultat ancré. Une question sur un ticker touche marchés + fondamentaux + actualités ; une question "comment le secteur est-il positionné" touche économique + actualités + quelques comparables.
import asyncio, httpx, os
API = "https://api.apipick.com/v1"
HEADERS = {"x-api-key": os.environ["APIPICK_KEY"], "Content-Type": "application/json"}
async def search(client, path, query, **kw):
r = await client.post(f"{API}/{path}", headers=HEADERS,
json={"query": query, **kw})
r.raise_for_status()
return r.json()["results"]
async def research(ticker: str):
async with httpx.AsyncClient(timeout=30) as c:
markets, fundamentals, filings, macro, news = await asyncio.gather(
search(c, "search/markets", f"{ticker} price and market cap"),
search(c, "search/financials", f"{ticker} latest balance sheet and cash flow"),
search(c, "search/sec", f"{ticker} 10-K risk factors", end_date="2026-06-16"),
search(c, "search/economic", "US interest rates and inflation latest"),
search(c, "search/news", f"{ticker} latest news", end_date="2026-06-16"),
)
return {"markets": markets, "fundamentals": fundamentals,
"filings": filings, "macro": macro, "news": news}
# Feed the merged JSON back to your LLM as grounding, with the source URLs,
# and ask it to synthesize — never to recall numbers.
context = asyncio.run(research("NVDA"))Chaque résultat porte une URL source. Faites-les remonter jusqu'à la réponse finale pour qu'un humain puisse auditer chaque affirmation — et pour que la sortie de l'agent soit citable, ce qui la rend utile dans un workflow réel.
Build vs. buy
| Assembler soi-même | API Pick | |
|---|---|---|
| Fournisseurs / clés | ~5 (Polygon, fondamentaux, EDGAR, FRED, actualités) | 1 |
| Formats de réponse | 5 à normaliser | 1 format JSON |
| Temps jusqu'au premier agent | Des semaines d'intégration | Une journée |
| Facturation | 5 abonnements mensuels | Par appel, au succès uniquement |
| Prêt pour LLM | Vous mettez chacun en forme | Extraits pré-formatés + URLs sources |
Pour un seul type de données, aller en direct est raisonnable. Pour un agent qui a besoin des cinq et explore de façon imprévisible, la voie de l'endpoint unique se livre en une journée et ne facture que lorsqu'un appel aboutit.
Ce que ça débloque
Les mêmes cinq outils alimentent bien plus que les lookups de ticker : agents de briefing en saison de résultats, screens sectoriels ancrés dans les fondamentaux, commentaire de portefeuille conscient de la macro, et assistants de diligence qui lisent le vrai 10-K via Extract. Le pattern est toujours le même — appels d'outils ancrés, récupération en parallèle, synthèse sur des données réelles avec les sources attachées.
Commencez avec une clé gratuite (100 crédits, sans carte) et câblez les cinq outils dans le framework d'agent de votre choix. À partir de là, c'est du prompt engineering, pas de la plomberie.
Questions fréquentes
De quelles données un agent de recherche d'investissement a-t-il réellement besoin ?
Cinq couches. (1) Marchés en temps réel — cours, crypto, forex, ETF, plus forts mouvements, pour la question « que fait-il en ce moment ». (2) Fondamentaux — bilan, compte de résultat, flux de trésorerie, dividendes, transactions d'initiés. (3) Filings SEC — texte des 10-K/10-Q/8-K et transcripts de résultats pour les signaux qualitatifs. (4) Indicateurs économiques — FRED, BLS, Banque mondiale, IMF pour la toile de fond macro. (5) Actualités — les catalyseurs opportuns. La plupart des agents échouent parce qu'ils ont les cours mais pas les fondamentaux, ou les fondamentaux mais pas le contexte macro.
Pourquoi ne pas simplement appeler Polygon, FRED et SEC EDGAR directement ?
Vous le pouvez — et pour un seul type de données, c'est très bien. Le souci, c'est que l'agent a besoin des cinq : ça fait cinq fournisseurs, cinq schémas d'authentification, cinq régimes de rate-limit, cinq formats de réponse à normaliser avant que le LLM puisse les utiliser, et cinq factures. L'approche endpoint unique échange une petite prime par appel contre une seule clé, un seul format JSON et une facturation au succès uniquement — ce qui, pour un agent qui fait des appels multi-outils exploratoires, est généralement la voie la moins chère et de loin la plus rapide pour livrer.
Comment éviter que le LLM hallucine des chiffres financiers ?
Ne laissez jamais le modèle produire des chiffres de mémoire. Faites de chaque source de données un outil, forcez l'agent à appeler l'outil, et renvoyez le JSON retourné comme ancrage. Le rôle du modèle est de raisonner et de synthétiser sur les valeurs récupérées, pas de se les rappeler. Citez l'URL source de chaque résultat pour que la sortie soit auditable — c'est aussi ce qui rend la réponse digne de confiance pour un relecteur humain.
La sortie convient-elle à du trading ou du conseil réels ?
Non. La sortie d'une API de récupération est informative. Elle ancre le raisonnement d'un analyste ou d'un agent dans des données réelles ; ce n'est pas du conseil en investissement et cela ne doit pas servir de signal de trading automatisé sans un humain qualifié et des contrôles de risque appropriés. Traitez l'agent comme un accélérateur de recherche, pas comme un décideur.
Combien coûte un tour de recherche ?
La facturation est par appel réussi : marchés 120 crédits, fondamentaux 200, sec 120, économique 50, actualités 15 (1000 crédits ≈ $1). Un tour ciblé qui touche marchés + fondamentaux + actualités fait ~335 crédits (~$0.34) ; un tour plus léger macro+actualités fait ~65 crédits. Vous ne payez qu'en cas de HTTP 200, donc les appels échoués ou vides ne coûtent rien — ce qui compte quand un agent explore.
APIs utilisées dans cet article
Sarah Choy est CEO d'API Pick. Elle écrit sur la création d'APIs prêtes pour la production destinées aux agents IA et aux workflows LLM.