Developer API
Sections
Overview
With our job posting API you can easily post and manage jobs directly from your own application using standard HTTP methods.
Our job posting API uses OAuth2 with authorization codes to authenticate requests. When using authorization codes, a client application will redirect a user to our server where they will either approve or deny the request to issue an access token to the client.
Api key
Developers building applications that need to interact with our job posting API will need an account on lingua-jobs.com/recruiter and then contact us to request an API key.
We will register your application with ours by creating a "client". We will require the name of your application and a URL that our application can redirect to after users approve their request for authorization.
Once your application is registered, you'll be issued with a client ID and client secret (Api key). These values will be used when requesting access tokens from your application.
Authentication
Our job posting API uses OAuth2 authorisation codes for authentication. This lets the end user grant authority to your application to interact with lingua-jobs.com on their behalf, without sharing their access credentials.
The end user authenticates directly with us using their recruiter account, and grants authority for specific scopes.
We then issue an OAuth2 access token that’s specific to the end user. Your application passes the access token in subsequent API requests to user-restricted endpoints.
Requesting Authorization
Once a client has been created, developers may use their client ID and secret to request an authorization code and access token from our application.
First, the consuming application should make a redirect request to our applications authorisation recruiter/oauth/authorize
endpoint like so:
// http://example.com/authorize.php $query = http_build_query([ 'client_id' => 'client-id', 'redirect_uri' => 'http://example.com/callback.php', 'response_type' => 'code', 'scope' => '', ]); header('Location: https://www.lingua-jobs.com/recruiter/oauth/authorize?'.$query);
Approving The Request
When receiving authorization requests, users will be directed to sign in to their recruiter account and automatically be prompted to approve or deny the authorization request.
If they approve the request, they will be redirected back to the redirect_uri
that was specified by the consuming application with an authorization code.
The redirect_uri
must match the redirect
URL that was specified when the client was created.
Here’s an example of a redirect we issue after a successful authorisation:
GET https://www.example.com/callback.php?code=TBC
Converting Authorization Codes To Access Tokens
If the user approves the authorization request, they will be redirected back to the consuming application.
The consumer should then issue a POST
request to our application to request an access token.
The request should include the authorization code that was issued by our application when the user approved the authorization request.
In this example, we'll use PHP Curl to make the POST
request:
// http://example.com/callback.php $ch = curl_init(); $url = 'https://www.lingua-jobs.com/recruiter/oauth/token'; $params = http_build_query([ 'grant_type' => 'authorization_code', 'client_id' => 'client-id', 'client_secret' => 'client-secret', 'redirect_uri' => 'http://example.com/callback.php', 'code' => $_REQUEST['code'], ]); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_POSTFIELDS, $params); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
This recruiter/oauth/token
route will return a JSON response containing access_token
, refresh_token
, and expires_in
attributes.
The expires_in
attribute contains the number of seconds until the access token expires. Below is an example response:
{ "token_type": "bearer", "expires_in": 31535999, "access_token": "QGbWG8KckncuwwD4uYXgWxF4HQvuPmrmUqKgkpQP", "refresh_token": "unJkSs5cvs8CS9E4DLvTkNhcRBq9BwUPm23cr3pF", }
Token Life Time
Access tokens expire after one year. The access token can be saved and used to make further api calls in the session or until the access token expires.
Call an API
When calling api resources that require authorization, API consumers should specify their access token as a Bearer
token in the Authorization
header of their request.
For example, when using PHP Curl:
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/jobs/expire/101'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token ]; curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH'); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Refreshing Tokens
Access tokens can be refreshed via the refresh token that was provided when the access token was issued. After 12 months you can no longer refresh the access token and the end user must grant authority again. In this example, we'll use PHP Curl to refresh the token:
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/recruiter/oauth/token'; $params = http_build_query([ 'grant_type' => 'refresh_token', 'refresh_token' => 'the-refresh-token', 'client_id' => 'client-id', 'client_secret' => 'client-secret', ]); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_POSTFIELDS, $params); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
This recruiter/oauth/token
route will return a JSON response containing access_token
, refresh_token
, and expires_in
attributes.
The expires_in
attribute contains the number of seconds until the access token expires.
Requesting a new Token
Unless revoked earlier by the user, or tampered with, the authorisation granted to your application expires
after 12 months, and you can no longer refresh the user's access_token
If the user's refresh_token
has expired, when your application calls our token endpoint,
it receives a response with an HTTP status code of 400 (Bad Request) and an error code of invalid_request.
When this happens, your application must send the user back through the full process for getting an OAuth2 access token.
Revoking Authority
A user can revoke the authority granted to your application at any time by login into their recruiter account, navigating to the "API Access" page and clicking "Revoke" against authorised application.
Rate limiting
We limit the number of requests each application can make. This protects our service against excessive use and Denial-of-Service attacks, and also encourages you to use our APIs efficiently.
We set limits based on anticipated loads and peaks. Our standard limit is 60 requests per minute.
If you reach this limit you’ll get a response with an HTTP status of 429 (Too Many Requests)
.
If you continually hit this rate limit, contact us to discuss your application design and whether it’s appropriate to raise your rate limit.
Post job
Adds a new job to the recruiter's account. Requires authentication.
This method will use an available job posting credit from the users account. If no job posting credits are available the job will be saved as draft.
POST https://www.lingua-jobs.com/api/recruiter/v1/jobs/create
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Request
Name | Description |
---|---|
product_id
int required |
Credit type to be spent when creating the job. A list of permissible values for this field can be obtained from the Get products endpoint |
job_title
string required |
The job title must be no more than 100 characters. It cannot contain email addresses, html, URLs or phone numbers. |
job_ref
string optional |
Optional reference (e.g. recruiter's own job reference). Must be no more than 50 characters. It cannot contain email addresses, html or URLs. |
start_at
datetime (ISO8601) required |
Datetime the listing should start. The start date should be today or later
Datetime in ISO8601 format without any timezone offset |
end_at
datetime (ISO8601) required |
Datetime the listing should end. The end date must be after start date and no greater than 30 days from the start date
Datetime in ISO8601 format without any timezone offset |
location_id
int required |
The county, region or country location of the vacancy. A list of permissible values for this field can be obtained from the Get locations endpoint
|
homeworking
boolean optional |
Include homeworking as a location option. Accepted values are |
location_desc
string required |
The location description to make the location clearer (e.g. Near Covent Garden). Must be no more than 100 characters. It cannot contain email addresses, html, URLs or phone numbers.
|
language_list
int, array required |
The languages required for the job. A list of permissible values for this field can be obtained from the Get languages endpoint |
industry_list
int, array required |
The industry sector the job should be posted in. A list of permissible values for this field can be obtained from the Get industries endpoint |
contract_type_id
int required |
The contract type. A list of permissible values for this field can be obtained from the Get contract types endpoint |
contract_hour_id
int required |
The contract hours. A list of permissible values for this field can be obtained from the Get contract hours endpoint |
salary_list
int, array required |
The salary range for the job - this is not shown in the advert, but will help jobseekers find your job. A list of permissible values for this field can be obtained from the Get salaries endpoint Note: salary cannot be greater than £20K if product_id selected equals Free Job Ad |
salary_desc
string required |
The salary description - This will be shown in your advert (e.g Up to £30,000 per annum + benefits). Must be no more than 100 characters. It cannot contain email addresses, html, URLs or phone numbers.
|
job_desc
string required |
The job description must be between 150 and 6,500 characters. It cannot contain email addresses, URLs or phone numbers. It may contain the following html tags:
|
short_desc
string required |
A short summary of the job description - this is shown on the search results page. Must be no more than 150 characters. It cannot contain email addresses, html, URLs or phone numbers.
|
application_method
string required |
Method by which to receive applications. A list of permissible values for this field can be obtained from the Get application methods endpoint |
application_email
string required (conditional) |
If
|
application_url
string required (conditional) |
If
|
contact_first_name
string required (conditional) |
If
|
contact_last_name
string required (conditional) |
If
|
contact_telephone
string required (conditional) |
If
|
alt_company_name
string optional |
An alternative recruiter name. If an alternative recruiter name is provided, jobseekers will only be able to see that name. Your company name will not be mentioned anywhere in the advert. Must be no more than 100 characters.
|
questions
multidimensional array optional |
Can be used to provide a list of screening questions for the job. Maximum 5 screening questions can be provided. Each question must consist of a
|
Response
HTTP Status: 201 (Created)
{ "message": "Job created", "jobId": 91, "jobStatus": "Live" }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body as follows:
{ "error": { "message": "Insufficient job posting credits, job saved as draft. Please log into your account at lingua-jobs.com to purchase additional credits.", "status_code": 402, "errors": [] } } }
Post job example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/jobs/create'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token, 'Content-Type: application/json; charset=utf-8' ]; $payload = json_encode([ 'product_id' => '1', 'job_title' => 'This is an api test job', 'job_ref' => '123', 'start_at' => '2018-12-22', 'end_at' => '2018-12-27', 'location_id' => '2643743', 'homeworking' => true, 'location_desc' => 'London', 'language_list' => ['1','2'], 'industry_list' => ['1','2'], 'contract_type_id' => '1', 'contract_hour_id' => '1', 'salary_list' => ['27', '28'], 'salary_desc' => 'Up to £30,000 per annum + benefits', 'job_desc' => 'This is a test job description', 'short_desc' => 'This is a test short job description', 'application_method' => 'Email', 'application_email' => 'test@test.com', 'questions' => [ 0 => ['question_text' => 'question1', 'expected_answer' => true], 1 => ['question_text' => 'question2', 'expected_answer' => false] ] ], JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Update job
Updates an existing job. Requires authentication. Job can only be updated if it hasn't expired.
PATCH https://www.lingua-jobs.com/api/recruiter/v1/jobs/update/{jobId}
Path Parameters
Name | Description |
---|---|
jobId
int required |
The job id |
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Request
Name | Description |
---|---|
- |
All parameters are the same as those for Post job All are optional, based on the fields you want to update except for |
Response
HTTP Status: 200 (OK)
{ "message": "Job updated", "jobId": 91, "jobStatus": "Live" }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body as follows:
{ "error": { "message": "Parameters failed validation", "status_code": 422, "errors": { "end_at": [ "End date must be after start date" ] } } }
Update job example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/jobs/update/91'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token, 'Content-Type: application/json; charset=utf-8' ]; $payload = json_encode([ 'job_title' => 'This is an api test job', 'job_ref' => '123', 'end_at' => '2018-12-27', 'location_id' => '2643743', 'homeworking' => true, 'location_desc' => 'London', 'language_list' => ['1','2'], 'industry_list' => ['1','2'], 'contract_type_id' => '1', 'contract_hour_id' => '1', 'salary_list' => ['27', '28'], 'salary_desc' => 'Up to £30,000 per annum + benefits', 'job_desc' => 'This is a test job description', 'short_desc' => 'This is a test short job description', 'application_method' => 'Email', 'application_email' => 'test@test.com', 'questions' => [ 0 => ['question_text' => 'question1', 'expected_answer' => true], 1 => ['question_text' => 'question2', 'expected_answer' => false] ] ], JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH'); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Expire job
Ends an existing live job. Requires authentication.
PATCH https://www.lingua-jobs.com/api/recruiter/v1/jobs/expire/{jobId}
Path Parameters
Name | Description |
---|---|
jobId
int required |
The job id |
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Response
HTTP Status: 200 (OK)
{ "message": "Job expired", "jobId": 91, "jobStatus": "Expired" }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body as follows:
{ "error": { "message": "Job is not live and cannot be expired", "status_code": 409, "errors": [] } } }
Expire job example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/jobs/expire/91'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token ]; curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH'); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Relist job
Relists an expired job. Requires authentication.
POST https://www.lingua-jobs.com/api/recruiter/v1/jobs/relist/{jobId}
Path Parameters
Name | Description |
---|---|
jobId
int required |
The job id |
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Response
HTTP Status: 201 (Created)
{ "message": "Job created", "jobId": 92, "jobStatus": "Live" }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body as follows:
{ "error": { "message": "Job not added. This job already exists and hasn't expired", "status_code": 409, "errors": [] } } }
Relist job example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/jobs/relist/91'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token ]; curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Get products
Returns a list of products. Requires authentication.
GET https://www.lingua-jobs.com/api/recruiter/v1/products
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Response
HTTP Status: 200 (OK)
{ "products": [ { "id": 1, "name": "Free Job Ad" }, { "id": 2, "name": "Standard Job Ad" } ] }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body
Get products example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/products'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token ]; curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Get locations
Returns a list of locations. Requires authentication.
GET https://www.lingua-jobs.com/api/recruiter/v1/locations/{term}
Path Parameters
Name | Description |
---|---|
term
string required |
The location name For example |
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Response
HTTP Status: 200 (OK)
{ "locations": [ { "id": 2643123, "formatted_name": "Manchester, England" }, { "id": 7281603, "formatted_name": "Manchester City Centre, Ringway, Manchester, England" }, + {...} ] }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body
Get locations example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/locations/Manchester'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token ]; curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Get languages
Returns a list of languages. Requires authentication.
GET https://www.lingua-jobs.com/api/recruiter/v1/languages
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Response
HTTP Status: 200 (OK)
{ "languages": [ { "id": 1, "name": "Afrikaans" }, { "id": 2, "name": "Albanian" }, { "id": 85, "name": "Amharic" }, + {...} ] }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body
Get languages example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/languages'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token ]; curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Get industries
Returns a list of industries. Requires authentication.
GET https://www.lingua-jobs.com/api/recruiter/v1/industries
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Response
HTTP Status: 200 (OK)
{ "industries": [ { "id": 1, "name": "Accounting" }, { "id": 37, "name": "Administration" }, { "id": 41, "name": "Agriculture" }, + {...} ] }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body
Get industries example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/industries'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token ]; curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Get contract types
Returns a list of contract types. Requires authentication.
GET https://www.lingua-jobs.com/api/recruiter/v1/contract-types
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Response
HTTP Status: 200 (OK)
{ "contractTypes": [ { "id": 3, "name": "Contract" }, { "id": 4, "name": "Job share" }, { "id": 1, "name": "Permanent" }, { "id": 2, "name": "Temp" } ] }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body
Get contract types example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/contract-types'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token ]; curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Get contract hours
Returns a list of contract hours. Requires authentication.
GET https://www.lingua-jobs.com/api/recruiter/v1/contract-hours
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Response
HTTP Status: 200 (OK)
{ "contractHours": [ { "id": 1, "name": "Full time" }, { "id": 2, "name": "Part time" } ] }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body
Get contract hours example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/contract-hours'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token ]; curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Get salaries
Returns a list of salaries. Requires authentication.
GET https://www.lingua-jobs.com/api/recruiter/v1/salaries
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Response
HTTP Status: 200 (OK)
{ "salaries": [ { "id": 1, "name": "£6, Per hour" }, { "id": 2, "name": "£8, Per hour" }, { "id": 3, "name": "£10, Per hour" }, + {...} ] }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body
Get salaries example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/salaries'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token ]; curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';
Get application methods
Returns a list of application methods. Requires authentication.
GET https://www.lingua-jobs.com/api/recruiter/v1/application-methods
Request Headers
Name | Value | Description |
---|---|---|
Content-Type required |
application/json | Specifies the format of the request body, which must be JSON. |
Authorisation
This resource is user-restricted - it requires an Authorization header containing an OAuth 2.0 Bearer Token
Response
HTTP Status: 200 (OK)
{ "applicationMethods": [ { "id": "Email", "name": "By email" }, { "id": "ResponseManagement", "name": "Stored in 'Your jobs' only (no emails)" }, { "id": "ExternalRedirect", "name": "Via a company website" }, { "id": "OfflineApplications", "name": "Offline (only show contact information)" } ] }
Errors
Errors from the API will have a 4xx or 5xx HTTP status code and a consistently formed JSON body
Get application methods example
$ch = curl_init(); $url = 'https://www.lingua-jobs.com/api/recruiter/v1/application-methods'; $header = [ 'Accept: application/json', 'Authorization: Bearer '. $access_token ]; curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . '</pre>';