opentenders.inMirror Status: Sync Complete
Last Sync Ingestion: 2026-06-26
Public Procurement Transparency Project

Public Money Deserves
Public Scrutiny.

Every single rupee spent by the government passes through a public tender. This process is the natural check-and-balance of public finance, yet the data remains locked behind complex government interfaces, tedious pagination traps, and constant captchas.

This initiative is a step towards open transparency. We have crawled, parsed, and consolidated the entire Central Public Procurement Portal (CPPP) of India. The result is two flat, fully structured SQLite databases containing over 8.8 million contract awards and tender notices, including active listings and final award decisions.

No captchas. No paywalls. No throttled APIs.Just the public data, structured, indexed, and completely free for data scientists, journalists, and researchers to audit.

1. Download the Databases

Get the raw SQLite databases directly. Each database represents a comprehensive chunk of procurement activity. Select a mirror below to start downloading.

Database File

tenders_vps.db

FormatSQLite 3
Record Count~3.9M records
ContentsActive notices, EMDs, fee logs, specifications
SHA-256 Fingerprint Click to Copy
b1994cfb6dd2d5da9ed1d9ac8d6bbc7083178f155e92a65628e87a38e4c64d01
Database File

aoc_tenders.db

FormatSQLite 3
Record Count~4.9M records
ContentsContract awards, winners, values, location records
SHA-256 Fingerprint Click to Copy
ec8ef7711a17b7cae9e0414c2403b119a0a31c4dec49ed7055b38ec0df5f7586
Consolidated Archive (.zip)Both Databases

A single package containing both SQLite databases in compression. Best suited if you want to set up your analytics offline in one click.

2. How to Verify Your Download

When downloading large datasets, network issues can occasionally corrupt the file. We provide a **SHA-256 fingerprint** for each database. Think of this fingerprint as a unique digital signature. Checking the file on your machine and matching it to our values guarantees your copy is safe and complete.

1
Open PowerShell: Press the Windows Key, type PowerShell, and press Enter to launch it.
2
Navigate to downloads: Type cd ~/Downloads in the window and hit Enter.
3
Run the verification: Click anywhere on the code block below to copy it, then paste and run it in PowerShell.
Click to Copy
Get-FileHash -Path aoc_tenders.db -Algorithm SHA256
4
Check the match: The long string of letters and numbers printed on your screen should match our fingerprint exactly. If it matches, your data is complete!

3. Database Schema & Fields

Understand the layout of tables and JSON keys before launching your queries. Each database includes listing details and fully-parsed JSON elements.

Relational Table Structure:
-- Listing metadata for active/archived notices (~3.9M rows)
CREATE TABLE tenders (
    internal_id                  TEXT PRIMARY KEY,
    tender_id                    TEXT,
    detail_url                   TEXT,
    status                       TEXT,
    organisation_name            TEXT,
    title                        TEXT,
    reference_number             TEXT,
    portal_type                  TEXT,
    serial_number                TEXT,
    e_published_date             TEXT,
    bid_submission_closing_date  TEXT,
    tender_opening_date          TEXT,
    corrigendum_url              TEXT,
    scraped_at                   TEXT,
    partition_id                 INTEGER
);

-- Deep parsed JSON parameters mapping (~3.1M rows)
CREATE TABLE tender_details (
    internal_id   TEXT PRIMARY KEY,  -- Maps to tenders.internal_id
    tender_id     TEXT,
    details_json  TEXT,              -- Structured keys
    scraped_at    TEXT
);
JSON structure inside details_json:
"Tender Reference Number"
"Tender Title"
"Organisation Name"
"Organisation Type"
"Tender Category"
"Tender Type"
"Product Category"
"Product Sub-Category"
"ePublished Date"
"Bid Opening Date"
"Bid Submission Start Date"
"Bid Submission End Date"
"EMD" (Deposit)
"Tender Fee"
"Location"
"Work Description"
"Tender Document"

4. Example Analytical Queries

Ready to analyze the data? Click on either of the SQL query code blocks below to copy the template code directly to your clipboard.

Query 1: Single-Bidder Contracts

Identify agencies awarding contracts where only one bidder participated. A high frequency of single-bid awards can highlight reduced competition.

Copy SQL
SELECT 
  org_name, 
  COUNT(*) as single_bid_count 
FROM aoc_tenders t
JOIN aoc_details d ON t.internal_id = d.internal_id
WHERE json_extract(d.details_json, '$.["Number of bids received"]') = '1'
GROUP BY org_name
ORDER BY single_bid_count DESC
LIMIT 10;
Query 2: Short Bidding Windows

Search for notices that closed in less than 5 days from publishing. Artificially short deadlines can restrict competitive responses.

Copy SQL
SELECT 
  organisation_name, 
  title, 
  e_published_date, 
  bid_submission_closing_date
FROM tenders
WHERE status = 'archived'
  AND (julianday(bid_submission_closing_date) - julianday(e_published_date)) < 5
LIMIT 10;

Public Intent & Ethical Crawling Guidelines

Our initiative operates under principles of civic utility, transparency, and collaboration. Below we outline our database collection methodology, non-malicious intent, and data compliance practices.

1. Legislative Spirit of transparency

Under Section 4 of India's Right to Information (RTI) Act, 2005, public authorities are mandated to proactively organize and digitally publish public records. We believe that structured data formats (like SQLite databases) are essential to fulfilling this legislative intent. Our sole objective is to support public administration efficiency and open research.

2. Strict Compliance & Passive Crawling

This database was constructed using passive web crawling practices. We accessed only publicly-available, unauthenticated URLs. No security configurations were bypassed, no firewalls were scanned, and no automated session overrides occurred. The scraper operated at paced rate limits to avoid server degradation or network overhead on CPPP servers.

3. Absence of Malicious Intent

This project harbors no hostile, commercial, or malicious intent towards any government department, public official, contractor, or vendor. The datasets are provided strictly as an objective, unaltered mirror of the official government logs. We do not inject, edit, or selectively delete records, ensuring data integrity remains absolute for research studies.

4. Disclaimer & Redaction Protocol

All databases are provided "as-is" for educational and research analysis. Users must verify findings against the official website (eprocure.gov.in) before making assertions. If any authority, office, or individual identifies personal information or records requiring retraction, they may coordinate with us for immediate redaction.

This platform is a non-commercial, self-funded archive and does not represent, claim affiliation with, or hold authorization from the CPPP or any government agency.

Let's Collaborate

Public records only provide transparency when they are studied. We invite data analysts, researchers, journalists, and everyone interested in accountability to look at the numbers.