# ThaiGovData > Thailand's open government data, harvested from every public portal, indexed > in Thai and English, and published with its provenance attached. Currently > 52,336 datasets from 5,148 agencies across > 121 sources, plus 797,241 Royal Gazette documents. > Bilingual: Thai at the bare path, English under /en. This site exists because Thailand's open data is real and large but hard to search. The upstream portals cannot tokenise Thai, so a query for a common term returns tens of thousands of false matches. Datasets are also republished across portals that harvest each other, so the same record arrives several times. Both problems are addressed here: Thai text is segmented before indexing, and records sharing a harvest lineage are merged. ## Catalogue - [All datasets](https://thaigovdata.com/datasets) — filter by source, format, licence, agency - [Search API](https://thaigovdata.com/api/search?q=) — JSON; `q` is segmented server-side ## Topics - [datasets](https://thaigovdata.com/datasets) - [money](https://thaigovdata.com/money) - [safety](https://thaigovdata.com/safety) - [weather](https://thaigovdata.com/weather) - [provinces](https://thaigovdata.com/provinces) - [transport](https://thaigovdata.com/transport) - [tourism](https://thaigovdata.com/tourism) - [services](https://thaigovdata.com/services) - [gazette](https://thaigovdata.com/gazette) - [indicators](https://thaigovdata.com/indicators) - [economy](https://thaigovdata.com/economy) ## Browse - [orgs](https://thaigovdata.com/orgs) - [tags](https://thaigovdata.com/tags) - [calendar](https://thaigovdata.com/calendar) - [provinces](https://thaigovdata.com/provinces) - [indicators](https://thaigovdata.com/indicators) - [economy](https://thaigovdata.com/economy) - [companies](https://thaigovdata.com/companies) ## About the data - [Sources](https://thaigovdata.com/sources) — every portal, its cadence, and whether it is currently failing - [Methodology](https://thaigovdata.com/methodology) — how records are normalised, deduplicated and dated - [Licence](https://thaigovdata.com/license) — per-source terms; ours is not theirs - [Corrections](https://thaigovdata.com/corrections) — right of reply, and a log of corrections we have made to ourselves ## Machine access - [Sitemap index](https://thaigovdata.com/sitemap.xml) - [Full detail for models](https://thaigovdata.com/llms-full.txt) - `/api/` is disallowed in robots.txt and is not a stable public interface ## Conventions that will otherwise mislead you - **Dates are Buddhist Era on Thai pages.** BE = CE + 543. Storage is always CE. - **Fiscal years, not calendar years,** wherever money is involved. Thai FY2568 runs 1 October 2024 to 30 September 2025. - **Appropriation is not disbursement.** Both are published, and they differ. - Counts exclude cross-portal duplicates. Figures here will be lower than the sum of the upstream portals' own totals, and that is the point. --- # Full detail ## About Thailand's open government data is spread across more than ten portals and is close to unsearchable in Thai. This site puts it in one place and makes it findable. The problem is not that Thailand lacks open data. It is that you cannot find it. The upstream portals cannot tokenise Thai, so searching for “สถานีตำรวจ” (police station) returns twenty-odd thousand mostly irrelevant results. The same dataset appears in several portals. Dates mix Buddhist and Common Era. And nothing tells you which series are still being updated. Merges catalogues from many portals, segments Thai so the search index works, removes duplicates, normalises dates to one calendar, and presents the result as eight sections — budget, crime, weather, public services and the rest. Every figure on the site is read from the database. None is written into the code, and an automated check fails the build if anyone does. Not an official source. The data comes from government agencies; this site is not run by one. If a number matters to a decision, check it against the source we link to. Not an investigation. We make no allegations. The figures are what the publishers reported, not conclusions we drew. An independent, non-commercial project. No agency or sponsor has any say over what appears here. If something is wrong, or you are named and the record is inaccurate, use the corrections page. Every request gets a reply. ## Methodology What we do to the data before showing it, and — more usefully — what we decline to do. Thai is written without spaces between words, which is why the upstream portals' own search does not work: querying data.go.th for “สถานีตำรวจ” (police station) returns over twenty thousand results, almost none of them relevant. We segment with Node's Intl.Segmenter and build a weighted full-text index — titles count for more than descriptions — with trigram similarity as a fallback when segmentation misses. The segmenter keeps some compounds whole, e.g. ตำรวจนครบาล (metropolitan police), which is a known limit rather than a solved problem. Thai data mixes BE and CE, sometimes within one column. Everything is stored as CE and re-derived as BE for the Thai locale at display time; a year above twenty-four hundred is treated as BE and five hundred and forty-three is subtracted. Records whose upstream dates are corrupt, produced by bad conversion at source, are counted and skipped rather than guessed at and repaired. data.go.th harvests GD Catalog, so a large share of datasets appear in both. We match on the CKAN harvest identifier first, then on normalised resource URLs. Title-only matches go to a review queue and are never merged automatically, because annual editions of the same dataset share a title year after year. Headline counts exclude anything marked as a duplicate. Coordinates are assigned to a province by testing whether the point falls inside the province boundary, not by finding the nearest provincial centroid. Nearest-centroid is wrong along borders — a point in southern Chiang Mai is closer to Lamphun's centroid than to Chiang Mai's — and the failure is silent: the per-province counts look entirely reasonable while being wrong. Personal insolvency notices in the Royal Gazette are counted but not stored. We can report how many there were without building a searchable index of the names and addresses of people who went bankrupt twenty years ago. Over four hundred thousand documents are excluded on this basis. Royal Thai Police crime statistics are kept at province level only. District and subdistrict are discarded, because small case counts in a small tambon identify people. ACT Ai's source files glue multiple winners into a single row with no separator — names, registration numbers and prices all run together, which turns a price into a meaningless enormous number. So only rows whose registration number is exactly thirteen digits and whose value is at or under twenty billion baht enter the totals. The rest are kept and counted but excluded. We do not attempt to split the concatenated values back apart, because there is no way to do it that is reliably correct. OpenStreetMap is published under ODbL, whose share-alike terms can propagate to a database it is combined with. It is therefore held in separate tables and joined to everything else only at display time, with the result never written back. The Comptroller General's e-GP feed on data.go.th has stopped updating, and PDMO — which was the best-formatted public debt publisher on the platform — is unreachable. Both remain in the source list, marked as failing. Actual disbursement used to be the largest gap on this site. It is now filled: the money page shows both appropriation and what GFMIS records as actually paid, back to fiscal year 2016. What is still missing is contract-level procurement after 2023. We hold e-GP's own yearly totals through the current fiscal year, but the row-level detail stops where the ACT Ai mirror stops. ## Licence The data here comes from many publishers on different terms. This page says what may be reused and what may not. The descriptions, categorisation, derived figures and the code of this site are offered for reuse with attribution. The underlying data stays under its publisher's terms — we can only license what we made. Most datasets from data.go.th and GD Catalog carry Thailand's Open Data Common licence, which permits reuse with attribution. Every page that shows a figure names the source it came from. A substantial share of datasets state no licence at all. Absence of a licence is not permission, so those are analysed and linked back to their source rather than re-served: their download buttons point upstream. Public service locations come from OpenStreetMap under the Open Database License 1.0, which is share-alike. It is held apart from everything else so the obligation does not propagate to data that should not carry it, and it is attributed as the licence requires. ACT Ai's procurement data states no licence: license_id is empty on every package. Our position: analyse it, credit ACT prominently on every page that uses it, link to opendata.actai.co for the raw files, and do not re-serve those files. That is a posture we consider appropriate, not a grant we have been given. The procurement pages name juristic persons that won public contracts. That is public business information, not an allegation. If you are named and something is wrong, we check it against the source. If we displayed it incorrectly we fix it and date the fix. If our figures match the source but you believe the source is wrong, we record your statement alongside it. Where there is a clear legal or safety reason, we remove it. ## Sources currently registered - ACT Ai (https://opendata.actai.co) — UNSPECIFIED - derived views only, never re-serve raw files - Air4Thai (PCD) (https://air4thai.pcd.go.th) - Bangkok Open Data (https://data.bangkok.go.th) — mostly unspecified - Bank of Thailand (https://www.bot.or.th) — Free registered key per product. Attribution to Bank of Thailand. - Bureau of the Budget (https://bb.go.th) — Open Data Common. Pipe-delimited CSV, keyless. - Bureau of the Budget (https://www.bb.go.th) — Open Data Common - Central Institute of Forensic Science (https://opendata.cifs.go.th) — not stated. ⚠ some CSVs are TIS-620 encoded, not UTF-8 - CoST Infrastructure Transparency (via DGA govspending) (https://govspending.data.go.th) — DGA Open Government License v1.0 (data.go.th/pages/dga-open-government-license). Copy, publish and distribute permitted; non-exclusive, no territory or period limit, no fees. ⚠ ATTRIBUTION MANDATORY at all times to the producing agency, and the data must not be presented so as to change its substantive meaning. Loaded from the official bulk-file export. - Courts of Justice (https://opendata.coj.go.th) — not stated; niche annual XLS. ⚠ expired TLS cert on this host - Courts of Justice locator (https://pubdata.coj.go.th) — not stated; directory only. ⚠ Thai-IP only - data.go.th (https://data.go.th) — mostly Open Data Common; 16% unspecified - Department of Corrections (http://www.correct.go.th) — not stated; aggregate counts only, no PII. ⚠ Thai-IP only, plain http - Department of Highways (https://opendata.doh.go.th) — not specified - Dept of Mineral Resources (https://data.dmr.go.th) - DLA GeoServer (https://geo.dla.go.th) — no stated licence - e-GP Procurement Contracts (via DGA govspending) (https://govspending.data.go.th) — DGA Open Government License v1.0 (data.go.th/pages/dga-open-government-license). Copy, publish and distribute permitted; non-exclusive, no territory or period limit, no fees. ⚠ ATTRIBUTION MANDATORY at all times to the producing agency, and the data must not be presented so as to change its substantive meaning. Loaded from the official bulk-file export. - GD Catalog (https://gdcatalog.go.th) — Open Data Common - GD Catalog — amnatcharoen (https://amnatcharoen.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — angthong (https://angthong.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — buengkan (https://buengkan.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — buriram (https://buriram.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — cgd (https://cgd.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — chachoengsao (https://chachoengsao.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — chainat (https://chainat.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — chaiyaphum (https://chaiyaphum.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — chanthaburi (https://chanthaburi.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — chiangmai (https://chiangmai.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — chiangrai (https://chiangrai.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — chonburi (https://chonburi.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — chumphon (https://chumphon.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — kalasin (https://kalasin.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — kamphaengphet (https://kamphaengphet.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — kanchanaburi (https://kanchanaburi.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — khonkaen (https://khonkaen.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — krabi (https://krabi.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — lampang (https://lampang.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — lamphun (https://lamphun.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — loei (https://loei.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — lopburi (https://lopburi.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common - GD Catalog — maehongson (https://maehongson.gdcatalog.go.th) — per-dataset license_id, usually Open Data Common ## Scale - Datasets: 52,336 - Royal Gazette documents: 797,241 - Agencies: 5,148 - Files: 942,056 - Registered sources: 121 - Figures as of: 2026-10-16T03:28:06.211Z