-
Notifications
You must be signed in to change notification settings - Fork 1
Get Period Name (API v3)
-
Send REST request to the following endpoint:
https://api-mst.oddsmarket.org/v1/periodName?identifier={periodIdentifier}&sportId={sportId}
. -
periodIdentifier value should be taken from the Odd object in the WebSocket feed. SportId value should be taken from bookmakerEvent.
-
You will get the periodName value in the response as plain response body text.
Input: periodIdentifier | Input: sportId | Result: periodName |
---|---|---|
0 | 7 (Soccer) | match |
0 | 6 (Hockey) | regular time |
2 | 7 (Soccer) | 2 time |
2 | 6 (Hockey) | 2 period |
Up-to-date table of periods is maintained in the document below:
https://docs.google.com/spreadsheets/d/1m_o1cPBYmoifL9hVRDzGeFsR07AC7yncuokSK-DGQxc/edit?usp=sharing
The method for converting identifier + sportId in periodName presented below (JAVA):
/**
* Convert period identifier and sportId into human-readable period name in english
*
* @param period period code
* @param sportId sport ID
* @param renderOmissiblePeriodNames always include "match" period name even if it can be omitted.
* This parameter value is always true when used on oddsmarket.
* @return human-readable period name
*/
public static String periodName(int period, long sportId, boolean renderOmissiblePeriodNames) {
if (period == -100)
return "to qualify";
// Periods for Yellow Cards in Soccer, groups by 3 (0 - match, 1-2 - halves) with offset -3, meaning different
// groups of rules for payout calculation at different bookies
if (period >= -19 && period <= -5)
period = (1000 + period) % 3;
// -2: Overtime + ShotOuts
if (period == -2) {
if (sportId == Sport.Hockey.id || sportId == Sport.BeachSoccer.id || sportId == Sport.EHockey.id) {
return "with overtime and shootouts";
} else {
return "match";
}
// -3: Entire match in tennis for supersets (period is introduced for a group of bookies which are using
// different rules for super tiebreak in pairs tennis matches)
} else if (period == -3) {
return "match (superset)";
// -1: with Overtime (for sports like Basketball / American football, where overtime is possible)
} else if (period == -1) {
if (sportId == Sport.Tennis.id || sportId == Sport.TableTennis.id || sportId == Sport.ETennis.id) {
if (renderOmissiblePeriodNames) {
return "match";
} else {
return "no_desc";
}
} else {
return "with overtime";
}
} else if (period == 0) {
if (sportId == Sport.Baseball.id ||
sportId == Sport.Soccer.id ||
sportId == Sport.Tennis.id ||
sportId == Sport.Volleyball.id ||
sportId == Sport.Snooker.id ||
sportId == Sport.Darts.id ||
sportId == Sport.TableTennis.id ||
sportId == Sport.Badminton.id ||
sportId == Sport.ESports.id ||
sportId == Sport.BeachVolleyball.id) {
if (renderOmissiblePeriodNames) {
return "match";
} else {
return "no_desc";
}
} else {
return "regular time";
}
} else {
if (sportId == Sport.Snooker.id) {
return period + " frame";
} else if (sportId == Sport.Curling.id) {
return period + " end";
} else if (sportId == Sport.ESports.id) {
if (period > 100) {
int map = period / 100;
int round = period - map * 100;
return map + " map " + round + " round";
} else {
return period + " map";
}
} else if (sportId == Sport.Tennis.id ||
sportId == Sport.Volleyball.id ||
sportId == Sport.TableTennis.id ||
sportId == Sport.Badminton.id ||
sportId == Sport.BeachVolleyball.id ||
sportId == Sport.Darts.id ||
sportId == Sport.Squash.id ||
sportId == Sport.KungVolleyball.id ||
sportId == Sport.ETennis.id) {
if (period > 100) {
int set = period / 100;
int game = period - set * 100;
return set + " set " + game + " game";
} else {
return period + " set";
}
} else if (sportId == Sport.Hockey.id ||
sportId == Sport.BeachSoccer.id ||
sportId == Sport.Floorball.id ||
sportId == Sport.EHockey.id) {
return period + " period";
} else if (sportId == Sport.Soccer.id || sportId == Sport.ESoccer.id) {
return period + " time";
} else if (sportId == Sport.Baseball.id ||
sportId == Sport.Basketball.id ||
sportId == Sport.AmericanFootball.id ||
sportId == Sport.WaterPolo.id ||
sportId == Sport.FieldHockey.id ||
sportId == Sport.AFL.id ||
sportId == Sport.Netball.id ||
sportId == Sport.EBasketball.id) {
if (period == 10 || period == 20) {
return (period / 10) + " half";
} else {
return sportId == Sport.Baseball.id ? period + " inning" : period + " quarter";
}
} else if (sportId == Sport.Chess.id) {
return period + " game";
} else {
return period + " half";
}
}
}
You can download latest version of the above method or include it into your codebase as dependency. See compiled periods JAR file with sources.
This section describes API v3.
If you are using API v4 go to API v4 documentation root page.