Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The API service is based on the REST architecture and supports a number of resources accessed with HTTP protocol. The client should send a an HTTP GET request and in return will receive a return list document in JSON or XML format. The default response format is JSON. You can change the default response format to XML by adding ".xml" extension after the <resource_name> in the requested URL (please see below). The encoding used in our XML is UTF-8. API format. API support multiple simultaneous requests from authenticated customers. 
We have standardized the have standardized the output for ALL sports, so we offer the same format and data structure. However, for each sports, there are different event details, incidents, and statistics that are explained in more detail in the Sports data structure section.

Please note that new event details, incidents, and statistics could be added in the future. Whenever new features are added to the API you will find a description in the API changelogchange log.

Authentication

Access to the API is based on the oAuth 2.0 authorization 0 authorization method. This means access is given using a unique token without any IP's restriction.

The client is authenticated using a GET request including query string parameters: client_id and secret_key. These parameters are assigned to you by our sales department. On confirmation of the client_id/secret_key combination, the special oAuth token is then returned.  Maximum The maximum period of time the token is valid is 24 hours from the time it was generated. This token should be sent with all subsequent requests. 

Example token request: 
https://api.statscore.com/v2/oauth?client_id=<YOUR_CLIENT_ID>&secret_key=<YOUR_SECRET_KEY>

...

api_versionDefines which version of API you want to use. The segment is required. Current API version: v2

resource_name

Defines requested resource_name. The segment is required.
your_tokenValid The valid token generated during the authentication process

In the event you would like additional filtering of the data, you can request a combination of the resource query parameters. For example, the following URL returns all events for basketball (sport_id=1): https://api.statscore.com/<api_version>/events?token=<YOUR_TOKEN>&sport_id=1. The possible parameters for all resources are described in the detailed specifications.

...

All responses to a successful request (http HTTP status code = 200) have the same structure:

...

<?xml version="1.0" encoding="UTF-8"?>
<api version="2.0" timestamp="1425992728">
<method name="events.index" details="<link for method description>" total_items="10" next_page="<link or empty value>"
previous_page="<link or empty value>">
<parameter name="id" value="7"/>
<parameter name="lang" value="en"/>
</method>
 
<data>
      <----DATA---->
</data>
 
</api>

Element <api>

Code Block
languagetext
"api": {
	"ver": "2.146.0",
	"timestamp": 1575991564,
	"method": {
		"parameters": {
			"client_id": 1,
			"events_details": "yes"
		},
		"name": "events.index",
		"details": "events.index",
		"total_items": 511,
		"previous_page": "",
		"next_page": "https://api.statscore.com/v2/events?token=YOUR_TOKEN&client_id=1&page=2"
	},
	"data": {
	...
	}
}


Element "api" is heading element for each response. The <api> The "api" element includes attributes:

  • version - means the version in which the data is processed. You should always use the proper version in your code. You can switch the version in the URL request. For more information about versions please see our API changelog.

  • timestamp - UNIX TIMESTAMP value from API server. This value is generated on every request.

The <data> "data" element contains all requested information.

...

 HTTP status code

Cause

200 OKSuccessful request
304 Not ModifiedSent if data is older than provided "If-Modified-Since" HTTP Header
400 Bad RequestYou have provided a parameter that the function does not support
401 UnauthorizedYou have not provided a username/password or authkey
403 ForbiddenYou have not been authenticated or your subscription does not permit you to request the data you have requested
404 Not FoundYou have requested non-existent data
429 Too Many RequestsYou have made too many requests
500 Internal Server ErrorError is caused by a malfunction on our side. Our IT department is notified about this automatically
501 Not ImplementedThe sport and/or function you have requested does not exist
503 Service unavailableThe Web server is currently unable to handle the HTTP request due to maintenance of the server

Unsuccessful requests/ errors

For unsuccessful requests the response contains <error> element:

...

<?xml version="1.0" encoding="UTF-8"?>
<api version="2.0" timestamp="1425992728">
<method name="events.index" details="<link for method description>" total_items="10" next_page="<link or empty value>" previous_page="<link or empty value>">
<parameter name="id" value="7"/>
<parameter name="lang" value="en"/>
</method>
 
<error status="400" message="The request could not be understood by the server" internal_code="1" />
 
</api>

Here is a general explanation about possible error codes:

...

Internal code

...

HTTP status

...

requests/ errors

For unsuccessful requests the response contains <error> element:

Code Block
languagetext
"api": {
	"ver": "2.146.0",
	"timestamp": 1575991564,
	"method": {
		"parameters": {
			"client_id": 1,
			"events_details": "yes"
		},
		"name": "events.index",
		"details": "events.index",
		"total_items": 511,
		"previous_page": "",
		"next_page": "https://api.statscore.com/v2/events?token=YOUR_TOKEN&client_id=1&page=2"
	},
	"error": {
		"message": "Invalid credentials. Either the username, password or token you provided is incorrect",
		"status": 401,
		"internal_code": 2
	}
}


Here is a general explanation of possible error codes:

Internal code

HTTP status

Message

1403

Your membership package has expired or is inactive. For more information, please contact our sales department at sales@statscore.com

2403

Invalid credentials. Either the username or the password you provided is incorrect

3400

The timestamp parameter you passed is smaller than the allowed minimum limit for this parameter. When getting this error, the <message> element will contains more information about the minimal timestamp allowed. In the event you want all the information since our minimal timestamp, do not pass the timestamp parameter 

4400

Invalid parameter. The format of the parameter is invalid. For more details about the invalid parameter, see the <message> element

5429

You have exceeded the data amount you are allowed. For more information, please contact our sales department at sales@statscore.com

6500

Internal error. When getting this error code, please try resending your request, also inform our support team at tech-support@statscore.com so we can fix this problem as soon as possible.

7403Your membership package does not include requested sport
8403Your membership package does not include requested season
9403Your host IP for API connection is invalid.
10403Your subscription has expired or is inactive. For more information, please contact our sales department at sales@statscore.com
11402 Your membership package does not include requested method or access to this method has expired
12404The requested resource was not found
13400Invalid parameter. The date_from or date_to parameter is invalid.
14400Required parameter is missing.
15503We are performing scheduled maintenance. We should be back shortly

Using timestamp

When any request is made, the response contains a timestamp value showing the time of the last generated response.
If you want to receive feed updates rather than refresh the whole feed then you can store this value and use it in your next request. In the documentation of each resource, we have included cache times. The cache times need to be considered when calling particular requests.


For example: Suppose you refreshed all your data and got the following header in the response XML:

Code Block
languagexml
<api version="2.0" timestamp="1425992728">
<method name="api": {
	"ver": "2.146.0",
	"timestamp": 1425992728,
	"method": {
		"parameters": {
			"client_id": 1,
			"events_details": "yes"
		},
		"name": "events.index",
		"details="<link for method description>" : "events.index",
		"total_items="10" next_page="<link or empty value>" ": 511,
		"previous_page="<link or empty value>">
<parameter name="id" value="7"/>
<parameter name="lang" value="en"/>
</method>
<data>
      <!------DATA------!>
</data>: "",
		"next_page": "https://api.statscore.com/v2/events?token=YOUR_TOKEN&client_id=1&page=2"
	},
	"data": {
	...
	}
}

The next request should be as follows:

Code Block
languagetext
https://api.softnetsportstatscore.com/<api_version>/<resource_name>/[identifier]?token=<your_token>&timestamp=1425992728

...

Excerpt


Possible value

Translation language

Possible value

Translation language

Possible value

Translation language

br

cs

de

el

en

es

fi

fr

hr

Brasilian

Czech

German

Greek

English

Spanish

Finnish

French

Croatian

id

it

ka

ko

mx

nl

no

pl

pt

Indonesian

Italian

Georgian

Korean

Mexican

Dutch

Norwegian

Polish

Portuguese

ro

ru

sr

sv

th

tr

vi

zh

Romanian

Russian

Serbian

Swedish

Thai

Turkish

Vietnamese

Chinise



Please note that all dates and times are always displayed in the
UTC format. This also applies

...

to the timestamps available at the top of the feed structure. All dates used in our services use the ISO 8601 date and time format. For some resources, you can use the query parameter "tz" which determines the timezone for the output data. The list of available

...

time zones is listed below.


Time, date & timezones

Example: https://api.statscore.com/v2/events?token=<YOUR_TOKEN>&tz=Europe/Warsaw

...