MMA v2

Frequently Asked Questions
Quick Access
Postman Collection XSD Schema
Download
## MMA API Overview The MMA API provides schedules and live results for all UFC events, including Dana White's Contender Series. This API is consistent in structure, format, and behavior with other General Sport APIs. Primary feeds will return schedules and live results. Additional feeds provide complementary stats, including:
  • Win probabilities for each match
  • Competitor profiles
  • Head-to-head statistics
  • Complete list of weight class rankings
  • Complete list of champions by weight class
API API Version
MMA v2
Note: Authentication is required for all API calls.
## MMA API Map To best utilize the MMA API, you will need several parameters to create your API calls. The map below illustrates how you can obtain the parameters you need. >

Example:

>To find the probabilities for a given match: >
  1. Call the Daily Summaries for the day the sport event takes place and find the Sport Event Id for the chosen sport event
  2. Make note of the Sport Event Id for the given sport event
  3. Call the Season Probabilities using the Season Id
  4. Find Sport Event Id within the results and locate the outcome probability
>The probabilities for this match are displayed. The primary feeds require only a date or human-readable parameters to call the endpoints. Those feeds provide Sport Event Ids, Competitor Ids, or Season Ids which can be used to generate the season, event, and competitor feeds. ## Champions Provides a list of current champions by weight class. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/mma/trial/v2/en/champions.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/champions.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/mma/trial/v2/en/champions.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Champions feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/champions.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Competition Info Provides the name, id, and parent id for a given competition. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/mma/trial/v2/en/competitions/sr:competition:25325/info.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/competitions/sr:competition:25325/info.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/mma/trial/v2/en/competitions/sr:competition:25325/info.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Competition Info feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/competitions/`{competition_id}`/info.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `competition_id` | Id of a given competition. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Competitions List Provides a list of all available competitions. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/competitions.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/competitions.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/competitions.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Competitions List feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/competitions.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Competitions Seasons Provides historical season information for a given competition. Valid competition IDs can be found in the Competitions feed. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/competitions/sr:competition:25455/seasons.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/competitions/sr:competition:25455/seasons.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/competitions/sr:competition:25455/seasons.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Competition Seasons feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/competitions/`{competition_id}`/seasons.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `competition_id` | Id of a given competition. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Competitor Merge Mappings Provides valid ids for competitors who have had their profiles merged. While Sportradar always strives to provide one unique competitor id, it is a possibility for two ids to be created. This feed provides the correct id once profiles have been merged. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/mma/trial/v2/en/competitors/merge_mappings.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/competitors/merge_mappings.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/mma/trial/v2/en/competitors/merge_mappings.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Competitor Merge Mappings feed by replacing the parameters in the following URL: https://api.sportradar.us/mma/`{access_level}`/`{version}`/`{language_code}`/competitors/merge_mappings.`{format}`?api_key=`{your_api_key}` Parameter | Description --------- | ----------- `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). `version` | Version number of the API you are accessing (Current Version: v2). `language_code` | Supported Locales `format` | xml or json. `your_api_key` | Your API key. Return to top ## Competitor Profile Provides biographical information for a given competitor, including record. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/competitors/sr:competitor:261799/profile.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/competitors/sr:competitor:261799/profile.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/competitors/sr:competitor:261799/profile.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Competitor Profile feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/competitors/`{competitor_id}`/profile.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `competitor_id` | Id of a given competitor. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Competitor Summaries Provides previous and upcoming event information for a given competitor, including results for past events and scheduling info for upcoming events. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/competitors/sr:competitor:464137/summaries.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/competitors/sr:competitor:464137/summaries.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/competitors/sr:competitor:464137/summaries.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Competitor Summaries feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/competitors/`{competitor_id}`/summaries.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `competitor_id` | Id of a given competitor. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Competitor vs Competitor Provides previous and upcoming fights between two competitors, including results and statistics. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/competitors/sr:competitor:464137/versus/sr:competitor:464141/summaries.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/competitors/sr:competitor:464137/versus/sr:competitor:464141/summaries.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/competitors/sr:competitor:464137/versus/sr:competitor:464141/summaries.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Competitor vs Competitor feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/competitors/`{competitor_id}`/versus/`{competitor_id2}`/summaries.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `competitor_id` | Id of a given competitor. | | `competitor_id2` | Id of a given competitor. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Daily Summaries Provides event schedules for a given day, including results and statistics. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/schedules/2019-02-10/summaries.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/schedules/2019-02-10/summaries.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/schedules/2019-02-10/summaries.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Daily Summaries feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/schedules/`{year}`-`{month}`-`{day}`/summaries.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `year` | Year in 4 digit format (YYYY). | | `month` | Month in 2 digit format (MM). | | `day` | Day in 2 digit format (DD). | | `format` | xml or json. | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters:
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.sportradar.com/mma/trial/v2/en/schedules/2019-02-10/summaries.xml?api_key={your_api_key}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPSConnection("api.sportradar.com")

conn.request("GET", "/mma/trial/v1/en/schedules/2019-02-10/summaries.xml?api_key={your_api_key}&start=0&limit=75")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
curl -L GET 'api.sportradar.com/mma/trial/v1/en/schedules/2019-02-10/summaries.xml?api_key={your_api_key}&start=0&limit=75'
In addition to the URL parameters listed above, you can paginate the response with one or more of the following optional query string parameters.
Note: Optional query string parameters must be added after your API key with an ampersand (&).
Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `start` | Number to start the list of results from.
Example: start=0 | | `limit` | Number to limit the number of results. Minimum value is 1, maximum value is 200.
Example: limit=200 | Return to top ## Live Summaries Provides information for all currently live events, including results and statistics. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/schedules/live/summaries.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/schedules/live/summaries.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/schedules/live/summaries.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Live Summaries feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/schedules/live/summaries.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Rankings Returns the current rankings for each weight class. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/rankings.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/rankings.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/rankings.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Rankings feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/rankings.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Season Competitors Provides a list of competitors participating for a given event/season id. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/seasons/sr:season:54879/competitors.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/seasons/sr:season:54879/competitors.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/seasons/sr:season:54879/competitors.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Season Competitors feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_id}`/competitors.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `season_id` | Id of a given season. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Season Information Provides information for a given event/season, including a list of participants. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/seasons/sr:season:54879/info.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/seasons/sr:season:54879/info.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/seasons/sr:season:54879/info.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Season Information feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_id}`/info.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `season_id` | Id of a given season. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Season Probabilities Provides win probabilities for each participant for every match from a given event/season. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/seasons/sr:season:54879/probabilities.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/seasons/sr:season:54879/probabilities.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/seasons/sr:season:54879/probabilities.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Season Probabilities feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_id}`/probabilities.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `season_id` | Id of a given season. | | `format` | xml or json. | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters:
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.sportradar.com/mma/trial/v2/en/seasons/sr:season:54879/probabilities.xml?api_key={your_api_key}&start=200")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPSConnection("api.sportradar.com")

conn.request("GET", "/mma/trial/v2/en/seasons/sr:season:54879/probabilities.xml?api_key={your_api_key}&start=200")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
curl -L GET 'api.sportradar.com/mma/trial/v2/en/seasons/sr:season:54879/probabilities.xml?api_key={your_api_key}&start=200'
In addition to the URL parameters listed above, you can paginate the response with one or more of the following optional query string parameters.
Note: Optional query string parameters must be added after your API key with an ampersand (&).
Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `start` | Number to start the list of results from.
Example: start=0 | | `limit` | Number to limit the number of results. Minimum value is 1, maximum value is 200.
Example: limit=200 | Return to top ## Season Summaries Provides schedule information and results for all fights from a given event/season. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/seasons/sr:season:54879/summaries.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/seasons/sr:season:54879/summaries.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/seasons/sr:season:54879/summaries.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Season Summaries feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_id}`/summaries.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `season_id` | Id of a given season. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Seasons Provides a complete list of historical event/season information for all supported competitions in the API. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/seasons.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/seasons.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/seasons.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Seasons feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/seasons.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Sport Event Summary Provides live scoring for a given event/fight. Please note that data returned is determined by coverage level. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/sport_events/sr:sport_event:18100773/summary.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/sport_events/sr:sport_event:18100773/summary.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/sport_events/sr:sport_event:18100773/summary.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Sport Event Summary feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/sport_events/`{sport_event_id}`/summary.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `sport_event_id` | Id of a given sport event. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Sport Event Change Log Provides ids for sport events that have been updated in the last 24 hours. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/sport_events/updated.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/sport_events/updated.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/sport_events/updated.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Sport Event Change Log feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/sport_events/updated.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Sport Events Created Provides ids for sport events that have been created in the last 24 hours.
Update Frequency: As Necessary
Content Type: XML or JSON
Match Info Data Points: Id Created At
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/sport_events/created.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/sport_events/created.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/sport_events/created.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Sport Event Created feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/sport_events/created.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Sport Event Created use the following URL. https://api.sportradar.com/mma/trial/v2/schemas/sport_events_created.xsd?api_key=`{your_api_key}` ### Optional Query String Parameters >Example including optional query string parameters:
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.sportradar.us/mma/trial/v2/en/sport_events/created.xml?api_key={your_api_key}&start=0&limit=75")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPSConnection("api.sportradar.us")

conn.request("GET", "/mma/trial/v2/en/sport_events/created.xml?api_key={your_api_key}&start=0&limit=75")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
curl -L GET 'api.sportradar.us/mma/trial/v2/en/sport_events/created.xml?api_key={your_api_key}&start=0&limit=75'
In addition to the URL parameters listed above, you can paginate the response with one or more of the following optional query string parameters. By default the limit is set to 1000.
Note: Optional query string parameters must be added after your API key with an ampersand (&).
Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `start` | Number to start the list of results from.
Example: start=0 | | `limit` | Number to limit the number of results. Minimum value is 1, maximum value is 1000.
Example: limit=75 | Return to top ## Sport Event Removed Provides ids for sport events that have been removed or deleted. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/mma/trial/v2/en/sport_events/removed.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/mma/trial/v2/en/sport_events/removed.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/mma/trial/v2/en/sport_events/removed.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Sport Event Removed feed by replacing the parameters in the following URL: https://api.sportradar.com/mma/`{access_level}`/`{version}`/`{language_code}`/sport_events/removed.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Supported Locales | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Sport Event Removed use the following URL. https://api.sportradar.com/mma/trial/v2/schemas/sport_events_removed.xsd?api_key=`{your_api_key}` Return to top ## Frequently Asked Questions

Q: What are the available competitions in the MMA API v2?

A: We currently cover all UFC events, including Dana White’s Contender Series.

Q: What format are date fields presented in?

A: When we present date only values we present these in the ISO 8601 standard format.
ex: 2013-04-03
We use these for attributes that have date and no time (such as birthdate). For more information: https://en.wikipedia.org/wiki/ISO_8601

Q: What format are the date/time fields presented in?

A: All of our Date/Time attributes are in UTC, presented in the ISO 8601 standard format.
ex: 2013-04-03T18:15:00+00:00
For more information: https://en.wikipedia.org/wiki/ISO_8601

Q: How can I find the values for various enum data points within the API?

A: Many enum values are listed in the FAQ below. For the most up-to-date values, please see the Schema section of the OpenAPI specification here: https://api.sportradar.com/mma/trial/v2/openapi/swagger/index.html

Q: What are the valid "sport_event_status - status" values?

A: Here are the valid status values and their definitions:

  • not_started – The match is scheduled to be played
  • started – The match has begun
  • live – The match is currently in progress
  • postponed – The match has been postponed to a future date
  • suspended – The match has been suspended
  • match_about_to_start – The match is about to begin
  • delayed – The match has been temporarily delayed and will be continued
  • interrupted - The match began, but coverage has stopped for a short time. Note that match scores may not be updated during this period, the last recorded match score will be displayed instead
  • cancelled – The match has been cancelled and will not be played
  • ended – The match is over
  • closed – The match results have been confirmed.

Q: What are the possible sport_event_status – method values?

A: Here are all of the possible methods:

  • ko_tko
  • submission
  • tko_doctors_stoppage
  • decision_unanimous
  • decision_split
  • decision_majority
  • overturned
  • disqualification

Q: What are the valid outcomes for probabilities?

A: Here are the valid outcome probabilities:

  • home_team_winner
  • away_team_winner

Q: What are markets and what are the different markets?

A: Markets is something you can bet on that we provide probabilities for. Over time we intend to provide more and more markets in the API. Currently the only market we provide is 3-way (will the home team win? Or the away team? Or will it be a draw?)

Q: How do I get the schedule for a competition?

A: Call the Seasons endpoint and locate the start and end date for the season, then use that information to call the Daily Schedule endpoint.

Q: When are fight nights added to the schedule?

A: Within 72 hours of the event being officially announced.

Q: What is the difference between a competition and a season?

A: As with all Sportradar APIs, a competition (or in some cases depicted as a "Tournament") is comprised of seasons. In UFC this isn't necessarily intuitive, given that that structure doesn't apply to individual match ups. This structure is preserved for consistency with other sports. Competitions will contain all events, whereas Seasons will only contain those which are known for the current year.

Q: What are the valid "sport_event_status - match_status" values?

A: Here are the valid status values:

  • not_started
  • start_delayed
  • ended
  • cancelled
  • postponed
  • started

Q: When are the rankings updated?

A: Once per week.

Q: When is a sport_event (fight) removed? What happens next?

A: A sport_event (fight) may appear in the removed feed if the fight is cancelled. A new match, if officially announced, will appear in the season and match feeds.

Q: What if a match has incorrect details?

A: The sport_event_id won't change. The fight details will be changed, and the sport_event_id will appear in the Sport Event Change Log feed.

Q: What are the possible sport_event_status – weight_class values?

A: Here are the valid sport_event_status – weight_class values:

  • flyweight (116-125)
  • bantamweight (126-135)
  • womens_bantamweight (126-135)
  • featherweight (136-145)
  • lightweight (146-155)
  • welterweight (156-170)
  • middleweight (171-185)
  • light_heavyweight (186-205)
  • heavyweight (206-265)
  • catchweight (unrestricted weight)

Q: What are the possible stage – type values?

A: Here are the valid stage – type values:

  • Early Prelims
  • Prelims
  • Under Card
  • Main Card

Q: How do I locate the TTL (Time to Live)/cache on an API endpoint?

A: The cache (in seconds) can be accessed in the returned header information on each RESTful API call, under cache-control.
ex. cache-control: max-age=1, public, s-maxage=1 or
cache-control: public, must-revalidate, max-age=120

Return to top

Docs Navigation