Liquidez y Límites
SharpAPI muestra cada señal de liquidez y límite que recibimos de los corredores upstream. Estos campos son opcionales en las filas de /api/v1/odds porque los corredores de apuestas tradicionales y los basados en intercambio exponen datos diferentes.
Campos en filas de cuotas
| Campo | Tipo | Significado | Corredores emisores |
|---|---|---|---|
max_bet | number | El mayor tamaño disponible en la fila. En un corredor tradicional, la apuesta máxima que aceptará en este mercado o selección a la línea actual. En un corredor basado en intercambio, el dinero que está en el libro al mejor precio — ver más abajo. | Pinnacle, Circa Sports, SBOBET y corredores basados en intercambio que publican un tamaño |
size_currency | string | Código ISO-4217 en el que están denominadas las cifras monetarias de la fila: max_bet, best_bid_liquidity y total_liquidity. GBP en Betfair y Smarkets, USD en cualquier otro corredor que publique un tamaño. Nunca se convierte. | Corredores basados en intercambio que publican un tamaño |
best_bid_liquidity | number | Dinero que está al precio publicado — lo que un tomador puede emparejar sin mover el precio. | Corredores basados en intercambio que publican un tamaño |
total_liquidity | number | Tamaño arriesgable sumado en todo el libro para la selección, no solo al mejor precio. | Corredores basados en intercambio que publican un tamaño |
volume | number | Volumen negociado acumulado en la selección, en las unidades nativas del intercambio. | Kalshi |
volume_24h | number | Volumen negociado de 24 horas en las unidades nativas del intercambio. | Polymarket, Kalshi |
open_interest | number | Contratos abiertos pendientes en la selección. | Kalshi |
exchange_token_id | string | Token nativo del intercambio o hash de mercado para enrutamiento de órdenes downstream. | Polymarket (token_id), SX Bet (marketHash) |
exchange | string | El intercambio donde realmente vive un mercado re-expuesto, resuelto por contrato. | Robinhood (kalshi, rothera) |
Estos valores se devuelven solo cuando están presentes en el feed de origen. La ausencia significa que el corredor upstream no expuso esa señal para la fila; no implica liquidez cero ni límite cero. Específicamente para max_bet, la lista de corredores anterior es una instantánea puntual: /api/v1/sportsbooks publica la respuesta actual por corredor como has_limits, derivada de las filas actuales de cada corredor (null hasta que se hayan observado filas).
Los campos del lado del intercambio (volume, volume_24h, open_interest y exchange_token_id) son proxies de liquidez, no un feed completo de profundidad de libro. Sus unidades no son directamente comparables entre corredores.
Cifras monetarias en filas de intercambio
Un intercambio cotiza un precio al que solo puede emparejarse una cantidad finita de dinero, así que los campos de tamaño significan allí algo distinto de lo que significan en un corredor tradicional.
max_betes el tamaño que está al mejor precio, no un techo publicado. Elmax_betde un corredor tradicional es lo máximo que aceptará en el mercado — una regla que él mismo fijó. El de un intercambio es cuánto dinero hay realmente al precio cotizado en este momento. El nombre del campo es el mismo; el hecho no. La presencia desize_currencyes lo que distingue ambos casos.size_currencyetiqueta la moneda. No se convierte nada. El número es la cifra propia del operador en su propia moneda, entregada sin cambios. Ordenar o filtrar intercambios por tamaño sin leersize_currencycompara libras con dólares.- Una sola regla para los tres campos monetarios: la ausencia significa «el operador no publica esta cifra», y un número — incluido
0.0— es una medición real. Nunca lea un campo ausente como cero ni un0.0como dato faltante. - En un intercambio,
max_betaparece solo mientras hay dinero al mejor precio. El campo sigue a ese tamaño en el libro, así que un mejor precio vacío llega comobest_bid_liquidity: 0.0sinmax_betal lado. Lea ese par como un único hecho dicho una vez — no hay nada al precio cotizado — y no como un tamaño desconocido y cero a la vez. En estos corredores no se envíamax_bet: 0.0, porque sería la afirmación mucho más fuerte «este mercado no acepta apuestas». - No todos los intercambios publican ambas cifras de profundidad. Algunos dan solo el tamaño al mejor precio, otros solo el total del libro. Ninguna puede derivarse de la otra, así que lea cada campo por separado.
Lo que no mostramos
- Profundidad del libro de órdenes precio por precio. Los corredores basados en intercambio que publican profundidad nos dan el tamaño al mejor precio (
best_bid_liquidity) y un total de todo el libro (total_liquidity), ambos listados arriba. La escalera completa — cada nivel de precio con el tamaño que hay en cada uno — no está disponible hoy en ningún endpoint. Los corredores de apuestas tradicionales no operan en absoluto un libro de órdenes visible. - Verificaciones de límite pre-apuesta. Ningún corredor upstream expone una verificación pública. En un corredor tradicional,
max_betes su techo publicado para el mercado; en un corredor basado en intercambio es el tamaño que está al mejor precio. En ambos casos, la decisión de aceptar o rechazar se toma al enviar el boleto. - Razones de suspensión en tiempo real. Cuando un corredor retira una línea,
/api/v1/odds/deltapuede emitir una eliminación, pero los feeds upstream generalmente no incluyen una razón estructurada.
Detectar brechas de cobertura
Si una verificación de cobertura del lado del cliente depende de la liquidez:
- Filtre
/api/v1/oddspor los corredores que le interesan. - Para corredores basados en intercambio, filtre filas donde
volume_24huopen_interestsupere su umbral mínimo. - Para corredores tradicionales, use
max_betcuando se emita como señal de límite aproximada. - Para todo lo demás, recurra a la presencia de fila: una fila de cuotas es una señal positiva de que el corredor está cotizando actualmente ese mercado.