Project Diaphanum

An open archive of Indian public procurement, 2011–2026

Government tenders let us citizens know where our tax rupees get spent. Every tender in India must be published on an official e-procurement portal. The records are scattered over about forty portals, making scrutiny extremely inaccessible to the average citizen.

Diaphanum collects them into one place. This release holds 18.9 million tender notices and 8.8 million awards of contract from every Indian state and union territory, in open formats, open-sourced to make the rightful critique of the system of governance more accessible.

It builds on the archive of Sarthak Siddhant, which covers the central government well but is thin on the states. Diaphanum adds the states. When talking about open-sourcing public procurement data, it is impossible to do so without acknowledging the work of Sarthak Siddhant. My sincerest gratitudes to him for kickstarting a movement where citizens gather on digital platforms to collaborate actively on scrutiny of public data. Kudos.

This project initially began in June 2025, with the aim of gathering public procurement data from my home state, West Bengal. Since then, it has exceeded multiple versions of its scope, and I believe this is the right time to release the data gathered until now. In no way is Project Diaphanum complete: there are several more organisations to examine, and closer inspection is required in the tallies of some states, but what good is this data if it sits on a hard disk and is not used to gain insights into the proceedings that build and run our country.

Download

Parquet (recommended)

Columnar, compressed (zstd), readable in Python, R, DuckDB, Spark and most other tools. Same tables as the SQLite files below.
Hugging Face dataset →

SQLite

The raw databases we built, one per kind of record, zipped. They hold the rows added by Diaphanum. Every file has a SHA-256 so you can check your download.

FileHoldsSizeSHA-256
AOC-mine.sqlite.zipAwards: aoc_tenders, aoc_details, hitl_bidders, l1_bidders2.45 GBea3db67d2db082946885b8dc6a73fb33b7e9ff55bacf452a3f3e529e11e85db3
tenders_vps-mine.sqlite.zipNotices: tenders, tender_details, tender_details_extra5.19 GBfbcb3ec11596abefd472227430acb3eb1a12dcf402270b7dc25f1c749c00cad3

Also on MEGA: SQLite folder.

Mirror

The whole release (Parquet, SQLite, checksums, this overview) is also on MEGA, in case Hugging Face is unavailable: MEGA mirror, full release →

Quick start

import duckdb
duckdb.sql("""
  SELECT source, count(*)
  FROM read_parquet('combined/aoc_tenders.parquet')
  GROUP BY 1
""").show()

What is in it

Earlier archiveAdded by DiaphanumCombined
Award rows (aoc_tenders)4,921,9603,850,7608,772,720
Notice rows (tenders)3,952,19114,987,24118,939,432
Bidder rows of published awards–11,064,27011,064,270
Tenders with a bid list but no published award–3,446,7923,446,792

State-wise tally

Counts for the state portals. Earlier is what Sarthak's archive already had; Added is what Diaphanum added. “Bid lists” counts tenders with bidders listed but no published award. Notices are counted by the state named as the organisation.

State / UTAwardsBid listsNotices
EarlierAddedTotalAddedEarlierAddedTotal
West Bengal785,197676,4221,461,619474,5394,4382,443,6702,448,108
Maharashtra537,695665,3471,203,042508,9732,3162,189,7312,192,047
Uttar Pradesh151,213286,933438,146591,4567,5722,191,3042,198,876
Kerala358,799484,020842,81977,3462,2101,417,8421,420,052
Rajasthan10,42356,46166,884573,4084,7791,033,8751,038,654
Tamil Nadu139,936137,664277,600127,3472,459824,095826,554
Jammu and Kashmir2,6924,2366,928348,9042,5221,074,3371,076,859
Madhya Pradesh248,689116,961365,65076,3772,586624,346626,932
Haryana162,327127,095289,42298,1002,060622,037624,097
Odisha116,148100,039216,18777,1242,432587,396589,828
Andhra Pradesh73,903582,789656,692047619,87620,352
Punjab133,67561,035194,71030,5192,781350,392353,173
NCT of Delhi10,0637,45617,519264,866886388,946389,832
Telangana2,566322,034324,60001,05825,38826,446
Himachal Pradesh41,36640,12081,48661,551892208,430209,322
Bihar068,65268,65200150,690150,690
Jharkhand17,26321,53538,79819,197427155,094155,521
Chandigarh UT14,80414,80229,60636,000300115,123115,423
Tripura39,54625,37064,9163,18223776,69676,933
Uttarakhand15,45211,49326,94522,433549112,593113,142
Chhattisgarh02200134,022134,022
Assam26,99120,01247,0039,51127780,61980,896
Goa11,0719,29720,3686,78317031,48231,652
Ladakh UT2,6651,5304,19515,80110640,97441,080
Puducherry UT10,0105,83615,8462,8586522,33522,400
Andaman and Nicobar Island1,7539822,73514,07513224,92725,059
Gujarat04404400016,76616,766
Dadra and Nagar Haveli (UT)9988191,8171,444108,0078,017
Daman and Diu4762126881,356254,8274,852
Arunachal Pradesh28439567988853,4883,493
Lakshadweep UT391962351,917103,6693,679
Meghalaya215183398206221,9571,979
Sikkim93761693176845851
Nagaland1391342732214741745
Mizoram5455109932475477
Manipur157127284011246257
Karnataka0000000
Total2,916,7023,850,7606,767,4623,446,79241,82514,987,24115,029,066

It is important to point out that Karnataka was not a part of the scrape because it already has an API key that allows citizens to access the data. It is very pleasant to see governments such Karnataka prioritizing open-data ventures in India.

Sources

Every record was read from an official government e-procurement portal, and every added row carries the URL of the page it came from, so any record can be checked against its source. Only publicly accessible pages were used. Nothing is login-only, paid or leaked.

NIC GePNIC portals

The e-procurement system of the National Informatics Centre, used by about 30 states and union territories: West Bengal, Maharashtra, Uttar Pradesh, Kerala, Tamil Nadu, Madhya Pradesh, Haryana, Odisha, Punjab, Rajasthan, Delhi, Jammu & Kashmir, Himachal Pradesh, Jharkhand, Uttarakhand, Assam, Tripura, Goa, Chandigarh, Puducherry, Ladakh, Andaman & Nicobar, Dadra & Nagar Haveli, Daman & Diu, Lakshadweep and the north-eastern states. For example wbtenders.gov.in, mahatenders.gov.in, etender.up.nic.in, etenders.kerala.gov.in, tntenders.gov.in.

State-run portals

StatePortal
Telanganatender.telangana.gov.in
Andhra Pradeshtender.apeprocurement.gov.in
Chhattisgarheproc.cgstate.gov.in
Bihareproc2.bihar.gov.in
Gujarattender.nprocure.com
Rajasthansppp.rajasthan.gov.in

Central portal

The earlier archive was scraped from the Central Public Procurement Portal, eprocure.gov.in. See its page for details.

How it was checked

Limitations of this release

The release cannot be deemed complete. There are clearly many gaps, as seen in the State-wise distribution table, with some states having much less tenders than expected. A closer look into these topics is necessary.

Use, cite, correct

Licence: CC BY 4.0. Use it for anything, including commercial work, but credit Project Diaphanum and, for the earlier rows, Sarthak Siddhant.

Cite as: Project Diaphanum (2026). Indian public procurement, Release R1. https://project-diaphanum.shreyam.me/

Errors, questions, findings: shreyammandal001@gmail.com

Project Diaphanum · Release R1, 2026-11-09