LinkedIn Learning API
Course data from LinkedIn Learning as structured JSON. Search by keyword, topic, level, length or the software a course teaches, and get back the catalogue rows — title, rating, review count, enrolment, instructor, duration. Switch on the detail pass and each course is opened in full — the table of contents lesson by lesson, the skills it claims to teach, the review text behind the rating, whether it carries a certificate, and which lessons are free. Useful for mapping what a platform teaches about a subject, and how well.
MEDIAN LAGon demand
FIELDS13
TOTAL USERS1
MONTHLY ACTIVE1
TOTAL RUNS22
SUCCESS (30D)100.0%
RATINGno ratings yet
LAST MODIFIED2026-09-03
PUBLISHED2026-08
Input parameters
| PARAMETER | TYPE | REQ | DEFAULT | DESCRIPTION |
|---|---|---|---|---|
| mode | string | yes | search | search finds courses by keyword with filters; details opens specific course URLs in full. |
| queries | array | no | — | Keywords to search, one per line. Each is searched separately and its results returned. |
| topics | array | no | — | Topic slugs or topic URLs to browse instead of searching. |
| sortBy | string | no | RELEVANCE | Most relevant, most recent, or most popular. |
| difficultyLevel | string | no | ANY | Keep only courses at one skill level. |
| entityType | string | no | ANY | Courses, single videos, or learning paths. |
| duration | string | no | ANY | Keep only courses in one length bracket. |
| softwareNames | array | no | — | Keep only courses teaching these tools, using the platform's own labels. |
| maxItems | integer | no | 50 | How many courses to return per query. The platform serves at most 50 per search, so more queries rather than a higher cap is how you widen coverage. — drives your bill |
| expandWithFilters | boolean | no | false | Re-run the same query across the platform's own filter combinations to reach past the 50-result ceiling. |
| enrichDetails | boolean | no | false | Open each course found by the search and return its full record. |
| courseUrls | array | no | — | Course, lesson or learning-path URLs to collect in full, for details mode. |
| maxConcurrency | integer | no | 5 | How many course pages to read at once. |
Output schema
| FIELD | TYPE | DESCRIPTION | NULLABLE |
|---|---|---|---|
| title | string | Course title | no |
| courseUrl | string | Canonical course URL, the stable key | no |
| difficultyLevel | string | Beginner, intermediate or advanced, as the platform labels it | yes |
| durationText | string | Stated course length | yes |
| ratingValue | number | Average learner rating | yes |
| ratingCount | integer | Number of ratings behind that average | yes |
| enrollmentCount | integer | Learners enrolled, where the platform publishes it | yes |
| lessonCount | integer | Lessons in the course | yes |
| instructors | array | Named instructors | yes |
| skills | array | Skills the course claims to teach, in details mode | yes |
| tableOfContents | array | The full syllabus lesson by lesson, in details mode | yes |
| reviews | array | Learner review text, in details mode | yes |
| hasCertificate | boolean | Whether the course issues a certificate | yes |
Code
Search a topic, with ratings
curl -X POST "https://api.apify.com/v2/acts/johnvc~linkedin-learning-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ "mode": "search", "queries": ["python"], "sortBy": "RELEVANCE", "maxItems": 50 }'
Full record for specific courses
curl -X POST "https://api.apify.com/v2/acts/johnvc~linkedin-learning-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ "mode": "details", "courseUrls": ["https://www.linkedin.com/learning/..."] }'
What people use it for
- Mapping what a platform teaches about a subject
- Benchmarking a course catalogue against a competitor's
- Building a skills taxonomy from published course metadata
- Finding the highest-rated courses for a named tool
- Learner sentiment analysis from review text
More sources for Transcripts, images and content pipelines, Competitor and market monitoring, Reviews and reputation monitoring →