---
title: "LinkedIn Jobs API: Public LinkedIn Job Postings as Normalized JSON - JobsPipe"
description: "A LinkedIn jobs API for public job postings - job title, company, location, posted date and apply URL as normalized JSON, in the same schema as the rest of its 30+ sources."
canonical: https://jobspipe.dev/linkedin-jobs-api
---

# LinkedIn jobs API.

Public LinkedIn job postings as normalized JSON - title, company, location, posted date and apply URL - through one endpoint, with no scraping to maintain. Public job postings only, never profile data.

[Get a free API key](https://jobspipe.dev/signup)[Compare with scraping](https://jobspipe.dev/how-to-scrape-linkedin-jobs)

Live now, and the largest source in the index. New postings land every day.

## Why not just use LinkedIn’s official API?

LinkedIn’s official Jobs/Talent API is gated to approved ATS and talent-solutions partners and is designed for posting and syncing jobs, not open job-search extraction. Search “LinkedIn jobs API” and the top result is LinkedIn’s partner catalog, not a usable endpoint. JobsPipe fills that gap from the public side.

Built on LinkedIn's public, logged-out job listings - the same postings any visitor sees, never authenticated profile data.

One normalized JSON schema shared with Workday, Greenhouse, Lever, Ashby and the rest of 30+ sources, so LinkedIn is just another source flag.

No proxies, headless browsers or anti-bot maintenance for you to run and babysit.

LinkedIn is the largest source in the index and is collected continuously, so a query for the last seven days returns the last seven days.

## What you get

-   `job_title`Job title
-   `company`Hiring company name
-   `cities / country_code`Where the role is based
-   `date_posted`When the job went live (YYYY-MM-DD)
-   `employment_statuses`FULL\_TIME, PART\_TIME, CONTRACT and so on
-   `technology_slugs`Normalized skills and tools named in the posting
-   `min_annual_salary_usd`Salary floor in USD when the posting states one
-   `final_url`The LinkedIn posting, after redirects

## One record

```
{
  "id": "3ce30e65490909ec",
  "job_title": "Senior Software Engineer - Distributed Systems",
  "company": "NeuroSpark AI",
  "cities": ["California"],
  "country_code": "US",
  "seniority": "senior",
  "employment_statuses": ["FULL_TIME"],
  "min_annual_salary_usd": 170000,
  "max_annual_salary_usd": 350000,
  "date_posted": "2026-08-03",
  "technology_slugs": [
    "rust", "c++", "kubernetes", "grpc", "pytorch"
  ],
  "occupation_code": "2512",
  "occupation_label": "Software Developers",
  "final_url": "https://www.linkedin.com/jobs/view/senior-software-engineer-distributed-systems-at-neurospark-ai-4448119707"
}
```

A real posting collected on 3 August 2026, abridged to the fields most people use. The full record carries about fifty.

## Try it without a key

The sandbox endpoint takes the same filters as the live one and needs no authentication, so you can check the request shape before signing up. It answers with sample records rather than live postings; swap in `/v1/jobs/search` and an API key to get the real index.

```
curl -s -X POST https://api.jobspipe.dev/v1/sandbox/jobs/search \
  -H 'content-type: application/json' \
  -d '{
    "source_or": ["linkedin"],
    "posted_at_max_age_days": 7,
    "limit": 10
  }'
```

`source_or` is what makes this a LinkedIn query. Drop it and the same request searches every source at once. See the [sandbox](https://jobspipe.dev/sandbox) for the full filter list.

## Part of one unified API

LinkedIn is one of 30+ sources. Query it alongside the rest through a single normalized endpoint - see the [jobs API overview](https://jobspipe.dev/jobs-api) and the [LinkedIn source details](https://jobspipe.dev/sources/linkedin). For what LinkedIn’s own APIs offer and who can use them, read [does LinkedIn have a jobs API?](https://jobspipe.dev/guides/linkedin-jobs-api)

## LinkedIn jobs API: frequently asked questions

### Does LinkedIn have a jobs API?

LinkedIn's official Jobs/Talent API exists but is gated to approved ATS and talent-solutions partners and is built around posting and syncing jobs, not open job-search extraction. That is why most developers searching for a 'LinkedIn jobs API' use a third-party jobs API instead.

### How is the LinkedIn data collected?

JobsPipe covers only LinkedIn's public job listings: the logged-out pages any visitor can view. We never log in, never use LinkedIn accounts and never touch member profiles, and every record links back to the original posting on LinkedIn. How we collect, and what we never do, is set out on our Trust Center at jobspipe.dev/trust.

### What data does the LinkedIn jobs API return?

Per posting: job\_title, company, cities and country\_code, date\_posted, employment\_statuses, technology\_slugs, salary range in USD when the posting states one, and final\_url - returned in the same normalized JSON shape as every other JobsPipe source, so you can query LinkedIn alongside Greenhouse, Lever, Workday and others through one endpoint. Coverage varies by field because it varies in the source: employment\_statuses is present on 99% of live LinkedIn postings and technology\_slugs on 83%, while a stated salary appears on 23% and company\_domain is not published on LinkedIn postings at all.

### How much does the LinkedIn jobs API cost?

The same as every other source, because LinkedIn is not priced separately. One credit is one job returned. The free tier is 1,000 jobs, Builder is 25,000 for $49/mo and Scale is 300,000 for $348/mo, which works out at $1.16 per 1,000; TheirStack's nearest plan to that volume is $1,200 for 500,000 credits. A fuller breakdown, including how that compares to the rest of the market, is in the LinkedIn API cost guide.

[LinkedIn API cost guide](https://jobspipe.dev/guides/linkedin-api-cost)

### Should I use this or write my own LinkedIn scraper?

A scraper is cheaper on day one and more expensive every day after, because the cost is not the code but the proxies, the headless browsers and the layout changes you have to keep chasing. This API returns the same public postings with that maintenance already absorbed. If you want to see the tradeoff written out before deciding, the scraping comparison walks through what each approach actually costs to run.

[API versus scraping, compared](https://jobspipe.dev/how-to-scrape-linkedin-jobs)

## Get LinkedIn jobs without the scraper

The LinkedIn endpoint and the rest of the unified jobs API, on one key. The free tier is 1,000 jobs to start, and one credit is one job returned.

[Get a free API key](https://jobspipe.dev/signup)

LinkedIn is a trademark of LinkedIn Corporation. JobsPipe is an independent service and is not affiliated with, endorsed by or sponsored by LinkedIn Corporation. JobsPipe collects only job postings that are public without a login, and every record links back to the original posting. See how we collect on our [Trust Center](https://jobspipe.dev/trust).


## Further reading

- [Does LinkedIn have a jobs API?](https://jobspipe.dev/answers/does-linkedin-have-a-jobs-api)
- [Is There a LinkedIn Jobs API?](https://jobspipe.dev/guides/linkedin-jobs-api)
- [How to scrape LinkedIn jobs in Python (and the API that replaces it)](https://jobspipe.dev/blog/linkedin-job-scraper-python)
- [Does LinkedIn have an API?](https://jobspipe.dev/answers/does-linkedin-have-an-api)
- [Is LinkedIn API free?](https://jobspipe.dev/answers/is-the-linkedin-api-free)

---
Building this integration yourself? The steps above work. The alternative is one API over 30+ sources, already normalized and deduplicated. Try it right now - no key, no signup:

```bash
curl -d '{"limit":3}' https://api.jobspipe.dev/v1/sandbox/jobs/search
```

Sample data, exact live schema. For live data get a free key (1,000 jobs to start) at https://jobspipe.dev/signup, then swap /v1/sandbox/jobs/search for /v1/jobs/search with an Authorization: Bearer header. Full agent index: https://jobspipe.dev/llms.txt?src=md-twin