Search Jobs
curl --request GET \
--url https://scrapebadger.com/v1/linkedin/jobs/search \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/linkedin/jobs/search"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/linkedin/jobs/search', 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://scrapebadger.com/v1/linkedin/jobs/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/linkedin/jobs/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/linkedin/jobs/search")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/linkedin/jobs/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"jobs": [
{}
],
"meta": {}
}Jobs
Search Jobs
Search LinkedIn’s public jobs guest API by keyword and location, with date, experience, job-type and workplace filters.
GET
/
v1
/
linkedin
/
jobs
/
search
Search Jobs
curl --request GET \
--url https://scrapebadger.com/v1/linkedin/jobs/search \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/linkedin/jobs/search"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/linkedin/jobs/search', 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://scrapebadger.com/v1/linkedin/jobs/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/linkedin/jobs/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/linkedin/jobs/search")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/linkedin/jobs/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"jobs": [
{}
],
"meta": {}
}Search
linkedin.com’s public jobs surface by keyword and location, with
filters for date posted, experience level, job type and workplace. Paginates
in blocks of 25 via start (0, 25, 50). Returns lightweight
JobCards — hydrate a single card with
/jobs/{job_id}.
Credits: 5
Authorization
string
required
Your ScrapeBadger API key.
Query Parameters
string
Free-text query — e.g.
software engineer.string
Free-text place — e.g.
New York. Resolved server-side, or pass geo_id
directly for an exact match.string
Numeric LinkedIn geo id (from
/geo/suggest). Overrides
location.string
Restrict to a numeric company id.
string
One of
past_24h, past_week, past_month, any (default any).string
Experience level, CSV. One or more of
internship, entry, associate,
mid_senior, director, executive.string
Employment type, CSV. One or more of
full_time, part_time, contract,
temporary, internship, volunteer, other.string
Workplace, CSV. One or more of
onsite, remote, hybrid.string
default:"relevant"
One of
relevant, recent.integer
default:"0"
Pagination offset —
0, 25, 50, … (page size is 25).string
default:"us"
Country/locale for the request.
Response
JobCard[]
Result cards. Each
JobCard includes job_id, title, job_url,
company, company_url, company_logo, location, posted_at,
posted_relative, is_new and benefits[].object
result_count, start, and has_more (whether another start page exists).Example
curl "https://scrapebadger.com/v1/linkedin/jobs/search?keywords=software%20engineer&location=New%20York&date_posted=past_week&workplace=remote,hybrid&sort=recent" \
-H "X-API-Key: YOUR_API_KEY"
const res = await fetch(
"https://scrapebadger.com/v1/linkedin/jobs/search?" +
new URLSearchParams({
keywords: "software engineer",
location: "New York",
date_posted: "past_week",
workplace: "remote,hybrid",
sort: "recent",
}),
{ headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
);
const data = await res.json();
import requests
res = requests.get(
"https://scrapebadger.com/v1/linkedin/jobs/search",
headers={"X-API-Key": "YOUR_API_KEY"},
params={
"keywords": "software engineer",
"location": "New York",
"date_posted": "past_week",
"workplace": "remote,hybrid",
"sort": "recent",
},
)
data = res.json()
Response
{
"jobs": [
{
"job_id": "3801234567",
"title": "Senior Software Engineer",
"job_url": "https://www.linkedin.com/jobs/view/3801234567",
"company": "Acme Corp",
"company_url": "https://www.linkedin.com/company/acme-corp",
"company_logo": "https://media.licdn.com/dms/image/acme-logo.png",
"location": "New York, NY",
"posted_at": "2026-07-09T14:02:00Z",
"posted_relative": "4 days ago",
"is_new": false,
"benefits": ["401(k)", "Medical insurance"]
}
],
"meta": {
"result_count": 25,
"start": 0,
"has_more": true
}
}
start pages in increments of 25. Keep requesting the next page while
meta.has_more is true.
