BYTETOOLS

Nepal Rastra Bank Forex API

Free Nepal Rastra Bank forex API with no key: official Nepalese rupee buying and selling rates by date range, with per-currency quotation units. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 21 Aug 2026

What is the Nepal Rastra Bank Forex API?

Nepal Rastra Bank publishes its official foreign exchange rates through a free JSON API with no key. Requests take a date range and return buy and sell rates for each quoted currency, along with the unit each rate applies to.

The API is date-range based rather than single-date, which is the right design for a rate that only publishes on working days: ask for a week and take what comes back, instead of guessing which days had a fixing. Pagination is explicit through `page` and `per_page`, and the parameters you sent are echoed in the response so a cached payload is self-describing.

Two conventions matter for correctness. Rates are strings, not numbers — `"152.91"` rather than `152.91` — which is deliberate for money and means you must parse before arithmetic. And the Indian rupee is quoted per 100 units while the US dollar is per 1, exposed through `currency.unit`. Given how much Nepal–India trade the INR rate touches, getting that division wrong is not a hypothetical failure.

Quick facts

Base URL
https://www.nrb.org.np/api/forex/v1
Authentication
No key or registration required.
Rate limit
No documented limit. Rates publish once per working day.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Nepal Rastra Bank Forex API

Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. Official NPR forex rates for 20 August 2026

GET https://www.nrb.org.np/api/forex/v1/rates?page=1&per_page=1&from=2026-08-20&to=2026-08-20

curl
curl 'https://www.nrb.org.np/api/forex/v1/rates?page=1&per_page=1&from=2026-08-20&to=2026-08-20'
JavaScript (fetch)
const res = await fetch("https://www.nrb.org.np/api/forex/v1/rates?page=1&per_page=1&from=2026-08-20&to=2026-08-20");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://www.nrb.org.np/api/forex/v1/rates?page=1&per_page=1&from=2026-08-20&to=2026-08-20", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "status": {
    "code": 200
  },
  "errors": {
    "validation": null
  },
  "params": {
    "date": null,
    "from": "2026-08-20",
    "to": "2026-08-20",
    "post_type": null,
    "per_page": "1",
    "page": "1",
    "slug": null,
    "q": null
  },
  "data": {
    "payload": [
      {
        "date": "2026-08-20",
        "published_on": "2026-08-20 00:00:56",
        "modified_on": "2026-08-19 15:56:04",
        "rates": [
          {
            "currency": {
              "iso3": "INR",
              "name": "Indian Rupee",
              "unit": 100
            },
            "buy": "160.00",
            "sell": "160.15"
          },
          {
            "currency": {
              "iso3": "USD",
              "name": "U.S. Dollar",
              "unit": 1
            },
            "buy": "152.91",
            "sell": "153.51"
          },
          {
            "currency": {
              "iso3": "EUR",
              "name": "European Euro",
              "unit": 1
            },
            "buy": "177.46",
            "sell": "178.16"
          },
          {
            "currency": {
              "iso3": "GBP",
              "name": "UK Pound Sterling",
              "unit": 1
            },
            "buy": "207.29",
            "sell": "208.11"
          },
          {
            "currency": {
              "iso3": "CHF",
              "name": "Swiss Franc",
              "unit": 1
            },
            "buy": "188.71",
            "sell": "189.45"
          },
          {
            "currency": {
              "iso3": "AUD",

Parameters

ParameterTypeRequiredDescription
fromqueryRequiredStart of the date range in `YYYY-MM-DD`. 2026-08-20
toqueryRequiredEnd of the date range in `YYYY-MM-DD`. 2026-08-20
pagequeryOptionalPage number, starting at 1. 1
per_pagequeryOptionalRecords per page. Each record is one publication day. 1

Response fields

status.codeinteger
Application-level status, mirroring the HTTP code.
paramsobject
Echo of the query you sent, which makes a cached response self-documenting.
data.payload[].datestring
Publication date for this set of rates.
data.payload[].rates[].currency.iso3string
ISO 4217 code for the quoted currency.
data.payload[].rates[].currency.unitinteger
Units the rate applies to — 1 for USD, 100 for INR.
data.payload[].rates[].buy / sellstring
Buying and selling rates in Nepalese rupees per `unit`, returned as strings to avoid float rounding.
errors.validationobject|null
Populated when a parameter fails validation; null on success.

What you can build with the Nepal Rastra Bank Forex API

  • Convert Nepalese rupee amounts using the official published rate
  • Fetch a month of rates in one request to chart a currency's movement
  • Reconcile remittance transactions against the official buy and sell rates
  • Show the NPR/INR rate correctly by applying the per-100 quotation unit

Common errors and how to fix them

Empty payload array

The date range covers only non-publication days.

Fix: Weekends and Nepali public holidays have no fixing. Widen the range rather than retrying the same date.

Validation error object populated

`from` or `to` is missing or malformed.

Fix: Both are required and must be `YYYY-MM-DD`. The Nepali Bikram Sambat calendar is not accepted here.

INR conversion off by 100

`currency.unit` was ignored.

Fix: The Indian rupee is quoted per 100 units. Divide `buy`/`sell` by `currency.unit` in every code path.

Nepal Rastra Bank Forex API — frequently asked questions

Is the Nepal Rastra Bank forex API free?

Yes. It requires no key or registration and returns permissive CORS headers, so browser code can call it directly.

Why are the rates returned as strings?

Returning money as strings avoids the binary floating-point rounding that would otherwise creep into a decimal rate. Parse them with a decimal-safe type rather than a float where you can.

What is the difference between the buy and sell rate?

Buy is the rate at which the currency is purchased and sell the rate at which it is sold; the gap between them is the spread. Which one applies depends on the direction of your transaction.

Does the API accept Nepali calendar dates?

No. The `from` and `to` parameters expect Gregorian `YYYY-MM-DD` dates. Convert from Bikram Sambat before calling.

Tools that pair with this API

Alternatives to Nepal Rastra Bank Forex API

If Nepal Rastra Bank Forex does not fit, these finance & crypto apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
CoinGeckoFree cryptocurrency price API covering 10,000+ coins. Live prices, market cap and volume in any currency, no API key on the public tier. Tested curl example.No keyYes19 Aug 2026
Binance Public APIBinance public market data API needs no API key: live ticker prices, order books, klines and 24h stats for every trading pair. Tested curl example and response.No keyYes19 Aug 2026
Coinbase Exchange RatesCoinbase public exchange rates API with no key: convert any cryptocurrency to 100+ fiat currencies in a single request. Tested curl example and live JSON.No keyYes19 Aug 2026
FrankfurterFree currency exchange rate API with no key, built on European Central Bank data. Latest and historical rates, time series and conversion. Tested curl example.No keyYes19 Aug 2026
Norges BankFree Norges Bank API with no key: official Norwegian krone exchange rates, policy interest rates and government bond yields in SDMX-JSON. Tested example.No keyNo20 Aug 2026
New York Fed Reference RatesFree New York Fed markets API with no key: SOFR, EFFR, OBFR, TGCR and BGCR reference rates with volumes and percentiles, plus the SOFR averages and index. Tested example.No keyYes21 Aug 2026
All Finance & Crypto APIs

Nepal Rastra Bank Forex is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.