Doctoralia APIdoctoralia.com.br ↗
Search Brazilian healthcare specialists, retrieve full profiles with pricing and insurances, get phone numbers, and fetch patient reviews from Doctoralia.com.br.
What is the Doctoralia API?
This API exposes 5 endpoints covering Doctoralia Brazil's doctor directory: search specialists by specialty and city, fetch full profiles including booking data and Instagram handles, retrieve phone numbers by address, pull paginated patient reviews, and run autocomplete queries for valid specialty slugs or doctor URLs. The search_specialists endpoint returns doctor_id and address_id fields that chain directly into the phone and review endpoints.
curl -X GET 'https://api.parse.bot/scraper/565b99b6-ce1f-4f65-92d6-4d70c1e4c470/search_specialists?city=sao-paulo&page=1&specialty=dermatologista' \ -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 doctoralia-com-br-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.
from parse_apis.doctoralia_brazil_api import Doctoralia, Specialty, City, AlgoliaIndex
client = Doctoralia()
# Search for dermatologists in São Paulo using enums
for specialist in client.specialists.search(specialty=Specialty.DERMATOLOGISTA, city=City.SAO_PAULO, limit=3):
print(specialist.name, specialist.rating, specialist.reviews_count, specialist.city)
# Get full profile with booking data
profile = specialist.profile()
print(profile.name, profile.instagram)
for service in profile.booking_data.service_options:
print(service.name, service.price)
# Get phone numbers
phone_result = specialist.phone()
print(phone_result.phones)
# Get patient reviews
review_page = specialist.reviews()
print(review_page.num_rows, review_page.limit)
# Autocomplete search for facilities
for hit in client.autocompletehits.search(query="clinica", index=AlgoliaIndex.FACILITY, limit=5):
print(hit.fullname_formatted, hit.url, hit.opinion_count)
Search for healthcare specialists by specialty and city. Returns paginated results with doctor summaries including ratings, review counts, and addresses. Each result carries a doctor_id and address_id for drilling into phone numbers and reviews via separate endpoints.
| Param | Type | Description |
|---|---|---|
| cityrequired | string | City slug (e.g., 'sao-paulo', 'belo-horizonte', 'rio-de-janeiro'). |
| page | integer | Page number for pagination. |
| specialtyrequired | string | Specialty slug (e.g., 'dermatologista', 'psiquiatra', 'dentista'). |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"doctors": "array of doctor summary objects with doctor_id, address_id, name, url, rating, reviews_count, specialty, city, image, and address_full",
"total_on_page": "integer, number of doctors returned on this page"
},
"sample": {
"data": {
"page": 1,
"doctors": [
{
"url": "https://www.doctoralia.com.br/lahis-salden/dermatologista/sao-paulo",
"city": "São Paulo",
"name": "Dra. Lahís Salden",
"image": "https://pixel-p1.s3.sa-east-1.amazonaws.com/doctor/avatar/98f75277/98f75277-ce53-4ba3-a9b5-f20267d2b4d5_medium_square.jpg",
"rating": "5",
"doctor_id": "939138",
"specialty": null,
"address_id": "1288336",
"address_full": "Morumbi - Rua Jandiatuba, 506",
"reviews_count": "151"
}
],
"total_on_page": 31
},
"status": "success"
}
}About the Doctoralia API
Search and Discovery
The search_specialists endpoint accepts a required specialty slug (e.g., dermatologista, psiquiatra) and a city slug (e.g., sao-paulo, rio-de-janeiro). Each result object includes doctor_id, address_id, name, url, rating, reviews_count, specialty, city, image, and address_. Pagination is controlled via the page parameter. If you need to discover valid specialty slugs before running a full search, the search_autocomplete endpoint accepts a free-text query and returns hits with name, url, and metadata including specializations — it also supports selecting a specific Algolia index.
Doctor Profiles and Contact Data
The get_specialist_profile endpoint takes the full profile URL or path and returns a booking_data object containing addresses, specializations, services, service options with line-item pricing, accepted insurance plans, and doctor identifiers. It also surfaces json_ld structured-data arrays and an instagram field (string or null). Phone numbers are a separate call: get_specialist_phone takes the address_id from search results and returns a phones array in Brazilian format alongside the queried address_id.
Reviews
The get_specialist_reviews endpoint takes a doctor_id and an optional page number. It returns the reviews as an html string, plus limit (reviews per page) and numRows (total review count for that doctor). Because the response is HTML rather than a structured object, your application will need to parse individual review fields — star ratings, review text, dates — from that markup.
The Doctoralia API is a managed, monitored endpoint for doctoralia.com.br — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when doctoralia.com.br 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 doctoralia.com.br 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 Brazilian doctor-finder app that searches by specialty and city using
search_specialistsand displays ratings and addresses. - Aggregate service pricing and accepted insurance plans from
get_specialist_profilebooking_data to compare costs across specialists. - Collect patient review counts and ratings at scale across multiple specialties for healthcare market research.
- Resolve valid specialty slugs programmatically via
search_autocompletebefore issuing structured searches. - Display contact phone numbers for each clinic location by chaining
address_idfrom search results intoget_specialist_phone. - Track Instagram presence of dermatologists or other specialists using the
instagramfield returned by profile lookups. - Build a review-monitoring dashboard by polling
get_specialist_reviewswithnumRowsto detect new patient feedback.
| 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 Doctoralia Brazil have an official developer API?+
What does `get_specialist_profile` return beyond basic bio information?+
booking_data object that includes service options with pricing, accepted insurance plans, clinic addresses, and specializations. It also returns json_ld structured-data arrays and an instagram field. The doctor_id in the response can be used directly with get_specialist_reviews.Are appointment availability or scheduling slots exposed by any endpoint?+
booking_data object, but live appointment slot availability is not returned. You can fork this API on Parse and revise it to add an endpoint targeting availability data if the source exposes it.What is the format of the data returned by `get_specialist_reviews`?+
html string, not as structured JSON objects. Individual review fields such as star rating, review text, and date must be parsed from that HTML by the caller. The response also includes limit (reviews per page) and numRows (total review count) as integers to support pagination.Does the API cover doctors listed in cities outside the major Brazilian metros?+
city parameter on search_specialists accepts any city slug supported by Doctoralia Brazil, not just major metros. However, result density varies by city — smaller cities may return fewer specialists or none for certain specialties. Coverage depends entirely on what Doctoralia has indexed for that location.