Teachable Scraper - Pay Per Result
Pricing
from $3.80 / 1,000 results
Teachable Scraper - Pay Per Result
Pay-per-result Teachable scraper. Only pay for data you get! Extract titles, prices, students, reviews, instructor profiles, curriculum, sales pages and testimonials from any Teachable school including custom domains.
Pricing
from $3.80 / 1,000 results
Rating
0.0
(0)
Developer

SilentFlow
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
by SilentFlow
Only pay for what you get. No compute costs, no proxy fees, no surprises. Just results.
Why Pay Per Result?
| Traditional Scraper | Pay Per Result |
|---|---|
| Pay for compute time | Pay only for data |
| Proxy costs extra | Proxies included |
| Failed runs cost money | No charge if it fails |
| Unpredictable costs | Know exactly what you'll pay |
What you get
Every course includes 30+ data points:
{"title": "Complete Python Masterclass","slug": "complete-python-masterclass","url": "https://school.teachable.com/p/complete-python-masterclass","description": "Learn Python from scratch with hands-on projects...","price": 197.00,"originalPrice": 497.00,"currency": "USD","isFree": false,"studentsCount": 12450,"reviewsCount": 342,"averageRating": 4.8,"lessonsCount": 156,"category": "Programming","instructorName": "John Smith","instructorBio": "Senior Python developer with 15 years of experience...","instructorAvatar": "https://...","thumbnail": "https://...","curriculum": [{"title": "Getting Started","lectures": [{ "title": "Welcome", "type": "video", "duration": "5:30" }]}],"testimonials": [{"author": "Jane Doe","content": "This course changed my career...","rating": 5.0}],"schoolName": "Python Academy","schoolUrl": "https://school.teachable.com","scrapedAt": "2024-06-01T12:00:00Z"}
Input parameters
Required (one of these)
| Parameter | Type | Description |
|---|---|---|
schoolUrls | array | Teachable school URLs to scrape all courses |
courseUrls | array | Direct URLs to specific course pages |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
scrapeDetails | boolean | true | Get full course data (descriptions, curriculum, reviews) |
scrapeSalesPage | boolean | false | Extract full sales page content |
maxItems | integer | 100 | Maximum courses to return |
Examples
Scrape a Teachable school
{"schoolUrls": [{ "url": "https://myschool.teachable.com" }],"scrapeDetails": true,"maxItems": 50}
Get specific courses
{"courseUrls": [{ "url": "https://school.teachable.com/p/python-course" },{ "url": "https://school.teachable.com/p/javascript-course" }],"scrapeDetails": true}
Quick overview (fast, no details)
{"schoolUrls": [{ "url": "https://school.teachable.com" }],"scrapeDetails": false,"maxItems": 200}
Integrations
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("silentflow/teachable-scraper-ppr").call(run_input={"schoolUrls": [{"url": "https://school.teachable.com"}],"scrapeDetails": True,"maxItems": 50})for course in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{course['title']}: ${course['price']}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('silentflow/teachable-scraper-ppr').call({schoolUrls: [{ url: 'https://school.teachable.com' }],scrapeDetails: true,maxItems: 50});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} courses`);
Tips for best results
- Use
maxItemswisely: Only request what you need - Disable details for speed:
scrapeDetails: falseis much faster - Custom domains work: Use any Teachable school URL
- Test first: Try with
maxItems: 3to verify your setup works
FAQ
Q: What if no courses are found? A: You pay nothing. Only successful results are charged.
Q: What if the run fails? A: You pay nothing. Failed runs don't charge you.
Q: Is there a minimum charge? A: No minimum. Get 1 course = pay for 1 course.
Q: Are proxy costs included? A: Yes! Proxies are included in the per-result price.
Q: Can I scrape any Teachable school?
A: Yes, both *.teachable.com subdomains and custom domains are supported.
Q: Does it access gated/paid content? A: No, only publicly available course information from sales pages.
When to use PPR vs Standard
| Use PPR when... | Use Standard when... |
|---|---|
| You need predictable costs | You're scraping thousands of courses |
| You want guaranteed results | You have Apify compute credits |
| You're testing or prototyping | You're running scheduled jobs |
| Budget is per-result focused | Budget is time-based |
Data fields
| Category | Fields |
|---|---|
| Course | title, slug, url, description, shortDescription |
| Pricing | price, originalPrice, currency, isFree |
| Stats | studentsCount, reviewsCount, averageRating, lessonsCount |
| Category | category, subCategory, tags |
| Instructor | instructorName, instructorBio, instructorAvatar, instructorTitle |
| Media | thumbnail, promoVideo, images |
| Curriculum | sections with lectures (title, type, duration) |
| Reviews | testimonials with author, content, rating |
| School | schoolName, schoolUrl |
| Meta | id, scrapedAt |
Support
Need help? We're here for you:
- Feature requests: Let us know what you need
- Custom solutions: Contact us for enterprise integrations or high-volume needs
Check out our other scrapers: SilentFlow on Apify
Remember: You only pay for results. No results = no charge.