LinkedIn Learning Course API
Get a LinkedIn Learning course from its URL: title, level, rating, duration, enrolments, instructors and the full syllabus.
- 1 credit per call
- Failed calls are free
- Updated
- linkedin.learning.course.get
{ "title": "Python Essential Training", "rating": 4.7, "published_at": "2023-01-25", "course_id": "18764650", "description": "Get a comprehensive overview of the Python programming language and gain enough command of Python 3 to create well-designed scripts and mai…", "duration": "PT4H23M9S", "duration_seconds": 15789, "enrollments": 645558, "language": "en", "level": "Beginner", "rating_count": 17471, "slug": "python-essential-training", "syllabus_count": 3, "instructors": [ { "headline": "O'Reilly / Wiley Author | LinkedIn Learning Instructor | Principal Software Engineer @ GLG" } ], "syllabus": [ { "name": "Getting started with Python", "description": "Meet the instructor and preview key topics in this course, including data types, control flow, classes, object-oriented programming, and mo…", "duration": "PT50S", "duration_seconds": 50 }, { "name": "Who this course is for", "description": "This course is for anyone who wants to learn programming. Basic computer skills are required.", "duration": "PT2M55S", "duration_seconds": 175 } ], "topics": [ "Python (Programming Language)" ]}
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| url | string | yes | LinkedIn Learning course URL. Topic, browse and search routes are rejected; only course pages are supported. | https://www.linkedin.com/learning/python-essent… |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| title | string | The course title. | Python Essential Training |
| rating | number | The course's average rating. | 4.7 |
| published_at | string | When the course was published. | 2023-01-25 |
| course_id | string | LinkedIn Learning's ID for the course. | 18764650 |
| description | string | The course description. | Get a comprehensive overview of the Python programming language… |
| duration | string | The course length. | PT4H23M9S |
| duration_seconds | integer | The course length in seconds. | 15,789 |
| enrollments | integer | How many people took the course. | 645,558 |
| instructors | array | The course's instructors. | 1 records |
| instructors[].headline | string | The instructor's headline. | O'Reilly / Wiley Author | LinkedIn Learning Instructor | Princi… |
| language | string | The course's language. | en |
| level | string | The course level, such as Beginner. | Beginner |
| rating_count | integer | How many ratings it has. | 17,471 |
| slug | string | The name in the course's address. | python-essential-training |
| syllabus | array | The course's chapters. | 3 records |
| syllabus[].description | string | What the chapter covers. | Meet the instructor and preview key topics in this course, incl… |
| syllabus[].duration | string | The chapter's length. | PT50S |
| syllabus[].duration_seconds | integer | The chapter's length in seconds. | 50 |
| syllabus[].name | string | The chapter's name. | Getting started with Python |
| syllabus_count | integer | How many chapters the course has. | 3 |
| topics | array | The course's topics. | Python (Programming Language) |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "linkedin.learning.course.get", "input": { "url": "https://www.linkedin.com/learning/python-essential-training-18764650" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "linkedin.learning.course.get", "input": { "url": "https://www.linkedin.com/learning/python-essential-training-18764650" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "linkedin.learning.course.get", "input": { "url": "https://www.linkedin.com/learning/python-essential-training-18764650" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
With Upscrape, get the LinkedIn learning course for https://www.linkedin.com/learning/python-essential-training-18764650. Tell me what it costs before you run it, then show the results as a table.
More from the LinkedIn API
- LinkedIn Profile API1 credit
- LinkedIn Company API1 credit
- LinkedIn Jobs Search API1 credit
- LinkedIn Job API1 credit
- LinkedIn Company Jobs API1 credit
- LinkedIn Company Posts API1–7 credits
- LinkedIn Post API1 credit
- LinkedIn Article API1 credit
- LinkedIn Newsletter API1 credit
- LinkedIn Post Transcript API1 credit
- LinkedIn Company Life Page API1 credit
- LinkedIn Showcase Page API1 credit
- LinkedIn Company Suggestions API1 credit
The same data from other platforms
LinkedIn Learning Course API FAQ
The short answers. The docs have the long ones.
How much does the LinkedIn Learning Course API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Send url. The input fields below list every option with its type and limits.
Do I need a LinkedIn login?
No. It reads public LinkedIn data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds linkedin.learning.course.get, checks its price and runs it with the same credits as the REST API.
Your first LinkedIn call is free.
Up to 100 free credits to start, no card needed.