The Nail & Key DFW Market Data API
Every figure on this report, as JSON. Free and read-only, with no key and no sign-up.
The endpoint
GET https://market.nailandkey.com/api/market-data returns the Dallas–Fort Worth region and every city that has its own page on this report, over the last twelve complete months. It takes no parameters. To get one city, filter the cities array by slug.
curl -s https://market.nailandkey.com/api/market-data- No API key, no account, nothing to request first.
- CORS is open, so a web page on any site can call it from the browser.
- The numbers are rebuilt once a night, so asking more than once a day gets nothing new. Responses are cached, so check
updatedAtfor the date of the figures. - It is read-only. There is nothing to write.
What comes back
One JSON object. These are the fields most answers need:
regionandcities: one object per area, each withcity,slugandsales(closed sales in the window).medianClosePriceandavgClosePrice: the median and the average sale price, in dollars. The average is pulled up by the most expensive homes, so say which one you are quoting.medianPpsfandmedianDom: price per square foot, and days on market.pctOverAsk: the share of homes that sold above list price, as a fraction (0.12 means 12%).yoy: the change from the twelve months before, as a fraction for prices and sales and in days formedianDom.inventory.activeCountandinventory.monthsOfSupply: homes for sale now, and how many months they would last at the current pace of sales. Around six is balanced; fewer favors sellers.updatedAt,window,sourceandlicense: when the numbers were rebuilt, which months they cover, and the attribution that goes with them.
Every field is typed and described in the OpenAPI description. Point a client generator or a function-calling tool at that file.
Errors
Errors come back as JSON problem documents (RFC 9457), with the content type application/problem+json. Each has a status, a title, a code that stays the same between releases, and a hint saying what to try instead. A mistyped path, for example:
{
"type": "https://market.nailandkey.com/developers#not_found",
"title": "Not found",
"status": 404,
"detail": "No API endpoint at this path.",
"instance": "/api/market-dta",
"code": "not_found",
"hint": "The public API has one endpoint, GET https://market.nailandkey.com/api/market-data. Its schema is at https://market.nailandkey.com/openapi.json.",
"docs": "https://market.nailandkey.com/developers",
"error": "Not found"
}not_found(404): The public API has one endpoint, GET https://market.nailandkey.com/api/market-data. Its schema is at https://market.nailandkey.com/openapi.json.- (404): The market report is not published right now. Try again later.
method_not_allowed(405): This endpoint is read-only. Send a GET request.load_failed(500): The statistics could not be read. Retry in a minute; the figures change only once a night.
For AI agents
- llms.txt describes the report for a language model, with today's figures and when to use it.
- The homepage and every city page answer in Markdown when the request carries
Accept: text/markdown. It is the same URL with the same numbers and none of the layout.
curl -s -H 'Accept: text/markdown' https://market.nailandkey.com/coppellA page that does not exist answers 404 in Markdown to the same header, and an API path that does not exist answers 404 with a problem document.
Using the numbers
Cite them, chart them, put them in a story or a newsletter. Carry the attribution in the source field, link to the report, and give the updatedAt date, because every figure changes overnight. What you may and may not do is on the terms and data use page.
What it does not have
No listings, addresses, photos or prices for a single home. Texas is a non-disclosure state, and this report publishes aggregates only. There is also no write access, no paid tier, and no SDK or command-line tool; one endpoint and a curl cover it.
A question about a figure, or one you cannot find here? Get in touch.
