Superprof APIsuperprof.com ↗
Search Superprof tutors by subject and city, fetch full profiles with ratings, reviews, pricing, and lesson details via 3 structured API endpoints.
What is the Superprof API?
The Superprof API exposes 3 endpoints that let you search tutors by subject and location, retrieve detailed tutor profiles, and pull featured ambassador-level tutors from the platform. The search_tutors endpoint returns structured tutor cards including hourly rate, rating, review count, and profile URL. Profile data via get_tutor_profile goes deeper with about text, subjects taught, lesson methodology, and individual review content.
curl -X GET 'https://api.parse.bot/scraper/ca464fbe-2b08-49f6-9b00-6f69b3527c01/search_tutors?city=new-york&subject=mathematics' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace superprof-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Superprof SDK — search tutors, inspect profiles, handle errors."""
from parse_apis.superprof_scraper_api import Superprof, TutorNotFound
client = Superprof()
# Search for math tutors in New York — limit caps total items fetched.
for tutor in client.tutorsummaries.search(subject="mathematics", city="new-york", limit=5):
print(tutor.first_name, tutor.hourly_rate, tutor.rating)
# Drill-down: take one tutor summary, then navigate to their full profile.
summary = client.tutorsummaries.featured(limit=1).first()
if summary:
profile = summary.details()
print(profile.first_name, profile.headline, profile.subjects)
for review in profile.reviews[:3]:
print(review.reviewer_name, review.text)
# Direct fetch by slug when you already know it.
try:
tutor = client.tutors.get(slug="need-help-math-statistics-algebra-data-analysis-probability-geometry-calculus-learn-from-experienced-tutor-spss")
print(tutor.first_name, tutor.hourly_rate, tutor.about_me[:80] if tutor.about_me else "")
except TutorNotFound as exc:
print(f"Tutor not found: {exc}")
print("exercised: tutorsummaries.search / tutorsummaries.featured / summary.details / tutors.get")Search for tutors by subject and city on Superprof. Returns tutor cards with name, rating, hourly rate, and profile URL. Results are from the first page of the listing; pagination is not available. The city and subject are URL slugs (lowercase, hyphens for spaces).
| Param | Type | Description |
|---|---|---|
| city | string | City or region as a URL slug (e.g. 'new-york', 'los-angeles', 'united-states'). Spaces replaced with hyphens. |
| subject | string | Tutoring subject as a URL slug (e.g. 'mathematics', 'english', 'piano', 'chemistry'). Spaces replaced with hyphens. |
{
"type": "object",
"fields": {
"tutors": "array of tutor summary objects with profile_url, first_name, location, rating, review_count, status, full_title, hourly_rate, first_lesson_free",
"total_results": "integer count of tutors returned"
},
"sample": {
"data": {
"tutors": [
{
"rating": 5,
"status": "Ambassador",
"location": "New York (webcam)",
"first_name": "Drew",
"full_title": "Need help in math, statistics, algebra, data analysis, probability, geometry or calculus. learn from an experienced tutor. spss expert. bachelor of electrical engineering",
"hourly_rate": "$15/h",
"profile_url": "https://www.superprof.com/need-help-math-statistics-algebra-data-analysis-probability-geometry-calculus-learn-from-experienced-tutor-spss.html",
"review_count": 110,
"first_lesson_free": false
}
],
"total_results": 15
},
"status": "success"
}
}About the Superprof API
Search and Discovery
The search_tutors endpoint accepts two optional slug-formatted parameters — subject (e.g. mathematics, piano) and city (e.g. new-york, los-angeles) — and returns an array of tutor objects alongside a total_results count. Each tutor card includes first_name, location, rating, review_count, status, full_title, hourly_rate, first_lesson offer details, and a profile_url you can pass downstream. You can scope searches to a country by passing a country slug like united-states as the city value.
Tutor Profile Detail
get_tutor_profile takes a slug string derived from a tutor's profile URL and returns the full record. Fields include headline, about_me, lesson_details, subjects (array of strings), hourly_rate, rating (out of 5), review_count, and a reviews array where each entry carries reviewer_name and text. This makes it straightforward to build tutor comparison tools or aggregate review data at scale.
Featured Tutors
get_homepage_featured_tutors requires no inputs and returns the same tutor card schema as search — profile_url, first_name, location, rating, review_count, status, full_title, hourly_rate, and first_lesson. These are ambassador-level tutors highlighted by the platform, making this endpoint useful for seeding datasets with high-signal, well-reviewed profiles.
The Superprof API is a managed, monitored endpoint for superprof.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when superprof.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official superprof.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a tutor comparison tool using hourly_rate and rating fields across multiple subjects and cities
- Aggregate Superprof reviews by subject to analyze sentiment and common teaching feedback
- Populate a tutoring marketplace with real availability and pricing data from search_tutors
- Monitor hourly_rate trends for specific subjects across different cities over time
- Seed a recommendation engine with featured tutors from get_homepage_featured_tutors
- Extract subjects arrays from tutor profiles to map subject coverage by geographic region
- Display structured tutor cards in an edtech app using profile_url, first_name, and rating fields
| 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 | 100 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.