LinkedIn Learning Course & Learning Path Finder
Pricing
from $0.49 / 1,000 results
LinkedIn Learning Course & Learning Path Finder
Search the LinkedIn Learning catalog by keyword for courses, learning paths or videos, with instructor, duration, difficulty, topics and skills taught. No login required.
Pricing
from $0.49 / 1,000 results
Rating
0.0
(0)
Developer
Nimbryxo-studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Features
Share
Read the public LinkedIn Learning catalog without an account, a subscription seat or a cookie. Search by keyword with LinkedIn's own filters, read specific course / learning-path / chapter URLs, or browse every learning path, and get structured records with instructor, duration, level, rating, learner count, skills, syllabus, reviews and certificate data.
What this actor does
- Searches the public catalog by keyword, with one query per line for batch runs.
- Uses LinkedIn's real filters: skill level, content type, time to complete, software label and sort order (best match, most viewed, newest).
- Collects past the 50-card guest page by re-running the query across LinkedIn's own filter slices and merging unique records.
- Reads detail pages for the full record: description, skills taught, syllabus sections, chapters, free-preview lessons, rating, rating count, learner count, provider, category path, reviews and certificate.
- Accepts URLs: individual courses, learning paths, video chapters, topic pages and filtered search URLs.
- Browses all learning paths from the public all-paths page.
- Skips LinkedIn's no-results fallback. When nothing matches, LinkedIn renders a page of unrelated popular courses; the actor detects that page and returns zero records with an explanation instead of fabricated relevance.
- Empty fields are omitted instead of writing nulls or sentinels.
Modes
| Mode | What it needs | What it returns |
|---|---|---|
search (default) | searchQuery | Courses, learning paths or video chapters matching the query and filters |
byUrls | urls | One record per course, learning path, chapter or search URL |
learningPaths | nothing | Up to 50 public learning paths, optionally enriched |
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | select | search | search, byUrls or learningPaths |
searchQuery | text | - | Keyword or skill. One query per line for several searches; each record is labelled with the query that found it. Required in search mode. |
urls | URL list | - | Course, learning-path, chapter/lesson, topic or filtered search URLs. Required in URL mode. |
maxResults | integer | 50 | Records per query (or per URL list). 1-500. |
difficultyLevel | select | all levels | BEGINNER, INTERMEDIATE, ADVANCED |
assetType | select | COURSE | COURSE, LEARNING_PATH, VIDEO, or ALL |
sortBy | select | RELEVANCE | RELEVANCE, POPULARITY (view count), RECENCY |
duration | select | any length | Under 10 min, 10-30 min, 30-60 min, 1-2 h, 2-3 h, 3+ h |
software | text | - | One LinkedIn software label, e.g. Python, Microsoft Excel, SQL, ChatGPT |
topic | text | - | Extra words appended to every query to narrow it |
includeDetails | boolean | true | Open each record's public page for the full detail surface. Turn off for a faster catalog snapshot. |
proxyConfiguration | proxy | direct | Optional override. The actor connects directly by default and only escalates to a datacenter proxy if LinkedIn blocks a request. |
Example: beginner Python courses, most viewed
{"mode": "search","searchQuery": "Python machine learning","difficultyLevel": "BEGINNER","assetType": "COURSE","sortBy": "POPULARITY","maxResults": 100}
Example: several skills in one run, card-only
{"mode": "search","searchQuery": "python\nleadership\nexcel","assetType": "ALL","maxResults": 50,"includeDetails": false}
Example: read specific URLs
{"mode": "byUrls","urls": [{"url": "https://www.linkedin.com/learning/python-essential-training-18764650"},{"url": "https://www.linkedin.com/learning/paths/getting-started-with-python"},{"url": "https://www.linkedin.com/learning/python-quick-start-22667553/starting-with-python"}]}
Output per record
Every record carries sourceUrl, scrapedAt and recordType (course, learningPath or video).
| Field | Notes |
|---|---|
title, description | Course, path or chapter name and overview |
id, courseId | Stable slug id; courseId is the numeric slug suffix when present |
courseUrl, sourceUrl, pathUrl, videoUrl | Canonical public URLs |
thumbnailUrl | Cover image (public, no Referer needed) |
assetType, recordType | COURSE, LEARNING_PATH, VIDEO |
language | Content language from the course page |
difficultyLevel | BEGINNER, INTERMEDIATE, ADVANCED |
durationSeconds, durationFormatted, duration | Total length in seconds, e.g. 1h 54m, and rounded minutes |
instructorName, instructorUrl, instructor | First instructor (legacy fields) |
instructorNames, instructors | All listed instructors with profile and image URLs |
viewerCount | LinkedIn's historical enrollment count |
ratingValue, ratingCount | Aggregate rating and number of ratings |
skillsTaught | Skills LinkedIn lists under "Skills you'll gain" |
topics | Catalog subject tags |
categoryPath | Breadcrumb path such as Technology > Software Development > Programming Languages |
syllabus | Section titles, durations and descriptions |
chapters | Chapter/lesson titles, URLs, durations, descriptions and free-preview flags |
lessonCount, freeLessonCount | Counts from the public chapter list |
reviews | Up to 3 public reviews with rating, text, author name, job title, profile URL and date |
certificate, certificateName | Completion certificate when LinkedIn publishes it |
providerName, accessModel | Course provider and access model (e.g. subscription) |
learningPathCourses, courseCount | Ordered member courses for learning paths |
parentCourseTitle, parentCourseUrl | Parent course for video chapters |
releaseDate | ISO release date |
query | The search query that produced the record |
popularityScore, learnerCount | Legacy aliases: rating value and rating count |
Fields that LinkedIn does not publish for a record are omitted. The actor never writes null, N/A, -1 or an empty string.
Use cases
- Curriculum planning - compare what already exists for a skill before building internal training.
- Skills-gap research - export the skills and catalog categories across many queries.
- Learning & development catalogs - build a searchable catalog with duration, level, provider and rating.
- Instructor discovery - find who teaches in a subject and which courses they lead.
- Free-preview planning - rank courses by how many lessons LinkedIn exposes for free.
- Catalog monitoring - schedule the same queries and compare snapshots by
idandscrapedAt.
Limitations
- 50 cards per query and filter slice. LinkedIn's guest catalog has no next-page control. The actor works around this by re-running the query across LinkedIn's own level, length and sort slices. On a broad course query this reached about 97% of the total LinkedIn reported (375 of 385 unique courses in testing); the run status says when a shortfall remains. Requesting more than the source exposes never invents rows.
- No content-language filter. LinkedIn's guest search has no language parameter; changing the locale only changes the page language. Each record still reports the course
language. - Three reviews. Course pages publish three review samples; the actor returns those, not the full review history.
- No instructor course-list page. Instructor profile pages do not expose a public course list without a login, so there is no instructor mode.
- Video records are chapters.
assetType=VIDEOreturns individual lessons/chapters with a link to their parent course, which is what LinkedIn's guest catalog exposes. - Detail pages are extra requests.
includeDetails=truereads one page per record. Usefalsefor large scheduled snapshots or set a smallermaxResults. - Instructor profile links. The profile URLs come from LinkedIn's public course data and open in a browser. LinkedIn sometimes answers a bare command-line request for
/in/...with its999bot check, so an automated HEAD check can fail even though the link is valid.
FAQ
Do I need a LinkedIn account, a Learning subscription or cookies? No. Every request reads a public page that a signed-out visitor can open. There is no cookie input and no login field.
Why did I get fewer records than maxResults?
Either LinkedIn's catalog has fewer matches for that query and filter, or the guest page stopped exposing more. The run status reports the shortfall; split the topic into narrower queries for wider coverage.
Why do some records have fewer fields? Not every public course page publishes every field. Skills, syllabus, reviews, certificate data and learner counts are optional on LinkedIn's side and are omitted when absent.
What is the difference between a course and a learning path? A course is one multi-lesson unit. A learning path is a curated sequence of courses; its record includes the ordered member courses.
What is the difference between a video and a course?
A video record is a single chapter or lesson inside a course, with parentCourseTitle and parentCourseUrl linking back to the course.
What is popularityScore?
It is the legacy name for LinkedIn's aggregate rating value. New integrations should use ratingValue; learnerCount is the legacy name for ratingCount, not the enrollment count. The enrollment count is viewerCount.
Does software accept more than one value?
LinkedIn applies only the first software label per request. Use one label per run; a second label in the same field is ignored by the source.
I used to set language. Is my saved task broken?
No. The old language field is still accepted for saved tasks, but it never changed LinkedIn's results. The run status explains that it is no longer a filter, and every enriched record reports the course's real language.
Is this affiliated with LinkedIn? No. It reads LinkedIn Learning's public catalog pages and is not operated or endorsed by LinkedIn.
Local development
python -m pytest tests/ -qapify run --purge --input-file input.json
The actor uses httpx only; no browser, no login, no cookie.