Nuestras estadísticas de visitas propias están siempre activas. Google Analytics, que nos ayuda a entender cómo se usan nuestras páginas públicas (no tu espacio de trabajo con sesión iniciada), solo se activa con tu permiso. Consulta nuestra Política de privacidad.

API de Mercados de Kalshi

POST

Salud de la API

Salud 24 h
Normal
Tiempo medio 24 h
—
  • Saludable / normal
  • Disponible
  • Limitada
  • Casi sin servicio
Normal

Envía una keyword opcional (3 o más caracteres), status (open por defecto, o closed), sort y event_ticker, y recibe hasta 100 mercados con ticker, title, last_price, compra y venta de Sí y No, volume, dollar_volume, open_interest, rules, result y horarios. Buscar en mercados cerrados puede ser lento.

Precio $6.81 por 1.000 solicitudes ($0.006806 por llamada). Las llamadas fallidas y los resultados vacíos no se cobran. Síncrona. Para tareas lentas añade "mode": "async" al cuerpo, recibe un job_id y consúltalo.

Prompt para IA

Ayúdame a escribir un script de recopilación de datos con el endpoint de EveryInfra Kalshi: Mercados (kalshi/markets).

Cómo funciona el endpoint:
- Solicitud: POST https://api.everyinfra.com/api/v1/social con la cabecera Authorization: Bearer <clave API>. Lee la clave de la variable de entorno EVERYINFRA_API_KEY y no la escribas en el código.
- En el cuerpo de la solicitud, pon platform en kalshi y action en markets, y los parámetros dentro de params.
- No hay parámetros obligatorios.
- Parámetros opcionales:
  - event_ticker: Solo los mercados de un evento de Kalshi, como KXBTC2026200-27JAN01, tomado del event_ticker de una fila.
  - keyword: Palabras del título del mercado, al menos 3 caracteres, como bitcoin o fed; sin ella lista mercados según el orden elegido.
  - sort: volume (por defecto, contratos negociados), open_interest, price_desc, price_asc o close_time. (valores admitidos: close_time / open_interest / price_asc / price_desc / volume)
  - status: open (por defecto, en negociación) o closed (terminado o liquidado). (valores admitidos: closed / open)
  - limit: Número máximo de filas que devuelve esta llamada, un entero de 1 a 100. Si no lo envías, se usa el valor predeterminado, y una llamada puede devolver menos filas. (por defecto: 20)
- Devuelve una lista de registros. Campos principales de cada registro: ticker (Ticker del mercado, tal como lo escribe…), event_ticker (Ticker del evento padre), series_ticker (Ticker de la serie padre), title, event_title (Título del evento padre), yes_subtitle (Descripción del lado Sí, como Above $20…), no_subtitle (Descripción del lado No), status (Estado del mercado según Kalshi, como o…), result (Resultado de la liquidación, yes o no), last_price (Último precio en dólares (0 a 1), yes_bid (Oferta de compra actual del Sí, en dóla…), yes_ask (Oferta de venta actual del Sí, en dólar…); 27 campos en total, lista completa en https://api.everyinfra.com/api/v1/social/catalog?platform=kalshi.
- Cuerpo de solicitud de ejemplo:
{
  "platform": "kalshi",
  "action": "markets",
  "params": {}
}
- Precio: $6.81 por 1.000 solicitudes; los resultados fallidos y vacíos no se cobran.
- Para decenas o cientos de objetivos, añade "mode": "async" al cuerpo: recibes un job_id al instante y consultas GET https://api.everyinfra.com/api/v1/jobs/{job_id} para obtener el resultado.
- Ante un 422, corrige la solicitud con los nombres de parámetros y los valores admitidos que sugiere el error; ante un 429 o un 503, espera lo que indique Retry-After y vuelve a intentarlo.

Antes de escribir código, pregúntame qué objetivos necesito, cuántos, qué campos y en qué formato quiero el resultado; luego confirma conmigo el plan y el coste aproximado.

Parámetros de la solicitud

NombreUbicaciónTipoObligatorioPor defectoDescripción
AuthorizationheaderstringSí-Bearer seguido de tu clave de API. Créala en la consola; nunca la pongas en una URL ni en un repositorio de código.
platformbodystringSíkalshiIdentificador de la plataforma, valor fijo.
actionbodystringSímarketsIdentificador de la capacidad, valor fijo.
event_tickerbody.paramsstringNo-Solo los mercados de un evento de Kalshi, como KXBTC2026200-27JAN01, tomado del event_ticker de una fila.
keywordbody.paramsstringNo-Palabras del título del mercado, al menos 3 caracteres, como bitcoin o fed; sin ella lista mercados según el orden elegido.
sortbody.paramsstring (enum)No-volume (por defecto, contratos negociados), open_interest, price_desc, price_asc o close_time.Valores permitidosclose_timeopen_interestprice_ascprice_descvolume
statusbody.paramsstring (enum)No-open (por defecto, en negociación) o closed (terminado o liquidado).Valores permitidosclosedopen
limitbody.paramsinteger (1–100)No20Número máximo de filas que devuelve esta llamada, un entero de 1 a 100. Si no lo envías, se usa el valor predeterminado, y una llamada puede devolver menos filas. Los valores mayores devuelven 422 antes de cualquier cobro.

Ejemplos de código

bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "kalshi",
  "action": "markets",
  "params": {}
}'

Definición OpenAPI (JSON)Los ejemplos leen la clave de la variable de entorno EVERYINFRA_API_KEY; el código copiado nunca contiene tu clave.

Ejemplo de respuesta

Vista previa de campos

Todavía no hay una muestra real para estos parámetros de ejemplo: se muestra la estructura de la respuesta y sus campos según la definición de la API, con … como marcadores. No es el resultado de una llamada real.

json
{
  "id": "req_…",
  "platform": "kalshi",
  "action": "markets",
  "results": [
    {
      "ticker": …,
      "event_ticker": …,
      "series_ticker": …,
      "title": …,
      "event_title": …,
      "yes_subtitle": …,
      "no_subtitle": …,
      "status": …,
      "result": …,
      "last_price": …,
      "yes_bid": …,
      "yes_ask": …,
      "no_bid": …,
      "no_ask": …,
      "volume": …,
      "open_interest": …,
      "dollar_volume": …,
      "dollar_open_interest": …,
      "strike_type": …,
      "floor_strike": …,
      "cap_strike": …,
      "rules": …,
      "settlement_sources": …,
      "open_at": …,
      "close_at": …,
      "settled_at": …,
      "can_close_early": …,
      "platform": …
    }
  ],
  "count": …,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Campos de la respuesta

Los datos están en results. La tabla lista los campos que puede tener cada registro; los valores que la plataforma no muestra nunca se inventan.

CampoSignificado
tickerTicker del mercado, tal como lo escribe Kalshi.
event_tickerTicker del evento padre; pásalo como event_ticker para listar los demás mercados del evento.
series_tickerTicker de la serie padre.
titleTítulo. null cuando la plataforma no usa títulos (por ejemplo publicaciones solo de texto).
event_titleTítulo del evento padre.
yes_subtitleDescripción del lado Sí, como Above $200000.
no_subtitleDescripción del lado No.
statusEstado del mercado según Kalshi, como open, closed o settled.
resultResultado de la liquidación, yes o no; no aparece antes de liquidar.
last_priceÚltimo precio en dólares (0 a 1; un contrato paga 1 $ del lado ganador, por eso se lee como probabilidad).
yes_bidOferta de compra actual del Sí, en dólares.
yes_askOferta de venta actual del Sí, en dólares.
no_bidOferta de compra actual del No, en dólares.
no_askOferta de venta actual del No, en dólares.
volumeContratos negociados en total.
open_interestContratos abiertos.
dollar_volumeValor negociado total en dólares.
dollar_open_interestInterés abierto en dólares.
strike_typeTipo de strike según Kalshi, como greater, less o between; no aparece si el mercado no tiene strike numérico.
floor_strikeStrike inferior; no aparece si no hay.
cap_strikeStrike superior; no aparece si no hay.
rulesRegla principal de liquidación, tal como está escrita.
settlement_sourcesNombres de las fuentes usadas para liquidar.
open_atHora de apertura, ISO 8601 UTC.
close_atHora de cierre, ISO 8601 UTC.
settled_atHora de liquidación, ISO 8601 UTC; no aparece antes de liquidar.
can_close_earlySi el mercado puede cerrar antes al cumplirse su condición.
platformIdentificador de la plataforma, igual que platform en la solicitud (por ejemplo xiaohongshu, tiktok).

Errores y facturación

401
Falta la clave o no es válida.
402
Saldo insuficiente. Recarga primero.
422
Nombre o valor de parámetro incorrecto. Corrígelo según las opciones indicadas en el error. Sin cargo.
429
Se alcanzó el límite de solicitudes por minuto. Espera el tiempo indicado en Retry-After y vuelve a intentarlo.
503
No se pudo completar. El cargo retenido vuelve a tu saldo. Si el resultado es incierto, compruébalo antes de reenviar.
200 vacío
Sin datos. Sin cargo.

Errores

Referencias oficiales

Solo sirven para contrastar objetos y términos. No implican autorización ni respaldo de la plataforma a EveryInfra.