Gov APItenders.gov.in ↗
Access Indian government tenders, procurement portals, and organisation-level tender data from tenders.gov.in via a structured JSON API.
What is the Gov API?
This API exposes 5 endpoints covering India's Central Public Procurement Portal (CPPP) and GePNIC ecosystem, returning tender listings, organisation-level tender counts, portal metadata, and full tender details. Use get_latest_tenders to pull the 10 most recently published tenders — including title, reference number, closing date, and bid opening date — or use get_tenders_by_organisation to filter active tenders by any government organisation name.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/7872876e-38ee-4bfe-973a-91a4a4c5a7cf/get_portals' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace tenders-gov-in-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.india_eprocure_tenders_api import EProcure, NotFoundError
client = EProcure()
# List all government procurement portals
for portal in client.portals.list(limit=5):
print(portal.category, portal.description, portal.url)
# Fetch the latest published tenders
for tender in client.latesttenders.list(limit=5):
print(tender.title, tender.reference_no, tender.closing_date, tender.bid_opening_date)
# List organisations with active tenders
org = client.organisations.list(limit=1).first()
if org:
print(org.name, org.tender_count)
# Get tenders for a specific organisation using constructible navigation
cpwd = client.organisation(name="Central Public Works")
try:
for tender in cpwd.tenders.list(limit=3):
print(tender.title, tender.published_date, tender.closing_date, tender.organisation)
except NotFoundError as exc:
print(f"Organisation not found: {exc}")
print("exercised: portals.list / latesttenders.list / organisations.list / organisation.tenders.list")
Fetch metadata for all government procurement (GePNIC) portals. Returns a flat list of portals, each tagged with a category (Central, State, CPSE, eAuction, ePublish, GePNIC). Each portal includes its URL, description, and code.
No input parameters required.
{
"type": "object",
"fields": {
"portals": "array of portal objects with category, url, description, code"
},
"sample": {
"data": {
"portals": [
{
"url": "https://eprocure.gov.in/eprocure/app",
"code": "eProcure for Central Govt. Organisations",
"category": "Central",
"description": "eProcure for Central Govt. Organisations"
},
{
"url": "https://assamtenders.gov.in/nicgep/app",
"code": "Assam",
"category": "State",
"description": "Assam"
}
]
},
"status": "success"
}
}About the Gov API
Portal and Organisation Data
The get_portals endpoint returns structured metadata for every government procurement portal in the GePNIC network, broken into six categories: Central, States, CPSEs, eAuction, ePublish, and GePNIC. Each portal object carries a webUrl, webDesc, and webCode, giving you a machine-readable directory of all participating procurement systems. The get_organisations endpoint complements this by listing every organisation currently publishing active tenders, along with a tender_count per organisation.
Tender Listings and Filtering
The get_latest_tenders endpoint returns up to 10 tenders from the eProcure homepage, each with title, reference_no, closing_date, and bid_opening_date. For targeted retrieval, get_tenders_by_organisation accepts an organisation_name string (partial, case-insensitive) and scans up to 3 pages (30 tenders) of active CPPP listings, returning matching tenders with published_date, closing_date, opening_date, title, and organisation, along with a pages_scanned count.
Tender Detail Retrieval
The get_tender_detail endpoint resolves full tender details using one of two input modes. Pass tender_index (1-based) to select from the latest tenders or from a specific organisation's results by also supplying organisation_name. Alternatively, pass a sp token obtained through session chaining from a listing endpoint for direct detail access. The response contains a details object with the full tender record.
Coverage Notes
All data reflects what is currently published on the public-facing CPPP portal. The organisation filter scans at most 30 tenders (3 pages), so organisations with large tender volumes may not be fully represented in a single call. There is no date-range filtering or keyword search across endpoints in the current version.
The Gov API is a managed, monitored endpoint for tenders.gov.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tenders.gov.in changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official tenders.gov.in API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor newly published government tenders daily using
get_latest_tendersand alert procurement teams when relevant opportunities appear. - Build an organisation-specific tender tracker by calling
get_tenders_by_organisationwith a ministry or department name and loggingclosing_datevalues. - Enumerate all GePNIC state and CPSE portal URLs from
get_portalsto build a procurement portal directory. - Compare
tender_countvalues across organisations fromget_organisationsto identify which departments are most actively procuring. - Retrieve full tender specifications via
get_tender_detailusing atender_indexfrom a prior listing call to automate bid-eligibility screening. - Track opening dates (
bid_opening_date) fromget_latest_tendersto schedule participation in upcoming government bid openings.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does tenders.gov.in have an official developer API?+
How does `get_tenders_by_organisation` handle partial name matching, and what is the coverage limit?+
pages_scanned field in the response tells you how many pages were actually checked.Can I search for tenders by keyword, category, or tender value?+
Does the API return tenders from state-level portals, or only the central CPPP portal?+
get_latest_tenders and get_tenders_by_organisation endpoints cover the central CPPP portal listings. The get_portals endpoint returns URLs and metadata for state and CPSE portals but does not fetch tender listings from those portals. You can fork this API on Parse and revise it to add tender-listing endpoints for specific state portals.