Aplaceformom APIaplaceformom.com ↗
Search senior living facilities, retrieve details, ratings, reviews, and state-level overviews from A Place for Mom via a structured JSON API.
What is the Aplaceformom API?
This API exposes 4 endpoints covering senior care facility data from A Place for Mom, including search by location and care type, detailed facility profiles, resident reviews, and state-level city listings. The get_facility_details endpoint returns structured fields like geo coordinates, amenities, aggregate ratings, pricing details, and nearby communities — all keyed by facility slug from search results.
curl -X GET 'https://api.parse.bot/scraper/41d2abe1-1c0c-47d1-8969-370f5e968c0f/search_facilities?city=New+York&page=1&query=New+York%2C+NY&state=NY&care_type=assisted-living' \ -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 aplaceformom-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.
"""Walkthrough: A Place for Mom SDK — find and compare senior care facilities."""
from parse_apis.a_place_for_mom_api import APlaceForMom, CareType, FacilityNotFound
client = APlaceForMom()
# Search for assisted living facilities in New York
for facility in client.facilities.search(query="New York, NY", care_type=CareType.ASSISTED_LIVING, limit=3):
print(facility.name, facility.slug)
# Drill into a single facility for full details
summary = client.facilities.search(query="New York, NY", limit=1).first()
if summary:
detail = summary.details()
print(detail.name, detail.telephone)
print(detail.address.streetAddress, detail.address.addressLocality)
print(detail.geo.latitude, detail.geo.longitude)
# List reviews for that facility
for review in detail.reviews.list(limit=3):
print(review.author, review.rating, review.date)
# Get state overview of available cities
overview = client.stateoverviews.get(state="NY", care_type=CareType.MEMORY_CARE)
print(overview.state, overview.total_cities)
for city in overview.cities[:3]:
print(city.name, city.slug)
# Handle a facility that doesn't exist
try:
client.facilities.get(slug="nonexistent-facility-00000")
except FacilityNotFound as exc:
print(f"Not found: {exc.slug}")
print("exercised: facilities.search / facilities.get / summary.details / reviews.list / stateoverviews.get")
Search for senior living facilities by location and care type. Returns a paginated list of facilities matching the given city and state. Requires either a query in 'City, ST' format or both city and state parameters. Pagination via page parameter; each page returns ~20-30 communities.
| Param | Type | Description |
|---|---|---|
| city | string | City name (e.g., 'New York'). Required if query is not provided. |
| page | integer | Page number for pagination. |
| query | string | Search query in 'City, ST' format (e.g., 'New York, NY'). If provided, city and state are extracted from it. |
| state | string | State name or 2-letter abbreviation (e.g., 'New York' or 'NY'). Required if query is not provided. |
| care_type | string | Care type slug: assisted-living, memory-care, independent-living, home-care. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"communities": "array of facility summary objects with name, slug, and url",
"has_next_page": "boolean indicating if more pages exist",
"total_on_page": "integer count of facilities on this page"
},
"sample": {
"data": {
"page": 1,
"communities": [
{
"url": "https://www.aplaceformom.com/community/atria-west-86-72892",
"name": "Atria West 86",
"slug": "atria-west-86-72892"
}
],
"has_next_page": true,
"total_on_page": 28
},
"status": "success"
}
}About the Aplaceformom API
Search and Discovery
The search_facilities endpoint accepts a location either as a query string in 'City, ST' format or as separate city and state parameters, plus an optional care_type slug (assisted-living, memory-care, independent-living, home-care). Results are paginated; each page returns an array of facility objects with name, slug, and url, alongside has_next_page to drive iteration. The slug values from this endpoint are the key input for the detail and review endpoints.
Facility Details and Amenities
The get_facility_details endpoint takes a facility slug and returns a full profile: name, description, telephone, a structured address object (streetAddress, addressLocality, addressRegion, postalCode), geo coordinates, an amenities_list array, and an aggregateRating object with ratingValue, reviewCount, and rating bounds. A pricing_details object is included when pricing data is publicly available on the facility page — this field may be empty for facilities that gate pricing behind a contact form. The response also includes a nearby_communities array with names and slugs for adjacent facilities.
Reviews and State Overviews
The get_facility_reviews endpoint returns up to 20 of the most recent reviews for a given facility slug, each with content, date, author, and rating, plus an aggregateRating summary. For broader geographic research, get_state_overview accepts a state name or two-letter abbreviation and an optional care_type, returning a cities array with name, slug, and url for every city in that state with matching facilities. The assisted-living care type has the widest city coverage; other care types may return fewer cities.
The Aplaceformom API is a managed, monitored endpoint for aplaceformom.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when aplaceformom.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 aplaceformom.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 senior living comparison tool using
get_facility_detailsamenities, ratings, and pricing fields - Generate city-by-city senior care market maps from
get_state_overviewcity arrays - Aggregate resident sentiment across facilities by collecting reviews via
get_facility_reviews - Build care-type-specific directories by filtering
search_facilitieswith thecare_typeparameter - Populate CRM or lead-gen tools with facility telephone and address data from
get_facility_details - Track
aggregateRatingchanges for a set of facilities over time by re-querying by slug - Identify nearby competitor facilities using the
nearby_communitiesfield in facility detail responses
| 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 A Place for Mom have an official developer API?+
Is pricing data always available in `get_facility_details`?+
pricing_details object is populated when pricing is publicly visible on the facility's page. For many facilities, A Place for Mom gates pricing behind a contact or inquiry form, so the field will be empty in those cases. The rest of the detail response — address, amenities, ratings, geo — is unaffected.How many reviews does `get_facility_reviews` return?+
aggregateRating object that reflects the full review count (reviewCount). If a facility has more than 20 reviews, older reviews beyond that window are not included in the response. You can fork this API on Parse and revise it to adjust the review retrieval depth if you need broader review coverage.Can I retrieve a list of all facilities in a state rather than searching city by city?+
get_state_overview returns a list of cities with facilities in a given state, and search_facilities operates at the city level. There is no single endpoint that returns all facilities for an entire state in one call. You can fork this API on Parse and revise it to add a state-wide facility aggregation endpoint that iterates over the cities from get_state_overview.Does the search support filtering by specific amenities or ratings thresholds?+
search_facilities endpoint supports filtering by care_type and location only. Filtering by amenities, minimum rating, or price range is not exposed as a parameter. You can fork this API on Parse and revise it to add client-side filtering logic against the fields returned by get_facility_details.