A modern, elegant, and comprehensive dashboard as well as open api for tracking live stock prices from the Nepal Stock Exchange (NEPSE). Features real-time market data, sector filtering, IPO tracking, broker directory, and automated data updates via GitHub Actions.
- Live Market Data: Real-time stock prices, changes, and volumes
- Sector Filtering: Filter stocks by sectors (Hydro, Banking, Insurance, etc.)
- Instant Search: Search by stock symbol or company name
- Market Indices: Live NEPSE indices with animated marquee
- Top Movers: Real-time top gainers and losers
- Stock Detail Modal: Click any stock for detailed information
- Upcoming IPOs: Track open, upcoming, and closed IPOs
- Nepali Date Support: Automatic BS to AD date conversion
- Status Badges: Visual indicators for Open/Upcoming/Closed IPOs
- Reserved Shares: Special indicators for NRN/reserved share issues
- Broker Directory: Complete broker listings with filters
- Membership Types: Filter by broker membership category
- District/Province Filters: Geographic broker search
- TMS Links: Direct access to broker trading platforms
- Market History: Historical market summary data
- Open-Ended Mutual Funds: Daily/weekly/monthly NAV snapshots in dedicated dataset
All data is available as static JSON endpoints for developers. See JSON Docs for complete API reference.
- Public static API spec:
openapi.yaml - Legacy NEPSE upstream endpoint spec:
openapi_legacy_nepse.yaml
Visit the dashboard at: https://shubhamnpk.github.io/yonepse/ or
- Frontend: HTML5, Vanilla CSS (Glassmorphism Design), Vanilla JavaScript
- Styling: CSS Variables, Gradient Backgrounds, Backdrop Filters
- Fonts: Google Fonts (Inter, Outfit)
- Icons: Font Awesome 6.4.0
- Backend/Scraper: Python 3.9 (NEPSE API + BeautifulSoup fallback)
- Automation: GitHub Actions (Scheduled Cron Jobs)
- Data Sources:
- Nepal Stock Exchange (NEPSE) Official API
- Merolagani
- ShareSansar
nepse-scraper/
βββ index.html # Main market dashboard
βββ data.html # Brokers & datasets page
βββ docs.html # JSON API documentation
βββ script.js # Main dashboard logic
βββ data.js # Data hub logic
βββ style.css # All styling (glassmorphism)
βββ start_server.bat # Windows local server starter
βββ favicon.png # Site favicon
βββ data/ # JSON data files
β βββ nepse_data.json # Stock prices
β βββ OMF.json # Open-ended mutual fund NAV data
β βββ indices.json # Market indices
β βββ sector_indices.json # Sector indices
β βββ top_stocks.json # Top gainers/losers
β βββ market_summary.json # Current market summary
β βββ market_summary_history.json
β βββ market_status.json # Market open/closed status
β βββ notices.json # Exchange notices
β βββ disclosures.json # Company disclosures
β βββ exchange_messages.json # Exchange announcements
β βββ brokers.json # Broker directory
β βββ all_securities.json # Securities metadata
β βββ supply_demand.json # Supply/demand data
β βββ upcoming_ipo.json # Upcoming IPOs
β βββ oldipo.json # IPO archive
β βββ proposed_dividend/ # Proposed dividend datasets
β β βββ latest_1y.json # Latest proposed dividends (rolling 1 year)
β β βββ history_all_years.json # Append-only all-years proposed dividend history
β β βββ meta.json # Proposed dividend scraper metadata
β βββ nepse_sector_wise_codes.json
βββ scripts/nepse-scraper/
β βββ official_scraper.py # Main NEPSE API scraper
β βββ open_ended_mutual_fund_scraper.py # ShareSansar OMF scraper (reused by official_scraper.py)
β βββ upcoming_ipo_scraper.py # IPO scraper
β βββ proposed_dividend_scraper.py # Proposed dividend scraper
β βββ scraper.py # Backup web scraper
β βββ requirements.txt # Python dependencies
β βββ official_api/ # NEPSE API client
β βββ __init__.py
β βββ auth.py # Authentication
β βββ client.py # API client
β βββ core.py # Core functionality
β βββ endpoints.py # API endpoints
β βββ exceptions.py # Custom exceptions
β βββ nepse.wasm # WebAssembly for auth
βββ .github/workflows/
βββ scrape.yml # Market data automation
βββ scrape_ipo.yml # IPO data automation
- Fork this repository
- Enable GitHub Actions in the 'Actions' tab
- Enable GitHub Pages from Settings > Pages (Deploy from
mainbranch) - Your dashboard will be live at
https://shubhamnpk.github.io/yonepse/
start_server.batpython -m http.server 8000Then open http://localhost:8000 in your browser.
To force a data update locally:
cd scripts/nepse-scraper
pip install -r requirements.txt
# Update all market data
python official_scraper.py
# Update broker data (forced)
python official_scraper.py --brokers
# Update IPO data
python upcoming_ipo_scraper.py
# Update proposed dividend data (daily mode)
python proposed_dividend_scraper.py --mode latest
# Optional full all-years backfill
python proposed_dividend_scraper.py --mode backfillMarket Data Scraper (.github/workflows/scrape.yml)
- Schedule: Every 30 minutes
- Time: 10:00 AM - 4:00 PM NPT (Sunday - Friday)
- Data: Stock prices, indices, market summary, top stocks, notices, disclosures, exchange messages, supply/demand, and open-ended mutual fund NAVs
- Files: Updates all JSON files in
data/folder - OMF Integration: Refreshes
data/OMF.jsonand merges open-ended mutual funds intodata/nepse_data.jsonin the same run
IPO Scraper (.github/workflows/scrape_ipo.yml)
- Schedule: Daily at 4:00 AM UTC (9:45 AM NPT)
- Data: Upcoming IPO announcements + proposed dividend refresh
- Files:
data/upcoming_ipo.json,data/oldipo.json,data/proposed_dividend/latest_1y.json,data/proposed_dividend/history_all_years.json,data/proposed_dividend/meta.json - Features: Auto-archives IPOs older than 10 days and updates proposed dividend datasets
All data is accessible as static JSON endpoints:
| Endpoint | Type | Description |
|---|---|---|
/data/nepse_data.json |
Array | Market prices + mapped open-ended mutual fund rows (asset_type: open_ended_mutual_fund) |
/data/OMF.json |
Array | Open-ended mutual fund NAV dataset (daily/weekly/monthly NAV + fund metadata) |
/data/indices.json |
Array | Main NEPSE indices |
/data/sector_indices.json |
Array | Sector-wise indices |
/data/top_stocks.json |
Object | Top gainers, losers, turnover |
/data/market_summary.json |
Object | Current day market summary |
/data/market_summary_history.json |
Array | Historical market data |
/data/market_status.json |
Object | Market open/closed status |
/data/disclosures.json |
Array | Company disclosures |
/data/exchange_messages.json |
Array | Exchange announcements |
/data/brokers.json |
Array | Complete broker directory |
/data/all_securities.json |
Array | Master list of securities metadata |
/data/supply_demand.json |
Object | Supply/demand snapshots |
/data/upcoming_ipo.json |
Array | Upcoming IPO listings |
/data/oldipo.json |
Array | Historical IPO archive |
/data/notices.json |
Object | Exchange & company notices |
/data/proposed_dividend/latest_1y.json |
Array | Latest proposed dividends (rolling 1 year) |
/data/proposed_dividend/history_all_years.json |
Array | Append-only all-years proposed dividend history |
/data/proposed_dividend/meta.json |
Object | Proposed dividend scraper run metadata |
/data/nepse_sector_wise_codes.json |
Object | Sector mapping for stocks |
See docs.html for complete documentation.
Base URL:
https://shubhamnpk.github.io/yonepse
Common calls:
# Market status
curl -s https://shubhamnpk.github.io/yonepse/data/market_status.json
# Main ticker feed (includes mapped OMF rows)
curl -s https://shubhamnpk.github.io/yonepse/data/nepse_data.json
# Full open-ended mutual fund NAV dataset
curl -s https://shubhamnpk.github.io/yonepse/data/OMF.jsonOpenAPI spec:
openapi.yamlopenapi_legacy_nepse.yaml(legacy NEPSE upstream reference)
- Glassmorphism Design: Translucent cards with backdrop blur
- Dark Theme: Optimized for extended viewing
- Responsive Layout: Mobile-friendly design
- Gradient Accents: Purple-to-pink gradient highlights
- Smooth Animations: Hover effects and transitions
- Custom Scrollbar: Styled for dark theme
- Accessibility: ARIA labels, keyboard navigation support
- Python 3.9+
- Modern web browser
- (Optional) Local server for testing
index.html- Main dashboard with stock cards, search, filtersdata.html- Broker directory with tables and filtersdocs.html- API documentationscript.js- Dashboard logic, IPO date parsing, Nepali date conversiondata.js- Broker filtering, dataset renderingstyle.css- Complete styling (1685 lines)
official_scraper.py- Main scraper using NEPSE APIopen_ended_mutual_fund_scraper.py- ShareSansar open-ended mutual fund scraper (called byofficial_scraper.py)upcoming_ipo_scraper.py- IPO data from Merolaganiproposed_dividend_scraper.py- Proposed dividend data from ShareSansarofficial_api/- NEPSE API Python client with WASM auth
- NEPSE Official API: Primary source for market data
- Merolagani: IPO announcements and company news
- ShareSansar: Backup data source
Data is scraped for educational purposes. All data credits belong to the respective owners.
- Developers: My Wallet Team & Yoguru Team & @Shubhamnpk
- Data Sources: Nepal Stock Exchange (NEPSE), Merolagani, ShareSansar
- Not affiliated with: NEPSE, Merolagani, or ShareSansar
This project is open-source and available under the MIT License.
For issues, feature requests, or contributions, please open an issue on GitHub.
Built with β€οΈ for the Nepali investment community