Getting your API key

Each publisher website requires a unique API key, which you can obtain from your Publisher account.

Querying the API

Authentication

Basic authentication is used to access this API. This means you will need to add an Authorization header to each request for access. The basic auth user name is your API key, and the basic auth password is an empty string.

The format of the Authorization header is:

Authorization: Basic {credentials}

where '{credentials}' is the Base64-encoded string of the API key followed by colon.

Endpoint and parameters

The API endpoint is https://search.api.careerjet.net/v4/query and exposes the below HTTP GET parameters.

Parameter name Values Comments
locale_code [language_code]_[COUNTRY_CODE] The value must match the list of supported locale codes. Defaults to en_GB if not specified.
keywords string a list of one or more URL-encoded search terms
location string the search location; when not specified, indicates country-wide search
contract_type
  • p: permanent position
  • c: contract position
  • t: temporary position
  • i: internship/training position
  • v: volunteering position
the contract type
work_hours
  • f: full-time position
  • p: part-time position
working hours
fragment_size integer the job excerpt size in characters, defaulting to 120
sort
  • relevance: sort by decreasing relevance
  • date: sort by decreasing date
  • salary: sort by decreasing salary
determines the sort order, defaulting to 'relevance'
offset integer from 1 to 999, defaulting to 0
page integer from 1 to 10
page_size integer from 1 to 100, defaulting to 20
radius integer defaulting to 5 km/miles depending on location
user_ip string required: the IP address of the user whose action(s) triggered the API call
user_agent string required: the user agent string of the user whose action(s) triggered the API call

Response types

Success

A successful request will result in a HTTP 200 JSON response, whose overall structure is the following:

{
  "type": 'JOBS',
  "hits": 62,
  "message": "62 matching jobs found", 
  "pages": 4, 
  "response_time": 0.322, 
  "jobs" [List of jobs: see below]
}

Error responses

Improper requests will result in various HTTP error status code and a minimal response body indicating the error type and details, if any. Below is an overview of the potential errors encountered:

HTTP Code Message Comments
400 Unsupported locale code The provided locale code is not supported.
403 Missing param user_ip or user_agent The request did not include the user_ip or user_agent parameters.

Location mode

Not strictly an error, but a situation that will prevent any actual search from happening. Location mode is triggered as described below:

Message Comments
no matching location found No location could be found matching the provided location parameter.

Example

{
  "type": "LOCATIONS",
  "locations": [], 
  "message": "no matching location found", 
  "response_time": 0.11
}
Message Comments
multiple locations found Several locations matched the provided location parameter. You can then opt to pick one from the provided list locations.

Example

{
  "type": "LOCATIONS",
  "locations": ["choice 1", "choice 2", "choice 3"], 
  "message": "multiple locations found", 
  "response_time": 0.11
}

Job structure

Each job is structured as follows:

{
  'title': 'Python Developer', 
  'company': 'BBC', 
  'date': 'Wed,15 Nov 2025 19:13:43 GMT', 
  'description': 'Job description excerpt', 
  'locations': 'London', 
  'salary': 'GBP 30000 - 33000 per year', 
  'salary_currency_code': 'GBP', 
  'salary_max': xx.yy, 
  'salary_min': xx.yy, 
  'salary_type': 'Y', 
  'site': 'domain.com', 
  'url': 'https://jobviewtrack.com/v2/unique link'
}

Where salary_type can be: