Lybrate APIlybrate.com ↗
Access Lybrate doctor profiles, patient reviews, clinic details, specialties, and health content for Indian cities via 9 structured API endpoints.
What is the Lybrate API?
The Lybrate API covers 9 endpoints that expose India's Lybrate healthcare platform — doctor profiles, clinic data, patient reviews, services, and health content. Starting with search_doctors, you can query by city and specialty to get paginated results including each doctor's name, experience, clinic locations, and availability. From there, individual endpoints drill into reviews, services, and full clinic profiles.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/cbf2b473-3748-4d64-ac70-4e0d4a612db4/list_cities' \ -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 lybrate-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.
"""Lybrate Healthcare API — find doctors, read reviews, explore clinics and health content."""
from parse_apis.lybrate_api import Lybrate, City, Specialty, Query, ResourceNotFound
client = Lybrate()
# List available cities for doctor search.
city_data = client.citylists.list()
print(f"Cities available: {len(city_data.others)} total")
for c in city_data.others[:3]:
print(c.name, c.id)
# List available specialties.
spec_data = client.specialtylists.list()
for cat in spec_data.issue_spec_list[:1]:
print(cat.title, cat.type)
for item in cat.issue_spec[:2]:
print(f" {item.name} -> {item.page_url}")
# Search for dermatologists in Delhi — limit caps total items fetched.
for doc in client.doctorsummaries.search(city=City.DELHI, specialty=Specialty.DERMATOLOGIST, limit=3):
print(doc.name, doc.specialty_name, f"{doc.experience}y exp")
# Drill into the first result's full profile.
top = client.doctorsummaries.search(city=City.MUMBAI, specialty=Specialty.DENTIST, limit=1).first()
if top:
profile = top.details()
print(profile.image, profile.perm_link)
# Walk the doctor's patient reviews.
for review in profile.reviews(limit=3):
print(review.review_body, review.author_name)
# Check services offered.
svc = profile.services()
print(svc.sub_specialities, svc.procedures)
# Browse the health feed.
for item in client.feeditems.browse(limit=3):
print(item.title, item.views, item.type)
# Search health content by keyword using the Query enum.
for item in client.feeditems.search(query=Query.DIABETES, limit=2):
print(item.title, item.code)
# Fetch a clinic by slug — handle the not-found case.
try:
clinic = client.clinics.get(city="delhi", slug="advanced-dermatology-and-hair-transplant-clinic-kalkaji")
print(clinic.name, clinic.city, clinic.consultation_range)
except ResourceNotFound as exc:
print(f"Clinic not found: {exc.slug} in {exc.city}")
print("exercised: citylists.list / specialtylists.list / doctorsummaries.search / details / reviews / services / feeditems.browse / feeditems.search / clinics.get")
Get all Indian cities where Lybrate has doctor listings. Returns recently searched cities and a full alphabetical list of other cities. No parameters required.
No input parameters required.
{
"type": "object",
"fields": {
"others": "array of all other city objects with id and name",
"successful": "boolean indicating request success",
"recentlySearched": "array of recently searched city objects with id and name"
},
"sample": {
"data": {
"others": [
{
"id": 1,
"name": "24 Parganas"
},
{
"id": 717,
"name": "Abohar"
}
],
"successful": true,
"recentlySearched": [
{
"id": 4,
"name": "Ahmedabad"
},
{
"id": 603,
"name": "Bangalore"
}
]
},
"status": "success"
}
}About the Lybrate API
Doctor Discovery and Profiles
The search_doctors endpoint accepts a required city parameter (e.g., delhi, mumbai) and an optional specialty filter. It returns paginated results via the page parameter, with each item in profileDTOs containing the doctor's name, specialty, years of experience, clinic details, and availability. The totalCount and isNext fields let you implement full pagination. Once you have a doctor's username (which serves as the URL slug), you can call get_doctor_profile with city and slug to retrieve education, registered clinic locations, a permanent profile URL, and an attached healthFeed array of content that doctor has authored.
Reviews and Services
get_doctor_reviews accepts the same city and slug inputs and returns structured review objects with reviewBody and author details, plus an additional_data array for supplemental review content. get_doctor_services returns three distinct arrays — procedures, specialities, and subSpecialities — as well as userExpertises with name and detail fields. Any of these arrays may be null if the doctor has not listed that category of service.
Clinics, Cities, and Specialties
get_clinic_details takes a city and a clinic slug (found in the clinicLocation.slug field from search_doctors results) and returns a full clinicProfileDTO object with name, address, specialities, photos, reviews, and associated doctor mappings. Supporting lookup endpoints — list_cities and list_specialties — return the full set of covered Indian cities (with id and name) and the complete specialty taxonomy grouped by category in issueSpecList.
Health Content
get_health_feed returns a paginated feed of Q&As, tips, and articles from Lybrate doctors, with nextPageUrl for sequential traversal. search_health_content accepts a query string (single or multi-word) and returns matching items in the same healthFeed format, making it straightforward to filter health articles or Q&As by topic.
The Lybrate API is a managed, monitored endpoint for lybrate.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when lybrate.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 lybrate.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 doctor finder app filtered by Indian city and medical specialty using
search_doctors - Aggregate patient review sentiment across specialties by pulling
reviewBodyfields viaget_doctor_reviews - Populate a clinic directory with address, photos, and associated doctors using
get_clinic_details - Index health Q&As and articles by keyword for a medical content search engine using
search_health_content - Generate specialty and issue taxonomies for a healthcare triage tool using
list_specialties - Compare doctor experience and service offerings across cities using
get_doctor_servicesandprofileDTOs - Track doctor-authored health content by combining
get_doctor_profilehealthFeedwithget_health_feed
| 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 Lybrate have an official developer API?+
What does `search_doctors` return beyond a doctor's name?+
profileDTOs includes specialty, years of experience, clinic location details, and availability data. The username field in each result is the slug you pass to get_doctor_profile, get_doctor_reviews, and get_doctor_services for deeper lookups.Does the API cover doctors outside India?+
list_cities. The recentlySearched and others arrays in that endpoint define the full set of supported locations. You can fork this API on Parse and revise it to add support for additional regions if Lybrate expands its coverage.Does the API support filtering doctors by consultation fee or availability time slots?+
search_doctors endpoint filters by city and specialty only; profileDTOs includes availability indicators but not bookable time slots or fee ranges. You can fork this API on Parse and revise it to add a fee or slot filtering endpoint if that data is present on specific profile pages.Can I retrieve all reviews for a doctor in one call, or is there pagination?+
get_doctor_reviews returns all review objects it finds for the given city and slug in a single response — there is no page parameter on that endpoint. For large review sets, the additional_data array may contain supplemental entries beyond the primary reviews array.