Discover/Bidsandtenders API
live

Bidsandtenders APIbidsandtenders.com

Search open and historical bid opportunities from the bids&tenders eProcurement platform across Canada and the USA. Filter by status, type, org, and date.

Endpoint health
verified 3d ago
search_bids
1/1 passing latest checkself-healing
Endpoints
1
Updated
2mo ago

What is the Bidsandtenders API?

The bids&tenders API exposes public procurement data from the bids&tenders eProcurement platform through a single search_bids endpoint that returns up to 50 bid opportunities per page with fields including bid name, organization, status, closing date, document fees, and bid type. It covers active and historical tenders across Canadian provinces and US jurisdictions, with filters for keyword, date range, bid type, and organization ID.

This call costs1 credit / call— charged only on success
Try it
Page number (1-indexed). Each page returns up to 50 bids.
Filter by bid status.
Free-text search against bid name and organization name.
Filter by bid type (e.g. Public, Prequalification, Invitational).
Filter bids published on or before this date, format MM/DD/YYYY. Omit to not filter by end date.
Comma-separated list of organization IDs to filter results. Organization IDs can be discovered from the platform's organization dropdown (e.g. 5231 for Metro Vancouver, 12416 for City of Abbotsford).
Filter bids published on or after this date, format MM/DD/YYYY. Omit to not filter by start date.
api.parse.bot/scraper/94f5a0e0-28d3-4ff5-a4e7-dfd2e4953d34/<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/94f5a0e0-28d3-4ff5-a4e7-dfd2e4953d34/search_bids?page=1&status=Open&keyword=construction&organization=5231' \
  -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 bidsandtenders-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.

"""Walkthrough: bidsandtenders SDK — bounded, re-runnable; every call capped."""
from parse_apis.bidsandtenders_com_api import BidsAndTenders, BidStatus, ParseError

client = BidsAndTenders()

# Search open bids in BC by organization IDs (Metro Vancouver + City of Surrey)
for bid in client.bids.search(status=BidStatus.OPEN, organization="5231,12412", limit=3):
    print(bid.bid_name, bid.organization, bid.closing_date)

# Keyword search across all open bids
bid = client.bids.search(keyword="construction", status=BidStatus.OPEN, limit=1).first()
if bid:
    print(bid.bid_name, bid.bid_type, bid.detail_url)

# Handle errors on a search
try:
    for b in client.bids.search(keyword="plumbing", limit=2):
        print(b.bid_name, b.status)
except ParseError as e:
    print(f"error: {e}")

print("exercised: bids.search")
All endpoints · 1 totalmissing one? ·

Search open and historical bid opportunities by keyword, status, organization, bid type, and date range. Results are paginated with up to 50 bids per page, ordered by closing date descending. To find bids in a specific province (e.g. BC), pass a comma-separated list of organization IDs for that region.

Input
ParamTypeDescription
pageintegerPage number (1-indexed). Each page returns up to 50 bids.
statusstringFilter by bid status.
keywordstringFree-text search against bid name and organization name.
bid_typestringFilter by bid type (e.g. Public, Prequalification, Invitational).
publish_tostringFilter bids published on or before this date, format MM/DD/YYYY. Omit to not filter by end date.
organizationstringComma-separated list of organization IDs to filter results. Organization IDs can be discovered from the platform's organization dropdown (e.g. 5231 for Metro Vancouver, 12416 for City of Abbotsford).
publish_fromstringFilter bids published on or after this date, format MM/DD/YYYY. Omit to not filter by start date.
Response
{
  "type": "object",
  "fields": {
    "bids": "array of bid opportunity objects with bid_name, status, published_date, closing_date, organization, document_fees, bid_type, detail_url",
    "page": "current page number",
    "total": "total number of matching bids across all pages",
    "total_pages": "total number of pages available"
  },
  "sample": {
    "data": {
      "bids": [
        {
          "status": "Open",
          "bid_name": "25-767 - Hydrothermal Liquefaction Products Management – Research and Development",
          "bid_type": "Public",
          "detail_url": "https://metrovancouver.bidsandtenders.ca/Module/Tenders/en/Tender/Detail/0db78897-6f32-4316-88fb-d16685a0de71",
          "closing_date": "2028-12-31T22:00:00.0000000Z",
          "organization": "Metro Vancouver",
          "document_fees": "No",
          "published_date": "2025-12-23T00:30:00.0000000Z"
        }
      ],
      "page": 1,
      "total": 115,
      "total_pages": 3
    },
    "status": "success"
  }
}

About the Bidsandtenders API

What the API Returns

The search_bids endpoint returns paginated bid opportunity records from the bids&tenders eProcurement platform. Each result object includes bid_name, status, published_date, closing_date, organization, document_fees, bid_type, and a detail URL. The response envelope also provides page, total, and total_pages so you can walk through result sets that exceed the 50-record-per-page limit.

Filtering and Pagination

You can narrow results using several independent parameters. The keyword param matches against bid name and organization name. status filters by lifecycle stage (e.g. open, closed). bid_type accepts values like Public, Prequalification, or Invitational. Date range filtering uses publish_from and publish_to in MM/DD/YYYY format to bound by publication date. To scope results to a specific province or state, pass a comma-separated list of organization IDs to the organization parameter — organization IDs correspond to the issuing entities registered on the platform. Results are ordered by closing date descending.

Coverage and Scope

The platform covers procurement activity across Canadian provinces and US jurisdictions. Because organization IDs are the mechanism for regional filtering, knowing the IDs for the organizations in your target region (e.g. British Columbia municipalities) is necessary for precise geographic queries. Without an organization filter, results span the full platform footprint.

Reliability & maintenanceVerified

The Bidsandtenders API is a managed, monitored endpoint for bidsandtenders.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bidsandtenders.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 bidsandtenders.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
3d ago
Latest check
1/1 endpoint 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 Public bid opportunities relevant to a specific trade or service keyword before their closing date
  • Track historical bid activity for a set of government organizations using organization ID filters
  • Build a tender alert system that queries search_bids daily and flags records where closing_date is within 7 days
  • Aggregate document_fees across open Prequalification bids to estimate participation costs for a procurement pipeline
  • Filter bids by bid_type to separate Invitational from Public opportunities for vendor eligibility analysis
  • Enumerate all bids from a specific municipality by passing its organization ID and paginating through results
  • Compare published_date to closing_date to identify bids with unusually short response windows
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 bids&tenders have an official developer API?+
bids&tenders does not publish a public developer API. Their platform is a managed eProcurement SaaS product; data access for buyers and suppliers is through their web portal rather than a documented API surface.
How does geographic filtering work in `search_bids`?+
There is no dedicated province or state parameter. Regional filtering is done by passing a comma-separated list of organization IDs to the organization parameter. Each organization ID corresponds to a registered issuing entity on the platform — for example, specific municipalities or school districts in a given province. You need to know the relevant organization IDs for the region you want to cover.
Does the API return the full bid document or specification attachments?+
No. Each bid record includes a detail URL pointing to the bid's page on the platform, but the API does not return document attachments or specification files directly. You can fork this API on Parse and revise it to add an endpoint that fetches document metadata or attachment links from the detail page.
Are there limitations on how far back historical bids go?+
The endpoint returns both open and historical bids as indexed on the platform, but the depth of historical data depends on what bids&tenders retains in their system. Very old records may not appear. The publish_from and publish_to date filters let you bound queries to a specific window, which is useful for systematic historical pulls.
Can I retrieve bids from US states specifically, separate from Canadian provinces?+
The API does not currently include a country or state-level filter parameter. Coverage spans both Canada and the USA, but isolating US-only results requires knowing the organization IDs of US-based issuing entities on the platform. You can fork this API on Parse and revise it to add a dedicated country or region filter parameter once you have mapped the relevant organization IDs.
Page content last updated . Spec covers 1 endpoint from bidsandtenders.com.
Related APIs in Government PublicSee all →
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.
opportunities.bidsandtenders.com API
Search and filter public bid opportunities by keywords, status, organization, publish date, and bid type, then retrieve comprehensive details including descriptions, key dates, meetings, and related documents for any listing. Access a complete view of available tender opportunities with sorting and pagination to easily find the bids most relevant to your business.
bidsandtenders.ca API
Access data from bidsandtenders.ca.
civicinfo.bc.ca API
Search open bid opportunities and tenders from BC municipalities, with details including title, closing date, organization, category, and location.
burlington.ca API
Access data from burlington.ca.
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.
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.
evergabe-online.de API
Search and retrieve public tender opportunities from Germany's e-Vergabe platform by keywords, contract types, CPV codes, and publication dates. Access detailed tender information and discover the latest procurement opportunities across construction and other sectors.
Bids & Tenders API – Canadian Procurement Data · Parse