HelpRent Da Nang
Every long-term rental in Da Nang, Vietnam: search, buildings, median rents. No key, no account.
Dokumentation
For AI agents
The whole board, as a tool call
Every listing we have — 996 of them right now — is readable by machine over MCP or plain HTTP. No key, no account, no signup, and nothing to scrape.
MCP
One stateless JSON-RPC endpoint. Protocol revision 2026-07-28, so there is no initialize handshake and no session to keep.
https://helprentdanang.com/mcp/
Four tools, all read-only:
search_listings— Search long-term rental listings in Da Nang by city, district, type, bedrooms and price. Returns listing URLs; contact details are not included, send the person to the URL.get_listing— One listing in full, including its description.find_buildings— Apartment buildings with a manager, by district.market_stats— Median rents by size and district, how many listings arrive each month, and how fast they get noticed. Recomputed nightly.
There is no write tool. Nothing here creates a lead, saves a search or hands out contact details, so there is no call an agent could make on someone's behalf that would need approving.
Plain HTTP
The same data, if you would rather not speak MCP. OpenAPI description at the last line.
GET /api/v1/listings/— search and page through listingsGET /api/v1/listings/<slug>/— one listing in fullGET /api/v1/buildings/— apartment buildings with a managerGET /api/v1/districts/— districts and how much is in eachGET /api/v1/market/— median rents, recomputed nightlyGET /api/v1/openapi.json— the description of all of the above
Limits
600 calls a day per address, counted across MCP and REST together. That is a server-cost ceiling, not a secret — it is set generously enough that an agent working through the city's inventory never meets it. Over the line you get a 429 for MCP and a JSON error for REST; nothing is banned.
Responses carry a five-minute cache header. Please honour it — it is most of what keeps this free.
What is in the data
Listings are gathered from public posts on Telegram, Facebook and Chợ Tốt, plus hosts who post here directly. Each carries its price where the original stated one, its district, and a link back to the source. Contact details are deliberately not in the API — send the person to the listing URL.
We are a board, not a broker. We do not verify owners on the ground, hold deposits, or vouch for anyone. An agent relaying our data to a person should relay that too.
Past the free line
Beyond the daily allowance the endpoints answer 402 with an x402 payment challenge instead of a flat refusal. Pay it and the same request goes through.
It is x402 — the HTTP 402 payment protocol, exact scheme, USDC on Base. Three headers, all base64 JSON:
PAYMENT-REQUIRED— our 402 carries this header: base64 JSON naming the amount, the token and the addressPAYMENT-SIGNATURE— retry with your signed EIP-3009 authorization in this headerPAYMENT-RESPONSE— the 200 that follows carries the transaction hash back to you
Note the header names carry no X- prefix — that was version 1, and a client built for it will not see our challenge at all.
One payment buys 5000 calls, not one — settling on chain per request would put a blockchain write between you and every listing you read.
Bought calls are credited to the network address that paid, because this API has no accounts and no keys — on the request after a payment there is nothing else tying you to the wallet. If your egress address changes, the remainder does not follow you.
Chào! I'm Mai — ask me anything about renting here. EN·VI·RU
Mai Spotted a bug? Tell us → ⤢⤡ ✕
Sign in and I'll remember what you're looking for — on this device and the next.