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.
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 'https://www.nrb.org.np/api/forex/v1/rates?page=1&per_page=1&from=2026-08-20&to=2026-08-20'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);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()){
"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
| Parameter | Type | Required | Description |
|---|---|---|---|
from | query | Required | Start of the date range in `YYYY-MM-DD`. 2026-08-20 |
to | query | Required | End of the date range in `YYYY-MM-DD`. 2026-08-20 |
page | query | Optional | Page number, starting at 1. 1 |
per_page | query | Optional | Records 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
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Percentage Change Calculator
Work out the percentage increase or decrease between an old and a new value. See the absolute change and whether it went up or down, instantly and privately.
Unit Converter
Convert between units of length, weight, temperature, area, volume, speed, time and data storage instantly, with a swap button and common conversion tables.
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.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| CoinGecko | Free 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 key | Yes | 19 Aug 2026 |
| Binance Public API | Binance 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 key | Yes | 19 Aug 2026 |
| Coinbase Exchange Rates | Coinbase 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 key | Yes | 19 Aug 2026 |
| Frankfurter | Free 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 key | Yes | 19 Aug 2026 |
| Norges Bank | Free Norges Bank API with no key: official Norwegian krone exchange rates, policy interest rates and government bond yields in SDMX-JSON. Tested example. | No key | No | 20 Aug 2026 |
| New York Fed Reference Rates | Free 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 key | Yes | 21 Aug 2026 |
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.