Catalog / LinkedIn

LinkedIn API

linkedin.com

Read-only live access to public LinkedIn profiles, activity, and public job postings. Job search and detail fields are limited to what LinkedIn exposes in unauthenticated HTML; LinkedIn may require sign-in or block a serving HTTP request.

  • Social & video
  • linkedin
  • profiles
  • activity
  • social
4 endpointsDocs updated

Endpoint health

Loading verification…

Connect your agent

Connect through MCP so your agent can find this API, read its docs, and call its endpoints.

Setup guide

Add the server from your terminal.

Claude Code · terminal
claude mcp add --transport http agent-data https://agent-data.motie.dev/mcp

In Claude Code, run /mcp, select agent-data, then Authenticate. Sign in to your agent-data account in the browser.

Then ask your agent to use the LinkedIn API for your task.

Call it over HTTP

Get an API key

Sign up free, generate an API key, and set it as AGENT_DATA_API_KEY in your environment. Your first 100 calls each month are free.

Search live public LinkedIn job cards with bounded offset pagination.

Keyword phrase used by LinkedIn's public job search.

Location phrase used by LinkedIn's public job search.

Optional parameters 4

Number of records to return from the public result window.

Zero-based offset within LinkedIn's currently exposed public result window.

Request LinkedIn's observed early-applicant filter.

Request LinkedIn's observed Easy Apply filter.

View call pricing
cURL · Search jobs
curl --request GET --get 'https://api.agent-data.dev/linkedin-com/v1/jobs/search' \
  --header "Authorization: Bearer $AGENT_DATA_API_KEY" \
  --data-urlencode 'keywords=software engineer' \
  --data-urlencode 'location=Seattle'

Endpoints

Inputs and response fields for every endpoint in this API.

GETSearch jobs/v1/jobs/search

Search live public LinkedIn job cards with bounded offset pagination.

Input

keywordsRequiredQuery · string

Keyword phrase used by LinkedIn's public job search.

Example: software engineer

locationRequiredQuery · string

Location phrase used by LinkedIn's public job search.

Example: Seattle

limitOptionalQuery · integer, min: 1, max: 60, default: 10

Number of records to return from the public result window.

Example: 10

offsetOptionalQuery · integer, min: 0, max: 60, default: 0

Zero-based offset within LinkedIn's currently exposed public result window.

Example: 0

early_applicantOptionalQuery · boolean, default: false

Request LinkedIn's observed early-applicant filter.

Example: false

easy_applyOptionalQuery · boolean, default: false

Request LinkedIn's observed Easy Apply filter.

Example: false

Response

itemsobject[]
items[].titlestring
items[].job_idstring
items[].job_urlstring (uri)
items[].summary?string | null
items[].employerstring
items[].locationstring
items[].posted_atstring
items[].posted_time?string | null
limitinteger
offsetinteger
keywordsstring
locationstring
total_hint?string | null
next_offset?integer | null

Fields marked ? are optional.

GETGet job details/v1/jobs/{job_ref}

Fetch live public details for one LinkedIn job posting.

Input

job_refRequiredPath · string

Numeric LinkedIn job ID or public /jobs/view/<id> URL. URL values may be URL-encoded by the caller.

Example: 4455931376

Response

titlestring
job_idstring
job_urlstring (uri)
employer?string | null
location?string | null
posted_at?string | null
seniority?string | null
descriptionstring
compensation?object | string | integer | number | null
application_url?string (uri) | null
employment_type?string | null
experience_months?integer | null

Fields marked ? are optional.

GETGet profile details/v1/profiles/details

Fetch live public profile details from LinkedIn's public HTML.

Input

profileRequiredQuery · string

LinkedIn /in/<identifier> URL or profile identifier.

Example: https://www.linkedin.com/in/satyanadella/

Response

namestring
about?string | null
headline?string | null
location?string | null
education?object[]
education[].degree?string | null
education[].schoolstring
education[].date_range?string | null
profile_urlstring (uri)
current_role?string | null
current_company?string | null
work_experience?object[]
work_experience[].role?string | null
work_experience[].company?string | null
work_experience[].location?string | null
work_experience[].date_range?string | null

Fields marked ? are optional.

GETGet profile activity/v1/profiles/activity

Fetch a cursor-paged slice of public profile activity from LinkedIn's public HTML.

Input

profileRequiredQuery · string

LinkedIn /in/<identifier> URL or profile identifier.

Example: https://www.linkedin.com/in/satyanadella/

cursorOptionalQuery · string | null

Opaque cursor returned as next_cursor for the next page.

Response

itemsobject[]
items[].textstring
items[].activity_idstring
items[].author_namestring
items[].activity_urlstring (uri)
items[].published_atstring
items[].activity_typestring
items[].author_profile_urlstring (uri)
next_cursor?string | null

Fields marked ? are optional.

For the next page, pass next_cursor from the response as cursor. Leave it empty on the first call.

Don’t see the endpoint you need?

Ask agent-data to add an endpoint or return more fields. Extensions are free and keep existing endpoints working.