LinkedIn Learning Course & Learning Path Finder avatar

LinkedIn Learning Course & Learning Path Finder

Pricing

from $0.49 / 1,000 results

Go to Apify Store
LinkedIn Learning Course & Learning Path Finder

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

Nimbryxo-studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Features

Limited permissions

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

ModeWhat it needsWhat it returns
search (default)searchQueryCourses, learning paths or video chapters matching the query and filters
byUrlsurlsOne record per course, learning path, chapter or search URL
learningPathsnothingUp to 50 public learning paths, optionally enriched

Input

FieldTypeDefaultDescription
modeselectsearchsearch, byUrls or learningPaths
searchQuerytext-Keyword or skill. One query per line for several searches; each record is labelled with the query that found it. Required in search mode.
urlsURL list-Course, learning-path, chapter/lesson, topic or filtered search URLs. Required in URL mode.
maxResultsinteger50Records per query (or per URL list). 1-500.
difficultyLevelselectall levelsBEGINNER, INTERMEDIATE, ADVANCED
assetTypeselectCOURSECOURSE, LEARNING_PATH, VIDEO, or ALL
sortByselectRELEVANCERELEVANCE, POPULARITY (view count), RECENCY
durationselectany lengthUnder 10 min, 10-30 min, 30-60 min, 1-2 h, 2-3 h, 3+ h
softwaretext-One LinkedIn software label, e.g. Python, Microsoft Excel, SQL, ChatGPT
topictext-Extra words appended to every query to narrow it
includeDetailsbooleantrueOpen each record's public page for the full detail surface. Turn off for a faster catalog snapshot.
proxyConfigurationproxydirectOptional 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).

FieldNotes
title, descriptionCourse, path or chapter name and overview
id, courseIdStable slug id; courseId is the numeric slug suffix when present
courseUrl, sourceUrl, pathUrl, videoUrlCanonical public URLs
thumbnailUrlCover image (public, no Referer needed)
assetType, recordTypeCOURSE, LEARNING_PATH, VIDEO
languageContent language from the course page
difficultyLevelBEGINNER, INTERMEDIATE, ADVANCED
durationSeconds, durationFormatted, durationTotal length in seconds, e.g. 1h 54m, and rounded minutes
instructorName, instructorUrl, instructorFirst instructor (legacy fields)
instructorNames, instructorsAll listed instructors with profile and image URLs
viewerCountLinkedIn's historical enrollment count
ratingValue, ratingCountAggregate rating and number of ratings
skillsTaughtSkills LinkedIn lists under "Skills you'll gain"
topicsCatalog subject tags
categoryPathBreadcrumb path such as Technology > Software Development > Programming Languages
syllabusSection titles, durations and descriptions
chaptersChapter/lesson titles, URLs, durations, descriptions and free-preview flags
lessonCount, freeLessonCountCounts from the public chapter list
reviewsUp to 3 public reviews with rating, text, author name, job title, profile URL and date
certificate, certificateNameCompletion certificate when LinkedIn publishes it
providerName, accessModelCourse provider and access model (e.g. subscription)
learningPathCourses, courseCountOrdered member courses for learning paths
parentCourseTitle, parentCourseUrlParent course for video chapters
releaseDateISO release date
queryThe search query that produced the record
popularityScore, learnerCountLegacy 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 id and scrapedAt.

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=VIDEO returns individual lessons/chapters with a link to their parent course, which is what LinkedIn's guest catalog exposes.
  • Detail pages are extra requests. includeDetails=true reads one page per record. Use false for large scheduled snapshots or set a smaller maxResults.
  • 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 its 999 bot 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/ -q
apify run --purge --input-file input.json

The actor uses httpx only; no browser, no login, no cookie.