Zocdoc APIzocdoc.com ↗
Search Zocdoc providers by specialty and location. Get doctor profiles, accepted insurance, patient reviews, and bookable appointment slots via 7 endpoints.
What is the Zocdoc API?
The Zocdoc API exposes 7 endpoints for querying the Zocdoc provider directory, covering doctor search, practice profiles, patient reviews, and real-time appointment availability. The search_doctors endpoint accepts specialty IDs, location strings, and zip codes to return paginated provider records including name, rating, review count, and practice name. Two dedicated availability endpoints — get_provider_availability and get_practice_availability — return bookable slots for the next 90 days.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/e83128b9-6866-4adf-a464-5ec3f72ac990/get_specialties' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve the full list of medical specialties available on Zocdoc. Returns specialty names and URL slugs that can be used with the search_doctors endpoint. Results are not paginated; all specialties are returned in a single call.
No input parameters required.
{
"type": "object",
"fields": {
"specialties": "array of specialty objects with name, id, and slug"
},
"sample": {
"data": {
"specialties": [
{
"id": null,
"name": "Dentist",
"slug": "dentists"
},
{
"id": null,
"name": "Dermatologist",
"slug": "dermatologists"
},
{
"id": null,
"name": "Cardiologist",
"slug": "cardiologists"
}
]
},
"status": "success"
}
}About the Zocdoc API
Provider Search and Specialties
Start with get_specialties to retrieve the full list of Zocdoc medical specialties, each returned with a name, id, and slug. Pass the id as the dr_specialty parameter and the slug as specialty_slug to search_doctors, which accepts an address (city name or zip code) and an optional procedure_id for visit-reason filtering. Results come back 10 providers per page using offset-based pagination; each record includes name, specialty, rating, review_count, city, state, slug, and practice_name.
For radius-based lookup, search_doctors_by_zip takes a zip_code and returns all providers within a 10-mile radius. These records are richer than the general search results, including provider_id, NPI, full_name, bio, all office locations, and availability flags — useful when you need NPI numbers or fuller provider metadata without fetching individual profiles.
Doctor and Practice Profiles
get_doctor_profile takes a provider slug from search results and returns a complete profile: education (institution and degree type), languages, insurances (name and id), locations (address, city, state, zip, phone), professional_statement, and a reviews array with per-review rating, comment, date, and patient_name. get_practice_profile mirrors this at the practice level, returning the practice name, aggregate rating, review_count, locations, providers (name, id, rating), and specialties.
Appointment Availability
get_provider_availability and get_practice_availability both return slot arrays covering the next 90 days. Each slot object includes start, end, date, time, visit_type, location_id, location_name, and full address fields. The practice-level endpoint additionally surfaces provider_slug on each slot so you can attribute availability to a specific provider across the whole practice roster. The patient_type parameter on get_provider_availability filters slots to new or existing patient views.
The Zocdoc API is a managed, monitored endpoint for zocdoc.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when zocdoc.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 zocdoc.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 tool filtered by specialty, zip code, and insurance acceptance.
- Aggregate patient reviews and ratings for providers across a geographic market.
- Check real-time appointment availability for a practice before directing a user to book.
- Compile provider NPI numbers and bios from
search_doctors_by_zipfor a provider database. - Compare accepted insurance plans across multiple doctors using the
insurancesfield fromget_doctor_profile. - Track review volume and average ratings over time for reputation monitoring in a healthcare network.
- Populate a practice directory with locations, phone numbers, and specialties from
get_practice_profile.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Zocdoc have an official developer API?+
What does `get_doctor_profile` return that `search_doctors` does not?+
search_doctors returns summary fields: name, specialty, rating, review count, city, state, and practice name. get_doctor_profile adds granular data: an education array with institution and degree, a languages array, an insurances array with name and id, a professional_statement bio, multiple locations with phone numbers, and individual review objects containing rating, comment, date, and patient name.How does pagination work across the search endpoints?+
search_doctors and search_doctors_by_zip use offset-based pagination in increments of 10. Pass offset=10 for the second page, offset=20 for the third, and so on. The total_count field in the response tells you how many total providers match the query so you can calculate the number of pages needed.Does the API return telehealth or video visit availability separately from in-office slots?+
get_provider_availability and get_practice_availability includes a visit_type field, which distinguishes appointment modalities. However, there is no dedicated endpoint for filtering exclusively by telehealth slots at query time — filtering must be done client-side on the returned visit_type values. You can fork this API on Parse and revise it to add a visit_type filter parameter to the availability endpoints.