La cobertura está fragmentada
Tu libro abarca emisores de EE. UU., UE, Asia y el CCG — cada uno con su portal regulatorio, formato de filing y retraso de divulgación. Coserlo en casa significa un scraper por mercado y un parser por taxonomía.
Para hedge funds
58 fuentes regulatorias normalizadas a una taxonomía KPI cross-GAAP, con un webhook firmado que se dispara en el momento en que un filing llega a tu watchlist — sin scraper, sin parser de PDF, sin lote nocturno que mantener.
pip install openfilings y conecta tu primer handler en una tarde.
El problema
Tu libro abarca emisores de EE. UU., UE, Asia y el CCG — cada uno con su portal regulatorio, formato de filing y retraso de divulgación. Coserlo en casa significa un scraper por mercado y un parser por taxonomía.
Los 10-K, Yūho, DART, MOPS e informes anuales ESEF todos dicen «ingresos» de forma distinta. Sin normalización, las pantallas cross-market y los modelos de factores corren sobre cifras que no son comparables.
Un KPI extraído una vez y cacheado se queda obsoleto en el momento en que un emisor enmienda un filing. La corrección punto-en-el-tiempo importa para backtests y para cualquier cosa que toque una posición viva.
Qué obtienes
Los filings se recogen del feed del regulador — SEC EDGAR, EDINET, OpenDART, MOPS, ESEF, Companies House y más en 58 mercados — con un enlace al documento original en cada registro.
Ingresos, márgenes, BPA y deltas interanuales normalizados a una taxonomía entre mercados y normas contables — consulta un código de partida en lugar de parsear cada formato de divulgación.
Registra una URL una vez; los filings, comunicados y transacciones insider nuevos de tu watchlist llegan como POST firmado HMAC — sin bucle de sondeo, verificable solo con la biblioteca estándar.
Pipeline
01
search_ticker / entities.search resuelve nombre, ticker, LEI o ISIN a un emisor canónico — lee entity.listings[] antes de asumir un solo mercado.
02
get_company_financials extrae una serie plurianual con filtros fiscal_year_from/to y line_items en una llamada — sin bucle por filing para un relleno KPI estándar.
03
Crea un webhook una vez (event_types=["filing.discovered"]); cada nueva divulgación de tu watchlist llega firmada, en segundos, en lugar de un sondeo nocturno.
04
verify_webhook() comprueba la firma con hmac.compare_digest; luego GET /api/v1/filings/{id}/kpis / get_filing_section hidrata lo que tu señal necesita a partir de ese filing_id.
Integración
Las entregas se firman con HMAC-SHA256 sobre el cuerpo crudo — verify_webhook() no necesita más que la biblioteca estándar de 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"
}
}Cobertura en vivo
Obtener acceso
Pega los tickers o ISIN que cubres y lo que estás construyendo — un lead de data-eng te responderá con acceso API, detalle de cobertura de tus mercados y condiciones del plan Business para entrega por webhook.
FAQ
OpenFilings es una capa de filings de fuente primaria y KPI estandarizados, no un terminal de datos de mercado — sin precios ni consensos. Está hecho para sentarse junto a tu stack existente en el lado de evento regulatorio y fundamentos: qué se presentó, cuándo, y qué dicen las cifras normalizadas.
De descubrimiento a consultable suele ser menos de 60 segundos en mercados nativos RSS/stream; el webhook se dispara justo después de persistir, así que tu handler ve el evento antes de que la mayoría de agregadores de titulares publiquen un resumen.
La entrega de webhooks firmados es una función del plan Business (véase /pricing). La REST API y el SDK Python funcionan en todos los planes de pago; los webhooks añaden la capa push encima del sondeo.
Cualquiera — pip install openfilings envuelve la misma REST API con modelos tipados, backoff automático 429 y un helper verify_webhook() solo stdlib. Cada respuesta del SDK también expone .raw / .to_dict() para campos que aún no hemos envuelto.
Las partidas divulgadas de cada filing se mapean a una taxonomía compartida (GET /api/v1/kpi-taxonomy / client.companies.kpi_taxonomy()) en el parseo, así que los ingresos de un 10-K de EE. UU., un Yūho y un informe anual ESEF se consultan con el mismo código line_items.
Los KPI se vuelven a derivar contra el filing enmendado y la API sirve los valores más recientes por defecto; get_company_financials acepta un parámetro as_of cuando necesitas el valor punto-en-el-tiempo.