Tony Wang7 min de lecturaCómo scrapear SEC EDGAR en 2026 (API y Python)
Obtén filings, financials y datos de insiders de SEC EDGAR en 2026: la API gratis de EDGAR, o una API estructurada para secciones y XBRL.
SEC EDGAR es una de las pocas plataformas de esta serie donde la respuesta honesta a "¿necesito scrapear esto?" empieza con "EDGAR ya te lo da gratis." Sus APIs oficiales en data.sec.gov y efts.sec.gov son públicas, sin autenticación, y cubren filings de empresas, historial de submissions y datos financieros XBRL como JSON — sin key, sin registro. Lo que la propia API de EDGAR no hace es parsear un 10-K hasta la sección de risk factors que realmente quieres, o convertir tags XBRL en un estado de resultados normalizado con ratios. Esta guía cubre la propia API gratuita de EDGAR y sus límites reales, opciones no-code, y una API estructurada para el trabajo de parsing, con la realidad legal de cada una expuesta desde el inicio.
¿Por qué scrapear SEC EDGAR?
SEC EDGAR guarda el historial de filings de cada empresa pública de EE. UU., lo que impulsa:
- Investigación de financials de empresas — trae estado de resultados, balance y datos de flujo de caja normalizados con ratios para un ticker o CIK.
- Monitoreo de filings y disclosures — sigue nuevos filings 10-K, 10-Q y 8-K a medida que llegan, o vuelve a correr la búsqueda de texto completo para un tema o frase en todos los filers.
- Due diligence e investigación de riesgo — extrae secciones específicas del filing (Risk Factors, MD&A) en lugar de leer un documento de 100 páginas de principio a fin.
- Análisis de propiedad de insiders e institucional — sigue las transacciones de insiders del Form 4 y los holdings institucionales 13F para una empresa o gestor.
- Cruce con datos de mercado — combina los fundamentales de la SEC con una cotización en vivo o la capitalización de mercado de Yahoo Finance o Google Finance.
¿Es legal scrapear SEC EDGAR?
Opción 1: la propia API gratuita de EDGAR (y sus límites reales)
Los recursos para desarrolladores y el resumen de APIs de EDGAR de la SEC apuntan a data.sec.gov para submissions de empresas y datos XBRL, y a efts.sec.gov para búsqueda de texto completo — ambos JSON público, sin key requerida, siempre que envíes un User-Agent conforme:
curl "https://data.sec.gov/submissions/CIK0000320193.json" \
-H "User-Agent: YourCompany [email protected]"
Eso devuelve el historial de filings completo de Apple — cada 10-K, 10-Q, 8-K y Form 4 con su número de accession y URL del documento — gratis, directamente de la SEC. Es una forma legítima y sin registro de obtener metadata cruda de filings y company facts XBRL.
Dónde empieza a costar tiempo real de ingeniería:
- Un 10-K es un documento, no un registro.
primary_doc_urlapunta al HTML completo del filing — a menudo 100+ páginas. Conseguir solo la sección de Risk Factors o MD&A significa traer todo el documento y parsear el HTML tú mismo; EDGAR no lo segmenta por ti. - Los "frames" XBRL requieren conocimiento de taxonomía. Traer un concepto financiero a través de empresas (
https://data.sec.gov/api/xbrl/frames/us-gaap/Assets/USD/CY2024Q4I.json) requiere conocer el tag exacto de US-GAAP (Assets,Revenues,NetIncomeLoss, …) y el formato del periodo (CY2024Q4I) — no hay búsqueda difusa, y las empresas usan los tags con distinta consistencia. - Los límites de fair-access son reales, no decorativos. 10 solicitudes/segundo por IP con User-Agent obligatorio es generoso para consultas interactivas, pero limita rápido en un backfill masivo de miles de CIKs — la propia guía de la SEC para ese caso son los archivos ZIP masivos nocturnos (
companyfacts.zip,submissions.zip), no llamadas de API por empresa.
Opción 2: herramientas no-code
Existen actors de scraper en marketplaces y conectores de BI para datos de la SEC, que en su mayoría envuelven los mismos endpoints de data.sec.gov en lugar de agregar acceso nuevo. Ahorran tiempo de configuración para una extracción puntual a una hoja de cálculo, pero no resuelven el problema del parsing — igual obtienes HTML crudo del filing o tags XBRL al final, y agregan una capa de indirección sobre una API que la SEC ya publica directamente.
Opción 3: una API estructurada de SEC EDGAR (vía Crawlora)
Si lo que realmente quieres es una sección de filing parseada o un estado financiero normalizado — no HTML crudo ni tags XBRL —, una API de SEC EDGAR hace justo eso encima de los propios datos de EDGAR. Busca una empresa para obtener su CIK:
curl "https://api.crawlora.net/api/v1/sec/company/search?q=apple" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "apple",
"count": 1,
"matches": [
{ "cik": 320193, "cik_padded": "CIK0000320193", "ticker": "AAPL", "name": "Apple Inc." }
],
"source_url": "https://www.sec.gov/files/company_tickers.json"
}
}
Luego trae las secciones de un filing específico y los financials normalizados en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/sec"
company = requests.get(f"{base}/company/search", headers=h, params={"q": "apple"}).json()["data"]["matches"][0]
cik = company["cik"]
sections = requests.get(f"{base}/filing/sections", headers=h, params={
"ticker": "AAPL", "accession": "0000320193-25-000079", "items": "1A"
}).json()["data"]
financials = requests.get(f"{base}/financials", headers=h, params={
"ticker": "AAPL", "statement": "income", "period": "annual"
}).json()["data"]
filing/sections devuelve el texto del item extraído en lugar de un documento HTML completo (campos reales — revisa los docs):
{
"data": {
"cik": 320193,
"accession_number": "0000320193-25-000079",
"form": "10-K",
"sections": [
{ "item": "1A", "title": "Risk Factors", "text": "The Company's business...", "char_count": 68562, "truncated": true }
],
"source_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm"
}
}
financials devuelve líneas normalizadas del estado de resultados (o balance, flujo de caja) con ratios calculados, en lugar de tags XBRL crudos:
{
"data": {
"cik": 320193, "ticker": "AAPL", "statement": "income", "period": "annual",
"line_order": ["revenue", "net_income"],
"periods": [{
"fiscal_year": 2025, "end_date": "2025-09-27", "form": "10-K", "currency": "USD",
"lines": { "revenue": 383285000000, "net_income": 96995000000 },
"ratios": { "gross_margin": 0.4413, "operating_margin": 0.2982, "net_margin": 0.2531, "revenue_growth_yoy": -0.028 }
}]
}
}
/sec/company/submissions (historial de filings filtrado por form, from/to), /sec/company/intelligence (un perfil combinado, snapshot financiero y datos de mercado), /sec/full-text-search (q, forms, from/to en todos los filers), /sec/frames (un concepto US-GAAP a través de empresas para un periodo, sin que tú mismo tengas que rastrear la lista de tags de la taxonomía), /sec/insider (transacciones Form 3/4/5) y /sec/institutional-holdings (holdings 13F por CIK del gestor) completan el grupo. Guarda una fila por filing, periodo o transacción y vuelve a correrlo con un cronograma.
Qué puedes recolectar
Datos públicos de filings y financials de EDGAR: búsqueda de empresas (CIK, ticker, nombre); historial y metadata de filings (número de accession, tipo de form, fechas de filing/reporte, URLs de documentos, flag XBRL); secciones de filing parseadas por número de item (Risk Factors, MD&A y otras, con conteo de caracteres); datos normalizados de estado de resultados, balance y flujo de caja con ratios calculados y crecimiento interanual; un perfil de empresa combinado con snapshot financiero, datos de mercado y filings recientes; búsqueda de texto completo en todos los filings de EDGAR; frames de conceptos XBRL a través de empresas para un periodo; transacciones de insiders Form 3/4/5; y holdings institucionales 13F por gestor.
Limitaciones y desafíos comunes
- EDGAR mismo es la fuente gratuita y oficial — sabe cuándo una API estructurada agrega valor. Submissions, filings y datos XBRL crudos ya son gratis desde
data.sec.gov; una API estructurada se gana su lugar cuando necesitas secciones parseadas o estados normalizados, no "acceso" que ya tenías. - Los límites de fair-access aplican de todas formas. 10 solicitudes/segundo por IP y un User-Agent obligatorio rigen las llamadas subyacentes a EDGAR sin importar por qué capa las hagas.
- El etiquetado XBRL varía según la empresa. No todos los filers etiquetan cada concepto de la misma manera; algunos filers más pequeños tienen una cobertura XBRL más escasa o inconsistente que grandes accelerated filers como Apple.
- El texto del filing es largo y está numerado por item, no es de formato libre. La extracción de secciones depende de que el filing siga la numeración de item estándar de EDGAR (1A, 7, 7A, …), lo que la mayoría — pero no todos — los filings hacen de forma consistente.
- Solo datos públicos. Esto recolecta lo que las empresas ya divulgaron a la SEC y lo que la SEC ya publica — nunca una forma de inferir información no pública o de eludir el timing real de divulgación de una empresa.
Dónde se usa esto
- Investigación financiera y screening — trae estados normalizados y ratios a través de una watchlist de tickers.
- Pipelines de due diligence — extrae secciones de Risk Factors y MD&A para revisión asistida por IA en lugar de lectura manual.
- Monitoreo de compliance y disclosures — sigue nuevos filings, trades de insiders y cambios en holdings institucionales a medida que se reportan.
- Investigación financiera multi-fuente — combina los fundamentales de la SEC 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 de empresas, secciones de filing y financials en el Playground, revisa el schema en los docs de la API, y échale un vistazo al pricing. SEC EDGAR te dice qué divulgó oficialmente una empresa y cuándo; Yahoo Finance y Google Finance agregan el precio en vivo y el contexto de mercado alrededor — combina fundamentales con datos de mercado en lugar de confiar en una sola fuente. Sin embargo, EDGAR solo cubre empresas públicas; para el lado de las empresas privadas de la misma historia de financiamiento, how to scrape PitchBook cubre deals, rondas e inversores antes de que una empresa siquiera presente un filing. Consulta el caso de uso más amplio de alternative data para este tipo de señal impulsada por disclosures. Consulta también how to choose a web scraping API y is web scraping legal.
Parte de nuestra serie de guías how-to-scrape — cada plataforma que cubrimos, en un índice.
Preguntas frecuentes
¿La propia API de EDGAR es gratis? ¿Por qué no usar solo esa?
Sí — data.sec.gov y efts.sec.gov son gratis, oficiales y no requieren registro. Usa la propia API de EDGAR directamente para filings, submissions y datos XBRL crudos. Una API estructurada vale la pena cuando necesitas secciones de filing parseadas o estados financieros normalizados con ratios en lugar de documentos HTML crudos y tags XBRL de US-GAAP — el valor está en el parsing, no en el acceso, que ya tenías.
¿Es legal scrapear SEC EDGAR?
Los filings de la SEC son divulgaciones regulatorias públicas sin barrera de login ni prohibición de scraping. La restricción real es la política de fair-access de EDGAR: 10 solicitudes/segundo por IP y un header User-Agent obligatorio. Esto no es asesoría legal — consulta is web scraping legal.
¿Qué es un CIK y cómo lo consigo?
Un CIK (Central Index Key) es el identificador único de la SEC para un filer. Lo consigues buscando un nombre de empresa o ticker contra /sec/company/search, que devuelve el cik, cik_padded, ticker y name.
¿Cómo obtengo una sección específica de un 10-K, como Risk Factors?
Pasa el número de accession del filing a /sec/filing/sections con un parámetro items (por ejemplo, "1A" para Risk Factors); devuelve el texto del item extraído con título y conteo de caracteres en lugar del HTML completo del filing.
¿Cómo obtengo estados financieros normalizados en lugar de XBRL crudo?
Llama a /sec/financials con un CIK o ticker, un statement (income, balance o cash flow) y un period (annual o quarterly); devuelve líneas de partida y ratios calculados como el margen bruto y el crecimiento de ingresos, sin que tengas que mapear tú mismo los tags de la taxonomía US-GAAP.
¿Puedo seguir trades de insiders y holdings institucionales?
Sí. /sec/insider devuelve transacciones de insiders del Form 3/4/5 por CIK o ticker, y /sec/institutional-holdings devuelve holdings 13F por CIK del gestor, ambos como JSON estructurado.
¿Qué datos de SEC EDGAR puedo recolectar?
Búsqueda de empresas, historial y metadata de filings, secciones de filing parseadas, estados financieros normalizados con ratios, un perfil combinado de company intelligence, búsqueda de texto completo en todos los filers, frames de conceptos XBRL, transacciones de insiders y holdings institucionales 13F — todo son datos públicos.