100 free credits. No credit card required.Start building
Logo
LinkedIn logo
100 free credits. No credit card required

LinkedIn Job API

Returns one LinkedIn job posting in full: title, hiring company, location, posting date, the job description text, and the Easy Apply flag.

GET /v1/linkedin/job

Last updated November 2026Maintained by the SocialCrawl team

When to use the LinkedIn Job API

Use it after search/jobs or company/jobs, passing a job id from those lists to read the complete description.

From the API reference

Returns one LinkedIn job posting: title, description, location, employment type, apply URL, listing date and the hiring company. When the primary source is momentarily rate-limited (and include_skills is not set), a second source answers with the same job, but job.remote, job.experience_level and job.ext.applicant_count are null, and data._warnings says so.

Searching 69 platforms in parallel

·TikTok logoTikTok·Instagram logoInstagram·YouTube logoYouTube·Facebook logoFacebook·X logoX·LinkedIn logoLinkedIn·Reddit logoReddit·Threads logoThreads·Pinterest logoPinterest·Twitch logoTwitch·Truth Social logoTruth Social·Snapchat logoSnapchat·Kick logoKick·Bluesky logoBluesky·Kwai logoKwai·Rumble logoRumble·Spotify logoSpotify·Apple Music logoApple Music·TikTok Shop logoTikTok Shop·Amazon Shop logoAmazon Shop·Google Shopping logoGoogle Shopping·Trustpilot logoTrustpilot·TripAdvisor logoTripAdvisor·Yelp logoYelp·Linktree logoLinktree·Komi logoKomi·Pillar logoPillar·lnk.bio logolnk.bio·Facebook Ads logoFacebook Ads·Google Ads logoGoogle Ads·LinkedIn Ads logoLinkedIn Ads·Google Search logoGoogle Search·Google News logoGoogle News·Finance logoFinance·Polymarket logoPolymarket·Tavily logoTavily·Hacker News logoHacker News·GitHub logoGitHub·Perplexity logoPerplexity·Naver logoNaver·Utility logoUtility·Universal Search logoUniversal Search
·TikTok logoTikTok·Instagram logoInstagram·YouTube logoYouTube·Facebook logoFacebook·X logoX·LinkedIn logoLinkedIn·Reddit logoReddit·Threads logoThreads·Pinterest logoPinterest·Twitch logoTwitch·Truth Social logoTruth Social·Snapchat logoSnapchat·Kick logoKick·Bluesky logoBluesky·Kwai logoKwai·Rumble logoRumble·Spotify logoSpotify·Apple Music logoApple Music·TikTok Shop logoTikTok Shop·Amazon Shop logoAmazon Shop·Google Shopping logoGoogle Shopping·Trustpilot logoTrustpilot·TripAdvisor logoTripAdvisor·Yelp logoYelp·Linktree logoLinktree·Komi logoKomi·Pillar logoPillar·lnk.bio logolnk.bio·Facebook Ads logoFacebook Ads·Google Ads logoGoogle Ads·LinkedIn Ads logoLinkedIn Ads·Google Search logoGoogle Search·Google News logoGoogle News·Finance logoFinance·Polymarket logoPolymarket·Tavily logoTavily·Hacker News logoHacker News·GitHub logoGitHub·Perplexity logoPerplexity·Naver logoNaver·Utility logoUtility·Universal Search logoUniversal Search
·TikTok logoTikTok·Instagram logoInstagram·YouTube logoYouTube·Facebook logoFacebook·X logoX·LinkedIn logoLinkedIn·Reddit logoReddit·Threads logoThreads·Pinterest logoPinterest·Twitch logoTwitch·Truth Social logoTruth Social·Snapchat logoSnapchat·Kick logoKick·Bluesky logoBluesky·Kwai logoKwai·Rumble logoRumble·Spotify logoSpotify·Apple Music logoApple Music·TikTok Shop logoTikTok Shop·Amazon Shop logoAmazon Shop·Google Shopping logoGoogle Shopping·Trustpilot logoTrustpilot·TripAdvisor logoTripAdvisor·Yelp logoYelp·Linktree logoLinktree·Komi logoKomi·Pillar logoPillar·lnk.bio logolnk.bio·Facebook Ads logoFacebook Ads·Google Ads logoGoogle Ads·LinkedIn Ads logoLinkedIn Ads·Google Search logoGoogle Search·Google News logoGoogle News·Finance logoFinance·Polymarket logoPolymarket·Tavily logoTavily·Hacker News logoHacker News·GitHub logoGitHub·Perplexity logoPerplexity·Naver logoNaver·Utility logoUtility·Universal Search logoUniversal Search
·TikTok logoTikTok·Instagram logoInstagram·YouTube logoYouTube·Facebook logoFacebook·X logoX·LinkedIn logoLinkedIn·Reddit logoReddit·Threads logoThreads·Pinterest logoPinterest·Twitch logoTwitch·Truth Social logoTruth Social·Snapchat logoSnapchat·Kick logoKick·Bluesky logoBluesky·Kwai logoKwai·Rumble logoRumble·Spotify logoSpotify·Apple Music logoApple Music·TikTok Shop logoTikTok Shop·Amazon Shop logoAmazon Shop·Google Shopping logoGoogle Shopping·Trustpilot logoTrustpilot·TripAdvisor logoTripAdvisor·Yelp logoYelp·Linktree logoLinktree·Komi logoKomi·Pillar logoPillar·lnk.bio logolnk.bio·Facebook Ads logoFacebook Ads·Google Ads logoGoogle Ads·LinkedIn Ads logoLinkedIn Ads·Google Search logoGoogle Search·Google News logoGoogle News·Finance logoFinance·Polymarket logoPolymarket·Tavily logoTavily·Hacker News logoHacker News·GitHub logoGitHub·Perplexity logoPerplexity·Naver logoNaver·Utility logoUtility·Universal Search logoUniversal Search
LinkedIn API

What can you do with the Job API?

The Job endpoint gives you structured LinkedIn data with computed fields in a single request. No scraping infrastructure to build or maintain.

Example Request

# GET /v1/linkedin/job: 5 credits per call. Cache hits are free and failed calls are refunded.
# Check the price first for 0 credits: add dry_run=1 to the query. Nothing is fetched or charged.
# --max-time 60: the API's own time limit for this endpoint.
# --retry 3: retries timeouts, 429 and 5xx, honoring Retry-After.
# -o response.json keeps only the final attempt's body.
# One Idempotency-Key per request, reused on every retry, so a retried call is never charged twice.
IDEMPOTENCY_KEY=$(od -An -N16 -tx1 /dev/urandom | tr -d ' \n')
curl -sS --max-time 60 --retry 3 -o response.json \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  "https://www.socialcrawl.dev/v1/linkedin/job?id=4462185352" && cat response.json
# GET /v1/linkedin/job: 5 credits per call. Cache hits are free and failed calls are refunded.
# Check the price first for 0 credits: add dry_run=1 to the query. Nothing is fetched or charged.
import os
import random
import time
import uuid

import requests

API_KEY = os.environ.get("SOCIALCRAWL_API_KEY", "YOUR_API_KEY")
TIMEOUT_S = 60  # the API's own time limit for this endpoint.
MAX_RETRIES = 3
URL = "https://www.socialcrawl.dev/v1/linkedin/job"


def backoff(attempt):
    # Exponential backoff with jitter: about 1 s, 2 s, then 4 s.
    return 2 ** attempt * (0.5 + random.random() / 2)


def socialcrawl(params):
    # One Idempotency-Key per request, reused on every retry, so a retried call is never charged twice.
    idempotency_key = str(uuid.uuid4())
    for attempt in range(MAX_RETRIES + 1):
        try:
            res = requests.get(
                URL,
                params=params,
                headers={"x-api-key": API_KEY, "Idempotency-Key": idempotency_key},
                timeout=TIMEOUT_S,
            )
            body = res.json()
        except (requests.RequestException, ValueError):
            # A timeout, a dropped connection or a non-JSON gateway page: retry with the same key.
            if attempt == MAX_RETRIES:
                raise
            time.sleep(backoff(attempt))
            continue
        if body["success"]:
            return body
        error = body["error"]
        # Branch on error["type"], never on the message text.
        if error["type"] == "RESOURCE_NOT_FOUND":
            return None  # refunded: nothing to read
        retry_after = res.headers.get("Retry-After")
        # SERVICE_UNAVAILABLE without Retry-After is a withdrawn endpoint: permanent.
        permanent = error["type"] == "SERVICE_UNAVAILABLE" and retry_after is None
        if not error.get("retryable") or permanent or attempt == MAX_RETRIES:
            raise RuntimeError(f"{error['type']}: {error['message']} (request_id {body['request_id']})")
        # Retry-After (seconds) wins; otherwise back off.
        time.sleep(float(retry_after) if retry_after else backoff(attempt))


params = {
    "id": "4462185352",
}
body = socialcrawl(params)
if body is not None:
    print(body["data"])
// GET /v1/linkedin/job: 5 credits per call. Cache hits are free and failed calls are refunded.
// Check the price first for 0 credits: add dry_run=1 to the query. Nothing is fetched or charged.
const API_KEY = process.env.SOCIALCRAWL_API_KEY ?? "YOUR_API_KEY";
const TIMEOUT_MS = 60_000; // the API's own time limit for this endpoint.
const MAX_RETRIES = 3;

type Page = { next_cursor: string | null; has_more: boolean };
type SocialCrawlResponse =
  | { success: true; data: any; pagination?: Page; credits_used: number; request_id: string }
  | { success: false; error: { type: string; message: string; retryable: boolean }; request_id: string };

const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
// Exponential backoff with jitter: about 1 s, 2 s, then 4 s.
const backoffMs = (attempt: number) => 2 ** attempt * 1000 * (0.5 + Math.random() / 2);

async function socialcrawl(url: URL) {
  // One Idempotency-Key per request, reused on every retry, so a retried call is never charged twice.
  const idempotencyKey = crypto.randomUUID();
  for (let attempt = 0; ; attempt++) {
    let res: Response;
    let body: SocialCrawlResponse;
    try {
      res = await fetch(url, {
        headers: {
          "x-api-key": API_KEY,
          "Idempotency-Key": idempotencyKey,
        },
        signal: AbortSignal.timeout(TIMEOUT_MS),
      });
      body = (await res.json()) as SocialCrawlResponse;
    } catch (error) {
      // A timeout, a dropped connection or a non-JSON gateway page: retry with the same key.
      if (attempt >= MAX_RETRIES) throw error;
      await sleep(backoffMs(attempt));
      continue;
    }
    if (body.success) return body;
    // Branch on error.type, never on the message text.
    if (body.error.type === "RESOURCE_NOT_FOUND") return null; // refunded: nothing to read
    const retryAfter = res.headers.get("Retry-After");
    // SERVICE_UNAVAILABLE without Retry-After is a withdrawn endpoint: permanent.
    const permanent = body.error.type === "SERVICE_UNAVAILABLE" && retryAfter === null;
    if (!body.error.retryable || permanent || attempt >= MAX_RETRIES) {
      throw new Error(`${body.error.type}: ${body.error.message} (request_id ${body.request_id})`);
    }
    // Retry-After (seconds) wins; otherwise back off.
    await sleep(retryAfter ? Number(retryAfter) * 1000 : backoffMs(attempt));
  }
}

const url = new URL("https://www.socialcrawl.dev/v1/linkedin/job");
url.searchParams.set("id", "4462185352");

const body = await socialcrawl(url);
if (body) console.log(body.data);

Parameters

ParameterRequiredDescription
idYesLinkedIn job ID.
include_skillsNoWhen true, include the job's required skills in `job.ext.skills`.
Example Response

What does the LinkedIn Job API return?

Every response follows one unified schema. Here is a real, unmodified response body, so you can see the exact fields you get back before spending a credit.

Example response
{
  "success": true,
  "platform": "linkedin",
  "endpoint": "/v1/linkedin/job",
  "data": {
    "job": {
      "id": "4462185352",
      "title": "Customer Success Account Manager",
      "url": "https://www.linkedin.com/jobs/view/4462185352",
      "company": {
        "id": "1035",
        "name": "Microsoft",
        "url": "https://www.linkedin.com/company/microsoft",
        "verified": null
      },
      "location": "Jordan",
      "listed_at": "2026-09-02T12:44:58.000Z",
      "easy_apply": null,
      "remote": "Hybrid",
      "employment_type": "Full-time",
      "experience_level": null,
      "description": "Overview\n\nAs a Customer Success Account Manager (CSAM), you will serve as a trusted advisor to enterprise customers, helping them realize business value from their Microsoft technology investments. You will lead customer engagement strategies focused on cloud adoption, digital transformation, AI innovation, operational excellence, and business outcomes.The CSAM partners closely with customer executives, technical stakeholders, sales teams, solution specialists, and partners to accelerate solution deployment, increase consumption, and identify opportunities for expansion. This role combines customer success leadership, strategic account management, and business growth responsibilities, ensuring customers achieve measurable value while advancing their cloud transformation journey.\n\nCustomer Success & Relationship Management\n\nExecutive stakeholder management and influencing skillsTrusted advisor and consultative engagement approachCustomer success planning and value realizationStrategic account managementChange management and adoption leadershipCross-functional leadership and orchestration\n\nCloud & Digital Transformation\n\nUnderstanding of cloud technologies, AI solutions, cybersecurity, and digital transformation trendsAbility to connect technology strategies to business outcomesTechnical aptitude and ability to engage both business and technical audiencesData-driven decision making and business analytics\n\nBusiness Growth & Pipeline Development\n\nOpportunity identification and qualificationConsumption-driven growth planningPipeline generation and opportunity accelerationBusiness case development and value articulationCommercial acumen and financial understandingAccount planning and growth strategy execution\n\nLeadership Competencies\n\nStrategic thinkingProblem solvingNegotiation and influenceExecutive communication and storytellingCollaboration across sales, technical, partner, and delivery organizationsCustomer-centric mindset with strong accountability for outcomes \n\nResponsibilities\n\nCustomer Success Leadership\n\nBuild and maintain trusted relationships with customer executives and key stakeholders.Develop and execute Customer Success Plans aligned to customer business priorities.Drive adoption, usage growth, and business value realization across Microsoft cloud solutions.Lead executive business reviews and strategic customer engagements.Proactively identify risks and develop mitigation plans to support customer success.\n\nCloud Transformation & Business Outcomes\n\nHelp customers accelerate their cloud, security, data, AI, and workplace transformation initiatives.Ensure successful deployment, adoption, and long-term realization of solution value.Connect business objectives with technology capabilities to drive measurable outcomes.Advocate for customer needs and influence internal teams to deliver exceptional customer experiences.\n\nGrowth & Pipeline Accountability\n\nIdentify expansion opportunities through customer engagement, adoption insights, and business planning discussions.Partner with sales teams to develop and accelerate cloud growth opportunities.Contribute to pipeline generation by uncovering new business needs, transformation initiatives, and innovation opportunities.Align customer success strategies with broader account growth plans.Support opportunity progression from business value discussions through solution adoption and expansion.\n\nCross-Functional Collaboration\n\nCoordinate resources across sales, technical, consulting, support, and partner teams.Drive alignment between customer priorities and Microsoft solution strategies.Foster a collaborative environment focused on customer outcomes and long-term growth.\n\nQualifications\n\nRequired Qualifications\n\nBachelor's Degree in Business, Information Technology, Computer Science, Engineering, or related field, or equivalent practical experience.Several years of experience in customer success, account management, consulting, cloud solutions, enterprise technology, or related customer-facing roles.Experience engaging with senior business and technical stakeholders.Demonstrated ability to drive customer outcomes and manage complex stakeholder environments.\n\nPreferred Qualifications\n\nExperience in cloud computing, AI, cybersecurity, data, or digital transformation solutions.Proven success driving technology adoption, business value realization, and customer growth.Experience identifying and developing business opportunities within existing customer relationships.Strong understanding of enterprise sales motions and customer lifecycle management.Relevant industry certifications in cloud, cybersecurity, project management, or customer success disciplines.\n\nThis position will be open for a minimum of 5 days, with applications accepted on an ongoing basis until the position is filled.\n\nMicrosoft is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to age, ancestry, citizenship, color, family or medical care leave, gender identity or expression, genetic information, immigration status, marital status, medical condition, national origin, physical or mental disability, political affiliation, protected veteran or military status, race, ethnicity, religion, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable local laws, regulations and ordinances. If you need assistance with religious accommodations and/or a reasonable accommodation due to a disability during the application process, read more about requesting accommodations.",
      "apply_url": "https://apply.careers.microsoft.com/careers/job/1970393556978275?utm_source=linkedin&domain=microsoft.com&src=LinkedIn",
      "ext": {
        "is_promote": null,
        "applicant_count": 0,
        "skills": null
      }
    }
  },
  "credits_used": 5,
  "request_id": "req_example000000",
  "cached": false,
  "credits_remaining": 9999,
  "redacted": true
}

Live sample illustrating the unified response shape. Field values reflect the record you query.

API Details

How does the LinkedIn Job API work?

Send a GET request with your API key and get back clean, structured JSON in our unified schema. Supported computed fields are populated when the source provides the required inputs.

Method

GET

Response

JSON

Why SocialCrawl

Why use SocialCrawl for LinkedIn Job data?

We handle the complexity of LinkedIn data extraction so you can focus on building. Unified schema, AI enrichment, and zero platform logic in your code.

Developer First

How do you scrape social media data in seconds?

The fastest social media scraping API for developers. Scrape profiles, posts, comments, and analytics from 69 platforms covering 10B+ monthly active users.

One schema, every platform

Query 69 platforms with identical response structures. Write your integration once.

Computed fields, not just scraped

When an endpoint supports these metrics and the source provides the required inputs, the normalized record includes engagement_rate, estimated_reach, content_category, and language. Ready to use.

See your data before you code

Visual Data Explorer. Paste any URL, get rich result cards, sortable tables, CSV export.

import requests

response = requests.get(
    'https://www.socialcrawl.dev/v1/tiktok/profile',
    params={'handle': 'charlidamelio'},
    headers={'x-api-key': 'sc_YOUR_API_KEY'}
)
data = response.json()
[ .JSON ]
{
  "success": true,
  "platform": "tiktok",
  "data": {
    "author": {
      "username": "charlidamelio",
      "followers": 152400000
    },
    "engagement": {
      "likes": 12400000000,
      "engagement_rate": 0.087
    },
    "metadata": {
      "language": "en",
      "content_category": "lifestyle"
    }
  }
}
+ 69 platforms
FAQ

Have a question? We got answers

Find answers to frequently asked questions about SocialCrawl's API, pricing, and capabilities.

Contact us
How do I get a single LinkedIn job posting with an API?
Send a GET request to /v1/linkedin/job with a LinkedIn job id in the id parameter. The response is a single object with the full posting: title, company, location, description, seniority, and employment type.
What fields does the LinkedIn job endpoint return?
The job title, hiring company, location, full description text, seniority level, and employment type (full-time, part-time, contract, and so on). Add the optional include_skills parameter to also get the skills the posting lists.
Where do I get the job id this endpoint needs?
The job id comes from /v1/linkedin/company/jobs: each posting in that list carries a job id. Pass that id here to expand a single role into its full detail. The id also appears in the numeric part of a LinkedIn job URL.
How do I include required skills on a job posting?
Add the optional include_skills parameter to your request. When set, the response includes the skills the job posting lists, which is useful for matching candidates, building skill taxonomies, or analyzing hiring demand by skill.
How much does the LinkedIn job endpoint cost?
Each request costs 5 credits on the advanced tier, and the response is one posting per call. New accounts get 100 free credits with no credit card, enough for 20 job-detail lookups before you ever need to upgrade.
Can I use this for job-market analysis?
Yes, expanding postings into full detail is a common job-market and talent-intelligence use case. Combine it with /v1/linkedin/company/jobs to walk a company's roles, then pull descriptions and skills to analyze demand, seniority mix, and remote share.

Ask AI about SocialCrawl

Ready to scrape LinkedIn Job data?

Get your API key and start pulling LinkedIn data in under 60 seconds.

Start for free

🤖 AI agent or LLM? Read this page as markdown