Skip to content
  • There are no suggestions because the search field is empty.

What is the difference between status and match_status ? How can we determine if an event is finished by the status “Closed”?

There are two statuses for an event:

  • status = overall general status, like “not_started”, “live”, “ended”… → described in the Oddin.gg Odds Feed documentation
  • match_status = live match periods (”1st map”, “2nd half", etc.) and detailed statuses that sometimes overlap with the general status → listed on the Odds Feed API /match_status endpoint. Current match statuses (updated 2026-07-22):
<match_status id="0" description="Not started"></match_status>
<match_status id="1" description="Closed"></match_status>
<match_status id="2" description="Cancelled"></match_status>
<match_status id="3" description="Postponed"></match_status>
<match_status id="4" description="Delayed"></match_status>
<match_status id="51" description="1st map"></match_status>
<match_status id="52" description="2nd map"></match_status>
<match_status id="53" description="3rd map"></match_status>
<match_status id="54" description="4th map"></match_status>
<match_status id="55" description="5th map"></match_status>
<match_status id="56" description="6th map"></match_status>
<match_status id="57" description="7th map"></match_status>
<match_status id="58" description="8th map"></match_status>
<match_status id="59" description="9th map"></match_status>
<match_status id="60" description="10th map"></match_status>
<match_status id="61" description="11th map"></match_status>
<match_status id="62" description="12th map"></match_status>
<match_status id="63" description="13th map"></match_status>
<match_status id="64" description="14th map"></match_status>
<match_status id="65" description="15th map"></match_status>
<match_status id="66" description="16th map"></match_status>
<match_status id="67" description="17th map"></match_status>
<match_status id="68" description="18th map"></match_status>
<match_status id="69" description="19th map"></match_status>
<match_status id="70" description="20th map"></match_status>
<match_status id="71" description="21st map"></match_status>
<match_status id="72" description="22nd map"></match_status>
<match_status id="73" description="23rd map"></match_status>
<match_status id="74" description="24th map"></match_status>
<match_status id="75" description="25th map"></match_status>
<match_status id="80" description="1st half"></match_status>
<match_status id="81" description="2nd half"></match_status>
<match_status id="90" description="1st quarter"></match_status>
<match_status id="91" description="2nd quarter"></match_status>
<match_status id="92" description="3rd quarter"></match_status>
<match_status id="93" description="4th quarter"></match_status>
<match_status id="100" description="1st inning"></match_status>
<match_status id="101" description="2nd inning"></match_status>
<match_status id="150" description="1st game"></match_status>
<match_status id="151" description="2nd game"></match_status>
<match_status id="152" description="3rd game"></match_status>
<match_status id="153" description="4th game"></match_status>
<match_status id="154" description="5th game"></match_status>
<match_status id="155" description="6th game"></match_status>
<match_status id="156" description="7th game"></match_status>
<match_status id="170" description="1st round"></match_status>
<match_status id="171" description="2nd round"></match_status>
<match_status id="172" description="3rd round"></match_status>
<match_status id="173" description="4th round"></match_status>
<match_status id="174" description="5th round"></match_status>
<match_status id="175" description="6th round"></match_status>
<match_status id="176" description="7th round"></match_status>
<match_status id="177" description="8th round"></match_status>
<match_status id="500" description="1st overtime"></match_status>
<match_status id="501" description="2nd overtime"></match_status>
<match_status id="502" description="3rd overtime"></match_status>
<match_status id="503" description="4th overtime"></match_status>
<match_status id="504" description="5th overtime"></match_status>
<match_status id="505" description="6th overtime"></match_status>
<match_status id="506" description="7th overtime"></match_status>
<match_status id="507" description="8th overtime"></match_status>
<match_status id="508" description="9th overtime"></match_status>
<match_status id="509" description="10th overtime"></match_status>
<match_status id="1000" description="Unknown"></match_status>

The general “status” takes precedence over the “match_status”. Mostly, they will be in sync, but sometimes you can have a situation similar to this one:

  • status=”not_started”
  • match_status=“2nd map”

In this example, the match was cut off after the first map and will continue later starting with the 2nd map, but in the meanwhile, it will be in the “not_started” (prematch) general state.