# reachpony

> Search local home-service businesses (plumbing, HVAC, roofing, electrical and more) by city or ZIP code, with facts taken from each business's own website. Currently covers Atlanta, Austin, Dallas-Fort Worth, Houston and Phoenix. Read-only, no auth, no API key.

If you are an AI agent, use the JSON API or the MCP server below instead of the HTML site.

## MCP

- Endpoint: `https://reachpony.com/mcp` (Streamable HTTP, stateless, no auth)
- `search_businesses(location, service[], trade[], flags[], query, page)`: `location` is required.
- `get_business(id)`: full profile for an id from `search_businesses`.
- `list_coverage()`: metros and trades indexed, with business counts and the last refresh date.

## JSON API

- [Search](https://reachpony.com/v1/search?location=Austin%2C%20TX&trade=plumbing): `GET /v1/search` with `location` (city, county, metro or 5-digit ZIP), `service`, `trade`, `flag` (repeat or comma-separate, up to 10 each), `q` (keywords, e.g. a brand) and `page` (1-20, 10 results per page). Give at least one of them.
- Business profile: `GET https://reachpony.com/v1/business/{id}`, where `id` comes from a search result.
- [Coverage](https://reachpony.com/v1/coverage): `GET /v1/coverage`.
- [Taxonomy](https://reachpony.com/v1/taxonomy): `GET /v1/taxonomy`, every trade, service and flag code with its label.

`service` is the most precise filter: a taxonomy code like `plumbing.leak_repair`. Get the codes from `/v1/taxonomy`. Searches outside coverage return `covered: false` and a message rather than an empty list. Bad arguments return an error that says how to fix the call.

Trades: `appliance_repair`, `chimney`, `cleaning`, `electrician`, `exterior_cleaning`, `flooring`, `foundation`, `garage_door`, `handyman`, `hvac`, `landscaping`, `outdoor_living`, `painting`, `plumbing`, `pool`, `remodeling`, `restoration`, `roofing`, `security_av`, `septic`.

Flags: `emergency_24_7`, `same_day`, `free_estimates`, `financing`, `upfront_pricing`, `owner_operated`, `residential`, `commercial`, `licensed_claimed`, `insured_claimed`, `satisfaction_guarantee`, `discounts`, `maintenance_plan`, `spanish_spoken`, `manufacturer_certified`, `veteran_owned`, `insurance_claims_help`, `nate_certified`, `rebates_help`.

## Limits

`/v1/*` and `/mcp` share a per-IP limit: bursts of 30, then 4 requests per second. CORS is open.

## Website

- [Search page](https://reachpony.com/): `/?q=&loc=&trade=&flag=&page=`
- Business profiles: `/b/{id}`
- [Docs](https://reachpony.com/docs): setup, tool inputs and outputs, errors and limits.
- [Privacy](https://reachpony.com/privacy) and [Terms](https://reachpony.com/terms). Support: support@reachpony.com. Security: security@reachpony.com.
