RateMyProfessors Scraper - Professor Ratings & Reviews
Pricing
from $5.00 / 1,000 results
Go to Apify Store
RateMyProfessors Scraper - Professor Ratings & Reviews
Search RateMyProfessors for professor ratings, difficulty scores, and reviews by name or school. Extract avg rating, difficulty, would-take-again %, department, and school info. Uses the public GraphQL API.
RateMyProfessors Scraper
Scrape professor ratings, difficulty scores, reviews, and tags from RateMyProfessors via their public GraphQL API.
Features
- Multi-query search: Search by professor name, subject, or keyword
- School filter: Narrow results to a specific university
- Individual ratings: Optionally scrape student reviews with comment text
- Top tags: Professor tags sorted by frequency (e.g., "Caring", "Tough Grader")
- Pay per result: Only pay for the data you actually get
Input
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | string[] | ["computer science"] | Professor names or subjects to search |
schoolName | string | "" | Filter by school name (e.g., "MIT", "UCLA") |
maxListings | integer | 50 | Maximum professor profiles to return (max 1000) |
scrapeDetails | boolean | false | Fetch individual ratings/reviews per professor |
proxyConfiguration | object | - | Optional proxy settings |
Example Input
{"searchQueries": ["computer science", "Dr. Smith"],"schoolName": "MIT","maxListings": 25,"scrapeDetails": true}
Output
Each result contains:
| Field | Type | Description |
|---|---|---|
firstName | string | Professor's first name |
lastName | string | Professor's last name |
department | string | Academic department |
schoolName | string | University/college name |
avgRating | number | Average quality rating (0-5) |
numRatings | number | Total number of student ratings |
wouldTakeAgainPercent | number | Percentage who would retake |
avgDifficulty | number | Average difficulty rating (0-5) |
topTags | string[] | Professor tags sorted by frequency |
ratings | object[] | Individual student reviews (when scrapeDetails is true) |
sourceUrl | string | Direct link to professor's RMP profile |
scrapedAt | string | ISO timestamp of data collection |
Example Output
{"firstName": "John","lastName": "Smith","department": "Computer Science","schoolName": "Massachusetts Institute of Technology","avgRating": 4.5,"numRatings": 42,"wouldTakeAgainPercent": 89,"avgDifficulty": 3.2,"topTags": ["Caring", "Gives Good Feedback", "Inspirational"],"ratings": [{"comment": "Great professor, very clear lectures.","date": "2024-01-15 12:00:00 +0000 UTC","class": "CS101","helpfulRating": 5,"clarityRating": 5,"difficultyRating": 3,"grade": "A","thumbsUp": 12,"thumbsDown": 1}],"sourceUrl": "https://www.ratemyprofessors.com/professor/12345","scrapedAt": "2026-04-26T12:00:00.000Z"}
Use Cases
- Students: Compare professors before registering for classes
- Academic research: Analyze teaching quality patterns across departments
- University analytics: Benchmark faculty ratings against peer institutions
- EdTech products: Power professor comparison and course planning tools
Cost
This Actor uses pay-per-event pricing. You are charged $0.005 per result returned.
Limitations
- The RMP API returns a maximum of ~10,000 results per search query
- Individual ratings are limited to the 20 most recent per professor
- School name matching uses fuzzy search; use the full official name for best results
Run on Apify
This scraper runs on the Apify platform. Sign up for a free account to get started.
Related Scrapers
More data tools by lulzasaur:
- Google Scholar Scraper -- Academic paper data
- Coursera Scraper -- Online course data
- Goodreads Scraper -- Book ratings and reviews