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

SLTB Bus Depot Contact Numbers and Depot Codes (All 12 Regions)

Find any SLTB (CTB) depot's phone number by town, depot name, or the code painted on the bus board, KGN is Kurunegala - North. All 133 depot rows and 109 depot codes across SLTB's 12regions, each with the four regional office numbers above it for when the depot does not pick up. Transcribed from the Board's own directory. Free, no signup.

By Induwara AshinsanaUpdated Oct 2, 2026
Find an SLTB bus depotall 12 SLTB regions
7/7 spot checks match

133 depot rows · 48 regional office posts · 109 published depot codes · transcribed from the SLTB depot directory on 2026-10-02

What this finds

Type a town, a depot name, or the letters painted on the bus board — is Kurunegala - North. You get that depot's landline, its service mobile, its SLTB region, and the four regional office numbers above it for when the depot does not pick up. Codes are published for 109 of the 133 rows (81.95%); the other 24 are listed by name.

Spelling is forgiving: "Puttalam" finds SLTB's Puttlam, "Vavuniya" finds Vavunia, "Monaragala" finds Monaradala. Press Esc to clear.

Show
Popular

133 of 133 depot rows

12 matches

11 matches

5 matches

13 matches

7 matches

Above every region

Sri Lanka Transport Board (Head Office)

No. 200, Kirula Road, Colombo 00500

Every depot name, code and number on this page is transcribed from the SLTB depot contact directory, and the head office card from the SLTB homepage, both on 2026-10-02. 174 of 181 rows publish a landline and 179 publish a service mobile; 3 landlines are printed with nine digits instead of ten and are shown exactly as published rather than repaired. A number gone dead? Email [email protected].

How it works

There is no arithmetic on this page. There is a transcription and a matching rule, and the page is worth using only if both are exactly what the Sri Lanka Transport Board publishes. So both are written out here.

1. The transcription

Every row comes from the SLTB depot contact directory at sltb.lk/contactUs/depots, extracted on 2026-10-02: 181records across SLTB's 12 operating regions — 133 rows in the depot column and 48regional office posts, four in every region. That page is a single-page app that renders its table from its own JavaScript bundle, so the records were read out of the bundle and committed to this repository as a fixed snapshot first. The snapshot, not a live scrape, is what this table was typed from, the bundle's filename hash changes on every SLTB deploy, and a figure you cannot re-read later is a figure you cannot check.

Spellings are the Board's, not tidied: Puttlam, Vavunia, Rathmalana, Thangalle, Monaradala, Kanthankudi, GOODSHED. A curated alternate-spelling table sits beside them so that typing Puttalam, Vavuniya, Ratmalana, Tangalle or Monaragala still finds the record, and the card then shows you the official spelling, which is the one an SLTB form or a bus board will use.

2. Missing data is null, never blank

The directory does not publish everything for every row. 24 of the 133 depot rows publish no depot code, 7 publish no landline, and 2publish no service mobile. Those cells read "no code" or "SLTB publishes no landline for this row", because a blank cell looks like a bug in this page and a zero looks like a number. Exactly one row — Kurunduwatta (Nawalapitiya), publishes neither a landline nor a mobile. It stays in, labelled.

3. Malformed source values are surfaced, not repaired

A Sri Lankan landline is ten digits: a three-digit 0XX prefix and seven more. 3 landlines in the directory are printed with nine, 038 - 22.5762 (a full stop where a digit belongs), 081 - 224561 and 025 - 770990. They ship exactly as published, marked undialable, with the service mobile moved to the top of the card. No digit is guessed, because a guessed digit is a wrong number someone else answers.

Six landline fields hold two numbers joined by a slash, and in two of them the second is abbreviated to its differing tail — 055 - 2265481/65260. Those split into two dialable numbers, and the only expansion performed is restoring the prefix the first half already states: area code 055, then the leading 22 the abbreviation is short by, giving 055 - 2265260. The completed number is labelled on the card as completed rather than passed off as printed. Eight landlines are published against two different rows; both cards say so, so nobody dials the same desk twice expecting a second line.

4. Counts are computed, never asserted

SLTB's own headline is "107depots located island-wide, along with affiliated regional workshops and driving schools". The directory column holds 133 rows, which is not a contradiction: the column mixes operating depots with regional workshops (suffixed (WS), {WS} or - WS) and sub-depots (suffixed - Sub or - S), which the Board counts separately. Classifying every row by its own suffix gives 108 operating depots, 12 sub-depots, 12 workshops and 1that is none of the three (Kandy's goods shed).

That leaves 108 against the Board's 107, a one-row gap, and worth naming rather than rounding away. It is the only row in the directory with no depot code, no landline and no mobile, and its name repeats the Kandy region's “Kurunduwatta (WS)”, which does publish both numbers. Treating the two as one facility lands exactly on SLTB's 107. That is a reading of the data, not something SLTB states, so the row is kept and labelled rather than deleted. Every count in this paragraph, and in the tables and the FAQ, is read out of the data with .length at render time, so a data update cannot leave the prose saying something the rows disagree with.

5. The matching rule

Your query and every searchable field go through the same normalisation — lowercase → NFKD → strip everything but letters and digits , so "Nuwara Eliya", "NuwaraEliya" and "nuwara-eliya" collapse onto one key, and K.G.N finds KGN. Results are then ranked: exact depot code first, then exact depot name, then name-starts-with, then name-or-alternate-spelling contains, then region name, with ties broken by the directory's own region order and then alphabetically. The region dropdown and the Depots / Regional offices switch intersect with the query rather than replacing it, and an exact code hit gets its own plain-English line above the results: KGN on an SLTB bus board means Kurunegala - North.

Nothing in that rule claims which depot operates a given route, and nothing claims a depot is nearest to anywhere. The directory publishes a depot's region, not its operating area and not its coordinates, so there is no map and no "nearest to me" here, both would be invented. Find the depot by name or code, ring it, and ask.

How the page checks itself

Seven rows were copied by hand off the directory and kept separate from the transcribed table. On every render the page re-reads those seven out of the live data and compares the code, the landline field and the mobile field character for character, and the badge in the tool header reports the result. Four of the seven are the awkward cases on purpose, the nine-digit landline, the row with no mobile and no code, the two-number field, and the row with no number at all, so a future "tidy-up" that quietly repairs any of them fails here instead of shipping. The same pass re-proves that no depot code is published for two depots, that all 12 regions are present, and that each one publishes exactly 4 office posts; a duplicate code stops the module loading outright.

Worked examples

Rank 1, exact depot code

A code off a bus board: "KGN"

  1. norm("KGN") = "kgn" → an exact depot code, so rank 1.
  2. No depot name, alternate spelling or region contains "kgn",
  3. so ranks 2–5 add nothing. Exactly 1 result.
  4.  
  5. Kurunegala - North code KGN Wayamba region
  6. Landline 037 - 2222320
  7. Mobile 077 - 1057290
  8.  
  9. Escalation panel on the Wayamba header:
  10. Chief Regional Manager 037 - 2223182 / 077 - 1057200
  11. Regional Manager Operations 037 - 2222281
  12. Regional Engineer 037 - 2225715
  13. Regional Accountant 037 - 2231328

Three ranks in one result, and two honesty flags

A town with two depots: "kandy", both row types

  1. Rank 3, name starts with: Kandy North (KN), Kandy South (KS)
  2. Rank 4, alternate spelling: GOODSHED, via "Kandy Goods Shed"
  3. Rank 5, region match: the other 8 depot rows in the Kandy region
  4. plus its 4 regional posts, because Show = Both
  5. Total: 15, 11 depot rows + 4 posts.
  6.  
  7. Kandy North KN 081 - 2499148 · 077 - 1057040
  8. Kandy South KS 081 - 224561 · 077 - 1057020
  9. → 081 - 224561 is 9 digits, not 10. Flagged as published,
  10. not repaired, and the mobile is moved to the top.
  11. GOODSHED (no code) 081 - 2233082 · no mobile published

Empty query, one filter, every hit rank 0

A whole region: Eastern, depots only

  1. search({ query: "", region: "Eastern", kind: "depots" }) → 17 rows
  2.  
  3. Akkareipattu AKP · Ampara AM · Batticaloa BT · Eravur EVR
  4. Kalawanchikudi KWK · Kalmunai KM · Kanthalai KNT
  5. Kanthankudi KKY · Kinniya - Sub KIN · Muttur MU
  6. Pottuvil - Sub POT · Rideethenna - Sub RIT
  7. Samanthurei - Sub SMT · Trincomalee TM · Vakare - Sub VHA
  8. Valachchenai VC · Ampara - WS (no code)
  9.  
  10. 16 of the 17 carry a code; Ampara - WS carries none.
  11. Vakare - Sub and Ampara - WS publish no landline, both still
  12. publish a mobile, which is why the cards are not empty.
  13. This is the case that proves sub-depots and workshops are
  14. included and labelled, not dropped.

Rank 4 via the alternate-spelling table, plus a shared line

Edge case, the common spelling: "puttalam"

  1. No depot is spelled "Puttalam". SLTB spells it "Puttlam".
  2. norm("puttlam") = "puttlam"
  3. norm("puttalam") = "puttalam" → name match misses.
  4. Rank 4, alternate spelling "Puttalam" → 1 result.
  5.  
  6. Puttlam PT Wayamba 032 - 2265217 · 077 - 1057320
  7. Flag: SLTB publishes this landline for Anamaduwa - Sub too.
  8.  
  9. Without the alternate-spelling table this search returns nothing,
  10. which is the outcome most people would read as "no depot there".

A wrong filter gets a named message, not a blank page

Edge case, a province instead of a region: "Western"

  1. search({ region: "Western" }) → 0 results, and an error that says:
  2. "Western" is a province. SLTB does not run by province. It
  3. runs 12 operating regions, and there is no Western region.
  4.  
  5. A plain miss is different: search({ query: "zzzzzz" }) returns
  6. 0 results and no error, because an empty result is not a fault.
  7. A 80-character paste is clamped to 60 and says so.

Spot checks against the directory

These 7 rows were read off the SLTB depot directory by hand on 2026-10-02 and are re-compared against the live table on every render, field by field. The last four are the awkward ones on purpose; if a future re-transcription shifts a column or quietly repairs a number, these disagree and the badge on the tool turns red.

Depot rowRegionCodeLandline as publishedMobile
Kurunegala - NorthWayambaKGN037 - 2222320077 - 1057290
MataraRuhunaMT041 - 2222821077 - 1056890
JaffnaNorthernJF021 - 2222207077 - 1058150
Kandy SouthKandyKS081 - 224561077 - 1057020
GOODSHEDKandynone081 - 2233082none published
BibilaUwaBB055 - 2265481/65260077 - 1057760
Kurunduwatta (Nawalapitiya)NuwaraEliyanonenone publishednone published

Source: Sri Lanka Transport Board depot contact directory, https://www.sltb.lk/contactUs/depots. Verified 2026-10-02.

Frequently asked questions

Sources & references

The directory was extracted, transcribed and counted on 2026-10-02, and the verbatim snapshot it was typed from is committed in this repository alongside the tool's proposal. This page is not operated by, affiliated with or endorsed by the Sri Lanka Transport Board; it is a faster way to read what the Board publishes. Spotted a number that no longer answers? [email protected].

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.

A depot number that no longer answers, a depot code we are missing, or a spelling we should match?

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