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/jobLast 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
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
| Parameter | Required | Description |
|---|---|---|
| id | Yes | LinkedIn job ID. |
| include_skills | No | When true, include the job's required skills in `job.ext.skills`. |
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.
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
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(){
"success": true,
"platform": "tiktok",
"data": {
"author": {
"username": "charlidamelio",
"followers": 152400000
},
"engagement": {
"likes": 12400000000,
"engagement_rate": 0.087
},
"metadata": {
"language": "en",
"content_category": "lifestyle"
}
}
}Have a question? We got answers
Find answers to frequently asked questions about SocialCrawl's API, pricing, and capabilities.
Contact usHow do I get a single LinkedIn job posting with an API?
What fields does the LinkedIn job endpoint return?
Where do I get the job id this endpoint needs?
How do I include required skills on a job posting?
How much does the LinkedIn job endpoint cost?
Can I use this for job-market analysis?
Ask AI about SocialCrawl
Ready to scrape LinkedIn Job data?
Get your API key and start pulling LinkedIn data in under 60 seconds.
