Discover/Gov API
live

Gov APImptenders.gov.in ↗

Access active government tenders from the Madhya Pradesh eProcurement portal. Get organisations, tender IDs, titles, reference numbers, and closing dates.

Endpoint health
verified 2h ago
list_organisations
list_tenders
2/2 passing latest checkself-healing
Endpoints
2
Updated
3h ago

What is the Gov API?

The mptenders.gov.in API covers the full active-tender listing on the Madhya Pradesh Government eProcurement portal across 2 endpoints. The list_organisations endpoint returns every organisation currently publishing active tenders — around a hundred — along with tender counts in a single call. The list_tenders endpoint returns tender-level detail including tender ID, reference number, title, published date, closing date, and organisation chain.

This call costs1 credit / call— charged only on success
Try it

No input parameters required.

→ api.parse.bot/scraper/53036d5c-a002-4c33-972b-0994285fed7a/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/53036d5c-a002-4c33-972b-0994285fed7a/list_organisations' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 mptenders-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.

"""Walkthrough: MP eProcurement tenders — browse organisations then drill into tenders."""
from parse_apis.mptenders_gov_in_api import MpTenders, OrganisationNotFound

client = MpTenders()

# List organisations with active tenders, capped to 5.
for org in client.organisations.list(limit=5):
    print(org.organisation_name, f"({org.tender_count} active tenders)")

# Drill into the first organisation's tenders via sub-resource navigation.
org = client.organisations.list(limit=1).first()
if org is not None:
    for tender in org.tenders.list(limit=3):
        print(tender.title, "|", tender.published_date, "→", tender.closing_date)

    # Fetch a single tender to show detail fields.
    tender = org.tenders.list(limit=1).first()
    if tender is not None:
        print(tender.tender_id, tender.reference_no, tender.detail_url)

# Typed error handling: unknown organisation_id.
try:
    bogus = client.organisation(organisation_id="nonexistent==")
    bogus.tenders.list(limit=1).first()
except OrganisationNotFound:
    print("Organisation not found — expected for an invalid id")

print("exercised: organisations.list / organisation().tenders.list / OrganisationNotFound")
All endpoints · 2 totalmissing one? ·

Returns every organisation that currently has active tenders on the portal, with its active tender count and the organisation_id that list_tenders consumes. One round trip, no pagination; the whole list (around a hundred organisations) is returned in one call. total_tender_count is the sum of the per-organisation counts, i.e. the number of active tenders on the portal.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "organisations": "array of organisation records: organisation_id (opaque token, pass unchanged to list_tenders), organisation_name, tender_count (integer, active tenders for this organisation)",
    "organisation_count": "integer, number of organisations returned",
    "total_tender_count": "integer, sum of tender_count over all organisations"
  },
  "sample": {
    "data": {
      "organisations": [
        {
          "tender_count": 16,
          "organisation_id": "SPj1fp4UyfZSNWcUiqPusHw==",
          "organisation_name": "Bhopal City Link Limited"
        },
        {
          "tender_count": 43,
          "organisation_id": "SCywdk1FJJR+f8aupTpAPc9S0Fec7wUuNy1YFXyqSerE=",
          "organisation_name": "Department of Higher Education"
        }
      ],
      "organisation_count": 96,
      "total_tender_count": 5515
    },
    "status": "success"
  }
}

About the Gov API

What the API covers

The API mirrors the active-tender listing on mptenders.gov.in, the official eProcurement portal for Madhya Pradesh state government. It exposes two endpoints that together let you enumerate every active tender currently on the portal: first by organisation, then by individual tender records within each organisation.

list_organisations

Calling list_organisations requires no parameters and returns the complete set of organisations that currently hold active tenders. Each record includes an organisation_id (an opaque token you pass unchanged to list_tenders), the organisation_name, and a tender_count. The response also includes organisation_count and total_tender_count so you can assess scope before fetching individual tenders.

list_tenders

list_tenders takes a required organisation_id from the previous endpoint, plus optional limit and offset integers for client-side pagination. Values above 5000 for limit are clamped to 5000. Each tender record in the tenders array includes tender_id, title, reference_no, organisation_name, organisation_chain, published_date, closing_date, and a direct URL to the tender detail page on the portal. The has_more boolean, total_count, and returned_count fields let you walk through large organisation result sets without guesswork.

Ordering and freshness

Tenders are returned in the portal's native order — newest published first. The data reflects active tenders only; closed, archived, or cancelled tenders are not included. Coverage is limited to organisations and tenders the portal itself marks as currently active.

Reliability & maintenanceVerified

The Gov API is a managed, monitored endpoint for mptenders.gov.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mptenders.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 mptenders.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.

Last verified
2h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor new tenders from a specific MP government department by polling list_tenders for that organisation_id daily
  • Build a closing-date alert system using the closing_date field across all active organisations
  • Aggregate total active procurement volume by summing tender_count across all organisations from list_organisations
  • Identify which government bodies are most actively procuring by ranking organisations by tender_count
  • Index tender reference numbers and titles for full-text search across all active MP state tenders
  • Auto-populate a procurement CRM with tender_id, title, and the direct detail-page URL for each new tender
  • Track how many tenders an organisation publishes over time by comparing total_tender_count snapshots
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does mptenders.gov.in provide an official developer API?+
No. The mptenders.gov.in portal does not publish a documented public API. This Parse API provides structured access to the data available on the portal's active tender listing pages.
What does list_tenders return beyond the tender title?+
Each tender record includes tender_id, reference_no, title, organisation_name, organisation_chain (the full departmental hierarchy), published_date, closing_date, and a direct URL to that tender's detail page on the portal. The response also includes total_count, returned_count, and has_more for pagination.
Does the API cover historical or closed tenders?+
Not currently. Both endpoints reflect only tenders the portal currently marks as active. Closed, archived, cancelled, or awarded tenders are not exposed. You can fork this API on Parse and revise it to add an endpoint covering historical tender data if the portal exposes it in a separate listing.
Can I filter tenders by keyword, category, or closing date?+
The list_tenders endpoint does not support server-side filtering by keyword, category, or date range — it returns all active tenders for a given organisation_id in published-date order. You can apply your own filtering logic on the returned fields (title, closing_date, reference_no). You can fork this API on Parse and revise it to add filtered or cross-organisation search if that is available on the portal.
How should I paginate through a large organisation's tenders?+
Pass offset and limit to list_tenders. Start with offset 0, then increment offset by the returned_count value. Continue while has_more is true. The maximum limit per call is 5000 (values above that are clamped automatically).
Page content last updated . Spec covers 2 endpoints from mptenders.gov.in.
Related APIs in Government PublicSee all →
tenders.gov.in API
Search and monitor current government tenders from India's Central Public Procurement Portal and GePNIC systems, filtering by organizations and accessing detailed tender information. Stay updated on the latest procurement opportunities and bids from Indian government agencies in one centralized location.
etender.up.nic.in API
Access data from etender.up.nic.in.
mahatenders.gov.in API
Access Maharashtra government tenders from mahatenders.gov.in, browsing them by closing date or by organization with full tender details and pagination support. Find and review procurement opportunities across different government departments in one place.
eprocure.gov.in API
Access data from eprocure.gov.in.
eprocurement.gov API
Monitor India's public procurement opportunities by accessing active tenders, bids closing today, global tenders, high-value contracts, and cancelled tenders from the Central Public Procurement Portal. Search tender details, browse participating organizations, and track real-time procurement statistics to stay informed on government contracting opportunities.
etenders.gov.za API
Access data from etenders.gov.za.
bdtender.com API
Search and browse tender listings from Bangladesh's largest tender portal, discovering opportunities by category, organization, and location while accessing real-time tender data and site statistics. Get detailed information on individual tenders, view live postings, and see what was published today to stay updated on the latest bidding opportunities.
procurement-portal.novascotia.ca API
Access data from procurement-portal.novascotia.ca.