APIs Features Examples View Docs ⭐ Source Code Try Free →
21 APIs · Completely Free · Production Ready

The open API platform
built for Nepal

Agriculture prices, trekking permits, health triage, transport booking, job matching and more — all in one ecosystem. Free forever.

Terminal
# Apply for a trekking permit
curl -X POST /api/v1/tourism/permits/apply \
  -H "Content-Type: application/json" \
  -d '{"trek_id":"EBC","passport_number":"P123456","nationality":"Foreign"}'

# Response
{
  "status": "success",
  "data": {
    "permit_id": "PRMT-9FFE4A8F",
    "trek": "Everest Base Camp",
    "fee_npr": 6000,
    "status": "PENDING_PAYMENT"
  }
}
// Apply for a trekking permit
const response = await fetch('/api/v1/tourism/permits/apply', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    trek_id: 'EBC',
    passport_number: 'P123456',
    nationality: 'Foreign'
  })
});

const { data } = await response.json();
console.log(data.permit_id); // PRMT-9FFE4A8F
import requests

# Apply for a trekking permit
res = requests.post(
    '/api/v1/tourism/permits/apply',
    json={
        'trek_id': 'EBC',
        'passport_number': 'P123456',
        'nationality': 'Foreign'
    }
)
data = res.json()['data']
print(data['permit_id'])  # PRMT-9FFE4A8F
21 APIs
90+ Endpoints
Free Forever
MongoDB Atlas Backed
JWT Auth Protected

Everything Nepal needs,
one base URL

Each API is independently usable. Click any endpoint to copy the full URL. GET endpoints open directly in browser.

🔐

Auth

Authentication
Protected

JWT-based admin authentication. Login to get a Bearer token for protected write endpoints.

POST /auth/login
🗣️

BhasaAI

Language
Free

Nepali language translation, transliteration, sentiment analysis, NER, and language detection.

POST/language/translate
POST/language/sentiment
GET/language/detect
🌾

KrishiData

Agriculture
Free

Live Kalimati market prices, crop disease analysis, weather forecasts, and fertilizer recommendations.

GET/agri/prices/kalimati
POST/agri/disease/analyze
GET/agri/crops/calendar
🚨

NepalAlert

Disaster
Alert

Active disaster alerts, river flood levels, landslide risk zones, earthquake data, and SMS subscriptions.

GET/disaster/alerts/active
GET/disaster/rivers/levels
GET/disaster/earthquakes/recent
💰

PaisaLink

Finance
Free

Live NRB forex rates, remittance calculator, eSewa/Khalti payment initiation, bank branches, and budget categorizer.

GET/finance/forex/rates
POST/finance/remittance/calculate
GET/finance/banks/branches
📚

Shikshya

Education
Free

AI tutor, syllabus by grade, past exam papers, objective and essay grading for Nepal's curriculum.

POST/education/tutor/ask
GET/education/syllabus/:grade
GET/education/past-papers
🏥

SwasthyaTriage

Health
Free

Symptom-based triage, nearby health facility finder, first-aid guides, and disease outbreak monitoring.

POST/health/triage/analyze
GET/health/facilities/nearby
GET/health/diseases/outbreaks
🏛️

NagarikConnect

Government
Free

Application status tracking, document verification, public holidays, ward office locator, and vehicle tax rates.

GET/gov/holidays
GET/gov/tax/vehicle-rates
POST/gov/documents/verify
💼

RozgariMatch

Jobs
Free

Job search by category and location, resume skill extraction, candidate–job matching, and foreign demand verification.

GET/jobs/search
POST/jobs/resume/parse
POST/jobs/match
🚌

YataYat

Transport
Free

City and intercity bus routes, fare calculator with student discounts, seat availability, and ticket booking.

GET/transport/routes/search
GET/transport/routes/intercity
POST/transport/tickets/book
📈

NEPSE

Stock Market
Live

Live NEPSE indices, top gainers & losers, market status, and registered broker list from Nepal Stock Exchange.

GET/nepse/live
GET/nepse/top-gainers
GET/nepse/market-status
📰

Nepal News

News
Live

Live news headlines scraped from OnlineKhabar, Setopati, Ratopati, and eKantipur RSS feeds in real time.

GET/news/headlines
GET/news/source/:source
GET/news/feeds

Nepal Weather

Weather
Live

Live weather for 10 major Nepal cities powered by Open-Meteo — no API key required. Temperature, humidity, wind, condition.

GET/weather
GET/weather/city/:city
GET/weather/cities

Fuel Prices

NOC
Free

Nepal Oil Corporation fuel prices — petrol, diesel, kerosene, LP gas per litre in NPR. Live scrape with fallback.

GET/fuel/prices
GET/fuel/history
🪙

Gold & Silver

FENEGOSIDA
Live

Daily gold and silver rates in NPR per tola from FENEGOSIDA. Fine gold (24K), tejabilo, silver. Gold weight converter included.

GET/gold/rates
GET/gold/convert?weight_grams=&karat=
GET/gold/history
📅

BS Calendar

Bikram Sambat
Free

Bikram Sambat ↔ Gregorian date conversion, today's BS date, Nepal public holidays, and all 12 BS month names.

GET/calendar/today
GET/calendar/convert/ad-to-bs?date=
GET/calendar/holidays
🏏

Nepal Cricket

Sports
Free

Nepal national cricket team fixtures, recent results, current squad, and team stats. Powered by ESPNcricinfo.

GET/cricket/fixtures
GET/cricket/results
GET/cricket/squad

Nepal Energy

NEA / Hydro
Free

NEA electricity tariff rates, planned outages, 10 major hydropower plants, and national energy summary.

GET/energy/tariff
GET/energy/hydro
GET/energy/outages
🎉

Nepal Festivals

Culture
Free

20+ Nepal festivals — Dashain, Tihar, Holi, Indra Jatra, Buddha Jayanti and more with dates, significance and regions.

GET/festivals
GET/festivals/upcoming
GET/festivals/types
🎬

Entertainment

Movies & Events
Free

Movies now showing in Nepal cinemas (QFX, Big Movies), upcoming cultural events, and cinema locations nationwide.

GET/ent/movies
GET/ent/events
GET/ent/cinemas

Built for real-world use

JWT Authentication

Admin-protected write endpoints secured with JSON Web Tokens. Public read endpoints need no key.

🗄️

MongoDB Atlas Backed

Permits, tickets, jobs, payments, and subscriptions persist in MongoDB Atlas with file fallback for local dev.

🛡️

Validated & Rate Limited

Every endpoint validated with express-validator. 100 req/15 min rate limiting. Helmet security headers.

📦

Docker Ready

Comes with a production Dockerfile. Drop in your env file and ship.

🔄

Live API Fallbacks

External integrations (NRB forex, OpenWeatherMap) gracefully fall back to realistic cached data if unavailable.

📋

Structured Logging

Winston JSON logs + Morgan HTTP access logs. Production-mode uses combined Apache format.

Up in 30 seconds

GET /api/v1/weather/city/kathmandu
const res = await fetch('/api/v1/weather/city/kathmandu');
const { data } = await res.json();

console.log(data.temperature_c);   // 18.4
console.log(data.condition);       // "Partly Cloudy"
console.log(data.humidity_percent);// 72
import requests

r = requests.get('/api/v1/weather/city/kathmandu')
data = r.json()['data']

print(data['temperature_c'])    # 18.4
print(data['condition'])        # Partly Cloudy
print(data['humidity_percent']) # 72
curl /api/v1/weather/city/kathmandu

# Response
{
  "status": "success",
  "source": "Open-Meteo (Live)",
  "data": {
    "city": "Kathmandu",
    "temperature_c": 18.4,
    "condition": "Partly Cloudy",
    "humidity_percent": 72,
    "wind_kmh": 12
  }
}
GET /api/v1/nepse/live
const res = await fetch('/api/v1/nepse/live');
const { data } = await res.json();

console.log(data.index);      // NEPSE index object
console.log(data.fetchedAt);  // "2026-04-29T..."
import requests

r = requests.get('/api/v1/nepse/live')
data = r.json()['data']

print(data['index'])
print(data['fetchedAt'])
curl /api/v1/nepse/live

# Response (live from Nepal Stock Exchange)
{
  "status": "success",
  "source": "Nepal Stock Exchange (Live)",
  "data": {
    "index": { "nepseIndex": 2078.34, "change": 12.4 },
    "fetchedAt": "2026-04-29T..."
  }
}
GET /api/v1/gold/rates
const res = await fetch('/api/v1/gold/rates');
const { data } = await res.json();

console.log(`Fine gold: NPR ${data.fine_gold_per_tola_npr} / tola`);
console.log(`Silver:    NPR ${data.silver_per_tola_npr} / tola`);

// Weight converter
const conv = await fetch('/api/v1/gold/convert?weight_grams=10&karat=22');
const val = (await conv.json()).data;
console.log(`10g 22K = NPR ${val.estimated_value_npr}`);
import requests

data = requests.get('/api/v1/gold/rates').json()['data']
print(f"Fine gold: NPR {data['fine_gold_per_tola_npr']} / tola")
print(f"Silver:    NPR {data['silver_per_tola_npr']} / tola")

# Weight converter
conv = requests.get('/api/v1/gold/convert',
         params={'weight_grams': 10, 'karat': 22}).json()['data']
print(f"10g 22K = NPR {conv['estimated_value_npr']}")
curl /api/v1/gold/rates

{
  "data": {
    "fine_gold_per_tola_npr": 148000,
    "silver_per_tola_npr": 1750,
    "unit": "tola (11.664g)",
    "source": "FENEGOSIDA"
  }
}

# Gold weight converter
curl "/api/v1/gold/convert?weight_grams=10&karat=22"
GET /api/v1/calendar/today
const res = await fetch('/api/v1/calendar/today');
const { data } = await res.json();

console.log(data.bs.date);        // "2082-01-16" (Bikram Sambat)
console.log(data.bs.month_name);  // "Baishakh"
console.log(data.ad.date);        // "2026-04-29"

// Convert AD → BS
const cv = await fetch('/api/v1/calendar/convert/ad-to-bs?date=2026-04-14');
const bs = (await cv.json()).data.bs;
console.log(`April 14 = ${bs.date} ${bs.month_name}`);
import requests

data = requests.get('/api/v1/calendar/today').json()['data']
print(data['bs']['date'])        # 2082-01-16
print(data['bs']['month_name'])  # Baishakh

# Convert AD → BS
r = requests.get('/api/v1/calendar/convert/ad-to-bs',
                 params={'date': '2026-04-14'})
print(r.json()['data']['bs'])
curl /api/v1/calendar/today

{
  "data": {
    "bs": { "date": "2082-01-16", "month_name": "Baishakh" },
    "ad": { "date": "2026-04-29" }
  }
}

# AD → BS conversion
curl "/api/v1/calendar/convert/ad-to-bs?date=2026-04-14"
GET /api/v1/finance/forex/rates
const res = await fetch('/api/v1/finance/forex/rates');
const { data } = await res.json();

const usd = data.payload[0].rates.find(r => r.currency.iso3 === 'USD');
console.log(`1 USD = NPR ${usd.sell}`);
import requests

data = requests.get('/api/v1/finance/forex/rates').json()['data']
rates = data['payload'][0]['rates']
usd = next(r for r in rates if r['currency']['iso3'] == 'USD')
print(f"1 USD = NPR {usd['sell']}")
curl /api/v1/finance/forex/rates

{
  "source": "NRB Live API",
  "data": {
    "payload": [{
      "rates": [
        { "iso3": "USD", "buy": 133.50, "sell": 134.10 },
        { "iso3": "EUR", "buy": 145.20, "sell": 145.85 }
      ]
    }]
  }
}
GET /api/v1/news/headlines
const res = await fetch('/api/v1/news/headlines');
const { data } = await res.json();

data.headlines.forEach(article => {
  console.log(`[${article.source}] ${article.title}`);
});

// Or pick a specific outlet
const ok = await fetch('/api/v1/news/source/onlinekhabar');
const ok_data = await ok.json();
import requests

r = requests.get('/api/v1/news/headlines').json()
for article in r['data']['headlines']:
    print(f"[{article['source']}] {article['title']}")

# Specific outlet: onlinekhabar, setopati, ratopati, ekantipur
r2 = requests.get('/api/v1/news/source/setopati').json()
curl /api/v1/news/headlines

# Specific Nepali outlet
curl /api/v1/news/source/onlinekhabar
curl /api/v1/news/source/setopati
curl /api/v1/news/source/ratopati
curl /api/v1/news/source/ekantipur
GET /api/v1/jobs/search
const params = new URLSearchParams({ category: 'IT', location: 'Kathmandu' });
const res = await fetch(`/api/v1/jobs/search?${params}`);
const { data } = await res.json();

data.jobs.forEach(j => console.log(j.title, '—', j.company));
import requests

r = requests.get('/api/v1/jobs/search',
                 params={'category': 'IT', 'location': 'Kathmandu'})
for job in r.json()['data']['jobs']:
    print(job['title'], '—', job['company'])
curl "/api/v1/jobs/search?category=IT&location=Kathmandu"

{
  "data": {
    "count": 3,
    "jobs": [
      { "title": "Backend Engineer", "company": "Kathmandu Tech" }
    ]
  }
}
POST /api/v1/tourism/permits/apply
const res = await fetch('/api/v1/tourism/permits/apply', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    trek_id: 'EBC',
    passport_number: 'P123456',
    nationality: 'Foreign'
  })
});
const { data } = await res.json();
console.log(data.permit_id);  // "PRMT-9FFE4A8F"
console.log(data.fee_npr);    // 6000
import requests

r = requests.post('/api/v1/tourism/permits/apply', json={
    'trek_id': 'EBC',
    'passport_number': 'P123456',
    'nationality': 'Foreign'
})
data = r.json()['data']
print(data['permit_id'])  # PRMT-9FFE4A8F
print(data['fee_npr'])    # 6000
curl -X POST /api/v1/tourism/permits/apply \
  -H "Content-Type: application/json" \
  -d '{"trek_id":"EBC","passport_number":"P123456","nationality":"Foreign"}'

{
  "data": {
    "permit_id": "PRMT-9FFE4A8F",
    "trek": "Everest Base Camp",
    "fee_npr": 6000,
    "status": "PENDING_PAYMENT"
  }
}

Build something for Nepal

21 production-ready APIs, zero signup, no credit card. Hit an endpoint and you're live in seconds.

Base URL

/api/v1

All endpoints are prefixed with this URL. No API key required for public endpoints.