داده‌های نمودا برای برنامه‌ها و پژوهش

همهٔ عددهای نمودا از نشانی‌های عمومی هم خوانده می‌شوند؛ رایگان، بی‌ثبت‌نام و بی‌کلید. این صفحه می‌گوید هر نشانی چه می‌دهد، بازار و ویژگی‌ها را چطور انتخاب کنید، هر عدد چه معنایی دارد و هنگام استفاده چطور نام نمودا را بیاورید.

نشانی‌ها

همهٔ نشانی‌ها با GET خوانده می‌شوند، بی‌ثبت‌نام و بی‌کلید، و پاسخشان JSON است. هر نشانی را می‌شود از مرورگر هم خواند، از هر سایتی. همه زیر این نشانی‌اند:

https://api.nemuda.com/api/market/
  • /api/market/meta — زمان آخرین محاسبه، طول پنجره به روز، بازارهایی که عدد دارند و ویژگی‌های هر کدام، و نرخی که ودیعه با آن به اجاره تبدیل می‌شود.
  • /api/market/real-estate/summary — کل ایران و همهٔ استان‌ها، در یک پاسخ.
  • /api/market/real-estate/places/{placeId}/children — شهرهای یک استان یا محله‌های یک شهر، گران‌ترین اول. جاهایی که عدد ندارند هم در آن هستند، با تعداد داده‌هایشان.
  • /api/market/real-estate/places/{placeId} — یک جا: عددش در این بازار، جای بالاتر از آن، و عددش در هر نوع ملک.
  • /api/market/real-estate/places/{placeId}/facets — برای یک جا و انتخاب فعلی: اگر یک ویژگی به گزینهٔ دیگری برود، عدد چه می‌شود و روی چند داده می‌ایستد.
  • /api/market/real-estate/place-index — همهٔ جاها با شناسه، نام و نشانی، و اینکه در این بازار عدد دارند یا نه؛ برای پیدا کردن placeId هر جا.

انتخاب بازار و ویژگی‌ها

بی‌پارامتر، هر نشانی دربارهٔ خرید آپارتمان است. بازار را با این دو پارامتر انتخاب کنید؛ زمین فقط خرید دارد:

propertyKind=apartment|house|land|shop|office
dealType=sell|rent

هر بازار ویژگی‌های خودش را دارد و هر ویژگی یک پارامتر است. فهرست امروزشان این است؛ فهرست همیشه درست در propertyKinds[].facets در پاسخ /api/market/meta است:

propertyKind=apartment  area=lt60|60-80|80-100|100-150|gte150
propertyKind=apartment  rooms=1|2|3plus
propertyKind=apartment  age=new|mid|old
propertyKind=apartment  parking=yes|no
propertyKind=apartment  elevator=yes|no
propertyKind=house  area=lt100|100-150|150-250|gte250
propertyKind=house  land=lt150|150-300|300-500|gte500
propertyKind=house  age=new|mid|old
propertyKind=land  area=lt250|250-500|500-1000|1000-10000|gte10000
propertyKind=land  use=residential|garden|farm|commercial
propertyKind=shop  area=lt20|20-40|40-80|gte80
propertyKind=shop  ownership=full|goodwill
propertyKind=shop  location=street|mall|bazaar|alley
propertyKind=office  area=lt60|60-100|100-200|gte200
propertyKind=office  age=new|mid|old
propertyKind=office  parking=yes|no
dealType=rent&propertyKind=apartment  area=lt60|60-80|80-100|100-150|gte150
dealType=rent&propertyKind=apartment  rooms=1|2|3plus
dealType=rent&propertyKind=apartment  age=new|mid|old
dealType=rent&propertyKind=apartment  parking=yes|no
dealType=rent&propertyKind=apartment  elevator=yes|no
dealType=rent&propertyKind=house  area=lt100|100-150|150-250|gte250
dealType=rent&propertyKind=house  land=lt150|150-300|300-500|gte500
dealType=rent&propertyKind=house  age=new|mid|old
dealType=rent&propertyKind=shop  area=lt20|20-40|40-80|gte80
dealType=rent&propertyKind=shop  location=street|mall|bazaar|alley
dealType=rent&propertyKind=office  area=lt60|60-100|100-200|gte200
dealType=rent&propertyKind=office  age=new|mid|old
dealType=rent&propertyKind=office  parking=yes|no

هر ویژگی را که نیاورید یعنی «فرقی نمی‌کند». بازاری که نباشد، ویژگی‌ای که آن بازار ندارد یا گزینه‌ای که آن ویژگی ندارد پاسخ 400 می‌گیرد، نه عدد بازار دیگری. هر پاسخ در filters می‌گوید عددش با کدام ویژگی‌ها ساخته شده است.

چند درخواست برای شروع

شناسهٔ شهر تهران 1 است. این‌ها عدد آن را در چند بازار می‌دهند:

https://api.nemuda.com/api/market/real-estate/places/1
https://api.nemuda.com/api/market/real-estate/places/1?propertyKind=shop
https://api.nemuda.com/api/market/real-estate/places/1?dealType=rent
https://api.nemuda.com/api/market/real-estate/places/1/children?rooms=1&age=new
https://api.nemuda.com/api/market/real-estate/places/1/facets?dealType=rent&rooms=1&age=new

معنی هر عدد در پاسخ

  • pricePerM2 — عدد اصلی: قیمت وسط یک متر، به تومان. در اجاره، اجارهٔ ماهانهٔ یک متر با سهم ودیعه‌اش.
  • pricePerM2Range — نیمهٔ وسط قیمت‌ها: یک‌چهارم از low ارزان‌ترند و یک‌چهارم از high گران‌تر. کمترین و بیشترین قیمت نیست.
  • priceTotal و areaM2 — قیمت کل وسط و متراژ وسط. هر عدد جدا حساب شده، پس متراژ ضرب در قیمت هر متر دقیقاً قیمت کل نمی‌شود، و این فرق خطا نیست.
  • deposit و monthlyRent — فقط در اجاره: ودیعهٔ وسط و اجارهٔ ماهانهٔ وسط، هر کدام جدا؛ این دو با هم اجارهٔ یک ملک واقعی نیستند.
  • dataPoints — چند داده پشت عدد است، در ۱۴ روز گذشته. هر داده یک قیمت یا اجاره است که فروشنده یا مالکی اعلام کرده. در عددی که با ویژگی‌ها ساخته شده و کمتر از ۱۰ داده دارد، null است.
  • coverage — none یعنی عددی منتشر نمی‌شود و همهٔ قیمت‌ها null است — معمولاً چون کمتر از ۱۰ داده دارد، ولی گاهی با ۱۰ داده یا بیشتر هم، وقتی قاعدهٔ انتشار عدد را نگه می‌دارد (dataPoints در این حالت عدد واقعی است)؛ limited یعنی عدد منتشر شده و ۱۰ تا ۲۹ داده پشت آن است؛ solid یعنی ۳۰ داده و بیشتر.
  • slug — بخشی از نشانی صفحهٔ آن جا. نشانی صفحه همیشه با حروف کوچک است، حتی اگر slug حرف بزرگ داشته باشد.
  • computedAt — زمان محاسبه، به وقت جهانی؛ asOf روزی که عدد دربارهٔ آن است؛ windowDays طول پنجره به روز.

عدد یک شهر میانگین عدد محله‌هایش نیست: بخشی از قیمت‌ها فقط شهر را دارند، نه محله را. چیزی کوچک‌تر از یک محله هم منتشر نمی‌شود: نه ملک، نه نشانی، نه فروشنده.

مجوز و ذکر نام

عددهای نمودا با مجوز CC BY 4.0 آزادند؛ می‌توانید آن‌ها را بازنشر کنید یا در برنامه، گزارش و پژوهشتان به کار ببرید، حتی برای کار تجاری. فقط هر جا عددی را نشان می‌دهید، این سه را هم بیاورید: نام «نمودا»، پیوند به صفحهٔ همان عدد در سایت نمودا، و تاریخ عدد (computedAt).

هر صفحه نشانی‌اش را در خط اول نسخهٔ متنی‌اش می‌گوید، و صفحهٔ «روش و تعریف‌ها» یک مثال کامل از ذکر نام دارد.

این عدد را در سایت خودتان نشان دهید

هر صفحهٔ یک جا که عدد دارد و عددش با ویژگی‌ها ساخته نشده، کارتی هم دارد: یک تصویر SVG با نام آن جا، عددش، تعداد داده‌ها، تاریخ و نام نمودا. اسکریپتی ندارد، چیزی از سایت شما نمی‌خواند و هر بار که عددها دوباره حساب می‌شوند به‌روز می‌شود. نشانی‌اش نشانی همان صفحه است با /embed در اول و .svg در آخر:

https://nemuda.com/embed/index.svg
https://nemuda.com/embed/tehran-province/tehran.svg

کد آمادهٔ کارت، با پیوند به همان صفحه، در «دربارهٔ این عدد» صفحه‌هایی است که به‌احتمال زیاد می‌مانند: کل ایران، و هر استان، شهر یا محله‌ای که عددش از ۳۰ داده یا بیشتر ساخته شده؛ صفحهٔ یک جا فقط تا وقتی هست که خودش یا جایی در آن عدد دارد. اگر صفحهٔ کارتی برود، به‌جای کارت تصویری بی‌عدد با نام نمودا نشان داده می‌شود، نه تصویری شکسته. صفحه‌ای که عددش با ویژگی‌ها ساخته شده کارت ندارد. کد کل ایران این است:

<a href="https://nemuda.com/"><img src="https://nemuda.com/embed/index.svg" alt="قیمت هر متر آپارتمان در ایران، از نمودا" width="360" height="146"></a>

برای دستیارها و برنامه‌های متنی

هر صفحه نسخهٔ متنی هم دارد: به آخر نشانی صفحه /index.txt را اضافه کنید. خط اول آن می‌گوید به کدام صفحه ارجاع بدهید و یک خط زمان محاسبه را به شکلی می‌دهد که برنامه بخواند. خلاصهٔ همهٔ این‌ها برای برنامه‌ها و دستیارها در llms.txt است.

برای خواندن عددها کنار هم، بی‌برنامه، گزارش ماهانه همه را در یک صفحه دارد.

چند بار بپرسید

عددها هر شش ساعت یک بار دوباره حساب می‌شوند؛ پرسیدن بیشتر از آن عدد تازه‌ای نمی‌دهد. زمان آخرین محاسبه را /api/market/meta می‌گوید؛ همان را بپرسید و فقط وقتی computedAt عوض شد بقیه را دوباره بخوانید.