Wyzant APIwyzant.com ↗
Search Wyzant tutors by subject, rate, and availability. Get profiles, reviews, expert answers, and trending subjects via a structured JSON API.
What is the Wyzant API?
The Wyzant API exposes 6 endpoints for retrieving tutor data from Wyzant.com, covering search, profiles, reviews, expert answers, and subject discovery. The search_tutors endpoint accepts a keyword plus filters for hourly rate range, in-person vs. online availability, and time zone, returning paginated summaries with fields like hourly_rate, rating, review_count, and hours_tutoring for each matched tutor.
curl -X GET 'https://api.parse.bot/scraper/c6776c1c-baa9-4a4b-be64-2f59d9e9a959/search_tutors?sort=1&keyword=math&max_rate=200&min_rate=20&in_person=true&is_online=true&page_size=10&time_zone=America%2FNew_York&page_number=0&instant_book=true&background_check=true' \ -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 wyzant-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: Wyzant SDK — search tutors, drill into profiles, read reviews."""
from parse_apis.wyzant_tutoring_api import Wyzant, Sort, TutorNotFound
client = Wyzant()
# Discover trending subjects on the platform.
for subject in client.subjects.trending(limit=5):
print(subject)
# Autocomplete a partial subject query.
suggestions = client.subjects.autocomplete(query="calc", limit=5)
print("Suggestions:", [s for s in suggestions])
# Search for highly-rated math tutors, capped to 3 results.
for tutor in client.tutorsummaries.search(keyword="math", sort=Sort.HIGHEST_RATED, limit=3):
print(tutor.name, tutor.hourly_rate, tutor.rating)
# Drill into the first result's full profile.
top = client.tutorsummaries.search(keyword="chemistry", limit=1).first()
if top:
profile = top.details()
print(profile.name, profile.hourly_rate, profile.subjects[:5])
# Read the tutor's reviews.
for review in profile.reviews.list(limit=3):
print(review.author, review.title, review.date)
# Check expert answers.
for answer in profile.answers.list(limit=2):
print(answer.question[:60], answer.topics)
# Typed error handling: catch a missing tutor.
try:
missing = client.tutor(id="0000000").reviews.list(limit=1).first()
except TutorNotFound as exc:
print(f"Tutor not found: {exc.tutor_id}")
print("exercised: subjects.trending / subjects.autocomplete / tutorsummaries.search / details / reviews.list / answers.list")
Full-text search over Wyzant's tutor directory by subject keyword. Supports filters for rate range, online/in-person availability, instant booking, and background checks. Paginates via page_number (0-indexed). Each result is a TutorSummary with enough data for comparison; drill into get_tutor_profile for the full bio and weekly availability.
| Param | Type | Description |
|---|---|---|
| sort | integer | Sort order for results. |
| keywordrequired | string | Subject or keyword to search for tutors (e.g. 'math', 'chemistry', 'SAT'). |
| max_rate | integer | Maximum hourly rate filter in USD. |
| min_rate | integer | Minimum hourly rate filter in USD. |
| in_person | boolean | Filter for in-person tutors. |
| is_online | boolean | Filter for online tutors. |
| page_size | integer | Number of results per page. |
| time_zone | string | IANA time zone name for availability calculations. |
| page_number | integer | Page number (0-indexed). |
| instant_book | boolean | Filter for instant-bookable tutors. |
| background_check | boolean | Filter for background-checked tutors. |
{
"type": "object",
"fields": {
"tutors": "array of tutor summary objects with id, name, headline, bio_snippet, hourly_rate, rating, review_count, hours_tutoring, response_time_hours, city, state, is_online, is_instant_bookable, photo_url, subjects",
"page_size": "integer results per page",
"page_number": "integer current page number",
"total_count": "integer total number of matching tutors",
"total_pages": "integer total number of pages"
}
}About the Wyzant API
Tutor Search and Profiles
The search_tutors endpoint is the primary entry point. Pass a keyword (e.g. 'calculus', 'SAT', 'Python') along with optional min_rate and max_rate integers (USD per hour), boolean flags in_person and is_online, and a time_zone string to scope availability. Results are paginated via page_size and include each tutor's id, name, headline, bio_snippet, hourly_rate, rating, review_count, and hours_tutoring. Use the returned id values to call get_tutor_profile, which returns the full bio, tagline, subjects array, photo_url, and an availability object mapping day names to time ranges.
Reviews and Expert Answers
get_tutor_reviews returns paginated reviews (10 per page) for a given tutor, each containing title, body, author, and date. The total_reviews field lets you calculate how many pages exist. get_tutor_answers returns questions the tutor has answered in Wyzant's Ask an Expert community, with question, body, date, topics, and a direct link to the answer — useful for gauging subject-matter depth beyond star ratings.
Subject Discovery
Two endpoints support building search interfaces. get_subject_autocomplete accepts a partial query string (e.g. 'calc') and returns subject name completions. list_trending_subjects takes no inputs and returns popular subjects currently featured on the Wyzant homepage, which can drive UI suggestions or periodic monitoring of which subjects are in demand.
The Wyzant API is a managed, monitored endpoint for wyzant.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when wyzant.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 wyzant.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 filtering candidates by
min_rate,max_rate, andis_onlinefor a given subject - Aggregate
ratingandreview_countfromsearch_tutorsto rank tutors by credibility within a subject - Display a tutor's weekly
availabilityobject to match students with open time slots - Analyze
get_tutor_answersresponses to evaluate a tutor's subject-matter depth before booking - Power a subject-search autocomplete widget using
get_subject_autocompletesuggestions - Monitor
list_trending_subjectsover time to identify shifts in tutoring demand - Collect and store tutor reviews via
get_tutor_reviewsfor sentiment analysis or reputation tracking
| 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.
Does Wyzant have an official public developer API?+
What does `get_tutor_profile` return beyond what `search_tutors` includes?+
search_tutors returns a summary: id, name, headline, bio_snippet, hourly_rate, rating, review_count, and hours_tutoring. get_tutor_profile adds the full bio, tagline, the complete subjects array, photo_url, and a day-by-day availability object showing available time ranges — fields not present in the search results.Does the API return tutor contact details or messaging capabilities?+
How does pagination work for `search_tutors` and `get_tutor_reviews`?+
search_tutors uses page_size and returns page_number and total_count, so you can calculate total pages and iterate. get_tutor_reviews returns 10 reviews per page and includes total_reviews and page_number; pass page_number as an integer (1-indexed) to walk through all pages.