Pour les hedge funds

Dépôts de sources primaires et KPIs standardisés —
poussé vers votre livre, pas interrogé pour cela.

Sources du régulateur 62 normalisées selon une taxonomie croisée-GAAP KPI, avec un webhook signé qui se déclenche dès qu'un dépôt arrive sur votre liste de surveillance - pas de grattoir, pas d'analyseur PDF, pas de lot nocturne à maintenir.

pip install openfilings et connectez votre premier gestionnaire dans un après-midi.

Le problème

Les fondamentaux multi-marchés ne devraient pas nécessiter une équipe d'ingénierie de données

La couverture est fragmentée

Votre livre couvre les émetteurs américains, européens, asiatiques et GCC, chacun avec son propre portail de réglementation, son propre format de dépôt et son propre délai de divulgation. Assembler cela en interne signifie un grattoir par marché et un analyseur par taxonomie.

Les PDF ne calculent pas

Les rapports annuels des 10-Ks, Yūho, DART, MOPS et ESEF indiquent tous le terme « revenu » différemment. Sans normalisation, les analyses multi-marchés et les modèles factoriels fonctionnent sur des chiffres qui ne sont pas réellement comparables.

Les retraitements passent à travers

Un KPI extrait une fois et mis en cache devient obsolète au moment où un émetteur modifie un dépôt. L'exactitude à un moment précis est importante pour les backtests et pour tout ce qui touche une position en direct.

Ce que vous obtenez

Un API, une taxonomie, un push signé

Source primaire, pas une égratignure

Les dépôts sont extraits directement du flux du régulateur — SEC EDGAR, EDINET, OpenDART, MOPS, ESEF, Companies House, et plus encore sur les marchés 62 — avec un lien vers le document original sur chaque enregistrement.

KPIs standardisés, cross-GAAP

Chiffre d'affaires, marges, deltas EPS et YoY normalisés selon une taxonomie unique pour tous les marchés et normes comptables : interrogez le code d'un élément de ligne au lieu d'analyser vous-même chaque format de divulgation.

Push de webhook signé

Enregistrez une URL une fois ; les nouveaux dépôts, communiqués de presse et transactions d'initiés sur votre liste de surveillance atterrissent sous la forme d'un POST signé par HMAC — pas de boucle d'interrogation, vérifiable avec la seule bibliothèque standard.

Pipeline

Résoudre → remplir → s'abonner → vérifier

01

Résoudre l'univers

search_ticker / Entities.search résout le nom, le ticker, LEI ou ISIN en un seul émetteur canonique – lisez Entity.listings[] avant de supposer un marché unique.

02

Remplissez l'historique

get_company_financials extrait une série de périodes pluriannuelles avec les filtres fiscal_year_from/to et line_items en un seul appel – pas de boucle par dépôt pour un remplissage standard KPI .

03

Abonnez-vous au delta

Créez un webhook une fois (event_types=["filing.discovered"]) ; chaque nouvelle divulgation sur votre liste de surveillance arrive signée, en quelques secondes, au lieu d'un sondage nocturne.

04

Vérifier et agir

verify_webhook() vérifie la signature avec hmac.compare_digest, puis GET /api/v1/filings/{id}/kpis / get_filing_section hydrate tout ce dont votre signal a besoin à partir de celui-ci filing_id.

Intégration

Un gestionnaire de webhook signé, du début à la fin

Les livraisons sont signées avec HMAC-SHA256 sur le corps brut de la requête — verify_webhook() n'a besoin de rien d'autre que la bibliothèque standard Python.

handler.py · FastAPI

import os
from fastapi import Depends, FastAPI
from openfilings import Client
from openfilings.integrations.fastapi import openfilings_webhook_dependency
from openfilings.webhooks import WebhookEvent

app = FastAPI()
client = Client(api_key=os.environ["OPENFILINGS_API_KEY"])
verify = openfilings_webhook_dependency(os.environ["OPENFILINGS_WEBHOOK_SECRET"])

@app.post("/openfilings-webhook")
async def on_filing(event: WebhookEvent = Depends(verify)) -> dict:
    if event.event == "filing.discovered":
        kpis = client.filings.kpis(event.data["filing_id"])
        # ... run your signal against kpis.canonical ...
        print(event.data["ticker"], kpis.canonical.get("revenue"))
    return {"ok": True}

filing.discovered payload

{
  "event": "filing.discovered",
  "version": "1",
  "timestamp": "2026-08-08T09:14:02.331Z",
  "data": {
    "canonical_key": "sec:0000320193",
    "ticker": "AAPL",
    "market_id": "us",
    "form_type": "10-Q",
    "filing_id": "3f1b7e2a-...",
    "filing_date": "2026-08-08"
  }
}

Couverture en direct

En direct
5,450
Publiés sur 24 h
67,253
Sociétés
3,410,386
Filings au total

Accéder

Parlez-nous de votre univers

Collez les tickers ou les ISINs que vous couvrez et ce que vous construisez. Un responsable de l'ingénierie des données effectuera un suivi avec l'accès API, les détails de la couverture de vos marchés et les conditions du plan d'affaires pour la livraison des webhooks.

Or email [email protected] directly.

FAQ

Questions que les quants posent en premier

Quelle est la différence entre OpenFilings et un flux Bloomberg/FactSet ?

OpenFilings est une couche de dépôt de source principale et de KPI standardisés, et non un terminal de données de marché – pas de prix, pas d'estimations consensuelles. Il est conçu pour être placé à côté de votre pile de données existante pour les aspects réglementaires et fondamentaux : ce qui a été déposé, quand et ce que disent les chiffres normalisés.

À quelle vitesse un nouveau dépôt parvient-il au webhook ?

La découverte vers l'interrogation dure généralement moins de 60 secondes pour les marchés RSS/stream natifs ; le webhook se déclenche immédiatement après la persistance, de sorte que votre gestionnaire voit l'événement avant que la plupart des agrégateurs de titres ne publient un résumé.

Quel forfait inclut les webhooks ?

La livraison de webhooks signés est une fonctionnalité du plan Business (voir /tarification). Les REST API et Python SDK fonctionnent sur tous les forfaits payants ; les webhooks ajoutent la couche push au-dessus du sondage.

Ai-je besoin du SDK, ou puis-je appeler directement le REST API ?

Soit — pip install openfilings encapsule le même REST API avec des modèles typés, une interruption automatique de 429 et un assistant verify_webhook() uniquement sur stdlib. Chaque réponse SDK expose également .raw / .to_dict() pour les champs que nous n'avons pas encore encapsulés.

Comment les KPIs standardisés gèrent-ils différentes normes comptables ?

Les éléments de campagne divulgués de chaque dépôt correspondent à une taxonomie partagée (GET /api/v1/kpi-taxonomy / client.companies.kpi_taxonomy()) au moment de l'analyse, de sorte que les revenus d'un rapport annuel américain 10-K, Yūho et ESEF peuvent être interrogés avec le même code line_items.

Que se passe-t-il si un dossier est retraité ou modifié ?

Les KPIs sont redirigés par rapport au dépôt modifié et l?API sert les dernières valeurs par défaut ; get_company_financials accepte un paramètre as_of lorsque vous avez plutôt besoin de la valeur ponctuelle.