This guide explains market_id and label_id mappings used in the SSTrader API.
Every bet selection is identified by a market_id (what type of market) and a label_id (which outcome within that market).
Label IDs are NOT sequential outcome indices. Each market has its own fixed label_id mapping.
Common mistakes to avoid:
- In Under/Over markets:
label_id 1 = Under, label_id 2 = Over (not the reverse)
- In 3-Way markets:
label_id 0 = Draw (not label_id 3), label_id 1 = Home, label_id 2 = Away
- In Correct Score markets: label_id encodes the score itself (see below)
Standard home/draw/away market for full-time result.
| label_id | Outcome |
|---|
| 1 | Home Win |
| 2 | Away Win |
| 0 | Draw ⚠️ (not 3) |
| label_id | Outcome |
|---|
| 1 | Home |
| 2 | Away |
| label_id | Outcome |
|---|
| 1 | Under ⚠️ (not 2) |
| 2 | Over |
| label_id | Outcome |
|---|
| 1 | Under |
| 2 | Over |
| label_id | Outcome |
|---|
| 1 | Home |
| 2 | Away |
| label_id | Outcome |
|---|
| 1 | Under |
| 2 | Over |
Label IDs encode the scoreline directly using the pattern: 1 + home goals digit + away goals digit.
| label_id | Score |
|---|
| 100 | 0:0 |
| 101 | 0:1 |
| 110 | 1:0 |
| 111 | 1:1 |
| 120 | 2:0 |
| 121 | 2:1 |
| 122 | 2:2 |
| 130 | 3:0 |
| 142 | 4:2 |
| ... | (pattern continues) |
Parsing rule: Remove the leading 1. The remaining digits are home_goals + away_goals.
Example: label_id 142 → remove 1 → 42 → Home 4, Away 2 → score 4:2
Same label mapping as Market 1, but for the first half only.
| label_id | Outcome |
|---|
| 1 | Home Win |
| 2 | Away Win |
| 0 | Draw |
| label_id | Outcome |
|---|
| 1 | Home |
| 2 | Away |
| label_id | Outcome |
|---|
| 1 | Under |
| 2 | Over |
| label_id | Outcome |
|---|
| 1 | Under |
| 2 | Over |
| label_id | Outcome |
|---|
| 1 | Under |
| 2 | Over |
Same encoding as Market 7, but for first-half scores only.
| label_id | Score |
|---|
| 100 | 0:0 |
| 111 | 1:1 |
| 110 | 1:0 |
| ... | (same pattern: remove leading 1) |
Which team scores the Nth goal. The specific goal number (1st, 2nd, etc.) is in the line property of the Odd object.
| label_id | Outcome |
|---|
| 1 | Home scores next |
| 2 | Away scores next |
| 0 | No more goals (neither team) |
| label_id | Outcome |
|---|
| 1 | Home |
| 2 | Away |
Label IDs encode the HT result and FT result combined: HT_result + FT_result, where 1 = Home, 2 = Away, 0 = Draw (represented as 0/X).
| label_id | HT Result | FT Result |
|---|
| 111 | Home | Home |
| 100 | Draw | Draw |
| 122 | Away | Away |
| 112 | Home | Away |
| 121 | Away | Home |
| 110 | Home | Draw |
| ... | (all 9 combinations) | |
Compound label_id: first digit = team (1 = Home, 2 = Away), second digit = outcome (1 = Under, 2 = Over).
| label_id | Team | Outcome |
|---|
| 11 | Home | Under |
| 12 | Home | Over |
| 21 | Away | Under |
| 22 | Away | Over |
Same compound structure as Market 56.
| label_id | Team | Outcome |
|---|
| 11 | Home | Under |
| 12 | Home | Over |
| 21 | Away | Under |
| 22 | Away | Over |
| label_id | Outcome |
|---|
| 10 | Home or Draw |
| 2 | Draw or Away |
| 12 | Home or Away |
Compound label_id: first digit = team (1 = Home, 2 = Away), second digit = outcome (1 = Yes, 2 = No).
| label_id | Team | Clean Sheet? |
|---|
| 11 | Home | Yes |
| 12 | Home | No |
| 21 | Away | Yes |
| 22 | Away | No |
| label_id | Outcome |
|---|
| 1 | Under |
| 2 | Over |
| market_id | Market Name | label_id → Outcome |
|---|
| 1 | 3Way Result (1x2) | 0=Draw, 1=Home, 2=Away |
| 2 | Asian Handicap | 1=Home, 2=Away |
| 3 | Goal Line (Asian) | 1=Under, 2=Over |
| 4 | Match Goals (European) | 1=Under, 2=Over |
| 5 | Corners — Asian Handicap | 1=Home, 2=Away |
| 6 | Asian Total Corners | 1=Under, 2=Over |
| 7 | Correct Score | Encoded score (remove leading 1: remaining = HomeGoals+AwayGoals) |
| 11 | 1st Half 3Way Result | 0=Draw, 1=Home, 2=Away |
| 12 | 1st Half Asian Handicap | 1=Home, 2=Away |
| 13 | 1st Half Goal Line (Asian) | 1=Under, 2=Over |
| 14 | 1st Half Match Goals (European) | 1=Under, 2=Over |
| 16 | 1st Half Asian Total Corners | 1=Under, 2=Over |
| 17 | 1st Half Correct Score | Encoded score (same as Market 7) |
| 22 | Next Goal | 0=No Goal, 1=Home, 2=Away |
| 50 | Draw No Bet | 1=Home, 2=Away |
| 51 | HT/FT | Compound: digits = HT result + FT result |
| 52 | Odd/Even | 1=Odd, 2=Even |
| 53 | BTTS | 1=Yes, 2=No |
| 54 | 1st Half BTTS | 1=Yes, 2=No |
| 55 | 2nd Half BTTS | 1=Yes, 2=No |
| 56 | Team Corners | Compound: 1st digit=team (1=Home,2=Away), 2nd=outcome (1=Under,2=Over) |
| 57 | Team Total Goals | Compound: 1st digit=team (1=Home,2=Away), 2nd=outcome (1=Under,2=Over) |
| 58 | Double Chance | 10=Home/Draw, 2=Draw/Away, 12=Home/Away |
| 59 | Clean Sheet | Compound: 1st digit=team (1=Home,2=Away), 2nd=outcome (1=Yes,2=No) |
| 203 | Asian Total Cards | 1=Under, 2=Over |
- Under = label_id 1, Over = label_id 2 — in all total/line markets (3, 4, 6, 13, 16, 203).
- Draw = label_id 0 — in all 3-way markets (1, 11). It is NOT label_id 3.
- Correct Score encoding — label_id always starts with
1. Strip it, then read remaining digits as home+away goals (e.g., 142 → 4:2).
- Compound label_ids — in markets 56, 57, 59: first digit is team (1=Home, 2=Away), second digit is outcome.
- Next Goal line property — for market 22, the goal number (1st, 2nd, etc.) is in the
line field of the Odd object, not the label_id.