Thailand: Bangkok Metropolitan Administration (BMA)

The Bangkok Metropolitan Administration (BMA) tracks budget and procurement information in two internal systems, MIS2 (budget planning and disbursement) and eGP BMA2 (procurement), and integrates and publishes the data at the project level through its Open Contract platform.

The publication covers procurement by the Bangkok Metropolitan Administration, the local government of Bangkok. Contracting processes cover the planning, tender, award, contract and implementation stages, linking budget allocations to procurement and disbursement.

For fiscal years 2022–2025 (B.E. 2565–2568), detailed procurement data is only partially linked and is available for some contracting processes. From fiscal year 2026 (B.E. 2569) onwards, the publisher links procurement data across all contracting processes. Multiple contracting processes can originate from the same budget allocation, so some records can appear similar without being duplicates.

Available formats:
JSON
Excel
CSV

Overview

Data date range:
May 2026 - May 2026
Update frequency:
Weekly
Last retrieved:
Jun 27, 2026 (retrieved monthly)
Retrieved from:
https://opencontract.bangkok.go.th/ocds.html
License:
Creative Commons Attribution 4.0 International (CC BY 4.0)

You are free to:

  • Share — copy and redistribute the material in any medium or format
  • Adapt — remix, transform, and build upon the material for any purpose, even commercially.

The licensor cannot revoke these freedoms as long as you follow the license terms.

Under the following terms:

  • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
Publication policy:
-
Main language:
Thai
OCID prefix:
ocds-bq4ldt

Data available

A contracting process has several stages: tendering, awarding, contracting and implementation. You can learn about the contracting stages in this tutorial.

These counts are the number of JSON objects across all contracting processes. Parties, tenderers and suppliers are unique within a contracting process, but can be repeated across contracting processes. You can learn about data publication in this tutorial.

Parties

Count of parties:
50,238

Planning

Count of planning activities:
187,996

Tenders

Count of tenders:
46,352
Count of tenderers:
0
Count of tender items:
7,654

Awards

Count of awards:
46,248
Count of suppliers:
3,175
Count of award items:
7,312

Contracts

Count of contracts:
46,352
Count of contract items:
0
Count of transactions:
0

Documents

Count of documents:
104

Milestones

Count of milestones:
0

Amendments

Count of amendments:
0

These extensions are used: bid opening, budget and spend and location.

Data quality

The dataset has quality issues to take into account, notably:

  • Most planning budget values are published in the non-standard planning/budget/value field instead of planning/budget/amount, so budget analyses need to read both fields.
  • Most award objects are empty: of 46,248 awards, only 3,176 have an awards/value/amount, with the remainder containing only a currency. Analyses of award values should exclude these empty objects.
  • Some releases contain non-unique parties/id values, where the same organization appears twice with different roles (e.g. once as “tenderer” and once as “tenderer” and “supplier”) instead of once with both roles. Party-level analyses should deduplicate on identifiers.

Last reviewed: May 2026

Access data

This OCDS dataset is available for download in JSON, Excel or CSV format. You can download the data for contracting processes in a specific year or for all time.

JSON

Each contracting process is represented as one line of JSON text in the .jsonl file.

The .jsonl file is compressed using Gzip. Windows users need 7-Zip, WinRAR or WinZip to decompress the .gz file.

Excel

Each contracting process is represented as one row in the main sheet. Other sheets link to it via the main_ocid column. In general, each sheet is linked to its parent sheet via the [sheet_name]_id column.

Excel files can have at most 1,048,576 rows. If a year is missing, it had too many rows. Download the CSV files, instead.

CSV

Each contracting process is represented as one row in the main.csv file. Other files link to it via the main_ocid column. In general, each file is link to its parent file via the [file_name]_id column.

The .csv files are archived using tar and compressed using Gzip. Windows users need 7-Zip, WinRAR or WinZip to decompress the .tar.gz file.

Do you have any questions or feedback on this dataset or any other content on this page?