Get Job Posts
curl --request POST \
--url https://api.linkupapi.com/v1/recruiter/posts \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"login_token": "<string>",
"job_id": "<string>",
"fetch_details": true,
"total_results": 123,
"start_page": 123,
"end_page": 123,
"country": "<string>"
}
'import requests
url = "https://api.linkupapi.com/v1/recruiter/posts"
payload = {
"login_token": "<string>",
"job_id": "<string>",
"fetch_details": True,
"total_results": 123,
"start_page": 123,
"end_page": 123,
"country": "<string>"
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
login_token: '<string>',
job_id: '<string>',
fetch_details: true,
total_results: 123,
start_page: 123,
end_page: 123,
country: '<string>'
})
};
fetch('https://api.linkupapi.com/v1/recruiter/posts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkupapi.com/v1/recruiter/posts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'login_token' => '<string>',
'job_id' => '<string>',
'fetch_details' => true,
'total_results' => 123,
'start_page' => 123,
'end_page' => 123,
'country' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.linkupapi.com/v1/recruiter/posts"
payload := strings.NewReader("{\n \"login_token\": \"<string>\",\n \"job_id\": \"<string>\",\n \"fetch_details\": true,\n \"total_results\": 123,\n \"start_page\": 123,\n \"end_page\": 123,\n \"country\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkupapi.com/v1/recruiter/posts")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"login_token\": \"<string>\",\n \"job_id\": \"<string>\",\n \"fetch_details\": true,\n \"total_results\": 123,\n \"start_page\": 123,\n \"end_page\": 123,\n \"country\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v1/recruiter/posts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"login_token\": \"<string>\",\n \"job_id\": \"<string>\",\n \"fetch_details\": true,\n \"total_results\": 123,\n \"start_page\": 123,\n \"end_page\": 123,\n \"country\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"total_results": 1,
"total_available_results": 5,
"fetch_details": true,
"posts": [
{
"linkedin_job_id": "4178681649",
"title": "Directeur marketing",
"company_name": "Linkup API",
"location": "Nice, Provence-Alpes-Côte d'Azur, France",
"job_state": "SUSPENDED",
"description": "The ideal candidate will be responsible leading an effective marketing strategy to propel company growth...",
"editableDescription": "<p>The ideal candidate will be responsible leading an effective marketing strategy...</p>",
"employment_status": "Temps plein",
"workplace_type": "Sur site",
"created_at": 1741369498000,
"listed_at": 1741430682000,
"closed_at": null,
"num_views": 346,
"num_applies": 52,
"job_url": "https://www.linkedin.com/jobs/view/4178681649/",
"contact_email": "[email protected]",
"suspend_reasons": ["FREE_JOB_APPLICATION_LIMIT"],
"industry": ["Développement de logiciels"],
"talent_questions": ["Avez-vous le niveau d'études requis : Maîtrise ?"],
"budget": {
"total_charge": "0.00",
"currency": "EUR",
"buffered_total_charge": "93.00",
"daily_budget": "0"
}
}
],
"pagination": {
"start_page": 1,
"end_page": 1,
"items_per_page": 10,
"pages_fetched": 1
}
}
}
Recruiting
Get Job Posts
Retrieve your posted LinkedIn job listings with basic or complete details
POST
/
v1
/
recruiter
/
posts
Get Job Posts
curl --request POST \
--url https://api.linkupapi.com/v1/recruiter/posts \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"login_token": "<string>",
"job_id": "<string>",
"fetch_details": true,
"total_results": 123,
"start_page": 123,
"end_page": 123,
"country": "<string>"
}
'import requests
url = "https://api.linkupapi.com/v1/recruiter/posts"
payload = {
"login_token": "<string>",
"job_id": "<string>",
"fetch_details": True,
"total_results": 123,
"start_page": 123,
"end_page": 123,
"country": "<string>"
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
login_token: '<string>',
job_id: '<string>',
fetch_details: true,
total_results: 123,
start_page: 123,
end_page: 123,
country: '<string>'
})
};
fetch('https://api.linkupapi.com/v1/recruiter/posts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkupapi.com/v1/recruiter/posts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'login_token' => '<string>',
'job_id' => '<string>',
'fetch_details' => true,
'total_results' => 123,
'start_page' => 123,
'end_page' => 123,
'country' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.linkupapi.com/v1/recruiter/posts"
payload := strings.NewReader("{\n \"login_token\": \"<string>\",\n \"job_id\": \"<string>\",\n \"fetch_details\": true,\n \"total_results\": 123,\n \"start_page\": 123,\n \"end_page\": 123,\n \"country\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkupapi.com/v1/recruiter/posts")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"login_token\": \"<string>\",\n \"job_id\": \"<string>\",\n \"fetch_details\": true,\n \"total_results\": 123,\n \"start_page\": 123,\n \"end_page\": 123,\n \"country\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v1/recruiter/posts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"login_token\": \"<string>\",\n \"job_id\": \"<string>\",\n \"fetch_details\": true,\n \"total_results\": 123,\n \"start_page\": 123,\n \"end_page\": 123,\n \"country\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"total_results": 1,
"total_available_results": 5,
"fetch_details": true,
"posts": [
{
"linkedin_job_id": "4178681649",
"title": "Directeur marketing",
"company_name": "Linkup API",
"location": "Nice, Provence-Alpes-Côte d'Azur, France",
"job_state": "SUSPENDED",
"description": "The ideal candidate will be responsible leading an effective marketing strategy to propel company growth...",
"editableDescription": "<p>The ideal candidate will be responsible leading an effective marketing strategy...</p>",
"employment_status": "Temps plein",
"workplace_type": "Sur site",
"created_at": 1741369498000,
"listed_at": 1741430682000,
"closed_at": null,
"num_views": 346,
"num_applies": 52,
"job_url": "https://www.linkedin.com/jobs/view/4178681649/",
"contact_email": "[email protected]",
"suspend_reasons": ["FREE_JOB_APPLICATION_LIMIT"],
"industry": ["Développement de logiciels"],
"talent_questions": ["Avez-vous le niveau d'études requis : Maîtrise ?"],
"budget": {
"total_charge": "0.00",
"currency": "EUR",
"buffered_total_charge": "93.00",
"daily_budget": "0"
}
}
],
"pagination": {
"start_page": 1,
"end_page": 1,
"items_per_page": 10,
"pages_fetched": 1
}
}
}
Retrieve information about the job postings you have created on LinkedIn. You can choose between getting basic information (title, company, location) at no cost, or complete details (description, applicant statistics, workplace type, industry) for 1 credit per job posting.
Credit Usage:
- With
fetch_details: true(default): 1 credit per job posting retrieved. - With
fetch_details: false: 1 credit per 10 results (or fraction thereof). For example:- 1-10 results = 1 credit
- 11-20 results = 2 credits
- 300 results = 30 credits
- When specifying a
job_id, 1 credit is always used regardless offetch_detailsvalue.
Header Parameters
string
required
Your API key
Body Parameters
string
required
LinkedIn authentication cookie obtained from the login/verify process
string
Optional: Retrieve details for a specific job posting by its LinkedIn ID
boolean
default:"true"
Whether to retrieve complete job details (true) or basic information only (false)
number
default:"10"
Number of job postings to retrieve per page when using pagination
number
default:"1"
First page to fetch when using pagination mode
number
default:"same as start_page"
Last page to fetch when using pagination mode
string
default:"FR"
Country code for proxy selection. Available: (US, UK, FR, DE, NL, IT, IL, CA, BR, ES, IN)
Response
string
Request status (success/error)
object
Response data container
number
Number of job postings returned in this response
number
Total number of job postings available on LinkedIn
boolean
Indicates whether the response contains complete details or basic information only
object
Pagination information (not included when using job_id)
array
List of job postings with details according to fetch_details parameter
string
LinkedIn’s internal job posting ID
string
Job posting title
string
Company name
string
Job location
string
URL to view the job posting
string
Human-readable posting date (e.g. “Posted 2 days ago”) - Basic info only
string
Basic status (e.g. “Active”) - Basic info only
string
Human-readable applicant count (e.g. “25+ applicants”) - Basic info only
The following fields are only available when fetch_details is true:
string
Current state of the job posting (OPEN, CLOSED, SUSPENDED, etc.)
string
Full job description
string
HTML-formatted job description
string
Employment type (Full-time, Part-time, etc.)
string
Workplace type (On-site, Remote, Hybrid)
number
Timestamp when job was created
number
Timestamp when job was listed
number
Timestamp when job was closed (if applicable)
number
Number of views the job posting has received
number
Number of applications the job posting has received
string
Contact email for the job posting
array
Reasons why the job posting might be suspended
array
Industries associated with the job posting
array
Screening questions for applicants
object
Budget information for the job posting
{
"status": "success",
"data": {
"total_results": 1,
"total_available_results": 5,
"fetch_details": true,
"posts": [
{
"linkedin_job_id": "4178681649",
"title": "Directeur marketing",
"company_name": "Linkup API",
"location": "Nice, Provence-Alpes-Côte d'Azur, France",
"job_state": "SUSPENDED",
"description": "The ideal candidate will be responsible leading an effective marketing strategy to propel company growth...",
"editableDescription": "<p>The ideal candidate will be responsible leading an effective marketing strategy...</p>",
"employment_status": "Temps plein",
"workplace_type": "Sur site",
"created_at": 1741369498000,
"listed_at": 1741430682000,
"closed_at": null,
"num_views": 346,
"num_applies": 52,
"job_url": "https://www.linkedin.com/jobs/view/4178681649/",
"contact_email": "[email protected]",
"suspend_reasons": ["FREE_JOB_APPLICATION_LIMIT"],
"industry": ["Développement de logiciels"],
"talent_questions": ["Avez-vous le niveau d'études requis : Maîtrise ?"],
"budget": {
"total_charge": "0.00",
"currency": "EUR",
"buffered_total_charge": "93.00",
"daily_budget": "0"
}
}
],
"pagination": {
"start_page": 1,
"end_page": 1,
"items_per_page": 10,
"pages_fetched": 1
}
}
}
Was this page helpful?