نرخی API؛ وب‌سرویس رایگان قیمت بورس، طلا، سکه و ارز

قیمت لحظه‌ای و تاریخچه‌ی روزانه‌ی نمادهای بورس تهران و فرابورس ایران، و قیمت ارز، طلا، سکه و رمزارز بازار آزاد؛ با یک شناسه و یک قالب پاسخ برای همه. REST و JSON، مستند با OpenAPI. ثبت‌نام و استفاده در حال حاضر رایگان است.

چه داده‌ای می‌گیرید

شروع در سه قدم

  1. ۱ثبت‌نام رایگان با شماره موبایل.
  2. ۲پس از تأیید حساب، از داشبورد یک کلید API بسازید. کلید کامل فقط یک بار نشان داده می‌شود.
  3. ۳کلید را در هدر x-api-key هر درخواست بفرستید.

اولین درخواست

قیمت دلار، طلای ۱۸ عیار و سهم فولاد در یک درخواست؛ شناسه‌ها را با کاما جدا کنید.

curl -H "x-api-key: YOUR_API_KEY" \
  "https://nerkhy.ir/v1/quotes?ids=spot:USD,spot:GOLD_18K,tse:IRO1FOLD0001"
GET/v1/quotes?ids=spot:USD,spot:GOLD_18K,tse:IRO1FOLD0001200 OK
{
  "data": [
    {
      "id": "spot:USD",
      "market": "spot",
      "type": "currency",
      "symbol": "USD",
      "name": {
        "fa": "دلار آمریکا",
        "en": "US Dollar"
      },
      "currency": "IRR",
      "unit": "unit",
      "status": "active",
      "referencePrice": 2715650,
      "price": {
        "last": 2715650,
        "close": null,
        "open": null,
        "high": 2728100,
        "low": 2704000,
        "previousClose": 2694000
      },
      "change": {
        "amount": 21650,
        "percent": 0.8
      },
      "limits": null,
      "orderBook": null,
      "trading": null,
      "fund": null,
      "fundamentals": null,
      "tradeDate": "2026-10-22",
      "lastTradeAt": "2026-10-22T14:19:11+03:30",
      "observedAt": "2026-10-22T10:49:17.981Z",
      "stale": false,
      "source": "tgju"
    },
    {
      "id": "spot:GOLD_18K",
      "market": "spot",
      "type": "gold",
      "symbol": "GOLD_18K",
      "name": {
        "fa": "طلای ۱۸ عیار",
        "en": "Gold 18K"
      },
      "currency": "IRR",
      "unit": "gram",
      "status": "active",
      "referencePrice": 272182000,
      "price": {
        "last": 272182000,
        "close": null,
        "open": null,
        "high": 273108000,
        "low": 270548000,
        "previousClose": 270550000
      },
      "change": {
        "amount": 1632000,
        "percent": 0.6
      },
      "limits": null,
      "orderBook": null,
      "trading": null,
      "fund": null,
      "fundamentals": null,
      "tradeDate": "2026-10-22",
      "lastTradeAt": "2026-10-22T14:19:11+03:30",
      "observedAt": "2026-10-22T10:49:17.981Z",
      "stale": false,
      "source": "tgju"
    },
    {
      "id": "tse:IRO1FOLD0001",
      "market": "tse",
      "type": "stock",
      "symbol": "فولاد",
      "name": {
        "fa": "فولاد مبارکه اصفهان",
        "en": null
      },
      "currency": "IRR",
      "unit": "share",
      "status": "active",
      "referencePrice": 4540,
      "price": {
        "last": 4540,
        "close": 4540,
        "open": 4460,
        "high": 4560,
        "low": 4430,
        "previousClose": 4410
      },
      "change": {
        "amount": 130,
        "percent": 2.95
      },
      "limits": {
        "upper": 4540,
        "lower": 4280
      },
      "orderBook": {
        "bestBid": 4540,
        "bestAsk": null
      },
      "trading": {
        "volume": 1563050927,
        "value": 7096251208580,
        "count": 13401
      },
      "fund": null,
      "fundamentals": {
        "eps": 518,
        "pe": 8.8,
        "sharesOutstanding": "1935000000000",
        "marketCap": "8784900000000000"
      },
      "tradeDate": "2026-10-14",
      "lastTradeAt": "2026-10-14T12:29:54+03:30",
      "observedAt": "2026-10-15T10:50:06.986Z",
      "stale": false,
      "source": "tsetmc"
    }
  ],
  "meta": {
    "total": 3,
    "limit": 100,
    "offset": 0,
    "notFound": []
  }
}
نمونه‌ی پاسخ با مقادیر یک روز مشخص؛ قیمت روز نیست.

مسیرها

مسیرکار
GET /v1/quotesآخرین قیمت چند دارایی با ids یا symbols، یا یک بازار و نوع کامل با market و type (تا ۱۰۰۰ در هر صفحه)
GET /v1/quotes/{id}آخرین قیمت یک دارایی
GET /v1/instrumentsجست‌وجو با نماد، نام فارسی یا انگلیسی و کد؛ یا فهرست نمادها بدون قیمت
GET /v1/instruments/{id}مشخصات یک نماد (گروه صنعت، بازار، شناسه‌های بیرونی) همراه با آخرین قیمت
GET /v1/instruments/{id}/candlesکندل‌های روزانه؛ تاریخچه
GET /v1/marketsروز معاملاتی، باز یا بسته بودن بازار و تازگی داده

همه‌ی پارامترها و مدل‌ها در مرجع کامل API هستند و همان‌جا می‌توانید با کلید خودتان درخواست آزمایشی بفرستید. سند ماشینی OpenAPI 3.1 هم برای ساختن خودکار کلاینت آماده است.

قواعدی که باید بدانید

موضوعقاعده
شناسههر دارایی یک شناسه‌ی ثابت <market>:<code> دارد: بورس با ISIN مثل tse:IRO1FOLD0001 و بازار آزاد با کد مثل spot:USD.
واحد پولفیلد currency همیشه صریح است: IRR یعنی ریال (تومان = ریال ÷ ۱۰)، USD دلار، و null برای شاخص‌ها.
قیمت مرجعreferencePrice قیمتی است که با آن دارایی را ارزش‌گذاری می‌کنید: قیمت پایانی در بورس و آخرین قیمت در بازار آزاد.
مقدار نامعلومnull یعنی نامعلوم، هرگز صفر نیست.
زمان‌هاtradeDate روز معاملاتی قیمت، lastTradeAt آخرین تغییر در منبع و observedAt زمان خوانده‌شدن توسط نرخی.
تازگیstale: true یعنی نسخه‌ی ما ممکن است از منبع عقب باشد؛ معامله‌نشدن نماد را از tradeDate بفهمید.
اعداد بزرگsharesOutstanding و marketCap رشته‌اند، چون ممکن است از دقت عدد در JavaScript بزرگ‌تر شوند.
قالب پاسخموفق: {"data": …, "meta": …} · خطا: {"error": {"code", "message", "details", "requestId"}}

خطاها و محدودیت‌ها

روی error.code تصمیم بگیرید؛ متن message برای انسان است و ممکن است عوض شود.

HTTPcodeمعنا
400invalid_requestپارامتر نامعتبر؛ جزئیات در details
401unauthorizedکلید ارسال نشده یا معتبر نیست
404not_foundشناسه وجود ندارد یا هنوز قیمتی ندارد
429rate_limitedبیش از حد مجاز در دقیقه؛ هدر retry-after می‌گوید کی دوباره بفرستید
429quota_exceededسهمیه‌ی روزانه‌ی حساب تمام شده است

هر پاسخ هدرهای x-ratelimit-limit، x-ratelimit-remaining و x-ratelimit-reset را دارد و یک x-request-id که هنگام گزارش مشکل به پشتیبانی کمک می‌کند. مصرف روزانه‌ی کلیدتان را در داشبورد می‌بینید.

پرسش‌های رایج

آیا نرخی API رایگان است؟

بله. در حال حاضر ثبت‌نام، ساخت کلید و استفاده از API رایگان است. مصرف روزانه‌ی کلیدتان را در داشبورد می‌بینید و اگر شرایط استفاده تغییر کند، در همین صفحه اعلام می‌شود.

برای گرفتن کلید API چه باید کرد؟

با شماره موبایل رایگان ثبت‌نام کنید. پس از تأیید حساب، کلید را از داشبورد بسازید و در هدر x-api-key هر درخواست بفرستید. هر حساب یک کلید فعال دارد که هر وقت بخواهید عوض یا باطلش می‌کنید.

قیمت‌ها به ریال است یا تومان؟

به ریال (currency برابر IRR)، و چند قلم بازار آزاد مثل انس طلا و بیت‌کوین دلاری به دلار (USD). برای تومان، قیمت ریالی را بر ۱۰ تقسیم کنید. شاخص‌ها واحد پول ندارند و به امتیازند.

داده‌ها هر چند وقت به‌روز می‌شوند؟

قیمت‌های بورس در ساعت معاملات حدود هر دقیقه، قیمت‌های بازار آزاد و NAV صندوق‌ها هر چند دقیقه. هر قیمت روز معاملاتی (tradeDate)، زمان آخرین تغییر در منبع (lastTradeAt) و زمان خوانده‌شدن (observedAt) خودش را دارد.

می‌توانم API را مستقیم از مرورگر صدا بزنم؟

نه. درخواست‌ها را از سرور یا بک‌اند خودتان بفرستید تا کلید API در کدی که به دست کاربر می‌رسد دیده نشود.

چرا به‌جای خواندن مستقیم سایت بورس از نرخی API استفاده کنم؟

نرخی داده‌ی بورس، فرابورس و بازار آزاد را در یک مدل با شناسه‌های ثابت نگه می‌دارد. لازم نیست چند منبع را بخوانید و قالب‌هایشان را یکی کنید، و درخواست‌های شما به منبع نمی‌رسند؛ پس سریع‌اند و IP شما مسدود نمی‌شود.

همین حالا شروع کنید

ثبت‌نام و استفاده از نرخی API رایگان است. پس از تأیید حساب، کلید API را از داشبورد بسازید و اولین درخواست را بفرستید.