Skip to main content

Overview

Sports markets on Bayse for soccer games currently come in three interconnected types:
  1. Head-to-Head (H2H) 3-Way — Match winner markets
  2. Goal Spread — Markets on each team winning by a specific number of goals
  3. Total Goals — Markets on the total goals scored in the match
These three event types are tightly linked through the sportGameSlug field, making it easy to discover and fetch related markets.

Sport Market Types

Head-to-Head (H2H) 3-Way

Type: TEAM_H2H_3WAY The primary event for a soccer match. Has three mutually exclusive markets:
  • Home Win — The home team wins the match
  • Away Win — The away team wins the match
  • Draw — The match ends in a draw
Example:
{
  "id": "event-123",
  "title": "Manchester City vs Aston Villa",
  "sportMarketType": "TEAM_H2H_3WAY",
  "sportGameSlug": "bm-game-20260524-mci-avl",
  "type": "combined",
  "markets": [
    {
      "id": "market-1",
      "title": "Manchester City to Win",
      "outcome1Label": "YES",
      "outcome1Price": 0.63,
      "outcome2Label": "NO",
      "outcome2Price": 0.37,
      "propTeam": {
               "id": "team-1",
               "name": "Manchester City FC",
               "slug": "manchester-city-fc",
               "league": "England - Premier League",
               "sport": "SOCCER"
             },
    },
    {
      "id": "market-2",
      "title": "Draw",
      "outcome1Label": "YES",
      "outcome1Price": 0.25,
      "outcome2Label": "NO",
      "outcome2Price": 0.75,
      "propTeam": null
    },
    {
      "id": "market-3",
      "title": "Aston Villa to Win",
      "outcome1Label": "YES",
      "outcome1Price": 0.12,
      "outcome2Label": "NO",
      "outcome2Price": 0.88,
      "propTeam": {
               "id": "team-2",
               "name": "Aston Villa FC",
               "slug": "aston-villa-fc",
               "league": "England - Premier League",
               "sport": "SOCCER"
             },
    }
  ]
}

Goal Spread

Type: GOAL_SPREAD A grouped event where each market represents a team winning by a specific number of goals. Structure:
  • Event: Contains all spread markets for the match
  • Markets: One per unique goal line per team (e.g., 1.5, 2.5, 3.5 goals)
Key fields for prop markets:
  • propLine — The goal line (e.g., 1.5, 2.5)
  • propTeam — The team this spread applies to
    • id — Team UUID
    • name — Team name
    • slug — URL-safe team slug
    • league — League name
    • sport — “SOCCER”
  • propDirection — “OVER” or “UNDER”
Example:
{
  "id": "event-456",
  "title": "Manchester City vs Aston Villa - Goal Spread",
  "sportMarketType": "GOAL_SPREAD",
  "sportGameSlug": "bm-game-20260524-mci-avl",
  "type": "grouped",
  "markets": [
    {
      "id": "market-201",
      "title": "Manchester City wins by over 1.5 Goals",
      "propLine": 1.5,
      "propDirection": "OVER",
      "propTeam": {
        "id": "team-1",
        "name": "Manchester City FC",
        "slug": "manchester-city-fc",
        "league": "England - Premier League",
        "sport": "SOCCER"
      },
      "outcome1Price": 0.58,
      "outcome2Price": 0.42
    },
    {
      "id": "market-202",
      "title": "Manchester City wins by over 2.5 Goals",
      "propLine": 2.5,
      "propDirection": "OVER",
      "propTeam": {
        "id": "team-1",
        "name": "Manchester City FC",
        "slug": "manchester-city-fc",
        "league": "England - Premier League",
        "sport": "SOCCER"
      },
      "outcome1Price": 0.35,
      "outcome2Price": 0.65
    },
    {
      "id": "market-203",
      "title": "Aston Villa wins by over 1.5 Goals",
      "propLine": 1.5,
      "propDirection": "OVER",
      "propTeam": {
        "id": "team-2",
        "name": "Aston Villa FC",
        "slug": "aston-villa-fc",
        "league": "England - Premier League",
        "sport": "SOCCER"
      },
      "outcome1Price": 0.45,
      "outcome2Price": 0.55
    }
  ]
}

Total Goals

Type: TOTAL_GOALS A grouped event for the total goals scored in the match. Structure:
  • Event: Contains all total goals markets for the match
  • Markets: One per unique goal line (e.g., 1.5, 2.5, 3.5, 4.5 goals)
Key fields:
  • propLine — The goal line (e.g., 2.5, 3.5)
  • propTeamnull (applies to the entire match, not a team)
  • propDirection — “OVER” or “UNDER”
Example:
{
  "id": "event-789",
  "title": "Manchester City vs Aston Villa - Total Goals",
  "sportMarketType": "TOTAL_GOALS",
  "sportGameSlug": "bm-game-20260524-mci-avl",
  "type": "grouped",
  "markets": [
    {
      "id": "market-301",
      "title": "Total Goals Over 1.5",
      "propLine": 1.5,
      "propDirection": "OVER",
      "propTeam": null,
      "outcome1Price": 0.72,
      "outcome2Price": 0.28
    },
    {
      "id": "market-302",
      "title": "Total Goals Over 2.5",
      "propLine": 2.5,
      "propDirection": "OVER",
      "propTeam": null,
      "outcome1Price": 0.58,
      "outcome2Price": 0.42
    },
    {
      "id": "market-303",
      "title": "Total Goals Over 3.5",
      "propLine": 3.5,
      "propDirection": "OVER",
      "propTeam": null,
      "outcome1Price": 0.35,
      "outcome2Price": 0.65
    }
  ]
}

Linking Markets Together

All three event types for a single match share the same sportGameSlug.

Discovery Flow

  1. Fetch events
    GET /v1/pm/events
    
  2. Fetch related spread/goals events — Use the sportGameSlug from the parent event whose sportMarketType = TEAM_H2H_3WAY
    GET /v1/pm/events?sportGameSlug=bm-game-20260524-mci-avl
    # Returns all three event types (H2H, GOAL_SPREAD, TOTAL_GOALS)
    

Data Structure Reference

Event-level fields

All sports events include:
FieldTypeExampleNotes
sportGameSlugstring"bm-game-20260524-mci-avl"Use this for querying related events
sportMarketTypeenumTEAM_H2H_3WAY | GOAL_SPREAD | TOTAL_GOALSDetermines the market structure

Market-level fields (prop markets only)

Spread and Total Goals markets include:
FieldTypeExampleNotes
propLinenumber1.5, 2.5, 3.5The threshold (e.g., “Team A to win by 1.5” or “Total 2.5”)
propDirectionstring"OVER" | "UNDER"Over/Under direction; maps to outcome labels
propTeamobjectSee belownull for Total Goals and H2H Draw market; populated for Goal Spread and H2H Home and Away Teams

propTeam object

Present only for Goal Spread and H2H markets:
{
  "id": "uuid-string",
  "name": "Manchester City FC",
  "slug": "manchester-city-fc",
  "league": "England - Premier League",
  "sport": "SOCCER"
}
For Total Goals and the Draw H2H markets, propTeam is null or absent.

Terminology

TermDefinition
H2HHead-to-head; moneyline-style market with three mutually exclusive outcomes
SpreadA goal differential market; Team X wins by more than Y goals
Prop LineThe threshold used in a prop market (e.g., 1.5, 2.5 goals)
Prop DirectionDirectional labels for prop markets; “Over 2.5” means exceeding the threshold
Combined/Mutually Exclusive MarketsOnly one market in the group can resolve as YES; others auto-resolve NO. For more details, see events, markets & outcomes
Grouped MarketsMultiple independent markets under one event. Each market is resolved on its own — multiple markets can resolve YES. For more details, see events, markets & outcomes
Over/UnderDirectional labels for prop markets; “Over 2.5” means exceeding the threshold