Skip to content
induwara.lk
Premium
induwara.lkSri Lanka · Travel

Sri Lanka Bus Route Numbers — Find the Number by Town

Type where you are and where you are going, and get the bus number — all 470 gazetted inter-provincial routes, searchable by town pair or by number, with the Normal, Semi-Luxury, AC and Super-Luxury classes licensed on each. No signup, source cited below.

By Induwara AshinsanaUpdated Sep 22, 2026
Find your bus route numberinter-provincial
NTC table · 470 routes
DirectionDirection
Try
Filter by service classService classno filter — showing every class

Pick two towns and this tells you the bus number.

Every inter-provincial route in the Ministry of Transport table, searchable by the two towns instead of by a number you do not know yet. Try Panadura → Ampara: the answer is route 64/98, which no timetable site indexes by town pair.

Route numbers, terminals and service classes come from the Ministry of Transport & Highways — Inter Provincial Full Bus Fare (English) (NTC fare revision of December 2021 (sheet dated 2022-01-04)), published over the imprint of the Chairman, National Transport Commission. No fare figures are shown here — that table's rupee amounts are superseded, so the current gazetted fare lives in the bus fare calculator.

How it works

This is a lookup, not a calculation. There is no formula to get wrong, so the whole value sits in one place: whether the transcription is faithful and whether your search honestly reaches it.

The dataset

Every row comes from the Ministry of Transport & Highways table Inter Provincial Full Bus Fare, published over the imprint of the Chairman, National Transport Commission — the authority issuing inter-provincial route permits under the National Transport Commission Act No. 37 of 1991. The sheet carries 481 rows in three tables: the main inter-provincial table (439 routes), a Super-Luxury table (11) and an expressway table (31). Super-Luxury rows merge onto their matching inter-provincial row; expressway rows stay separate, because an “EX” number is its own permit rather than a variant of an existing one.

The PDF is a two-column landscape sheet, so it was read by word bounding box rather than by text flow, which interleaves the halves and invents rows. One row needed a judgement call — route 57/87 is drawn with its fare cells about 12 points above its number — and it is documented in the data file.

How service classes are derived

One rule, applied uniformly: a class is recorded for a route if and only ifthat class’s fare column carries a figure rather than a dash. A dash means no service of that class is gazetted on the number — so the tool says “not gazetted”, never “unavailable”. Operators come and go between fare revisions, and a licence table cannot tell you what turned up at the stand this morning. That rule yields 53 routes with licensed AC out of 470 — which is why checking before a ten-hour trip is worth thirty seconds.

How town names are matched

The source spells the same town more than one way — Vauniya and Vavuniya, Baticaloa and Batticaloa, Matara and Mathara, Kataragama and Katharagama, thirty-odd more. Left alone those variants split a town in two and hide routes, so the 235 printed spellings fold onto 213canonical names; matching ignores case, spaces, hyphens and accents; and the printed spelling stays on every row, shown whenever it differs. The fold is not cosmetic — Colombo to Kataragama only finds the expressway bus because “Katharagama” folds to “Kataragama”. Where the right spelling is genuinely unclear, nothing folds: Sripura and Siripura look like one name spelt twice, but they are two places and the table cannot tell you which row is which.

How a number is matched

A query is normalised — uppercased, spaces dropped, dash and slash styles unified — then matched in three widening tiers, each labelled separately so a near-match is never dressed up as an exact hit. First the exact number. Then the rest of the trunk permit, everything before the first dash or slash, so “87” pulls in 87-2 and 87/759 but never route 8. Then through services carrying your number as one of their permits — how you find that permit 87 also runs inside 314/580/87 from Badulla. 181 of the 470 routes are joint-permit numbers, so that last tier matters more than the numbering suggests.

Anything that is not a route number is refused rather than coerced: “87.5” is never read as route 875, and a town name matching six terminals is reported as ambiguous with the six offered.

Worked examples

the trip you cannot guess a number for

Panadura → Ampara

  1. Source row: 64/98 Panadura Ampara (Normal figure, Semi-Luxury figure, AC dash)
  2. Class rule: Normal + Semi-Luxury. AC column is a dash → not gazetted.
  3. Result: exactly one card — route 64/98.
  4. Reverse search Ampara → Panadura returns the same card (either-way default).
  5. Check the negative: trunk 64 has one member, 64/98 itself.
  6. And all 13 trunk-98 routes start from Colombo, not Panadura.
  7. So neither 64 nor 98 alone is the right thing to ask for at the stand.

one town pair, three different roads

Colombo → Kataragama

  1. Source rows: 3 Colombo Kataragama (Normal, Semi-Luxury, AC dash)
  2. 32 Colombo Kataragama (Normal, Semi-Luxury, AC dash)
  3. EX 1-12/32 Colombo Katharagama (single expressway fare)
  4. Ordering: inter-provincial before expressway, trunk number ascending → 3, 32, EX 1-12/32.
  5. Route 3 runs inland via Ratnapura; 32 runs the coast via Galle and Matara.
  6. The third card only appears because “Katharagama” folds to “Kataragama”.
  7. Neither 3 nor 32 has gazetted AC — so the tool says so instead of leaving it blank.

edge case — the honest answer is “not on this number”

Route 87

  1. Exact match: 87 Colombo Jaffna → Normal, Semi-Luxury, Super-Luxury.
  2. The AC column on 87 is a dash. There is no gazetted AC bus on route 87.
  3. Trunk family: 11 more rows share the trunk permit 87.
  4. Of those, 87-2 (Colombo–Vavuniya) carries an AC figure → AC gazetted.
  5. And 87/759 (Colombo–Point Pedro) carries both AC and Super-Luxury figures.
  6. Joint appearances: 16 through services include permit 87, among them
  7. 314/580/87 (Badulla–Jaffna), which does carry AC.
  8. So “is there an AC bus to Jaffna?” → not on 87; yes on 15 and on 314/580/87.

Dataset cross-check

A lookup tool has no formula to verify, so what has to be verifiable is that the transcription is internally consistent and that every search path agrees with every other. Five checks run over the shipped dataset, and the page will not claim they passed unless they did.

CheckResult
Rows accounted for (inter-provincial + Super-Luxury + expressway)439 + 11 + 31 = 481
Distinct routes shipped470
Duplicate (number, origin, destination) keysnone
Route numbers that fail normalisationnone
Super-Luxury rows reconciled to an inter-provincial row11 of 11
Routes unreachable by their own town pair or own numbernone
Source spellings folded to canonical town names235 → 213
Search keys accepted (canonical + printed + alternates)271

All five checks pass against the source tables as read on 2026-09-22. The Super-Luxury reconciliation is the load-bearing one: one of its 11 rows spells Batticaloa correctly where the main table prints “Baticaloa”, so it fails the moment spelling folds stop working.

What the service-class badges mean

ClassWhat it isRoutes
NormalThe standard stage-fare bus — no air-conditioning, no reserved seating. Run by both SLTB and private operators. Gazetted on every route in the table.439
Semi-LuxuryCushioned seating and more luggage room, no air-conditioning guaranteed. Carries its own fare column in the source table.136
ACAir-conditioned service. Gazetted on a minority of routes, so this is the column worth checking before a long trip.53
Super-LuxuryInter-city semi-sleeper class with reserved seating. Listed in a separate 11-row table on the same Ministry sheet, all of them long northern and eastern runs out of Colombo.11
ExpresswayHighway bus running on E01/E03/E04 under an "EX"-prefixed permit. Gazetted at a single route-flat fare rather than per class.31

Counts are of route numbers carrying a fare figure in that class’s column of the Ministry table, not of buses. Source: NTC fare revision of December 2021 (sheet dated 2022-01-04).

Frequently asked questions

Sources & references

The route table was last downloaded and re-read end to end on 2026-09-22. Its rupee figures are deliberately not shown here: they are the NTC fare revision of December 2021 (sheet dated 2022-01-04) and were superseded by NTC Gazette Extraordinary No. 2424/35 of 21 March 2025, which the bus fare calculator implements. Route numbers are stable between fare revisions; fares are not.

Out of scope in this version, and deliberately so: departure times and frequencies (the published per-route sheets are dated 2019 and revised per operator — a timetable wrong by twenty minutes is worse than none), Colombo city and intra-provincial numbers, intermediate stops, and live tracking or seat booking.

Related tools

Comments & feedback

Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.

Spotted a route that is wrong, missing, or spelt in a way the search does not find?

Email me at [email protected] — most fixes ship within 24 hours.