India Government Tenders — GeM & CPPP
Pricing
from $50.00 / 1,000 tender records
India Government Tenders — GeM & CPPP
India government tenders from CPPP eProcurement (incl. GeM) — title, organisation, value, dates, bid links. Watch mode for new tenders.
Pricing
from $50.00 / 1,000 tender records
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
0
Bookmarked
23
Total users
6
Monthly active users
4 days ago
Last modified
Categories
Share
🇮🇳 India Government Tenders — GeM & CPPP eProcurement Scraper
Live central and state government tenders from India's CPPP eProcurement portal (eprocure.gov.in) — the government-run aggregator that carries the same central/state tenders as the departmental portals and a dedicated GeM (Government e-Marketplace) bids slice. Every row comes back as a clean tender record with a decoded tender id, the organisation, published / closing / opening dates, corrigendum status, and a working detail URL. Built for contractors, bid-management teams, GovTech products, and AI agents that need structured Indian public-procurement data without driving a JavaScript portal.
Public procurement data, provided as-is for information purposes. Not affiliated with GeM, CPPP, NIC, or any government body.
📊 Sample Output

tender_id | tender_ref_no | title | organisation | published_date | closing_date |
|---|---|---|---|---|---|
| 14149878 | 04/SEPD/DPC-1/CPWD/2026-27 | 04/SEPD/DPC-1/CPWD/2026-27 | Central Public Works Department (CPWD) | 24-Sep-2026 09:22 PM | 15-Oct-2026 03:00 PM |
| 14149808 | 1000465645 | PROVIDING FOOD AND TRANSPORTATION SERVICES FOR POLICE AND REVENUE PER… | Bharat Petroleum Corporation Limited | 24-Sep-2026 08:25 PM | 28-Sep-2026 05:05 PM |
| 14149770 | 45/26-27/EE(Kol)-II/Kolkata | 45/26-27/EE(Kol)-II/Kolkata | Central Public Works Department (CPWD) | 24-Sep-2026 07:52 PM | 05-Oct-2026 05:00 PM |
| 14149769 | 63-EEE-SJHED-2026-27 | 63-EEE-SJHED-2026-27 | Central Public Works Department (CPWD) | 24-Sep-2026 07:33 PM | 01-Oct-2026 03:00 PM |
| 14149768 | 05/SE/PCWC/CPWD/2026-27 | 05/SE/PCWC/CPWD/2026-27 | Central Public Works Department (CPWD) | 24-Sep-2026 07:25 PM | 01-Oct-2026 03:00 PM |
| 14149767 | 1000465542 | PHOTOGRAPHY AND VIDEOGRAPHY/SUPPLY OF HARDDISKS AND SUBMISSION TO STA… | Bharat Petroleum Corporation Limited | 24-Sep-2026 07:22 PM | 01-Oct-2026 07:35 PM |
Real rows from run C88jASsRsTpoDd3wf on build 0.0.19 (2026-09-25), unedited apart from masked emails/phones and shortened long text; fields the source does not publish are empty.
🔧 Input reference
| Field | Type | Default | What it does |
|---|---|---|---|
source | string (all, gem) | "all" | Which CPPP eProcurement slice to pull. 'all' = every active central/state tender (latestactivetenders); 'gem' = the GeM-branded bids slice (gemtender). |
keyword | string | "" | Case-insensitive substring matched against the tender title + organisation (e.g. 'road', 'software', 'CPWD'). Leave empty for the full active-tender feed. |
maxResults | integer | 10 | Maximum tender records to return (1-500). Pages are walked until this cap or the end of pagination. |
watchMode | boolean | false | When on, the first run seeds a baseline and emits nothing; later runs emit only NEW tenders since the last run (keyed on tender_id). Ideal on a schedule. |
watchLabel | string | "default" | Names the watch baseline so multiple saved tasks keep independent state. |
proxyConfiguration | object | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]… | CPPP eProcurement now drops raw datacenter connections, so this actor routes through an Apify RESIDENTIAL proxy (country IN) by default. Leave enabled; a direct/datacenter run can… |
🧾 JSON sample record
One real record from run C88jASsRsTpoDd3wf (emails/phones masked, long text shortened):
{"tender_id": "14149878","tender_ref_no": "04/SEPD/DPC-1/CPWD/2026-27","title": "04/SEPD/DPC-1/CPWD/2026-27","organisation": "Central Public Works Department (CPWD)","published_date": "24-Sep-2026 09:22 PM","closing_date": "15-Oct-2026 03:00 PM","opening_date": "15-Oct-2026 03:30 PM","corrigendum": null,"department": null,"detail_url": "https://eprocure.gov.in/cppp/tendersfullview/MTQxNDk4Nzg=A13h1OGQ2NzAxYTMwZTJhNTIxMGNiNmEwM2EzNmNhYWZhODk=A13h1OGQ2NzAxYTMwZTJhNTIxMGNiNmEwM2EzNmNhYWZhODk=A13h1MTc5MDMwNjYxNQ==A13h1MDQvU0VQRC9EUEMtMS9DUFdELzIwMjYtMjc=A13h1MTcwMTYy","tender_value": null,"source": "all","scraped_at": "2026-09-25T03:23:45Z"}
🔗 Related Actors
More from the NexGenData India & South Asia family:
- MagicBricks Scraper — India Real Estate Listings API
- India MCA Company Search — Registry Data API
- India MCA Director Filings — OGD Registry API
9 more in this family on the NexGenData Store page.
📊 What you get
One record per tender (source chooses the slice):
tender_id— decoded numeric tender id (base64-decoded from the detail path; a stable GeM hash on the GeM slice)tender_ref_no— the tender reference / GeM bid numbertitle— tender title / product categoryorganisation— issuing organisation (e.g. "Central Public Works Department (CPWD)")published_date— e-published / bid-start dateclosing_date— bid submission closing / bid-end dateopening_date— tender opening date (central/state slice)corrigendum— corrigendum indicatordepartment— department name (GeM slice)detail_url— absolute link to the full tender page oneprocure.gov.intender_value— tender value (null in this fast listing path; on the detail page)source,scraped_at
Source slices
source | Slice | Feed |
|---|---|---|
all (default) | All active central + state tenders | /cppp/latestactivetendersnew |
gem | GeM-branded bids | /cppp/gemtender |
💵 Pricing
Pay-per-result, no subscription:
| Event | Price |
|---|---|
| Actor start | $0.01 |
| Tender record | $0.05 each |
| Watch-check (per scheduled watch run) | $0.05 |
About 20 tenders per $1.
Worked example: a pull of 50 active tenders = 1 start ($0.01) + 50 records ($2.50) = $2.51. A daily watch run that finds 4 new tenders = $0.05 watch-check + 4 × $0.05 = $0.25.
🧾 Sample output
{"tender_id": "13956863","tender_ref_no": "1000460298","title": "PROCUREMENT OF PIPE FITTINGS FOR 131P137 SUCTION PIPING AT BPCL MUMBAI REFINERY","organisation": "Bharat Petroleum Corporation Limited","published_date": "17-Jul-2026 08:23 PM","closing_date": "24-Jul-2026 02:00 PM","opening_date": "24-Jul-2026 02:01 PM","corrigendum": null,"department": null,"detail_url": "https://eprocure.gov.in/cppp/tendersfullview/MTM5NTY4NjM=A13h1...","tender_value": null,"source": "all","scraped_at": "2026-07-17T20:30:00Z"}
⏰ Watch mode — new-tender alerts
Turn on watchMode and put the actor on a schedule. The first run seeds a baseline and emits nothing; every later run emits only new tenders since the last run (keyed on tender_id). Perfect for a standing "new CPWD / GeM tenders in my category" feed into Slack, a sheet, or an agent.
{ "source": "all", "keyword": "road", "watchMode": true, "watchLabel": "highway-tenders" }
🤖 Use with AI agents
Returns clean JSON, so an agent can call it directly. Example task: "Pull today's active CPWD tenders closing this month and summarize the ones over ₹1 crore." Works with MCP tool-calling and agentic (x402) payment flows — no API key required.
API
curl -X POST "https://api.apify.com/v2/acts/nexgendata~gem-tenders-india/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"source":"all","keyword":"software","maxResults":25}'
CLI
$apify call nexgendata/gem-tenders-india --input '{"source":"gem","maxResults":100}'
🔗 Related NexGenData actors
- singapore-gebiz-tenders — the same government-tender play for Singapore's GeBIZ (APAC sibling).
- India Six — the India public-data suite:
- nse-bse-announcements — NSE/BSE corporate announcements & filings.
- mca-company-registry — India company master data (CIN, directors, capital, status).
- india-startup-funding-tracker — India startup funding rounds.
- india-trademark-search — Indian trademark records.
- india-gst-verification — GSTIN verification & taxpayer details.
- india-court-cases — Indian court case records.
❓ FAQ
Where does the data come from? India's CPPP eProcurement portal (eprocure.gov.in), run by NIC — the central aggregator of government tenders, which includes a GeM-bids slice. To be clear: this is sourced from CPPP eProcurement (which carries GeM bids), not scraped from GeM's own portal (gem.gov.in) directly.
Why CPPP instead of GeM directly? GeM's own portal is browser/CSRF-gated and resets connections from datacenters. CPPP serves the same tenders as server-rendered HTML that is reachable reliably, so you get stable structured data.
How fresh is it? Real-time — tenders appear as CPPP publishes them; published_date is on every record.
Does a blocked source bill me? No. If CPPP is unreachable the run fails loud and charges nothing — you never pay for an empty "success". Reaching the end of the tender list is a clean empty result, not a failure.
Can I filter? Use the keyword filter (matched against title + organisation) and the source slice; maxResults caps the pull.
Data sourced from public CPPP eProcurement (eprocure.gov.in) government-tender listings, which include GeM bids. This actor is not affiliated with or endorsed by GeM, CPPP, NIC, or any government body. Public procurement data, provided as-is.