ratemyprofessors.com APIratemyprofessors.com ↗
Access professor ratings, reviews, difficulty scores, and student tags from RateMyProfessors.com. Search by name, filter by school, and fetch full profiles.
curl -X GET 'https://api.parse.bot/scraper/32ad44ea-e63f-4810-a4fe-10e409452bae/search_professors?limit=5&query=Smith' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for professors by name and optionally filter by school. Returns a paginated list of matching professors with basic rating info.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return (up to 250) |
| queryrequired | string | Professor name to search for |
| school_id | string | Optional school ID (base64-encoded) to filter results by a specific school |
{
"type": "object",
"fields": {
"total": "integer total number of matching professors",
"professors": "array of professor summary objects with professor_id, full_name, legacy_id, department, school_name, avg_rating, num_ratings"
},
"sample": {
"data": {
"total": 10000,
"professors": [
{
"full_name": "Lisa Smithson",
"legacy_id": 1890311,
"avg_rating": 4,
"department": "Psychology",
"num_ratings": 196,
"school_name": "University of Alberta",
"professor_id": "VGVhY2hlci0xODkwMzEx"
}
]
},
"status": "success"
}
}About the ratemyprofessors.com API
This API exposes professor data from RateMyProfessors.com across 3 endpoints, covering aggregate scores, individual student reviews, course lists, and tag summaries. The search_professors endpoint lets you query by professor name and optionally narrow results to a specific school, while get_professor_details returns the full profile including recent comments, difficulty ratings, and top student-generated tags.
What the API Returns
The three endpoints cover the core professor data on RateMyProfessors.com. search_professors accepts a required query string and an optional school_id (base64-encoded), returning up to 250 matches per call. Each result includes professor_id, full_name, department, school_name, avg_rating, and num_ratings — enough to identify and compare professors before fetching a full profile.
Professor Profiles
get_professor_details accepts either a base64-encoded professor ID or a legacy numeric ID (auto-converted internally) and returns the complete profile. The aggregate_ratings object contains overall_avg_rating, total_num_ratings, would_take_again_percent, and avg_difficulty_rating. The courses_taught array lists each course code alongside how many ratings it has, and top_rating_tags shows student-generated labels with their occurrence counts.
Reviews and Convenience Lookup
The recent_reviews array on both detail endpoints includes per-review fields: comment, date, course_name, quality_rating, clarity_rating, difficulty_rating, would_take_again, and grad (indicating graduate-level). The third endpoint, get_professor_by_name, combines a search and a profile fetch into a single call — useful when you have a name but not an ID. It returns the full profile of the best match, or a stale_input signal when no match is found.
- Build a course-selection tool that surfaces a professor's
avg_difficulty_ratingandwould_take_again_percentalongside the syllabus. - Aggregate
top_rating_tagsacross a department to identify teaching patterns or common student concerns. - Track how a professor's
overall_avg_ratingandtotal_num_ratingschange over academic terms. - Filter
recent_reviewsbycourse_nameto show students reviews specific to the class they are considering. - Identify which courses in
courses_taughthave the most review volume for deeper per-course analysis. - Cross-reference
school_idfiltering insearch_professorsto build a school-specific professor directory with ratings. - Export
commenttext fromrecent_reviewsfor sentiment analysis on teaching quality by department.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does RateMyProfessors.com have an official public developer API?+
What does `get_professor_details` return that `search_professors` does not?+
search_professors returns summary-level fields: professor_id, full_name, department, school_name, avg_rating, and num_ratings. get_professor_details adds the full aggregate_ratings object, the courses_taught array with per-course review counts, top_rating_tags, and the recent_reviews array with individual student comments and per-review scores.How does school filtering work in the search endpoint?+
school_id parameter in search_professors and get_professor_by_name is a base64-encoded school identifier. When supplied, results are scoped to that institution. If omitted, the search runs across all schools in the RateMyProfessors database.