---
title: "Search LinkedIn job postings"
method: GET
path: "/linkedin/jobs"
tags: ["LinkedIn"]
---

# Search LinkedIn job postings

`GET /linkedin/jobs`

## Request

- Base URL: `https://api.scrapefield.com/v1`
- URL: `https://api.scrapefield.com/v1/linkedin/jobs`
- Auth: one of:
  - HTTP bearer
  - none

Search LinkedIn job postings by keyword and location, with LinkedIn's own filters. Returns each posting's title, company, location, listed_at, URL, and workplace_type and easy_apply where the list shows them. employment_type, seniority_level, salary and description are null: linkedin/job gives them.

Costs 3 credits, whether the answer is fetched or served from cache. A failed call is refunded automatically.

## Query parameters

- `query` string, required
- `location` string
- `workplace_type` 'on-site' | 'hybrid' | 'remote'
- `posted_within` 'day' | 'week' | 'month'
- `employment_type` 'full-time' | 'part-time' | 'contract' | 'temporary' | 'internship'
- `experience_level` 'internship' | 'entry' | 'associate' | 'mid-senior' | 'director' | 'executive'
- `company_id` string
- `easy_apply` boolean
- `sort` 'relevance' | 'newest'
- `limit` integer
- `cursor` string
- `fresh` boolean
- `demo` boolean

## Response `200`

The request succeeded.

- object
  - `data` LinkedinJob[], required
    - `job_id` string, required: LinkedIn's numeric id — the number in `/jobs/view/…`.
    - `url` string, uri, required: The posting.
    - `title` string, nullable, required: As the listing prints it.
    - `company` object, required: Who is hiring.
      - `name` string, nullable, required: As the listing prints it.
      - `url` string, uri, nullable, required: The company page, where it has one.
    - `location` string, nullable, required: As printed, e.g. "Berlin, Germany".
    - `workplace_type` 'On-site' | 'Hybrid' | 'Remote' | 'null', nullable, required: Where the work is done, as LinkedIn labels it. `null` where the listing does not say.
    - `employment_type` string, nullable, required: "Full-time", "Part-time", "Contract", …
    - `seniority_level` string, nullable, required: "Entry level", "Mid-Senior level", …
    - `salary` string, nullable, required: As printed, where the posting shows one, e.g. "€70K/yr - €90K/yr".
    - `listed_at` string, date-time, nullable, required: When it was posted. `null` when the source does not say.
    - `easy_apply` boolean, nullable, required: Whether it takes applications on LinkedIn. `null` where the listing does not say.
    - `description` string, nullable, required: The full description, as text.
  - `meta` Meta, required
    - `request_id` string, required: Quote this if you contact support.
    - `credits_charged` integer, required: The endpoint's published cost. 0 for a demo answer, and for a list emptied because everyone in it asked not to be served. A failed call has no `meta`: it answers with an error, and is refunded.
    - `credits_remaining` integer
    - `cached` boolean, required
    - `fetched_at` string, date-time, required: When the data was actually fetched — the original time on a cache hit, so freshness is always visible.
    - `next_cursor` string, nullable, required: Pass as `cursor` for the next page. `null` on the last page. It lasts as long as the answer is cached.
    - `demo` boolean: Present, and true, on a demo answer (`?demo=true` with no key).
    - `note` string: On a demo answer: what it is, and what a live call costs.

## Other responses

- `400`: Something went wrong. `error.code` is stable; `error.message` says what to do next.
- `401`: Something went wrong. `error.code` is stable; `error.message` says what to do next.
- `403`: Something went wrong. `error.code` is stable; `error.message` says what to do next.
- `404`: Something went wrong. `error.code` is stable; `error.message` says what to do next.
- `429`: Something went wrong. `error.code` is stable; `error.message` says what to do next.
- `500`: Something went wrong. `error.code` is stable; `error.message` says what to do next.
- `501`: Something went wrong. `error.code` is stable; `error.message` says what to do next.
- `502`: Something went wrong. `error.code` is stable; `error.message` says what to do next.

---

[API](https://skmtc.dev/scrapefield/apis/scrapefield-api.md) · [All operations](https://skmtc.dev/scrapefield/apis/scrapefield-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrapefield/apis/scrapefield-api/revisions/cc5961ac63cf?raw)
