Tony Wang7 min de lecturaCómo scrapear divulgaciones de operaciones bursátiles del Congreso en 2026 (API y Python)
Obtén divulgaciones bursátiles del Congreso (House Clerk y Senate eFD) en 2026 — JSON por miembro, ticker o fechas, más reportes parseados.
Los datos de divulgación de operaciones bursátiles del Congreso son un caso donde los registros subyacentes son inequívocamente públicos — los miembros del Congreso están legalmente obligados a presentarlos — pero llevarlos a una forma utilizable requiere trabajo real. El House Clerk y el Senado operan cada uno su propio portal de divulgación, con sus propios campos de búsqueda y sus propios filings en PDF, y ninguno expone una API unificada y estructurada. Esta guía cubre el enfoque DIY para ambos portales y dónde falla, opciones no-code, y una API estructurada que normaliza ambas cámaras en un solo esquema y parsea los filings individuales en JSON estructurado.
¿Por qué scrapear las divulgaciones de operaciones bursátiles del Congreso?
Los datos de divulgación financiera del Congreso impulsan:
- Transparencia de interés público y periodismo — sigue lo que los miembros y candidatos a cargos federales han declarado comprar o vender, y cuándo, frente a votaciones, asignaciones de comité o actividad legislativa.
- Investigación de compliance y conflicto de interés — marca operaciones declaradas en sectores que el comité de un miembro supervisa, para grupos de vigilancia, investigadores académicos y redacciones.
- Investigación de tendencias y cobertura — observa cómo cambia el volumen de divulgaciones y los tipos de filing por cámara, estado o ciclo electoral a lo largo del tiempo.
- Seguimiento de puntualidad de los filings — los reportes de transacción periódica tienen una ventana de presentación exigida por ley, y las propias extensiones de fecha límite son una señal que vale la pena rastrear.
- Cruce con datos de mercado — combina un ticker declarado con una cotización en vivo de Yahoo Finance o Google Finance para el contexto alrededor de una operación declarada.
¿Es legal scrapear las divulgaciones del Congreso?
Opción 1: DIY en Python (y por qué falla)
Un scraper DIY tiene que acceder a dos sistemas no relacionados y conciliarlos tú mismo:
import requests
from bs4 import BeautifulSoup
# House Clerk: search returns an HTML results page, not JSON
house = requests.get(
"https://disclosures-clerk.house.gov/PublicDisclosure/FinancialDisclosure",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(house.text, "html.parser")
# Each result links out to a separate PDF — no structured fields, no ticker
# Senate eFD requires a session/search form and returns its own HTML shape,
# entirely unrelated to the House Clerk's markup or fields
Dónde se va el tiempo de ingeniería real:
- Dos portales, dos esquemas. El House Clerk y el eFD del Senado tienen cada uno sus propios parámetros de búsqueda, su propio markup de resultados, y ningún identificador compartido — cada campo que quieras hay que mapearlo y normalizarlo por separado según la cámara.
- Los propios filings son PDF. Los resultados de búsqueda apuntan a un PDF de la divulgación real; las operaciones individuales declaradas — ticker, tipo de transacción, fecha, rango de monto — viven dentro de ese documento, no en los resultados de búsqueda, así que igual tienes que traer y parsear cada PDF.
- El diseño del PDF varía. Los filings no siguen una plantilla fija entre miembros, años o tipos de filing — los reportes de transacción periódica, los reportes anuales y los filings de blind trust se diseñan de forma distinta, y los PDF de algunos filers más antiguos o de menor volumen son imágenes escaneadas en lugar de texto.
- No hay búsqueda por ticker entre cámaras. La búsqueda propia de ninguno de los dos portales te permite consultar "cada operación declarada en el ticker X en la Cámara y el Senado" en una sola llamada — tendrías que traer todo de forma amplia y filtrar del lado del cliente después de parsear cada PDF.
Opción 2: herramientas no-code
Un puñado de dashboards y scrapers de marketplace exponen datos de trading del Congreso, en su mayoría re-scrapeando los mismos dos portales y republicando un subconjunto de campos. Ahorran una búsqueda puntual, pero no resuelven el problema del parsing — igual no obtienes un registro estructurado por operación directamente desde el PDF fuente, y la mayoría no cubre los tipos de filing de extensión de fecha límite ni de blind trust en absoluto.
Opción 3: una API estructurada del Congreso
La API de Divulgaciones de Operaciones Bursátiles del Congreso de Crawlora normaliza tanto el House Clerk como el eFD del Senado en un solo formato de búsqueda, y parsea el PDF de un filing individual en JSON estructurado. Busca por miembro, ticker o rango de fechas:
curl "https://api.crawlora.net/api/v1/congress/stock-disclosures?chamber=house&last_name=pelosi&from=2025-01-01&to=2025-12-31" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"count": 4,
"filings": [
{
"member": "Pelosi, Nancy",
"office": "California, District 11",
"chamber": "house",
"filing_year": 2025,
"filing_type": "periodic_transaction",
"pdf_url": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2025/20025123.pdf"
}
]
}
}
Luego trae un filing del Senado de la misma forma y parsea ambos en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/congress"
results = requests.get(f"{base}/stock-disclosures", headers=h, params={
"chamber": "senate", "ticker": "AAPL", "election_year": 2024,
"sort": "filing_year", "direction": "desc", "page": 1, "limit": 20,
}).json()["data"]["filings"]
pdf_url = results[0]["pdf_url"]
report = requests.get(f"{base}/report", headers=h, params={"url": pdf_url}).json()["data"]
stock-disclosures acepta chamber (house o senate), member o first_name/last_name por separado, state, district, ticker, filer_type, election_year, y un rango de fechas from/to, y se puede ordenar por name, office o filing_year en cualquier dirección, paginado con page y limit. report toma el pdf_url de un filing y devuelve la divulgación parseada — campos y esquema reales en los docs — en lugar de un documento que de otro modo tendrías que abrir y leer a mano. Guarda una fila por filing, indexada por pdf_url, y vuelve a correr la búsqueda con un cronograma para capturar las divulgaciones recién presentadas.
Qué puedes recolectar
Datos públicos de divulgación financiera del Congreso en ambas cámaras: resultados de búsqueda de filings (nombre del miembro, oficina/estado/distrito, cámara, año de filing, tipo de filing normalizado, y la URL del PDF del documento original) filtrables por miembro, estado, distrito, ticker, tipo de filer y año electoral; y el contenido de reporte parseado del PDF de un filing individual. Los tipos de filing cubren anual, transacción periódica, extensión de fecha límite, blind trust y otros — los reportes de transacción periódica son los que divulgan operaciones individuales dentro de una ventana de reporte.
Limitaciones y desafíos comunes
- Dos sistemas fuente, conciliados en un solo formato. El House Clerk y el eFD del Senado publican de forma independiente — espera un retraso o diferencias de formato normales del lado de la fuente entre cámaras incluso después de normalizar.
- El parsing de reportes depende del PDF subyacente. El diseño varía según el tipo de filing y el filer, y las divulgaciones de algunos filers más antiguos o de menor volumen son imágenes escaneadas en lugar de texto — la calidad del parsing sigue la calidad del propio documento fuente.
- No es en tiempo real. Son filings periódicos con una ventana de presentación exigida por ley bajo la STOCK Act, no un feed de operaciones en vivo — hay un retraso inherente entre una transacción declarada y el momento en que se presenta y publica.
- La cobertura de tickers varía según el tipo de reporte. Cómo aparecen las posiciones individuales difiere según el tipo de filing — combina una búsqueda por ticker con el endpoint de reporte para parsear el documento subyacente en lugar de depender solo de la búsqueda.
- Solo datos públicos, no asesoría de inversión. Esto recolecta lo que los miembros y candidatos ya divulgaron públicamente bajo exigencia legal — nunca una señal sobre la cual operar, ni una forma de inferir nada más allá de lo que realmente se presentó.
Dónde se usa esto
- Periodismo de transparencia — sigue operaciones declaradas frente a asignaciones de comité, votaciones o actividad legislativa.
- Investigación de compliance y vigilancia — monitorea la puntualidad de los filings y marca divulgaciones en sectores que el comité de un miembro supervisa.
- Investigación académica y política — estudia los patrones de divulgación por cámara, estado o ciclo electoral a lo largo del tiempo.
- Investigación financiera multi-fuente — combina un ticker declarado con precios en vivo de Yahoo Finance o Google Finance.
Fuentes
Empieza a recolectar
Pruébalo primero, gratis: corre cualquier URL pública por el Free Web Scraper, o revisa si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba los endpoints de búsqueda y reporte de stock-disclosures en el Playground, revisa el esquema en los docs de la API, y échale un vistazo al pricing. Las divulgaciones del Congreso te dicen qué reportó oficialmente un miembro o candidato y cuándo; SEC EDGAR cubre el mismo patrón impulsado por divulgaciones para empresas públicas, y Yahoo Finance o Google Finance agregan el precio en vivo y el contexto de mercado alrededor de un ticker declarado — combina la divulgación con datos de mercado en lugar de leer cualquiera de los dos por separado. Consulta también how to choose a web scraping API y is web scraping legal.
Preguntas frecuentes
¿Cómo busco divulgaciones de operaciones bursátiles del Congreso con una API?
Envía el nombre de un miembro — o un filtro de ticker, cámara, estado o año — como parámetros de consulta al endpoint /congress/stock-disclosures de Crawlora y obtén filas de filing normalizadas: miembro, oficina, año de filing, tipo de filing, y la URL del PDF del documento original, como JSON estructurado.
¿De dónde vienen estos datos, y cubren ambas cámaras?
Sí, ambas. Pasa chamber=house o chamber=senate — las divulgaciones de la Cámara vienen del sitio público del House Clerk y las del Senado del sistema eFD del Senado, los dos portales oficiales de presentación. Son registros públicos que los miembros del Congreso están legalmente obligados a presentar; Crawlora normaliza los dos sistemas distintos en un solo formato de respuesta.
¿Puedo buscar por ticker bursátil?
El endpoint de búsqueda acepta un filtro de ticker junto con miembro, estado, distrito, tipo de filer y año. Cómo aparecen las posiciones individuales varía según el tipo de reporte, así que combina una búsqueda por ticker con el endpoint de reporte para parsear el documento subyacente.
¿Qué tipos de reporte están disponibles?
annual, periodic_transaction, due_date_extension, blind_trust y other. Los reportes de transacción periódica son los que divulgan operaciones individuales dentro de una ventana de reporte.
¿Es esto asesoría de inversión?
No. Esta es una API de registros públicos para investigación, periodismo y trabajo de compliance. Crawlora no es un asesor de inversiones, y cómo publiques o actúes sobre los datos de divulgación del Congreso es tu responsabilidad bajo la ley aplicable.