Skillshare Courses Scraper avatar

Skillshare Courses Scraper

Pricing

Pay per usage

Go to Apify Store
Skillshare Courses Scraper

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

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

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

ParameterTypeRequiredDefaultDescription
startUrlStringNo-Direct Skillshare URL to start from.
keywordStringNo"AI"Search term for classes.
categoryStringNo"ai-for-creativity-inspiration"Skillshare browse category slug.
results_wantedIntegerNo20Maximum classes to collect.
max_pagesIntegerNo10Safety cap for pagination depth.
proxyConfigurationObjectNoResidential proxy presetProxy settings for reliable collection.

Additional accepted aliases for advanced runs:

ParameterTypeRequiredDefaultDescription
startUrlsArrayNo-Multiple direct start URLs.
urlStringNo-Alternative single start URL field.

Output Data

Each dataset item can include the following fields:

FieldTypeDescription
titleStringClass title.
classIdStringSkillshare class identifier.
skuStringClass SKU value.
instructorStringInstructor display name.
teacherIdStringTeacher identifier.
teacherUsernameStringTeacher username.
teacherVanityUsernameStringTeacher vanity username.
teacherHeadlineStringTeacher headline or bio summary.
teacherAvatarUrlStringTeacher profile image URL.
teacherIsTopTeacherBooleanTop teacher flag when available.
ratingNumberClass rating value.
reviewCountStringNumber of reviews.
studentCountNumberNumber of enrolled students.
durationInSecondsNumberClass duration in seconds.
durationStringHuman-readable duration.
levelStringClass level label.
sourceLanguageStringSource language code.
publishTimeStringPublish timestamp.
lastUpdatedTimeStringLast update timestamp.
introLessonIdStringIntro lesson identifier.
hasSavedClassBooleanViewer saved status when available.
badgeTypesArrayClass badge labels.
tagsArrayTopic/category tags.
aspectDetailsArrayExtended aspect objects with IDs and types.
urlStringClass URL.
imageUrlStringClass cover image URL.
descriptionStringClass description text.
searchIdStringSearch session ID (search runs).
algorithmIdString/NullSearch algorithm identifier when present.
searchCursorStringCursor for the current item batch.
searchAfterCursorStringCursor used to fetch the batch.
_sourceStringSource label.
_extractionMethodStringExtraction method label.
_apiOperationStringOperation 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_wanted between 20 and 100 for quick validation.
  • Increase gradually for larger production runs.

Use stable start points

  • Prefer clear keyword searches or known category slugs.
  • Use startUrl when 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


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.