Skip to Content
Conceptos básicosEmparejamiento de Eventos

Coincidencia de Eventos

El Problema

Cada casa de apuestas utiliza sus propios IDs de eventos internos. El mismo partido Lakers vs Celtics podría ser el evento 33483200 en DraftKings, nba-bos-lal-20260208 en FanDuel y 556677889 en Pinnacle. Sin un identificador unificado, crear herramientas de comparación entre casas de apuestas requiere implementar tu propia lógica de coincidencia de eventos.

Cómo lo Resuelve SharpAPI

SharpAPI genera un ID de evento canónico para cada evento. Este ID es determinista: el mismo evento del mundo real siempre obtiene el mismo id, independientemente de la casa de apuestas de la que provenga.

Format: {league}_{teamA}_{teamB}_{YYYY-MM-DD}

Ejemplo: Un partido Celtics vs Lakers el 8 de febrero de 2026 produce el mismo ID en todas las casas de apuestas:

Casa de apuestasID de evento nativoid de SharpAPI
DraftKings33483200nba_celtics_lakers_20260208
FanDuelnba-bos-lal-20260208nba_celtics_lakers_20260208
Pinnacle556677889nba_celtics_lakers_20260208
BetMGMms_44556nba_celtics_lakers_20260208

Dos Tipos de IDs de Eventos

Cada evento en la API tiene dos campos de ID:

CampoÁmbitoPropósito
idEntre casas (canónico)Úsalo como clave principal para hacer coincidir eventos entre casas de apuestas
external_idsPor casa de apuestasMapa del ID nativo del evento de cada casa, útil para enlaces directos
{ "id": "nba_celtics_lakers_20260208", "external_ids": { "draftkings": "33483200", "fanduel": "nba-bos-lal-20260208", "pinnacle": "556677889", "betmgm": "ms_44556" } }

Cómo se Generan los IDs Canónicos

El ID canónico se construye a partir de cuatro componentes:

  1. Código de liga — deporte asignado a una liga (p. ej., basketballnba)
  2. Nombres de los equipos — normalizados y ordenados alfabéticamente
  3. Fecha — fecha de inicio del evento en formato YYYY-MM-DD

Normalización de Nombres de Equipos

Los nombres de los equipos se normalizan para gestionar las variaciones entre casas de apuestas:

  • "Los Angeles Lakers"lakers
  • "LA Lakers"lakers
  • "LAL"lakers

La normalización elimina prefijos (“The”, “Los”, “Las”), sufijos (“FC”, “United”, “City”), signos de puntuación y acentos. A continuación, los equipos se ordenan alfabéticamente para que el ID sea idéntico independientemente del orden local/visitante.

Uso de los IDs Canónicos en tu Aplicación

Como Clave Principal

Utiliza el campo id como clave principal de tu base de datos al almacenar eventos:

// Fetch events from the API const { data: events } = await fetch( 'https://api.sharpapi.io/api/v1/events?league=nba', { headers: { 'X-API-Key': API_KEY } } ).then(r => r.json()); // Store using canonical ID as primary key for (const event of events) { await db.events.upsert({ id: event.id, // "nba_celtics_lakers_20260208" home_team: event.home_team, away_team: event.away_team, start_time: event.start_time, external_ids: event.external_ids }); }

Comparación de Cuotas Entre Casas de Apuestas

El ID canónico te permite comparar las cuotas del mismo evento en todas las casas de apuestas:

// Get odds filtered to a specific event const { data } = await fetch( 'https://api.sharpapi.io/api/v1/events/nba_celtics_lakers_20260208/odds', { headers: { 'X-API-Key': API_KEY } } ).then(r => r.json()); // All odds in the response are for the same canonical event // Group by sportsbook to compare const byBook = {}; for (const odds of data.odds) { byBook[odds.sportsbook] = byBook[odds.sportsbook] || []; byBook[odds.sportsbook].push(odds); }

Enlaces Directos a Casas de Apuestas

Utiliza external_ids para redirigir a los usuarios a la página del evento de una casa de apuestas concreta:

const event = await getEvent('nba_celtics_lakers_20260208'); // Build a sportsbook-specific link const dkEventId = event.external_ids['draftkings']; // → "33483200"

Cómo Esto Impulsa la Detección de EV y Arbitraje

Los motores de detección de oportunidades de SharpAPI dependen internamente de los IDs de eventos canónicos:

  • El cálculo de EV localiza las cuotas de referencia sharp (Pinnacle) para el mismo eventId y las compara con las cuotas de las casas blandas
  • La detección de arbitraje agrupa todas las cuotas por eventId + tipo de mercado para encontrar discrepancias de precios entre casas de apuestas
  • La detección de middles encuentra líneas que se solapan entre casas para el mismo eventId

Este es el mismo sistema de coincidencia que se te expone a través de la API: cuando ves una oportunidad de arbitraje con segmentos de distintas casas de apuestas, el ID de evento canónico es lo que vinculó esas cuotas.

Propiedades Clave

PropiedadDetalle
DeterministaLas mismas entradas siempre producen el mismo ID, sin UUIDs aleatorios
EstableEl ID no cambia una vez generado
Legible para humanosnba_celtics_lakers_20260208 es significativo a primera vista
OrdenableLos IDs se ordenan de forma natural por liga, equipo y fecha
Last updated on