Programs ApiBD demo of using BetDAQ s services API 15th Feb 2015 Version 1.2.?? Demo of using API services of betting exchange BetDAQ - supplementation of original services and parameters API with additional : combined operations for getting of data sets for leagues+events or leagues+events+prices parameters for filtering of data volume during processing of operations (filters for names of competition, event, market) Special DLL library for sportsbetting - DLL library for integration into programs of Visual Studio (C#, Basic,...) DLL_AnalTextStaSpo analysis of texts names of states, competitions, teams (common using for matching events in offer of different bookmakers) Demoversions in Visual C#, Visual Basic (including source codes) - description based on examples - source code for : - VISUAL C# + VISUAL BASIC : Windows Forms Applications with examples - forms for concrete operation(service) API or additional combined operation (display results for several examples of entry parameters or users experiments) - form frmotherbookie (using of combination Analysis of Texts + BetDAQ s API for matching offer of other bookie versus BetDAQ with result: download in CSV structure - BetDAQ s Odds for asked matches and types of bets) Similar conception program set _ApiBF (for API NG services of BetFair) program set _ApiPS (for API of Pinnacle Sports) program set for API of Matchbook : - see http://www.betoptim.com/index.aspx?lang=en&start=downinst In Building : 1) Program Bet_LIVE_Comparation comparation of current odds (prices, amounts) for concrete event from different sources API (preferred are LIVE/Inplay matches, prospective plan -> Trading) 2) Program Bet_Info.EXE Betfairs Api-NG in cooperation with database PostgreSQL for storage of current data 1
CONTENT : Programs ApiBD demo of using BetDAQ s services API... 1 1. Download, Update, Upgrade, Contact... 3 2. INSTALLATION... 3 3. Login - for BetDAQs API... 4 4. Windows Forms Applications ( in Visual C# / Visual Basic )... 5 5. Filtering of data ( wildcards, analysis of text )... 6 5.1. Additional Filtering of Competitions, Events, Markets wildcards "*"... 6 5.2. Additional Filtering of Competitions(Leagues) _AT Analysis of texts... 7 5.3. Library DLL_AnalTextStaSpo.dll - support for Analysis of texts... 8 5.4. Update of files for Analysis of texts, of DLL_AnalTextStaSpo.dll... 10 Appendix A - Operation Competition_Events - structure of output CSV... 11 Appendix B - Operation Events_Markets_Prices - structure of output CSV... 12 2
1. Download, Update, Upgrade, Contact www.betoptim.com/en - WEBSITE http://www.betoptim.com/index.aspx?lang=en&start=downinst - INSTALLATION service@betoptim.com - EMAIL 2. INSTALLATION 1) Download and store installation file ApiBD_Install.ZIP into any installation directory 2) Unpack Zip-file -> (Setup.EXE + ApiBD_Install.MSI) 3) Launch installation with Setup.EXE into installation directory f.e. D:\_Api_Install (can work together with program _ApiBF.EXE for API of Betfair, with program _ApiPS.EXE for API of Pinnacle Sports,...) or D:\Bet_Info (can work together with program Bet_Info.EXE) Subdirectories : a) _AT data files for Analysis of texts - names of states, competitions, teams (can be updated with download from webpage www.betoptim.com see frm_update_at) registry key for Analysis of text AT?????X.TXT d) DOC._ApiBD documentation (this file *.PDF with description of programs) e) DATA default directory for storage of downloaded data files Subdirectories for DEMOversions : a) VisualBasic_BeDa_DEMO b) VisualCsharp_BeDa_DEMO These examples of usage are identical in programming languages C#/VB : single services BetDAQs API for obtaining of current offer BetDAQ retrieving of combined services (forms Competition_Events and Events_Markets_Prices) sequence of original services with using of text filters (simple "wildcards" for name of competition, of event, of markets) or with using AT (Analysis of texts detection of league/team name in steps state, league, team) 3
3. Login - for BetDAQs API Conditions for successful Login : 1) Own players account at BetDaq.com 2) Added API permissions to players account ( to ask for it - mail to api@betdaq.com / affiliates@betdaq.com ) Source code for Login to BetDAQs API see form frmloginbeda.??? in Windows Forms Applications ( C#: _VisualCsharp_BeDa_DEMO, VB: _VisualBasic_BeDa_DEMO ). For detection Username & Login OK? is used API-service GetAccountBalance. 4
4. Windows Forms Applications ( in Visual C# / Visual Basic ) - see source code in subdirectories of installation(program) directory : For VisualBasic : D:/_Api_Install/VisualBasic_BeDa_DEMO For Visual C# : D:/_Api_Install/VisualCsharp_BeDa_DEMO This applications contain horizontal menu with columns : a) BetDAQ Login / BetDAQ Logout using of form frmloginbeda for entry of Username and Password (Username for preparation of agentreadonly, Username and Password for preparation of agentsecureservice) b) Operations ReadOnly (ListTopLevelEvents, GetEventSubTreeNoSelections, GetMarketInformation, GetPrices + additional combined operations Competitions_Events, Events_Markets_Prices) c) Operations Secure (GetAccountBalances) d) Analysis of Texts - frmstates (identification of state) - frmleagues (identification of league/competition) - frmteams (identification of team) - frmotherbookie (Complete DEMO Download of Matchbooks Odds with using "Analysis of Texts" - for matching MATCHBOOK versus offer of other bookie) e) Help - Update Files Analysis of Texts Principle of forms b), c) is : - 1 item of menu = 1 windows form = 1 operation API of BetDAQ - component NumericUpDownEXAMPLE allows cycling between examples Up/Down - every example is 1 combination of entry parameters (filled into fields) - clicking button "Download" starts operation - processing of entry parameters can be checked in routine butdownload_click - results of operation are displayed in component TextBox txtresult and saved in textfile with specification see TextBox txtspecoutput. User can test another "own" combinations of parameters and check results after clicking button "Download". 5
5. Filtering of data ( wildcards, analysis of text ) 5.1. Additional Filtering of Competitions, Events, Markets wildcards "*" Volume of returned data (in additional combined operations - Competitions_Events, Events_Markets_Prices) can be decreased to asked competitions / events / markets with filtering (based on names): Filtering string for NAME (of competition / event / market ): entry text fields in forms of demoversion (Windows Form Application VB / C#) how to place filtering strings into classes clcompetition_events, clevents_markets_prices characters(lefts) + "*" (right) => NAME HAS TO START with this characters(lefts) "*" (left) + characters(right) => NAME HAS TO END with characters(right) "*" (left) + "characters" + "*" (right) => NAME HAS CONTAIN STRING "characters" (anywhere) No characters "*" in filtering string => NAME HAS BE EQUAL to filtering string Filtering is NOT "case sensitive" Examples : 1) For NAME OF COMPETITION filtering string "Premier*" MATCHING League with name "PREMIER league" Yes League with name "Barclays Premier league" No 2) For NAME OF EVENT filtering string "* v *" MATCHING Event name "Chelsea v Liverpool" Yes Event name (NHL) "Montreal @ Boston" No Event name "Relegation" No 3) For NAME OF MARKET filtering string "TOTAL* MONEY LINE" MATCHING Market name "TOTAL (5)" Yes Market name "1st Period Totals" No Market name "Money Line" Yes Filtering strings WITH MORE SECTIONS : Separator of sections is character " " (Alt 124) Evaluation corresponds to LOGICAL OR - if 1 (any) section is matching => OK If SECTION STARTS WITH NOT and this condition is matched => Result is NOT OK 4) For NAME OF COMPETITION filtering string " *BUNDESLIGA* NOT*WOMEN* NOT*U1* " MATCHING League name "Bundesliga" Yes League name "Bundesliga 2" Yes League name "Bundesliga Women" No League name "Bundesliga U19" No Filtering strings (simply wildcards "*") can be used in following operations : COMBINED operations a) Competition_Events for Competition Name #1 for Competition Name #2 for Event Name b) Events_Markets_Prices for Competition Name #1 for Competition Name #2 for Event Name for Market Name 6
5.2. Additional Filtering of Competitions(Leagues) _AT Analysis of texts Another way for filtering of competitions/leagues is _AT Analysis of texts. For 2 sports ( Football and Ice Hockey ) and (at betting) most used competitions (leagues, cups, championships...) are defined rules for their distinguishing (based on info about sport country name of competition). The same rules for distinguishing of leagues (and teams) are used : 1) in programs _ApiPS.EXE (Pinnacle) and _ApiBF.EXE (Betfair) 2) in program Bet_Info.EXE (uses for data storage database PostgreSQL) 3) in DLL_AnalTextStaSpo.dll can be added to users program in programming languages Visual Basic, Visual C#, C++,... (every language that uses DLL libraries) Output from distinguishing are 3 ABBREVIATIONS : 1) STATE 3 chars in system ALPHA (ISO 3166-1 alpha-3) used by Betfair and also EUR / AFR / ASI / AME for continental competitions WOR (world) for competitions without connection with 1 country (incl. friendlies) 2) TYPE&LEVEL of competition max. 5 chars (1.L / 2.L / 3.L /... / CUP / CHxxx...) Full length of abbreviation 5 chars can distinguish f.e. in England CUPfa = England FA Cup, CUPca = England Capital One Cup,... 3) PARTICIPANTS (M=men, W=women, 2nd+3th character UnderNN...) W20 (for World Championship Women Under 20), M19 (for European Championship Men Under 19) Another returned information about Competition is PRIORITY (5=Maximal,...1=Minimal). For filtering can be used parameter Prio>=N f.e. for condition Prio>=4 are competitions with priority 1,2,3 ignored 3 ABBREVIATIONS for Competition + its Priority (1..5) - are returned with additional combined operations : a) Competitions_Events b) Events_Markets_Prices - are returned if filtering string for _AT is not empty value; value of string has to be at least "FOO *,*,*" or "HOC *,*,*" (1 sport, no filtering) The same parameters ( 3 abbreviations + priority 1..5 ) are returned by library DLL_AnalTextStaSpo.dll (for including into programs in VB, C#,...) - as result of Analysis of texts based on info: a) sport (only FOO=football, HOC=Ice hockey) b) text name of state c) text name of competition This is typical description of competition (league) in offers of bookies. Library DLL_AnalTextStaSpo.dll can be used for matching of offers of other bookies with offer of BetDAQ (both competitions and teams => matches) can be tested in demoversions Windows Forms Applications for VB and C# - forms in column of menu "Analysis of Texts" frmstates, frmleagues, frmteams) Info about 3 abbreviations + priorities of ALL CURRENT competitions in BetDAQs offer can be retrieved : with operation Competitions_Events with next values of Filter_AT for Competition : "FOO *,*,*" - for sport = Football/Soccer "HOC *,*,*" - for sport = Ice Hockey In returned CSV-file are only competitions/leagues (included in definition files of "Analysis of texts" and library DLL_AnalTextStaSpo.dll) - most used competitions, leagues, cups, championships... 7
5.3. Library DLL_AnalTextStaSpo.dll - support for Analysis of texts clanaltextstate Class for States, basic variables, routines clanaltextsport Class for 1 Sport (his leagues, teams) 1) Info about versions number, STATIC functions : clanaltextstate.stversion (value f.e. "1.2.05") Function FuncEnText3toSPO(ByVal st_cod_spo3 As String) As ensporttyp parameter#1 = abbreviation of sport (3 characters) "FOO" / "HOC" RETURNS : value ensporttyp.ensportfoo / ensporttyp.ensporthoc Function FuncEnSPOtoText3(ByVal en_sport As ensporttyp) As String parameter#1 = value ensporttyp.ensportfoo / ensporttyp.ensporthoc RETURNS : abbreviation of sport (3 characters) "FOO" / "HOC" Dim ensport As DLL_AnalTextStaSpo.clAnalTextState.enSportTyp ensport = clanaltextstate.funcentext3tospo("foo") return value ensporttyp.ensportfoo stsport3 = clanaltextstate.funcenspototext3(ensport) return value "FOO" 2) How to get instances of classes : Dim enenglish As DLL_AnalTextStaSpo.clAnalTextState.enLanguageTyp = _ clanaltextstate.enlanguagetyp.enlanguageen Dim enfootball As DLL_AnalTextStaSpo.clAnalTextState.enSportTyp = _ clanaltextstate.ensporttyp.ensportfoo Dim clanaltextstatemy As DLL_AnalTextStaSpo.clAnalTextState = _ New DLL_AnalTextStaSpo.clAnalTextState(enEnglish, stdirectoryat) Dim clanaltextsportfoo As DLL_AnalTextStaSpo.clAnalTextSport = _ New DLL_AnalTextStaSpo.clAnalTextSport(enFootball,clAnalTextStateMY) 3) How to Init classes (reading of data files Names States, Leagues, Teams) : Dim sterrmsgback As String = "", book As Boolean = True clanaltextstatemy.funcinitreadnames_states(sterrmsgback) If sterrmsgback <> "" Then MessageBox.Show("ERROR: Unsuccessful reading of file NAMES of STATES & vbcrlf & _ "( " & sterrmsgback & " )", "Error reading NAMES of STATES ", MessageBoxButtons.OK, MessageBoxIcon.Error) End If clanaltextsportfoo.funcininames_leaguesteams(false, sterrmsgback) If sterrmsgback <> "" Then book = False MessageBox.Show("ERROR: Unsuccessful Init Names - Football" & vbcrlf & _ "( " & sterrmsgback & " )", "Error reading Init Names (Leagues & Teams) ", MessageBoxButtons.OK, MessageBoxIcon.Error) End If 4) DYNAMIC Variables, Functions of Class clanaltextstate : Current language (of strings with description of State, League, Teams) clanaltextstatemy.enlanguagecurr As enlanguagetyp ( enlanguageen / enlanguagede / enlanguagecz / enlanguagexxx ) Directory of files for Analysis of texts stdirectoryat = clanaltextstatemy.stdirectoryat SEARCH of STATE - FOR CODE of State 3 chars RETURNS NAME OF STATE(in current language) Function FuncCodeSta3_ToStateDscr(ByVal stcod_sta3 As String, ByRef ststatedscr_back As String) As Boolean 8
parameter#1 = code of state (Alpha 3) f.e. "ESP" parameter#2 = RETURN VALUE for state : Name of state in current language (f.e. Spain / Spanien / Spanelsko) RETURNS : value False/True (found?) SEARCH of STATE FOR TEXT(name) OF STATE ( code of region is OPTIONAL ) Function FuncSearchState(ByVal stcod_reg3 As String, ByVal ststate_text As String, ByRef stcod_sta3_back As String, ByRef ststatedscr_back As String) As Boolean parameter#1 = "" OR code of region(continent) ("EUR"/"AFR"/"ASI"/"AME") parameter#2 = TEXT FOR SEARCH of STATE parameter#3 = RETURN VALUE for State : Abbreviation 3 chars (Alpha 3) parameter#4 = RETURN VALUE for State : Name of state in current language RETURNS : value False/True (found?) Examples: see demoversion (Windows Forms Application VB/C#) - form frmstates 5) DYNAMIC Functions of Class clanaltextsport : SEARCH of LEAGUE FOR CODE of STATE (3 chars Alpha) + TEXT(name) OF LEAGUE ( code of League 5 chars only for known league getting of its parameters ) Function FuncSearchLeague(ByVal stcod_sta3 As String, ByVal stcod_lea5 As String, ByVal stleag_text As String, ByRef stleagdscr_back As String, ByRef stcod_wom3_back As String, ByRef stcod_csnprio_back As String) As String parameter#1 = "" OR code of state (from FuncSearchState 3 chars Alpha) parameter#2 = "" OR max. 5 chars f.e. "1.L"/"CUP"/"CH" (optional) parameter#3 = "" OR TEXT FOR SEARCH of LEAGUE parameter#4 = RETURN VALUE for League : Name of League in current language parameter#5 = RETURN VALUE for League : Code max. 3 chars (Men, Women, UnderNN) parameter#6 = RETURN VALUE for League : Code C(clubs)/S(states)/N(participants not defined + Priority 1 char "1".."5", maximal "5") RETURNS : string "State3,Leag5" f.e. "ENG,1.L" is return value for search text "England Premier League" Examples: see demoversion (Windows Forms Application VB/C#) - form frmleagues Dim stleagdscrback As String = "", stcodewom3back As String = "" Dim stcodecsnprioback As String = "", ststate3league5 As String = "" ststate3league5 = clanaltextsportfoo.funcsearchleague("eng", "", "Championship", stleagdscrback, stcodewom3back, stcodecsnprioback) RETURNS : ststate3league5="eng,2.l", stleagdscrback="championship", stcodewom3back = "M", stcodecsnprioback = "c4" ststate3league5 = clanaltextsportfoo.funcsearchleague("eng", "3.L", "", stleagdscrback, stcodewom3back, stcodecsnprioback) RETURNS : ststate3league5="eng,3.l", stleagdscrback="league One", stcodewom3back = "M", stcodecsnprioback = "c3" ststate3league5 = clanaltextsportfoo.funcsearchleague("","","champions League UEFA", stleagdscrback, stcodewom3back, stcodecsnprioback) RETURNS : ststate3league5="eur,cupcz", stleagdscrback="uefa - Champions League", stcodewom3back = "M", stcodecsnprioback = "c5" Comments: - the same parameters for league/competition (f.e. "ENG,2.L,M") returns program _ApiPS (for Pinnacle) in additional operations in row for competition ("COMP" see Appendix D,E) - the same parameters returns also program _ApiBF (for Betfair) - the more correct values in parameters #1, #2 and #3, the better response of function - it is way how to search for league from users program a corresponding competition in current BetDAQ s API competitions or how to get for different names of leagues (+states) in offers of different bookies => 1 league with the same identifiers (3+5 chars) SEARCH of TEAM FOR CODE of STATE (3 chars Alpha) + CODE of LEAGUE (3-5 chars) + TEXT Function FuncSearchTeam(ByVal stcod_sta3 As String, ByVal stcod_lea5 As String, ByVal stcod_wom3 As String, ByVal stteam_text As String, ByRef stteamdscr_back As String, ByRef stcod_sta3lea5_back As String) As String 9
parameter#1 = "" OR code of state (from FuncSearchState 3 chars Alpha) parameter#2 = "" (max. 5 chars f.e. "1.L"/"CUP" optional from FuncSearchLeague) parameter#3 = "M" OR "W" OR... ("" = "M") parameter#4 = "" OR TEXT FOR SEARCH of TEAM parameter#5 = RETURN VALUE for Team : Name of Team (from DLL_AnalTextStaSpo.dll) parameter#6 = RETURN VALUE for Team : parameters of League RETURNS : abbreviation 5 characters identifier of Team (non-duplicate) Examples: see demoversion (Windows Forms Application VB/C#) - form frmteams Dim stteam5 As String, stteamdscrback As String="", stcodesta3lea5back As String="" stteam5 = clanaltextsportfoo.funcsearchteam("", "2.L", "", "Liverpool", stteamdscrback, stcodesta3lea5back) RETURNS : stteam5 = "LIVER" stteamdscrback="liverpool FC", stcodesta3lea5back = "ENG,1.L" stteam5 = clanaltextsportfoo.funcsearchteam("eur", "CUP", "", "Maribor", stteamdscrback, stcodesta3lea5back) RETURNS : stteam5 = "MARNK" stteamdscrback="maribor NK", stcodesta3lea5back = "SVN,1.L" stteam5 = clanaltextsportfoo.funcsearchteam("ita", "2.L", "", "Bergamo", stteamdscrback, stcodesta3lea5back) RETURNS : stteam5 = "BEATA" stteamdscrback="atalanta Bergamo", stcodesta3lea5back = "ITA,1.L" stteam5 = clanaltextsportfoo.funcsearchteam("ita", "3.L", "", "Atalanta", stteamdscrback, stcodesta3lea5back) RETURNS : stteam5 = "BEATA" stteamdscrback="atalanta Bergamo", stcodesta3lea5back = "ITA,1.L" Comments: - the same identifiers for teams (f.e. "LIVER", "MARNK", "BEATA") returns program _ApiBF in combined operations in row for event=match ("EVEN") - teams Home & Away - the more correct values in parameters #1, #2, #3 and #4, the better response of function, but see first example for Liverpool + missing state "ENG" and incorrect league "2.L" (or Atalanta Bergamo in "2.L"/"3.L") is response correct - it is way how to search for match from users program a corresponding event(=match) in current BetDAQ s API events or how to get for different names of 1 team in offers of different bookies the same identifier (5 chars) 5.4. Update of files for Analysis of texts, of DLL_AnalTextStaSpo.dll Functionality of "Analysis of Texts" is based on data files (for "Names of States", "Names of Leagues" and "Names of Teams" + helping file for Correction of names Leagues/Competitions BetDAQ). Demoversions (Windows Applications in Visual Basic and Visual C# including source codes) contain form "frm_update_at" for update of this files see column Help of this applications current versions of this files are placed in webpage www.betoptim.com downloaded file is stored on users PC with date&time of internet version higher date&time current internet version indicates newer file for download form "frm_update_at" (or his clone) can be included into users program 10
Appendix A - Operation Competition_Events - structure of output CSV Output structure CSV Structure CSV 1 ROW ("COMP") with info about Competition, following rows for its events/matches (..., again 1 ROW of next competition ("COMP"),...) See Demoversions : Windows Form Applications (in Visual Basic, C#) form "frmcompetitions_events.???" EXAMPLE 1) : For EMPTY Filter _AT (Competition) = "" Selection of competitions only with text filters : Filter for Competitions Name (Part1) : "*NHL*" Filter for Competitions Name (Part2) : "*MATCHES*" COMP;NHL 2014/15;Matches (OT Included);1711823 1921424;Away Goals v Home Goals 1919341;00:05 Buffalo Sabres @ New Jersey Devils 1921313;00:05 Ottawa Senators @ Philadelphia Flyers 1919342;00:35 Tampa Bay Lightning @ Montreal Canadiens 1919343;01:05 Carolina Hurricanes @ Nashville Predators 1921312;01:05 San Jose Sharks @ Minnesota Wild 1919344;01:35 Columbus Blue Jackets @ Dallas Stars 1919345;01:35 Colorado Avalanche @ Chicago Blackhawks 1919346;02:05 St. Louis Blues @ Arizona Coyotes 1919347;(Wed) Detroit Red Wings @ Edmonton Oilers 1919348;(Wed) New York Islanders @ Vancouver Canucks EXAMPLE 2) : For Filter _AT (Competition) = "FOO ENG,1.L,M ESP,1.L,M" Filter for Event Name : "* v *" COMP;English Soccer;Premier League 2014/15;1446353;c;ENG;1.L;M;5 1912365;(Sat) Sunderland v Liverpool (Live) 1912364;(Sat) Burnley v QPR (Live) 1912363;(Sat) Chelsea v Newcastle (Live) 1912362;(Sat) Everton v Man City (Live) 1912361;(Sat) Leicester v Aston Villa (Live) 1912360;(Sat) Swansea v West Ham (Live) 1912359;(Sat) West Brom v Hull (Live) 1912358;(Sat) Crystal Palace v Tottenham (Live) 1912357;(Sun) Arsenal v Stoke (Live) 1912356;(Sun) Man Utd v Southampton (Live) COMP;Spanish Soccer;La Liga;1450368;c;ESP;1.L;M;5 1919116;(Fri) Levante v Deportivo La Coruna (Live) 1919115;(Sat) Real Madrid v Espanyol (Live) 1919114;(Sat) Malaga v Villarreal (Live) 1919113;(Sat) Celta Vigo v Valencia (Live) 1919112;(Sat) Eibar v Getafe (Live) 1919111;(Sun) Almeria v Sevilla (Live) 1919110;(Sun) Athletic Bilbao v Elche (Live) 1919109;(Sun) Granada v Real Sociedad (Live) 1919117;(Sun) Barcelona v Atletico Madrid (Live) 1919118;(Mon) Rayo Vallecano v Cordoba (Live) 11
For empty Filter _AT ( Example 1 ) => row ( "COMP" ) contains only identification "COMP", in Part 1 of competitions name is name NAME of STATE, in Part 2 NAME of LEAGUE, last item of row is COMPETITIONs ID For used Filter _AT ( Example 2 ) => additional 5 items of row are : 1) Participants - "s"=states, "c"=clubs, "n"=not defined 2) State 3 chars (Aplpha 3) 3) Competition 3-5 chars (Type&Level "1.L", "2.L",...) 4) Participants 1-3 chars (men/women/undernn) 5) Priority "1" to "5" (maximum "5") Rows for Match (Event) contain ID and NAME Appendix B - Operation Events_Markets_Prices - structure of output CSV this combined operation summarizes data from 2 original BetDAQs API operations (GetEventSubTreeNoSelections and GetPrices) sumarized output is returned in 1 file with structure CSV (separator ";", individual rows ("COMP" for Competition/League, "EVEN" for Event/Match, "MARK" for Market and following rows for prices & amounts (BACK / LAY) See Demoversions : Windows Form Applications (in VB, C#) form "frmevents_markets_prices.???" EXAMPLE OF CALLING : COMP;NHL 2014/15;Matches (OT Included);1711823 EVEN;00:05 Buffalo Sabres @ New Jersey Devils;1919341; MARK;5076087;Money Line;Type=16;Stat=2;7.1.2015 1:05:00;InRun=NnN id=29518293;buffalo Sabres;Status=2 BACK: 2,88;170 2,86;135,49 2,76;164,66 LAY : 3,25;296 3,3;82,18 3,55;85,24 id=29518294;new Jersey Devils;Status=2 BACK: 1,45;280 1,44;572,74 1,39;724,51 LAY : 1,54;297 1,56;337,51 1,61;356,32 MARK;5076109;Total (5);Type=17;Stat=2;7.1.2015 1:05:00;InRun=NnN id=29518337;under (5);Status=2 BACK: 1,72;270 1,71;354,93 1,66;439,09 LAY : 1,84;299 1,85;222,36 1,9;241,51 id=29518338;over (5);Status=2 BACK: 2,18;482,56 2,08;268,33 1,99;336,64 LAY : 2,42;302 2,44;131,26 2,54;141,13 EVEN;00:05 Ottawa Senators @ Philadelphia Flyers;1921313; MARK;5079961;Money Line;Type=16;Stat=2;7.1.2015 1:05:00;InRun=NnN id=29548158;ottawa Senators;Status=2 BACK: 2,06;113 2,04;242,31 1,97;298,76 LAY : 2,26;74 2,28;147,66 2,38;157,50 id=29548159;philadelphia Flyers;Status=2 BACK: 1,82;85 1,81;311,11 1,76;381,32 LAY : 1,94;104 1,95;198,94 2;217,35 MARK;5079962;Total (5.5);Type=17;Stat=2;7.1.2015 1:05:00;InRun=NnN id=29548160;under (5.5);Status=2 BACK: 1,73;115 1,72;350,01 1,67;432,54 LAY : 1,85;75 1,86;219,77 1,91;238,85 id=29548161;over (5.5);Status=2 BACK: 2,18;85 2,16;217,24 2,06;273,40 LAY : 2,4;105 2,42;133,10 2,52;143,00 12