Developer API

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
YYYY-MM-DDTHH:mm:ss

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
YYYY-MM-DDTHH:mm:ss

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 true or '1'.

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:

b,strong,i,ul,ol,li,p,br

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_method selected is Email then a valid email address is required

application_url
string
required (conditional)

If application_method selected is ExternalRedirect then a valid url address is required. Must be no more than 2080 characters.

contact_first_name
string
required (conditional)

If application_method selected is OfflineApplications then a contact first name is required. Must be no more than 255 characters.

contact_last_name
string
required (conditional)

If application_method selected is OfflineApplications then a contact last name is required. Must be no more than 255 characters.

contact_telephone
string
required (conditional)

If application_method selected is OfflineApplications then a contact telephone is required. Must be no more than 255 characters.

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 question_text (string, max 150 characters) and an expected_answer (boolean). Example:

questions[0].question_text = 'Do you have experience?'

questions[0].expected_answer = true

questions[1].question_text = 'Can you drive?'

questions[1].expected_answer = true

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 product_id and start_at which can be omitted as they cannot be updated.

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 Manchester

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>';