BAS.MY Open Data
Machine-readable ridership statistics for BAS.MY bus services. Built for programmatic access and data analysis.
Disclaimer: This is an independent, community-driven project and is not an official open data initiative by APAD. While the data is sourced from official publications, this project is not affiliated with or endorsed by APAD.
Explore the Data
Interactive charts and tables from the BAS.MY ridership dataset
| Year | Ipoh | Johor Bahru | Kangar | Kota Bharu | Kota Setar | Kuala Terengganu | Kuantan | Melaka | Seremban | Total |
|---|---|---|---|---|---|---|---|---|---|---|
| 2019 | 1,955,306 | - | 349,562 | - | - | 162,882 | - | - | 2,918,934 | 5,386,684 |
| 2020 | 1,032,032 | - | 175,577 | - | - | 86,891 | - | - | 1,037,471 | 2,331,971 |
| 2021 | 596,948 | - | 83,438 | - | - | 52,410 | - | - | 593,099 | 1,325,895 |
| 2022 | 680,271 | 1,955,679 | 131,896 | - | - | 87,822 | - | - | 946,355 | 3,802,023 |
| 2023 | 772,315 | 7,258,065 | 91,647 | - | - | 14,669 | - | - | 971,463 | 9,108,159 |
| 2024 | 353,075 | 10,626,905 | 25,603 | - | - | 15,990 | - | 472,832 | 564,248 | 12,058,653 |
| 2025 | 1,278,665 | 11,468,414 | 160,618 | 382,903 | 376,045 | 274,309 | 47,123 | 880,746 | 1,354,623 | 16,223,446 |
Source: Agensi Pengangkutan Awam Darat (APAD) · Last updated: 2026-02-26
What is BAS.MY Open Data?
This project provides open, machine-readable ridership statistics for BAS.MY bus services across Malaysian cities, excluding Klang Valley and Penang (since both have RapidKL and Rapid Penang respectively). The data is converted from official APAD infographics into structured JSON format for easy programmatic access.
For Developers
Access structured JSON data directly from GitHub. Perfect for building dashboards, analytics tools, or integrating with AI agents via MCP.
For Analysts
Analyze ridership trends across years and cities. Data includes yearly totals, monthly breakdowns, and daily averages.
Covered Networks
BAS.MY service areas included in the dataset
Note: BAS.MY Kuching and Kota Kinabalu are not yet included but may be added in future updates.
Available Data Files
Two JSON files covering different statistical perspectives
yearly_ridership.jsonTotal passengers aggregated by year and month
daily_average_ridership.jsonAverage daily passengers by year and month
JSON Preview
Sample structure of the data files (truncated for display)
{
"last_updated": "2025-10-27",
"source": "Agensi Pengangkutan Awam Darat (APAD)",
"statistic_type": "total_passengers",
"data": {
"yearly": [
{
"year": 2019,
"locations": {
"Ipoh": 1955306,
"Kangar": 349562,
"Kuala Terengganu": 162882,
"Seremban": 2918934,
"Johor Bahru": null,
"Melaka": null,
"Kota Setar": null,
"Kota Bharu": null
},
"total": 5386684
},
{
"year": "2025*",
"locations": {
"Ipoh": 945686,
"Kangar": 115196,
"Kuala Terengganu": 204931,
"Seremban": 982025,
"Johor Bahru": 8446656,
"Melaka": 648366,
"Kota Setar": 207855,
"Kota Bharu": 131441
},
"total": 11682156
}
],
"monthly_2025": [
{
"month": "Sep-25",
"locations": {
"Ipoh": 112940,
"Kangar": 11796,
"Kuala Terengganu": 26388,
"Seremban": 119497,
"Johor Bahru": 920380,
"Melaka": 76216,
"Kota Setar": 54953,
"Kota Bharu": 64987
},
"total": 1387157
}
]
}
}This is a truncated preview. View the full data on .
How to Access
Direct Download
Clone the repository or download JSON files directly from GitHub.
Raw URL
Fetch JSON directly via raw GitHub URLs in your applications.
raw.githubusercontent.com/hithereiamaliff/basmy-opendata/main/json/...MCP Server
Access via GitHub MCP server for AI agent integration.
Click to view setup instructions →ChatGPT
Ask questions about BAS.MY data via custom GPT.
Try the custom GPT →Want to See the Full Statistics?
For visual tables and infographics, visit the official APAD website
Support My Work
If you find this open data useful, consider supporting my work. You can donate one-off, subscribe to the Malaysia Transit API, or join my upcoming newsletter.
Support My Work