# Mhvillage — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search mobile home parks across the US by state or city, browse available homes and floor plans, and discover dealer information all in one place. Find detailed information about specific parks, homes, and dealers to help you locate the perfect mobile home community or property.

**Category:** Real Estate | **Website:** [mhvillage.com/](https://mhvillage.com/) | **Docs:** [parse.bot/marketplace/b535055e-5ebf-4803-b09f-4b4f7a8f5b6a/mhvillage-com-api](https://parse.bot/marketplace/b535055e-5ebf-4803-b09f-4b4f7a8f5b6a/mhvillage-com-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/mhvillage/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get dealer detail

Returns full detail for a single manufactured home dealer/sales center by dealer ID, including contact info, business hours, and description.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `dealer_id` | string | Yes | Unique dealer identifier (numeric string, from search_dealers results[*].key). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/get-dealer-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"dealer_id":"<string>"}'
```

### Get floor plan detail

Returns full detail for a single floor plan by ID, including dimensions, manufacturer, model name, and virtual tour link.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `plan_id` | string | Yes | Unique floor plan identifier (numeric string, from search_floor_plans results[*].key). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/get-floor-plan-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"plan_id":"<string>"}'
```

### Get home detail

Returns full detail for a single home listing by listing ID, including photos, address, park info, pricing, features, and sales contact. The response is a flat object with the listing's fields directly.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `listing_id` | string | Yes | Unique listing identifier (numeric string, from search_homes or get_park_homes results[*].key). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/get-home-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"listing_id":"<string>"}'
```

### Get park detail

Returns full detail for a single mobile home park/community by park ID, including address, photos, phone, reviews, and site count. The response is a flat object with the park's fields directly.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `park_id` | string | Yes | Unique park identifier (numeric string, from list_parks_by_city or search_parks results[*].key). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/get-park-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"park_id":"<string>"}'
```

### Get park homes

Returns all active home listings within a specific community/park. Supports pagination via offset and limit. Each listing includes price, bedrooms, year, and sale/rent status.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. |
| `offset` | integer | No | Result offset for pagination. |
| `park_id` | string | Yes | Unique park identifier (numeric string, from list_parks_by_city or search_parks results[*].key). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/get-park-homes \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","offset":"<integer>","park_id":"<string>"}'
```

### List parks by city

Returns all mobile home parks/communities in a given city within a state. Supports pagination via offset and limit. Each park includes basic info like name, showcase status, age restrictions, and pet policy.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `city` | string | Yes | City name (e.g., 'Apopka', 'Orlando'). |
| `limit` | integer | No | Maximum number of results to return. |
| `offset` | integer | No | Result offset for pagination. |
| `state_code` | string | Yes | 2-letter US state code (e.g., 'FL'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/list-parks-by-city \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"city":"<string>","limit":"<integer>","offset":"<integer>","state_code":"<string>"}'
```

### List parks by state

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.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `state_code` | string | Yes | 2-letter US state code, lowercase (e.g., 'fl', 'tx', 'ca'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/list-parks-by-state \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"state_code":"<string>"}'
```

### List states with parks

Returns a list of all US states that have mobile home parks available on MHVillage. Returns 48 state codes (continental US). This is a static list useful for populating state selection dropdowns.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/list-states-with-parks \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Search dealers

Searches for manufactured/mobile home dealers (sales centers) by city. Returns paginated results with dealer name, description, and website. City is required; optionally filter by state.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `city` | string | Yes | City name to filter by (e.g., 'Orlando', 'Tampa', 'Apopka'). |
| `limit` | integer | No | Maximum number of results to return. |
| `offset` | integer | No | Result offset for pagination. |
| `state_code` | string | No | 2-letter US state code (e.g., 'FL'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/search-dealers \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"city":"<string>","limit":"<integer>","offset":"<integer>","state_code":"<string>"}'
```

### Search floor plans

Searches for manufactured/mobile home floor plans available in a given state. Returns paginated results including bedrooms, bathrooms, square footage, manufacturer, and virtual tour links.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. |
| `offset` | integer | No | Result offset for pagination. |
| `state_code` | string | Yes | 2-letter US state code (e.g., 'FL'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/search-floor-plans \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","offset":"<integer>","state_code":"<string>"}'
```

### Search homes

Searches for manufactured/mobile homes for sale or rent with optional filters. Returns paginated results with listing details including price, bedrooms, year, and make. At least one location filter (state_code, city, or zip) should be provided for meaningful results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `bedrooms` | integer | No | Minimum number of bedrooms. |
| `city` | string | No | City name to filter by. |
| `limit` | integer | No | Maximum number of results to return. |
| `max_price` | integer | No | Maximum price filter in USD. |
| `min_price` | integer | No | Minimum price filter in USD. |
| `offset` | integer | No | Result offset for pagination. |
| `radius` | integer | No | Search radius in miles from the given location. |
| `state_code` | string | No | 2-letter US state code (e.g., 'FL'). |
| `zip` | string | No | 5-digit US ZIP code. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/search-homes \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"bedrooms":"<integer>","city":"<string>","limit":"<integer>","max_price":"<integer>","min_price":"<integer>","offset":"<integer>","radius":"<integer>","state_code":"<string>","zip":"<string>"}'
```

### Search parks

Searches for mobile home parks/communities with optional filters including state, city, zip, park type, pool, and pet-friendliness. Returns paginated results. At least one location filter (state_code, city, or zip) should be provided for meaningful results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `city` | string | No | City name to filter by. |
| `has_pool` | boolean | No | Filter for parks with a pool. |
| `limit` | integer | No | Maximum number of results to return. |
| `offset` | integer | No | Result offset for pagination. |
| `park_type` | string | No | Filter by park type. |
| `pet_friendly` | string | No | Filter for pet-friendly parks. |
| `radius` | integer | No | Search radius in miles from the given location. |
| `state_code` | string | No | 2-letter US state code (e.g., 'FL'). |
| `zip` | string | No | 5-digit US ZIP code. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/mhvillage/search-parks \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"city":"<string>","has_pool":"<boolean>","limit":"<integer>","offset":"<integer>","park_type":"<string>","pet_friendly":"<string>","radius":"<integer>","state_code":"<string>","zip":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://paywithlocus.com/agent/index.md): every Locus agent page.