MHVillage APImhvillage.com ↗
Access MHVillage data via API: search mobile home parks by state/city, browse home listings, floor plans, and dealer info across the US.
What is the MHVillage API?
The MHVillage API provides 12 endpoints covering mobile home parks, home listings, floor plans, and dealer directories across the continental United States. You can query parks by state or city using list_parks_by_state and list_parks_by_city, search active for-sale and for-rent home listings with price and bedroom filters, retrieve floor plan specs including square footage and manufacturer, and pull dealer profiles with membership and contact details.
curl -X GET 'https://api.parse.bot/scraper/cd1546be-5ca0-46b8-b9a5-2ba3aed3d4e0/list_parks_by_state?state_code=fl' \ -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 mhvillage-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: MHVillage SDK — mobile home parks, listings, dealers, floor plans."""
from parse_apis.mhvillage_api import MHVillage, Park, HomeListing, FloorPlan, NotFoundError
client = MHVillage()
# List states that have mobile home parks
for state in client.states.list(limit=5):
print(state.code)
# Get cities with parks in Florida
florida = client.state(code="fl")
for city in florida.parks_by_city(limit=5):
print(city.location_name, city.park_count, city.location_state)
# List parks in a specific city
for park in client.parks.list_by_city(city="Apopka", state_code="FL", limit=3):
print(park.name, park.year_built, park.is_showcase, park.pets_allowed)
# Get homes in a specific park
target_park = client.park(key=7682)
for home in target_park.homes.list(limit=3):
print(home.bedrooms, home.bathrooms, home.year, home.is_sale, home.asking_price)
# Search homes for sale in Florida
listing = client.homelistings.search(state_code="FL", bedrooms=3, limit=1).first()
if listing:
print(listing.key, listing.make, listing.model, listing.asking_price)
# Search dealers in Orlando with typed error handling
try:
dealer = client.dealers.search(city="Orlando", state_code="FL", limit=1).first()
if dealer:
print(dealer.name, dealer.member_since, dealer.website)
except NotFoundError as exc:
print(f"not found: {exc}")
# Search floor plans in Florida
for plan in client.floorplans.search(state_code="FL", limit=3):
print(plan.manufacturer, plan.model_name, plan.bedrooms, plan.square_feet)
print("exercised: states.list / parks_by_city / parks.list_by_city / park.homes.list / homelistings.search / dealers.search / floorplans.search")
Returns all mobile home parks/communities in a given US state, grouped by city. Each entry includes the city name, state, and count of parks in that city. Useful for discovering available cities before drilling into park listings.
| Param | Type | Description |
|---|---|---|
| state_coderequired | string | 2-letter US state code, lowercase (e.g., 'fl', 'tx', 'ca'). |
{
"type": "object",
"fields": {
"total": "integer total number of cities with parks in the state",
"payload": "array of city objects with locationName, locationType, parkCount, locationState, showcasedParkCount"
},
"sample": {
"data": {
"total": 426,
"payload": [
{
"parkCount": 3,
"locationName": "Alachua",
"locationType": "city",
"locationState": "FL",
"showcasedParkCount": 0
}
]
},
"status": "success"
}
}About the MHVillage API
Park Discovery and Search
The API exposes three main paths for finding mobile home parks. list_states_with_parks returns the 48 continental US state codes that have park coverage, which is useful for building state-picker UIs or validating inputs. list_parks_by_state takes a lowercase two-letter state_code and returns city-level park counts — each object includes locationName, parkCount, and showcasedParkCount. list_parks_by_city and search_parks go deeper: both return park objects with key, name, ageRestrictions, petsAllowed, yearBuilt, website, and isShowcase. search_parks additionally accepts zip, radius (miles), has_pool, and park_type filters, making it the right choice for proximity-based or amenity-filtered lookups. Use get_park_detail with a park key to retrieve the full record including address, photos, phone, reviews, and site count.
Home Listings and Floor Plans
search_homes accepts city, zip, radius, min_price, max_price, and bedrooms filters and returns listing objects with askingPrice, bedrooms, bathrooms, year, make, model, isSale, and isRent flags. get_home_detail expands any listing by its key, adding photos, address, and park association. To scope listings to a specific community, get_park_homes accepts a park_id and returns the same listing shape with pagination via offset and limit.
Floor plan data is accessible through search_floor_plans (requires state_code) and get_floor_plan_detail. Response fields include bedrooms, bathrooms, squareFeet, manufacturer, modelName, dimension, and a virtualTour flag indicating whether a virtual tour is available for that plan.
Dealer Directory
search_dealers filters by state_code and city, returning dealer objects with key, name, caption, packageName, memberSince, and website. get_dealer_detail fetches a full dealer record and adds businessHoursDescription to that set. The memberSince field is useful for sorting or filtering by how long a dealer has been on the platform.
The MHVillage API is a managed, monitored endpoint for mhvillage.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mhvillage.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 mhvillage.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 map-based park finder that filters results by state, pet policy, and pool availability using search_parks.
- Aggregate manufactured home listings by price range and bedroom count for a real estate comparison tool using search_homes.
- Display all active home listings within a specific community by calling get_park_homes with a park_id.
- Populate a dealer directory with contact details, business hours, and membership tenure from get_dealer_detail.
- Generate state-level market reports by pulling city-grouped park counts from list_parks_by_state.
- Allow users to browse floor plans by state, filtering by square footage or bedroom count via search_floor_plans.
- Cross-reference park age restrictions and pet policies to match buyer preferences when presenting get_park_detail results.
| 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.