Tony Wang7 min de lecturaCómo scrapear Kalshi en 2026 (API y Python)
Los datos de Kalshi son públicos y sin clave vía su propia API REST. Cuándo usarla directo y cuándo conviene una API estructurada.
Kalshi ya publica una API REST abierta y sin clave para sus datos de mercado — precios, libros de órdenes, historial de operaciones, eventos y series son todos de lectura pública en external-api.kalshi.com. Así que la respuesta honesta a «cómo scrapear Kalshi» en 2026 es: para la mayoría de los casos de lectura, llama directamente a la propia API de Kalshi. Lo que todavía necesita una cuenta es operar — colocar órdenes requiere una sesión verificada con KYC y solicitudes firmadas. Esta guía cubre la API oficial de Kalshi, por qué scrapear la web a mano resulta innecesario además de eso, y cuándo una API estructurada sí se justifica.
¿Por qué scrapear datos de Kalshi?
- Seguimiento de probabilidades de eventos — el precio «yes» de Kalshi es una probabilidad en vivo, implícita por el mercado, para eventos del mundo real (elecciones, decisiones de la Fed, clima, deportes), útil como señal de pronóstico.
- Investigación de sentimiento de mercado frente a encuestas tradicionales — compara las probabilidades implícitas de Kalshi con encuestas o pronósticos de expertos para ver dónde discrepan la multitud y los encuestadores.
- Trading e investigación cuantitativa — libros de órdenes, registros de operaciones y velas históricas para construir o hacer backtesting de estrategias.
- Productos de noticias y pronósticos — mostrar widgets de «qué cree el mercado que va a pasar» junto a la cobertura informativa de un evento.
- Pipelines de IA — alimentar agentes de investigación o dashboards que necesitan una lectura numérica de resultados inciertos con probabilidades de eventos en vivo.
¿Es legal scrapear Kalshi?
Opción 1: la API oficial de Kalshi (y sus límites)
En el caso concreto de Kalshi, la API oficial es lo primero a lo que recurrir — es pública, está bien documentada y devuelve los mismos datos que de otro modo tendrías que scrapear:
curl "https://external-api.kalshi.com/trade-api/v2/markets?limit=10"
No hace falta x-api-key, ni OAuth, ni cuenta para las lecturas. Lo que cubre y dónde sigue teniendo límites:
- Las lecturas son abiertas, las escrituras están restringidas. Los mercados, eventos, series, operaciones y libros de órdenes son públicos. Colocar una orden requiere una cuenta aprobada: solicitudes firmadas con RSA (
KALSHI-ACCESS-KEY,-TIMESTAMP,-SIGNATURE) más KYC, y Kalshi solo está disponible en un subconjunto de estados de EE. UU. - Los límites de tasa escalan según el nivel de cuenta. El acceso público/básico usa un limitador de tipo token-bucket (aproximadamente 20 lecturas/segundo en el nivel de entrada); los niveles de trading superiores obtienen presupuestos más altos. Con polling intensivo igual conviene hacer backoff ante respuestas
429. - Los términos restringen el uso posterior, no el acceso. La API en sí no te impide extraer muchos datos — son los Data Terms of Service los que limitan lo que puedes construir comercialmente con ellos (ver arriba).
- Igual tienes que armar tu propio esquema. Mercados, eventos, series, libros de órdenes y velas históricas son familias de endpoints independientes con sus propios parámetros (
event_ticker,series_ticker, cursores,period_interval) que hay que aprender y paginar.
Opción 2: hacerlo tú mismo en Python contra la web (y por qué es innecesario)
Como la propia API JSON de Kalshi es abierta, hay poca razón para scrapear las páginas renderizadas de kalshi.com — estarías parseando una app de React en busca de números que la API ya te da como campos estructurados, y además heredarías cambios de maquetación que la API no sufre. Una extracción mínima hecha a mano se ve así:
import requests
r = requests.get(
"https://external-api.kalshi.com/trade-api/v2/markets",
params={"limit": 10, "status": "active"},
).json()
markets = r["markets"]
Esto funciona bien para un único script. Las contrapartidas aparecen en cuanto extraes datos de varias plataformas:
- El esquema de Kalshi es propio de Kalshi. Los nombres de campos, los formatos de ticker y los cursores de paginación son específicos de esta API — una integración aparte que mantener si Kalshi es uno de varios mercados que sigues.
- No hay autenticación ni normalización unificadas entre fuentes. Si además extraes datos de Polymarket, Metaculus o mercados tradicionales, cada una tiene su propio cliente, esquema y comportamiento de límite de tasa que reconciliar.
- El polling y el almacenamiento siguen siendo cosa tuya. Kalshi no reintenta, deduplica ni marca con timestamp tus extracciones por ti — eso corre por cuenta de tu código de cualquier forma.
Opción 3: una API estructurada de Kalshi
El valor añadido de una Kalshi scraping API no está en desbloquear datos que Kalshi oculta — está en ofrecer un único esquema normalizado y una sola x-api-key para Kalshi y el resto de plataformas del catálogo, para que no tengas que mantener un cliente distinto por fuente. Listar mercados activos:
curl "https://api.crawlora.net/api/v1/kalshi/markets?limit=10&status=active" \
-H "x-api-key: $CRAWLORA_API_KEY"
Mercados, eventos e historial en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/kalshi"
markets = requests.get(f"{base}/markets", headers=h,
params={"limit": 10, "status": "active"}).json()["data"]
market = requests.get(f"{base}/market/KXELONMARS-99", headers=h).json()["data"]
events = requests.get(f"{base}/events", headers=h, params={"limit": 10}).json()["data"]
La respuesta de detalle de un mercado es JSON normalizado que puedes almacenar directamente (campos reales):
{
"code": 200,
"msg": "OK",
"data": {
"market": {
"ticker": "KXELONMARS-99",
"event_ticker": "KXELONMARS-99",
"title": "Will Elon Musk visit Mars before Aug 1, 2099?",
"status": "active",
"last_price": 0.08,
"yes_bid": 0.08,
"yes_ask": 0.1,
"volume": 94840.88
},
"source_url": "https://external-api.kalshi.com/trade-api/v2/markets/KXELONMARS-99",
"fetched_at": "2026-06-07T14:00:00Z"
}
}
Libros de órdenes e historial de precios detrás de la misma clave:
book = requests.get(f"{base}/market/KXELONMARS-99/orderbook", headers=h).json()["data"]
history = requests.get(f"{base}/market/KXELONMARS-99/history", headers=h,
params={"period_interval": 1440}).json()["data"]
trades = requests.get(f"{base}/trades", headers=h, params={"ticker": "KXELONMARS-99"}).json()["data"]
event = requests.get(f"{base}/event/KXELONMARS-99", headers=h).json()["data"]
series = requests.get(f"{base}/series/KXELONMARS", headers=h).json()["data"]
Los mercados se identifican por ticker (por ejemplo, KXELONMARS-99), los eventos por event_ticker y las series por series_ticker — una serie es un tema recurrente (como una publicación semanal de datos económicos), los eventos son instancias concretas dentro de ella, y los mercados son los contratos individuales yes/no dentro de un evento. Cada respuesta incluye source_url y fetched_at, así que guarda el timestamp junto con cada fila y vuelve a extraer según un calendario.
Qué puedes recopilar
- Mercados — ticker, estado, último precio, bid-ask de yes/no y volumen, en listado o por ticker.
- Libros de órdenes — niveles y tamaños de precio yes/no en vivo para un mercado.
- Historial de precios — velas OHLC por mercado o para varios tickers a la vez, con interés abierto (open interest).
- Operaciones — ejecuciones individuales con precio, lado y cantidad, para un mercado o para toda la bolsa.
- Eventos y series — metadatos del evento, fuentes de liquidación, mercados agrupados y categoría/frecuencia a nivel de serie.
- Estado y horario de la bolsa — si el trading está activo y el horario de la bolsa.
- Datos históricos/liquidados — mercados y operaciones finalizados que quedaron atrás del corte en vivo de Kalshi.
Limitaciones
- Los Data Terms of Service, no la API, son la verdadera barrera. Las lecturas son abiertas, pero redistribuir, archivar para terceros o entrenar ML/IA con datos de Kalshi requiere consentimiento previo por escrito — revisa los términos antes de construir un producto comercial sobre ellos.
- Precios de mercado de predicción, no certezas. Un precio «yes» es la probabilidad implícita del mercado, no una garantía del resultado — trátalo como una señal, no como un pronóstico.
- Mercados regulados y centrados en EE. UU. Kalshi es un DCM regulado por la CFTC, disponible para trading en un subconjunto de estados de EE. UU.; los datos de mercado reflejan ese alcance.
- Los datos históricos tienen un corte. Kalshi separa los datos en vivo/activos de un conjunto
historical/con su propio endpointcutoff— comprueba qué ventana estás consultando. - No es asesoría de inversión. Guarda
fetched_aten cada extracción y trata los valores como insumos de investigación, no como señales de trading.
Dónde se usa esto
- Dashboards de pronóstico y probabilidad — seguir cómo se mueven en el tiempo las probabilidades implícitas de Kalshi para un evento.
- Comparación de sentimiento — poner los precios de Kalshi junto a encuestas, pronósticos de expertos o cobertura informativa del mismo evento.
- Pipelines cuantitativos y de investigación — libros de órdenes e historial de operaciones para investigación de estrategias (sujeto a los términos de Kalshi).
- Agentes de IA y herramientas de investigación — una lectura numérica de probabilidad sobre eventos del mundo real para razonamiento posterior.
Fuentes
Empieza a recopilar
Pruébalo primero, gratis: ejecuta cualquier URL pública en el Free Web Scraper, o comprueba si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba el endpoint de markets en el Playground, revisa el esquema en los API docs y consulta el pricing. Kalshi es una lectura de probabilidad implícita por el mercado; para el lado de los mercados tradicionales, how to scrape Yahoo Finance cubre acciones y how to scrape CoinGecko cubre cripto — útil para comparar frente a movimientos impulsados por eventos. Para una segunda fuente de pronóstico sin las apuestas de dinero real de Kalshi, how to scrape Metaculus sigue las probabilidades de pronosticadores de la comunidad en los mismos tipos de eventos. Consulta el caso de uso más amplio de prediction market data para ver cómo encajan estas fuentes entre sí. Para los aspectos legales básicos de todo esto, consulta is web scraping legal.
Parte de nuestra serie de guías how-to-scrape — todas las plataformas que cubrimos, en un solo índice.
Preguntas frecuentes
¿Kalshi tiene una API oficial?
Sí. Kalshi publica una API REST abierta en external-api.kalshi.com/trade-api/v2. Las lecturas de datos de mercado — mercados, eventos, series, libros de órdenes e historial de operaciones — son públicas y no necesitan clave de API ni cuenta. Solo colocar operaciones requiere una cuenta aprobada y verificada con KYC, con solicitudes firmadas con RSA.
¿Necesito una clave de API para leer los datos de mercado de Kalshi?
No. Los propios endpoints de datos de mercado de Kalshi no requieren clave ni autenticación para lecturas. Una clave de API de Crawlora solo hace falta si usas la API estructurada descrita en esta guía, que normaliza Kalshi junto con otras plataformas detrás de una sola clave.
¿Es legal scrapear Kalshi?
Leer la API pública de Kalshi está permitido por diseño — no hay ningún muro de acceso que sortear. Pero los Data Terms of Service de Kalshi licencian los datos para uso personal y no comercial, y excluyen explícitamente, sin consentimiento previo por escrito, construir productos de software con ellos, redistribuirlos o archivarlos para terceros, o entrenar con ellos un sistema de ML/IA. Revisa esos términos antes de cualquier uso comercial. Esto no es asesoría legal.
¿Qué es un ticker de mercado de Kalshi?
Un ticker como KXELONMARS-99 identifica un único contrato yes/no. Los tickers se agrupan en eventos (event_ticker, por ejemplo una instancia concreta de una pregunta), que a su vez se agrupan en series (series_ticker, un tema recurrente como una publicación semanal de datos económicos).
¿Puedo obtener datos históricos de precios de Kalshi?
Sí. Los endpoints de historial de mercados y eventos devuelven velas al estilo OHLC con interés abierto y volumen para un period_interval elegido. Un conjunto de endpoints historical/ aparte cubre mercados y operaciones finalizados que quedaron atrás del corte de datos en vivo de Kalshi.
¿Kalshi requiere KYC para operar?
Sí para operar, no para los datos de mercado. Leer precios, libros de órdenes e historial de operaciones es público. Colocar una orden requiere una cuenta aprobada de Kalshi con verificación de identidad, y Kalshi solo permite operar en un subconjunto de estados de EE. UU.
¿Qué puedo construir con los datos de precio yes de Kalshi?
El precio yes en un mercado de Kalshi es una probabilidad implícita por el mercado para un evento del mundo real. Se usa a menudo para dashboards de pronóstico, para comparar el sentimiento de la multitud con encuestas o pronósticos de expertos, y como insumo para pipelines de investigación o cuantitativos — tratado como una señal, no como una garantía del resultado.