Discover/bdtender API
live

bdtender APIbdtender.com

Access Bangladesh tender listings, categories, organizations, and locations via 8 endpoints. Search live tenders, filter by district, and get today's publications.

Endpoint health
verified 4d ago
get_tenders_published_today
get_locations
get_organizations
get_categories
search_tenders
8/8 passing latest checkself-healing
Endpoints
8
Updated
26d ago

What is the bdtender API?

The bdtender.com API provides access to Bangladesh's largest tender portal through 8 endpoints covering search, detail lookup, and reference data. The search_tenders endpoint accepts filters for keyword, category, organization, location, date range, and advertisement type, returning paginated results with tender codes, work descriptions, issue dates, and submission deadlines. Companion endpoints expose the full hierarchical trees for categories, organizations, and districts.

Try it
Page number for pagination.
Search keyword or tender ID to match against work descriptions.
End date filter in DD/MM/YYYY format.
Advertisement type filter.
Category ID from get_categories endpoint (e.g. 'T1', 'T2').
Location ID from get_locations endpoint (e.g. 'DDist-02').
Start date filter in DD/MM/YYYY format.
Organization ID from get_organizations endpoint (e.g. 'DG62').
api.parse.bot/scraper/7d257fbc-af8e-4f78-8464-7c2e39b12b26/<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 POST 'https://api.parse.bot/scraper/7d257fbc-af8e-4f78-8464-7c2e39b12b26/search_tenders' \
  -H 'X-API-Key: $PARSE_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "page": "1",
  "query": "construction",
  "date_to": "18/07/2026",
  "adv_type": "Goods",
  "date_from": "11/06/2026"
}'
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 bdtender-com-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.bdtender_api import BDTender, AdvertisementType, TenderNotFound

bdtender = BDTender()

# Get site-wide statistics
stats = bdtender.sitestatisticses.get()
print(stats.live_tenders, stats.published_today)

# Search for tenders filtered by advertisement type
for tender in bdtender.tenders.search(query="construction", adv_type=AdvertisementType.WORKS):
    print(tender.tendercode, tender.workdesc, tender.tendersource, tender.issudate)
    break

# List all categories for filter discovery
for category in bdtender.categories.list():
    print(category.id, category.text, category.parent)
    break

# List organizations
for org in bdtender.organizations.list():
    print(org.id, org.text)
    break

# List locations
for loc in bdtender.locations.list():
    print(loc.id, loc.text)
    break

# Get live tenders
for tender in bdtender.tenders.list_live():
    print(tender.tendercode, tender.workdesc, tender.tsubmissiondate)
    break

# Get today's publications
for tender in bdtender.tenders.list_published_today():
    print(tender.tendercode, tender.workdesc)
    break

# Get detail for a specific tender
detail = bdtender.tenders.get(tender_id="11525191")
print(detail.tendercode, detail.workdesc, detail.advertisement_types, detail.note)
All endpoints · 8 totalmissing one? ·

Full-text search over Bangladesh tender listings. Supports filtering by keyword, category, organization, location, date range, and advertisement type. Returns paginated results with tender code, description, dates, source, and advertisement types. Note: category, organization, location, and advertisement type filters may return reduced results for unauthenticated access.

Input
ParamTypeDescription
pageintegerPage number for pagination.
querystringSearch keyword or tender ID to match against work descriptions.
date_tostringEnd date filter in DD/MM/YYYY format.
adv_typestringAdvertisement type filter.
categorystringCategory ID from get_categories endpoint (e.g. 'T1', 'T2').
locationstringLocation ID from get_locations endpoint (e.g. 'DDist-02').
date_fromstringStart date filter in DD/MM/YYYY format.
organizationstringOrganization ID from get_organizations endpoint (e.g. 'DG62').
Response
{
  "type": "object",
  "fields": {
    "data": "array of tender objects with tendercode, workdesc, issudate, tsubmissiondate, status, tendersource, advertisement_types, categories, organizations, locations",
    "total": "integer total number of matching tenders",
    "last_page": "integer total number of pages",
    "current_page": "integer current page number"
  },
  "sample": {
    "data": {
      "data": [
        {
          "status": "",
          "issudate": "11/06/2026",
          "workdesc": "A# Ground Floor Collapsible gate and Grill. B# Supplying Sewing Machine.",
          "locations": [
            "Login to view"
          ],
          "categories": [
            "Login to view"
          ],
          "tendercode": "11525191",
          "tendersource": "Protidiner Bangladesh",
          "organizations": [
            "Login to view"
          ],
          "tsubmissiondate": "14/06/2026",
          "advertisement_types": [
            "Goods",
            "Works"
          ]
        }
      ],
      "total": 25643,
      "last_page": 2565,
      "current_page": 1
    },
    "status": "success"
  }
}

About the bdtender API

What the API Covers

The bdtender.com API surfaces tender listings from Bangladesh's central procurement portal. The search_tenders endpoint accepts up to seven filter parameters simultaneously — query, category, organization, location, date_from, date_to, and adv_type — and returns paginated results including tendercode, workdesc, issudate, tsubmissiondate, status, tendersource, and advertisement_types. The get_live_tenders endpoint returns all currently active tenders in the same structure without requiring any filter arguments.

Reference Data Endpoints

Three dedicated endpoints provide the valid filter values needed for precise searching. get_categories returns a hierarchical tree of tender categories (e.g. T1, T2) with id, parent, and text fields. get_organizations returns the full tree of government departments and agencies using the same node shape, with IDs such as DG62. get_locations covers districts and upazilas with IDs like DDist-02. All three trees are returned as flat arrays with parent references, so you can reconstruct hierarchy on the client side.

Tender Detail and Today's Activity

get_tender_detail accepts a tender_id string and returns the basic listing fields — workdesc, issudate, tsubmissiondate, status, tendersource, and advertisement_types — along with a note regarding authentication requirements for full tender documents on the source portal. get_tenders_published_today returns only tenders published on the current calendar date in Bangladesh Standard Time (UTC+6), and may return an empty list early in the day before any notices appear.

Site Statistics

get_site_statistics returns four aggregate counts: Live Tenders, Private Tenders, Corrigendum, and Published Today. These are string-typed counts reflecting the current state of the portal and are useful for dashboards or health checks.

Reliability & maintenanceVerified

The bdtender API is a managed, monitored endpoint for bdtender.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bdtender.com 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 bdtender.com 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
4d ago
Latest check
8/8 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 Bangladesh government procurement opportunities daily using get_tenders_published_today
  • Filter tenders by district using location IDs from get_locations to surface regional bidding activity
  • Track tender volume trends by polling get_site_statistics for live and published-today counts over time
  • Build a department-specific tender feed by filtering search_tenders with organization IDs from get_organizations
  • Alert on keyword-matched tenders by running scheduled search_tenders queries against specific work description terms
  • Compile category-level procurement reports by combining get_categories tree data with filtered search results
  • Check submission deadline proximity by retrieving tsubmissiondate from get_tender_detail for tracked tender codes
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does bdtender.com have an official developer API?+
bdtender.com does not publish an official public developer API or documented data access program for third-party use.
What does `get_tender_detail` return and are full tender documents included?+
The endpoint returns the core listing fields: tendercode, workdesc, issudate, tsubmissiondate, status, tendersource, and advertisement_types. Full tender documents — specifications, bill of quantities, and other attachments — require authentication on the source portal and are not returned by this endpoint. A note field in the response describes this limitation.
How do category, organization, and location filters work in `search_tenders`?+
These filters accept ID strings, not free-text names. You must first call get_categories, get_organizations, or get_locations to retrieve the correct IDs (for example, T1 for a category or DDist-02 for a district), then pass those values as category, organization, or location parameters in search_tenders. Passing arbitrary strings not present in those trees will return no results.
Does the API cover private tender listings?+
get_site_statistics reports a Private Tenders count, but the search and listing endpoints (search_tenders, get_live_tenders) do not currently expose private tender records. The API covers public procurement notices. You can fork it on Parse and revise to add an endpoint targeting private tender listings if the source makes them accessible.
Is there an endpoint to retrieve historical tenders or tenders by a specific past date range?+
search_tenders supports date_from and date_to filters in DD/MM/YYYY format, which can target past date ranges. However, there is no dedicated historical archive endpoint. Coverage depth depends on what the source portal retains. You can fork the API on Parse and revise it to add a dedicated historical query endpoint if deeper archival access is needed.
Page content last updated . Spec covers 8 endpoints from bdtender.com.
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.
eproc2.bihar.gov.in API
Access live tender listings from the Bihar Government e-Procurement portal to search and filter government contracts by department, status, and keywords. Get detailed tender information including specifications and deadlines, plus browse the complete directory of participating government departments.
tenders.gov.uk API
Search and access UK government public procurement notices, tenders, and contract opportunities in real-time, with the ability to retrieve detailed notice information and browse standardized classification codes. Get comprehensive procurement data in structured formats to analyze tender patterns and find relevant contracting opportunities.
biddingo.com API
Search and filter government procurement bids and RFPs across different regions and categories to find relevant opportunities. Access detailed project descriptions and bid information to help you discover and evaluate contracting opportunities that match your business needs.
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.
tenders.etimad.sa API
Browse and search all public Saudi government tenders from the Etimad platform with detailed information including tender specifications and awarding results. Stay updated on procurement opportunities by accessing tender details and award outcomes in one centralized location.
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.
civicinfo.bc.ca API
Search open bid opportunities and tenders from BC municipalities, with details including title, closing date, organization, category, and location.