Quickstart
From zero to your first provider list in five minutes — no key required.
The provider directory is public, so there's nothing to sign up for. You can run the first call below right now.
See which states we serve
Start here. /v1/states returns the states with bookable care — each with a
code, a name, and an appointmentTypeCount — so you can drive a state picker
instead of hard-coding codes.
curl https://api.mymenopauserx.com/v1/statesYou'll get back { states: [{ code, name, appointmentTypeCount }] }. Pick a
code (we'll use CA below) for the state-scoped calls that follow.
List providers in a state
Ask for the first two providers licensed in California.
curl https://api.mymenopauserx.com/v1/providers \
-G \
--data-urlencode "state=CA" \
--data-urlencode "limit=2"const res = await fetch(
'https://api.mymenopauserx.com/v1/providers?' +
new URLSearchParams({ state: 'CA', limit: '2' }),
);
const { total, providers } = await res.json();
console.log(`${total} providers in CA`, providers[0].displayName);import requests
res = requests.get(
"https://api.mymenopauserx.com/v1/providers",
params={"state": "CA", "limit": 2},
)
data = res.json()
print(data["total"], "providers in CA", data["providers"][0]["displayName"])You'll get back a ProviderDirectoryListResponse — total, the applied limit
and offset, and a providers array.
Narrow it down with filters
Every filter is an optional query parameter and they stack. Combine state,
insurance, providerType, and gender to pre-qualify a patient before they
ever sign up.
curl https://api.mymenopauserx.com/v1/providers \
-G \
--data-urlencode "state=CA" \
--data-urlencode "insurance=aetna" \
--data-urlencode "providerType=physician"The accepted insurance values aren't free text — list them with
/v1/insurances, optionally scoping to a state:
curl https://api.mymenopauserx.com/v1/insurances \
-G --data-urlencode "state=CA"Filter values are enums
providerType (physician, nursePractitioner) and gender (female,
male, nonBinary, other, preferNotToSay) are fixed enums — see the
List providers reference for the exact
accepted values.
Fetch a full profile
Once you have a provider's slug, pull their complete public profile for a
detail page.
curl https://api.mymenopauserx.com/v1/providers/anna-hanna-mdThe response is a PublicProviderProfile. Alongside displayName,
credentials, bio, education, certifications, and clinicalInterests,
a few fields are worth calling out:
headshotUrlandprofileUrl— a portrait image (nullable) and the canonical URL of the provider's profile on mymenopauserx.com. PreferprofileUrlover building links yourself.appointmentTypes— an array of{ id, name, states, description }. Thestatesarray tells you which states each visit type is offered in, so you can show only what's bookable where the patient lives.acceptedInsuranceByState— insurance acceptance keyed by state code, since a provider may take different plans in different states.
Licensed ≠ accepting new patients
statesLicensed and statesAcceptingPatients are distinct. A provider
can be licensed in a state without currently taking new patients there. The
state filter on the list endpoint matches licensure — if you need
availability, check statesAcceptingPatients on the profile.
See what visit types a state offers
List the appointment types available in a state, each with an integer id, a
name, and its modality (video or async). Omit state to get the full
catalog.
curl https://api.mymenopauserx.com/v1/appointment-types \
-G --data-urlencode "state=CA"Each item's id is what the availability endpoint expects as its
appointmentType — note one down for the next step.
Check open appointment slots
Surface upcoming openings in a state to pre-qualify a patient before signup.
Narrow with optional filters: appointmentType (an integer id from the
previous step), provider (a slug, to check a single clinician), horizonDays
(how far ahead to look), and limit (how many slots to return).
curl https://api.mymenopauserx.com/v1/availability \
-G \
--data-urlencode "state=CA" \
--data-urlencode "appointmentType=1" \
--data-urlencode "limit=5"The response echoes back the state, appointmentType, and provider you
filtered on, plus a slots array of { startTime, providerSlug } (soonest
first) and a convenience nextAvailable timestamp — null when nothing is
open.
Next up
- API reference — every endpoint, parameter, and response field, with an interactive playground.
- Access & authentication — why the read API needs no key.
- Errors — status codes and how to handle them.