goodtherapy.org APIgoodtherapy.org ↗
Search GoodTherapy.org therapists by location, specialty, insurance, and more. Extract full profiles with credentials, approach, and contact details.
curl -X GET 'https://api.parse.bot/scraper/38ef7adb-b8db-415b-abb1-39e8987b9093/search_therapists?page=1&miles=10&zipcode=10001' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for therapists by location (ZIP or city), radius, and various filters (specialty, insurance, etc.). Returns a paginated list of therapist summaries.
| Param | Type | Description |
|---|---|---|
| age | string | Comma-separated age group IDs (e.g. '1,3' for Children and Adults) |
| name | string | Search for a specific therapist by name |
| page | integer | Page number for pagination |
| miles | integer | Radius in miles (1, 3, 5, 10, 25, 50, 100, 250) |
| model | string | Comma-separated therapeutic model IDs (e.g. '16,33' for CBT and DBT) |
| gender | string | Comma-separated gender IDs (1: Female, 2: Male, 3: Non-Binary) |
| pricing | string | Comma-separated pricing IDs (e.g. 'sliding_scale', 'free_initial_consultation') |
| zipcode | string | ZIP code or city name to search near (e.g. '10001' or 'New York') |
| concerns | string | Comma-separated concern IDs (e.g. '1,27' for Abuse and Depression) |
| industry | string | Comma-separated industry IDs (e.g. '7,8' for LGBTQ+ and BIPOC) |
| language | string | Comma-separated language IDs (e.g. '1,52' for English and Spanish) |
| services | string | Comma-separated service IDs (e.g. '9' for Telehealth) |
| insurance | string | Comma-separated insurance company IDs (e.g. '12' for Aetna) |
| specialty | string | Comma-separated specialty IDs (e.g. '4,7' for Anxiety and Depression) |
| accessibility | string | Comma-separated accessibility IDs (e.g. '1,4' for Accessible Parking and Wheelchair Accessible Building) |
{
"type": "object",
"fields": {
"page": "integer current page number",
"therapists": "array of therapist summary objects with id, full_name, slug, phone, city_state, verified, telehealth, etc.",
"total_count": "integer total number of matching therapists"
},
"sample": {
"data": {
"page": 1,
"therapists": [
{
"id": 12086,
"slug": "rivkah-kaufman-20120501",
"phone": "9178035871",
"verified": true,
"full_name": "Rivkah Kaufman LMHC, EMDR-CT, C-DBT, CCTP",
"image_url": "https://www.goodtherapy.org/thumbs/160x160/dbimages/12086-rivkah-kaufman.jpeg",
"last_name": "Kaufman",
"city_state": "Brooklyn, NY 11201",
"first_name": "Rivkah",
"telehealth": true,
"credentials": "LMHC, EMDR-CT, C-DBT, CCTP",
"profile_url": "https://www.goodtherapy.org/therapists/profile/rivkah-kaufman-20120501",
"organization": "RK Connections",
"sliding_scale": true,
"practice_summary": "I work with clients who struggle with trauma...",
"free_consultation": true,
"approach_to_helping": "Welcome! I work with clients..."
}
],
"total_count": 199
},
"status": "success"
}
}About the goodtherapy.org API
The GoodTherapy.org API provides 4 endpoints for searching and extracting therapist data from one of the largest US therapist directories. The search_therapists endpoint returns paginated lists of providers filterable by ZIP code, radius, specialty, insurance, therapeutic model, gender, and pricing. Profile data includes credentials, practice description, verified status, and telehealth availability.
Search and Filter Therapists
The search_therapists endpoint accepts a zipcode parameter (ZIP code or city name), a miles radius (1–250), and a set of comma-separated filter IDs covering age groups, therapeutic models, genders, pricing options, and more. Results are paginated via the page parameter and each response includes a total_count integer alongside an array of therapist summaries. Each summary exposes id, full_name, slug, phone, city_state, verified, and telehealth flags. A name parameter lets you search for a specific therapist by name instead of location.
Filter Facets
Before constructing filtered searches, call get_facets to retrieve all valid filter IDs. The response covers availableAges, availableModels, availableGenders, availablePricing, availableConcerns, availableServices, availableCountries, availableLanguages, availableIndustries, and availableInsurances. Each category returns key-name pairs you can pass directly into search_therapists parameters such as model, age, gender, and pricing.
Detailed Therapist Profiles
Pass a slug from search results into get_therapist_profile to retrieve the full profile. The response includes name with credentials, phone, a description string covering the therapist's clinical approach, a verified boolean, and a details object whose keys are section headings (such as specialties, education, and insurance accepted) mapped to arrays of items or text. Slugs follow a name-date format (e.g. jane-smith-20150101) and are stable across requests.
Browse by Location
The browse_locations endpoint lets you enumerate the directory's geographic coverage without a prior search. Called without parameters it returns all US states as name-and-URL objects. Pass a lowercase state abbreviation such as ca or ny to list cities within that state, each with its own directory URL. This is useful for building location-aware tooling or validating coverage before querying a specific area.
- Build a therapist-finder app that filters by ZIP code, insurance, and therapeutic model using search_therapists
- Aggregate therapist profiles with credentials and practice descriptions for a mental health resource directory
- Identify telehealth-available providers in a given radius using the telehealth flag on therapist summaries
- Map therapist density by state or city using browse_locations combined with search_therapists pagination
- Populate a CRM with therapist contact data and verified status from get_therapist_profile
- Research therapeutic model availability (e.g. CBT, DBT) across US metro areas using model filter IDs from get_facets
- Monitor new or updated therapist listings by periodically querying search_therapists for a target ZIP code
| 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 | 250 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.