LinkedIn Jobs API
- Data from LinkedIn
LinkedIn Jobs API for public job search and postings
Search LinkedIn’s public job listings by keyword, place, company and posting date, then open any posting for its pay range, criteria and full description. Public job data only, as JSON, priced per call.
1,000 free credits a month · Failed requests are free · Free during the beta
Endpoints and prices checked against the API on
LinkedIn is where many employers post a role first, so its job listings are a common source for hiring signals, recruiting tools and labour-market research. LinkedIn’s own job APIs are for approved partners that post jobs, not for reading other companies’ listings. This API reads LinkedIn’s public job search and posting pages, the ones a signed-out visitor sees, and returns them as JSON.
Signed-out search honours only some filters: keywords, place, distance, posting age, company, Easy Apply and under 10 applicants. LinkedIn ignores job type, experience level, remote or hybrid and date sorting for signed-out visitors, so the API refuses those instead of returning an unfiltered list. Search cards carry the posting date and LinkedIn’s badges but no salary; the posting endpoint adds the pay range when the poster shows one, the job criteria, the applicant count and the full description. Member profiles, company pages and anything behind a login are not covered.
What you get
job_id— LinkedIn’s numeric posting id, from a search card or a job linktitle, company, location— as LinkedIn prints them, with the company’s LinkedIn page and logoposted_at, posted— the posting date from the search card and LinkedIn’s relative age, such as “3 weeks ago”insights[]— LinkedIn’s badges word for word, such as “Actively Hiring” or “Be an early applicant”salary, salary_label— the pay range and who provided it, when the poster shows one (posting endpoint)seniority_level, employment_type, industries— the job criteria LinkedIn lists on the postingapplicants, easy_apply, closed— applicant count text, Easy Apply or apply on the company site, and whether it still takes applicationsdescription, description_html— the full job description as plain text and as safe HTML with every attribute removed
One call, structured JSON
POST /v1/linkedin/jobs — 2 credits per successful call.
curl -X POST "https://api.scrapercompany.com/v1/linkedin/jobs" \
-H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'{
"search_parameters": {
"engine": "linkedin_jobs",
"keywords": "python developer",
"location": "United States",
"page": 1,
"easy_apply": true
},
"jobs_results": [
{
"job_id": "4458251161",
"title": "Software Engineer, Backend (Partner 16, Partner 18)",
"company": "Andreessen Horowitz",
"company_url": "https://www.linkedin.com/company/a16z",
"company_logo": "https://media.licdn.com/dms/image/v2/D560BAQFs3wvS2NM10g/company-logo_100_100/B56ZaiHxu.GoAc-/0/1746476670161/a16z_logo?e=2147483647&v=beta&t=sAyMO5tlSPsBt9wWt2LdOR6xDalxk5hlNiUZWZRm0xQ",
"location": "San Francisco, CA",
"posted_at": "2029-03-12",
"posted": "17 hours ago",
"insights": [
"Actively Hiring"
],
"link": "https://www.linkedin.com/jobs/view/4458251161/"
},
{
"job_id": "4464227292",
"title": "Python Developer",
"company": "Synechron",
"company_url": "https://www.linkedin.com/company/synechron",
"company_logo": "https://media.licdn.com/dms/image/v2/D4E0BAQGU3XDmI-XtZg/company-logo_100_100/B4EZbozLqWHcAU-/0/1747662453848/synechron_logo?e=2147483647&v=beta&t=967JcOKqVUEfAxo-JLDXVLacACGsfj3Itpkbmqz1HrA",
"location": "Jersey City, NJ",
"posted_at": "2029-02-15",
"posted": "3 weeks ago",
"insights": [
"Actively Hiring +8 benefits"
],
"link": "https://www.linkedin.com/jobs/view/4464227292/"
}
],
"total": 2,
"next_page": 2,
"meta": {
"source": "linkedin",
"wire_bytes": 30971,
"elapsed_s": 0.47
}
}Endpoints and price per call
Credits per successful call, and what one call costs on the Starter, Growth, Scale plans. Failed requests cost nothing. See all plans.
| Endpoint | What it returns | Credits | Starter · Growth · Scale |
|---|---|---|---|
| Job search POST /v1/linkedin/jobs | One page of up to 10 job cards for keywords and a place, with date, company and Easy Apply filters | 2 credits | $0.0020 · $0.0012 · $0.0008 |
| Job posting POST /v1/linkedin/job | One posting by id or link: criteria, pay range, applicants and full description | 2 credits | $0.0020 · $0.0012 · $0.0008 |
FAQ
Frequently asked questions
Read next
Does LinkedIn have a public jobs API?
Not for reading job postings. LinkedIn’s Job Posting API and its other Talent Solutions APIs are for approved partners, such as applicant-tracking systems and job distributors, that post jobs to LinkedIn or sync candidates. This API is independent of LinkedIn and returns the job listings LinkedIn shows to signed-out visitors.
Does it return LinkedIn profiles or other logged-in data?
No. It covers public job postings only: search results and posting pages as a signed-out visitor sees them. It does not return member profiles, company pages, posts or contact details, and it does not return the off-site apply link, which LinkedIn shows only to signed-in members.
Which search filters work?
Keywords, a free-text location or a numeric geo_id, distance from that location, posting age (past day, week or month), company ids, Easy Apply only and under 10 applicants. Without a location, LinkedIn answers with United States jobs. Job type, experience level, workplace type and sort order are ignored by LinkedIn for signed-out visitors, so the API rejects them with an error.
How many jobs can one search return?
Each call returns one page of up to 10 job cards. Set page from 1 to 100; LinkedIn does not serve results past the 1,000th, so that is the deepest you can go. next_page is set when a page was full, and a page past the last result comes back empty and is not charged.
How do I get the salary and the company id?
Salary is not on search cards. Call the posting endpoint with the job_id; it returns the pay range and LinkedIn’s label for who provided it, when the poster published one. The same response carries company_id, which you can pass in company_ids to search only that company’s postings.
Do failed requests cost credits?
No. A failed or blocked call (any 4xx or 5xx response) costs 0 credits, and so does a search page that comes back empty. You pay only for successful results.
How do I get an API key?
Create an account on the sign-up page. Public sign-up is invite-only during the beta, so join the waitlist there and we will email you when your account is ready. The Free plan includes 1,000 credits a month, and the API is free while it is in beta. You create and rotate keys yourself in the dashboard.
More APIs on the same key
All APIsIndeed API
Search Indeed by keyword and place and get every listing on the page with its title, company, location, posted pay, posting date and company rating. Structured JSON, priced per page.
Booking.com API
Look a hotel up by name, then read what Booking.com shows a guest: a nightly price calendar, each room type with its rate plans, and the reviews with the property’s replies. Structured JSON, priced per call.
Expedia API
Look a hotel up by name, then read what Expedia shows a guest for one stay: every room type and rate plan with its total, nightly price and cancellation terms, and the guest reviews with the property’s replies.
Hotels.com API
Find a hotel’s Hotels.com id by name, then read what a guest on the Hotels.com site for their country sees: the headline price for a stay, every room type and rate plan, and the guest reviews.
Start with 1,000 free credits a month
Join the waitlist and we will email you when your account is ready: your own API keys, 1,000 free credits a month, and the API is free during the beta.