Skillshare Courses Scraper
Pricing
Pay per usage
Skillshare Courses Scraper
Unlock valuable e-learning data! Instantly extract detailed course information from Skillshare, including titles, instructors, student counts, and reviews. Perfect for market research, trend analysis, or building educational catalogs. Get structured creative content data fast.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Shahid Irfan
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Skillshare Classes Scraper
Extract Skillshare class data at scale for research, analysis, and monitoring. Collect searchable class listings with instructor, rating, enrollment, duration, category tags, publishing dates, and metadata. Ideal for market intelligence, content planning, and competitive tracking.
Features
- Search and category collection - Collect classes by keyword or browse category.
- Scalable pagination - Gather up to your requested volume with automatic continuation.
- Rich class metadata - Capture class, teacher, review, and catalog metadata in one dataset.
- Structured output - Get clean records ready for BI tools, spreadsheets, and automation.
- Flexible start options - Start from a direct Skillshare URL or from search parameters.
Use Cases
Course Market Research
Track what topics, levels, and formats are performing in your niche. Compare class catalogs over time and identify demand shifts.
Competitor Monitoring
Follow instructor and class activity by keyword or category. Analyze publishing patterns, student volume, and review performance.
Content Strategy
Identify high-interest class topics and difficulty levels before planning your own content. Use tags and aspect details to map topic clusters.
Lead Qualification
Build targeted datasets of classes and instructors for outreach, partnerships, or educational product research.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | - | Direct Skillshare URL to start from. |
keyword | String | No | "AI" | Search term for classes. |
category | String | No | "ai-for-creativity-inspiration" | Skillshare browse category slug. |
results_wanted | Integer | No | 20 | Maximum classes to collect. |
max_pages | Integer | No | 10 | Safety cap for pagination depth. |
proxyConfiguration | Object | No | Residential proxy preset | Proxy settings for reliable collection. |
Additional accepted aliases for advanced runs:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | Array | No | - | Multiple direct start URLs. |
url | String | No | - | Alternative single start URL field. |
Output Data
Each dataset item can include the following fields:
| Field | Type | Description |
|---|---|---|
title | String | Class title. |
classId | String | Skillshare class identifier. |
sku | String | Class SKU value. |
instructor | String | Instructor display name. |
teacherId | String | Teacher identifier. |
teacherUsername | String | Teacher username. |
teacherVanityUsername | String | Teacher vanity username. |
teacherHeadline | String | Teacher headline or bio summary. |
teacherAvatarUrl | String | Teacher profile image URL. |
teacherIsTopTeacher | Boolean | Top teacher flag when available. |
rating | Number | Class rating value. |
reviewCount | String | Number of reviews. |
studentCount | Number | Number of enrolled students. |
durationInSeconds | Number | Class duration in seconds. |
duration | String | Human-readable duration. |
level | String | Class level label. |
sourceLanguage | String | Source language code. |
publishTime | String | Publish timestamp. |
lastUpdatedTime | String | Last update timestamp. |
introLessonId | String | Intro lesson identifier. |
hasSavedClass | Boolean | Viewer saved status when available. |
badgeTypes | Array | Class badge labels. |
tags | Array | Topic/category tags. |
aspectDetails | Array | Extended aspect objects with IDs and types. |
url | String | Class URL. |
imageUrl | String | Class cover image URL. |
description | String | Class description text. |
searchId | String | Search session ID (search runs). |
algorithmId | String/Null | Search algorithm identifier when present. |
searchCursor | String | Cursor for the current item batch. |
searchAfterCursor | String | Cursor used to fetch the batch. |
_source | String | Source label. |
_extractionMethod | String | Extraction method label. |
_apiOperation | String | Operation label for collected records. |
Usage Examples
Basic category collection
{"category": "ai-for-creativity-inspiration","results_wanted": 50}
Keyword search collection
{"keyword": "WordPress","results_wanted": 100,"max_pages": 5}
Direct URL collection with proxy configuration
{"startUrl": "https://www.skillshare.com/en/search/classes?query=design","results_wanted": 75,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"title": "How to Use Elementor: Build an Awesome WordPress Website, With No Code","classId": "eyJ0eXBlIjoiQ2xhc3MiLCJpZCI6IjQ5NTk4NSJ9","sku": "1045898965","instructor": "Jon Wolfgang Miller","teacherId": "eyJ0eXBlIjoiVGVhY2hlciIsImlkIjoiMTA1NDQxNSJ9","teacherUsername": "7335965","teacherVanityUsername": "jonwolfgangmiller","teacherHeadline": "Digital Graphic Designer","teacherAvatarUrl": "https://static.skillshare.com/uploads/users/7335965/user-image-small.jpg?191422118","teacherIsTopTeacher": false,"rating": 4.7,"reviewCount": "61","studentCount": 6483,"durationInSeconds": 12729,"duration": "3h 32m","level": "BEGINNER","sourceLanguage": "en-US","publishTime": "2021-04-08T10:00:14+00:00","lastUpdatedTime": "2025-12-19T05:41:42+00:00","introLessonId": "eyJ0eXBlIjoiQ2xhc3NMZXNzb24iLCJpZCI6IjUwMjY2MjIifQ==","hasSavedClass": false,"badgeTypes": [],"tags": ["WordPress", "Web Development"],"aspectDetails": [{"id": "eyJ0eXBlIjoiQ2F0ZWdvcnkiLCJpZCI6IjYzNTI4In0=","name": "WordPress","level": "3","facetType": "","typeName": "CategoryAspect"}],"url": "https://www.skillshare.com/en/classes/how-to-use-elementor-build-an-awesome-wordpress-website-with-no-code/1045898965","imageUrl": "https://static.skillshare.com/uploads/video/thumbnails/89a3f93444f88f743cf7ce984c5695fb/original","description": "The internet is a massive part of our lives...","searchId": "b9daac703ad7b08d5d42c53a497ef825","algorithmId": null,"searchCursor": "0","searchAfterCursor": "-1","_source": "skillshare.com","_extractionMethod": "internal-graphql-api","_apiOperation": "GetClassesQuery"}
Tips for Best Results
Start with realistic limits
- Begin with
results_wantedbetween20and100for quick validation. - Increase gradually for larger production runs.
Use stable start points
- Prefer clear keyword searches or known category slugs.
- Use
startUrlwhen you need exact control of the source page.
Improve reliability with proxies
- Residential proxies are recommended for more consistent collection.
- Keep pagination limits aligned with your data needs.
Validate output quality early
- Review the first dataset batch before scaling up.
- Confirm optional fields like ratings or badges for your target niche.
Proxy Configuration
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Integrations
Connect your dataset with:
- Google Sheets - Share and filter class data quickly.
- Airtable - Build searchable class and instructor databases.
- Looker Studio / BI tools - Visualize rating and enrollment trends.
- Make - Automate downstream enrichment workflows.
- Zapier - Trigger notifications and actions from new records.
- Webhooks - Send fresh items to custom endpoints.
Export Formats
- JSON - API and developer workflows.
- CSV - Spreadsheet analysis.
- Excel - Reporting and stakeholder sharing.
- XML - Legacy system ingestion.
Frequently Asked Questions
How many classes can I collect?
You can collect large volumes based on your results_wanted and max_pages settings.
Can I scrape by keyword and category?
Yes. You can search by keyword, browse by category, or use a direct startUrl.
Why are some fields empty for certain classes?
Some classes do not expose every optional field. Empty values are expected in those cases.
Can I track newly published classes?
Yes. Use publishTime and lastUpdatedTime to monitor freshness.
Does the actor support pagination automatically?
Yes. Pagination is handled automatically until limits are reached.
How do I make runs more reliable?
Use residential proxy settings and start with smaller test runs before scaling.
Support
For issues or feature requests, contact support through the Apify Console.
Resources
Legal Notice
This actor is designed for legitimate data collection purposes. You are responsible for complying with website terms and applicable laws in your jurisdiction. Use collected data responsibly.