JMI-API requests have this address structure

https://www.jobmarketinsights.com/jmi-api/{version}/{service}

where {service} is one of the available services and {version} refers to the version described below.
Services may accept (or require) a set of input parameters.
Parameters can be passed either via query-string (parameter values must be url-encoded):

/report?scope=58&category=IT&period=-1&token=ABCDEFGHIJKLMNOPQRSTUVXYWZ

or via JSON, a POST request with a header Content-Type=application/json and a body. i.e:

{
	"scope" : "58",
	"category" : "IT",
	"period" : "-1",
	"token" : "ABCDEFGHIJKLMNOPQRSTUVXYWZ"
}	 	 

Response is always a JSON (with header Content-Type=application/json). i.e:

{
	"scopes":[
	  {
		"key": "72",
		"label": "Fish4.co.uk"
	  }
	]
}

Authentication

In order to use JMI-API you need a valid JMI account.
Every service (except /token) requires an authentication token passed as parameter.
To obtain a valid token you can use the /token service sending your account credentials as parameters.
Tokens have an expiration time of 30 days and once expired they can no longer be used.

Rate limit

This mechanism helps maintain high availability, consistent performance, and a reliable experience for all users.

  • Maximum: 1600 requests per 5-minute window per client
  • Response on exceedance: HTTP 403 Forbidden
  • Reset behavior: Requests are automatically accepted again after the 5-minute window resets

Version

Available versions for JMI-API are

  • 1.1 (latest)
  • 1.0

This documentation will always describe the latest version of the API.
Requests to URLs where the version number is omitted, i.e:

https://www.jobmarketinsights.com/jmi-api/{service}

will use version 1.0 for retro-compatibility.
Version is always echoed inside the echo element attached to the response of every service.

"echo":{
	"version" : "1.1",
	"scope": "58",
	"period": "-1"
}