# Landing Public API (HTTP GET)

Read-only access to Landing's furnished-apartment catalog over plain HTTP GET —
the same capabilities as our MCP server (https://www.hellolanding.com/mcp/public), for agents that
can't speak MCP. No auth. JSON responses. CORS open. Machine-readable spec:
https://www.hellolanding.com/api/public/openapi.json

Dates are YYYY-MM-DD. Errors return `{"error": {"code", "message"}}` (400 bad
input, 404 unknown home/market).

Agent guide (llms.txt): https://www.hellolanding.com/llms.txt —
a walkthrough of both transports (MCP + this GET API) with example flows.

Full tool catalog — every MCP tool with description, schema, and example
call: https://www.hellolanding.com/api/public/tools (markdown) · https://www.hellolanding.com/api/public/tools.json
(JSON — a GET mirror of the MCP `tools/list` response).

## Endpoints

- `GET /api/public/markets?state=` — List every Landing market currently accepting bookings, and — nested under each — its **display cities** (the specific, neighborhood-level places the website is organized around).
- `GET /api/public/market-filters?market=` — Returns all available filter options for a given market — its display cities, bedroom counts, amenities, price range, bathroom options, neighborhoods, and sort orders.
- `GET /api/public/search?market=&check_in=&check_out=&bedrooms=&max_price=` — Search Landing's published furnished apartments by location.
- `GET /api/public/homes/:slug` — Fetch a single Landing home by its slug — property details, amenities, photos, **flex pricing**, **the full availability calendar**, and a pre-filled `reservation_link` so the agent doesn't have to probe dates or assemble booking URLs by hand (get_apartment already returns the full calendar).
- `GET /api/public/homes/:slug/flex-options` — Return the flex (open-ended) commitment tiers a given home accepts, so the agent doesn't suggest a `committed_nights` value the home will reject.
- `GET /api/public/homes/:slug/quote?check_in=&check_out=&cats=&dogs=` — Real, date-specific anonymous quote for a home. Mirrors what an unauthenticated visitor sees in checkout: monthly rent after seasonal adjustments and length-of-stay discounts, the first-month charge, ongoing monthly cost, and an estimated total.
- `GET /api/public/market-info?market=&home=` — Market context for a Landing market: average monthly rent by bedroom count, total published inventory, and the neighborhoods with the most availability — useful for cross-market comparisons ("is Austin or Dallas cheaper for a 1BR?") without paging through search_apartments.
- `GET /api/public/policies-faq?q=` — Grounded, conservative answers to the most common Landing policy questions (deposits, pets, parking, cancellation, qualification, Landing Flex, utilities, move-in). Use this instead of guessing at policy specifics — where an exact number (deposit amount, cancellation window) depends on the home/market/reservation, the answer says so explicitly and points to get_quote, checkout, or Landing support rather than inventing a figure.
- `GET /api/public/status` — health check

## Typical flow

1. `GET /api/public/markets` → pick a market slug
2. `GET /api/public/search?market=<slug>&check_in=YYYY-MM-DD&check_out=YYYY-MM-DD` → pick a home slug
   e.g. https://www.hellolanding.com/api/public/search?market=birmingham&check_in=2026-09-01&check_out=2026-12-01
3. `GET /api/public/homes/<slug>/quote?check_in=YYYY-MM-DD&check_out=YYYY-MM-DD` → price it
