Skip to content

Bonfire Procurement Scraper

Try for free

Export open government bids, RFPs, RFQs and tenders from Bonfire (Euna Procurement) agency portals across the US and Canada: title, reference number, solicitation type, deadline in UTC and local time, status, department and link. Add notices and addenda, past and awarded opportunities, and public contracts with the awarded vendor. No login needed.

🏛️ Bonfire Procurement Scraper

Export open government bids, RFPs, RFQs and tenders from Bonfire (Euna Procurement) agency portals across the US and Canada into a clean table: title, reference number, solicitation type, deadline in UTC and the agency's local time, status, department and link. Add public notices and addenda, past and awarded opportunities, and public contracts with the awarded vendor. No login needed, a two-agency run takes seconds, and you pay only for the results you keep.

✨ Why use Bonfire Procurement Scraper?

  • 🗺️ US and Canada in one place — a built-in list of 322 agency portals (cities, counties, school districts, universities, transit, airports, ports, utilities, housing and health bodies) on both bonfirehub.com and bonfirehub.ca, plus any other portal you type in.
  • ⚡ Fast — reads each portal's own public data feed, so a whole agency comes back in one request and all 322 catalog agencies are scanned in under a minute.
  • 🎯 Pick by state, province or agency type — "all transit agencies in Texas" or "every university in Ontario" is two clicks.
  • 📎 Never miss an addendum — optional notices and addenda per opportunity (extensions, revised scope, Q&A answers).
  • 🏆 Awards and contracts — past opportunities with closed, awarded and cancelled status, and public contracts with start and end dates and the awarded vendor's name and contact.
  • 💸 Pay only for what you keep — filtered-out opportunities and failed agencies are never charged.

🎯 Use cases

  • 🏗️ Bid hunting for contractors and suppliers — a daily feed of roofing, HVAC, IT, construction or consulting bids with deadlines.
  • 📈 Sales and lead generation — find agencies buying what you sell and the vendors who won similar contracts.
  • 🔁 Rebid watch — active contracts ending in the next months are tomorrow's solicitations.
  • 🧾 Bid consultants and aggregators — one normalized feed instead of hundreds of separate portals.
  • 📊 Market research — how much a region, sector or agency type buys, and from whom.

🚀 How to use

  1. Pick agencies in Agencies (or type any agency slug or paste a portal link), and/or add whole groups with States / provinces and Agency types. Leave all three empty to scan every catalog agency.
  2. Set Maximum results (0 = no limit).
  3. Optionally narrow with Keywords, Exclude keywords, Closing within (days) and Minimum days left.
  4. Choose what to collect: open opportunities, notices and addenda, past opportunities, public contracts.
  5. Click Start and download the results as JSON, CSV or Excel, or read them through the API. Schedule the run daily for a fresh bid feed.

📥 Input

FieldWhat it does
agencySlugsAgency portals: catalog picks, any slug such as dallascityhall, or links such as https://ubc.bonfirehub.ca/portal.
statesAdd every catalog agency in these US states or Canadian provinces (TX, CA, ON, BC, …).
agencyTypesAdd every catalog agency of these types: city, county, state-agency, k12, higher-ed, transit, airport, port, utility, housing, workforce, healthcare, other.
maxItemsResults to save in total (default 20; 0 = no limit). Opportunities come first, contracts use what is left.
keywords / excludeKeywordsWhole-word title match on opportunities and contracts, any case; roof* matches "Roofing". Exclude wins.
closingWithinDays / minDaysLeftKeep open opportunities whose deadline is at most / at least N days away.
includeActiveOpportunitiesOpen opportunities (default on).
includeNoticesAdd each open opportunity's notices and addenda.
includePastOpportunitiesAdd closed, awarded and cancelled opportunities.
includeContracts / contractStatusesAdd public contracts, optionally only active, pending, closed, terminated or term-expired ones.

Which agencies are scanned: your agencySlugs plus the catalog agencies matching states and agencyTypes (when only one of the two is set, the other does not restrict).

{
  "agencySlugs": ["dallascityhall", "harriscountytx"],
  "keywords": ["roof*", "hvac"],
  "closingWithinDays": 30,
  "includeNotices": true,
  "maxItems": 100
}

All transit agencies in Texas: {"states": ["TX"], "agencyTypes": ["transit"]}.

📤 Output

Each opportunity is one row:

{
  "recordType": "opportunity",
  "agency": "cityofvancouver",
  "agencyName": "City of Vancouver",
  "agencyRegion": "WA",
  "agencyType": "city",
  "projectId": "254789",
  "referenceId": "RFQ 48-26",
  "title": "Fourth Plain Blvd Mobility Improvements",
  "solicitationType": "RFQ",
  "closeDate": "2026-10-21T22:00:00.000Z",
  "closeDateLocal": "2026-10-21T15:00:00-07:00",
  "agencyTimezone": "America/Los_Angeles",
  "daysLeft": 0.2,
  "status": "open",
  "departmentId": "3777",
  "departmentName": null,
  "url": "https://cityofvancouver.bonfirehub.com/opportunities/254789",
  "scrapedAt": "2026-10-21T17:37:09.000Z",
  "notices": [
    {
      "threadId": "1563429",
      "subject": "Project Details Have Changed - RFQ 48-26 Fourth Plain Blvd Mobility Improvements",
      "content": "Addendum no 1 has been uploaded.  Responses are due next Wednesday, 10/21, by 3pm pst.",
      "dateCreated": "2026-10-14T17:46:51.000Z"
    }
  ],
  "noticesFetched": true,
  "noticeCount": 1
}
FieldMeaning
title, referenceId, projectIdThe solicitation's title, the agency's own reference number and Bonfire's id.
solicitationTypeRFP, RFQ, ITB, IFB, CSP, RFI, … read from the title or the reference number; empty when neither names one.
closeDate / closeDateLocalThe deadline in UTC and in the agency's own time zone (agencyTimezone).
daysLeftDays until the deadline (open opportunities).
statusopen, or for past ones closed, awarded (award published) or cancelled.
agency, agencyName, agencyRegion, agencyTypeThe portal and, for catalog agencies, its state or province and type.
departmentId / departmentNameThe buying department (names only where the agency publishes them).
noticesNotices and addenda, oldest first (with Include notices).
urlThe opportunity page on the agency portal.

With Public contracts on, contracts are rows with recordType: "contract" and their own Contracts view:

{
  "recordType": "contract",
  "agency": "alleghenycounty",
  "agencyName": "Allegheny County, PA",
  "contractId": "142920",
  "name": "8788 - Clear Mattresses for ACJ - #49901",
  "status": "active",
  "isExtendable": true,
  "startDate": "2025-11-01T04:00:00.000Z",
  "endDate": "2026-10-31T04:00:00.000Z",
  "vendorName": "Example Supply Co.",
  "vendorContactName": "Jane Doe",
  "vendorEmail": "sales@example.com",
  "vendorPhone": "555-0100",
  "vendorCity": "Hudson",
  "url": "https://alleghenycounty.bonfirehub.com/publicContracts/142920"
}

💰 Pricing

Pay per result:

  • $4.00 per 1,000 opportunities or contracts ($0.004 each).
  • $10.00 per 1,000 open opportunities with notices and addenda ($0.01 each) when Include notices is on.

Example: 1,000 open opportunities ≈ $4.00; with notices ≈ $10.00. Platform usage (compute and proxy traffic) is billed on top and is small for this actor: our test runs at the default 512 MB used about $0.0003 for 20 results, $0.001 for 1,000 results and $0.014 for 1,000 results with notices. Filtered-out results and failed agencies are never charged. Set Maximum results or a maximum charge per run to cap your spend.

❓ FAQ

Is it legal? It reads only data the agencies publish openly on their public portals for transparency. Check your local rules for how you use personal data such as vendor contacts.

Do I need a Bonfire login or a proxy? No login. The default datacenter proxy works; if the portals refuse it, the run switches to US residential exits by itself.

Which agencies are covered? Any portal on bonfirehub.com or bonfirehub.ca. 322 are in the built-in list with their state or province and type; type any other slug or paste its link.

How many results can I get? Everything the portals publish: across the catalog that is about 1,700 open opportunities on a typical day, and more than 14,000 past opportunities plus thousands of public contracts.

Why is a field empty? Bonfire's public lists carry the title, reference, deadline, status and department only. solicitationType is empty when neither title nor reference names one, departmentName when the agency publishes no department names, and region/type for agencies outside the catalog.

Can I schedule it or use the API? Yes. Schedule a daily run for a bid feed, and read results through the API or send them on with integrations and webhooks.

⚠️ Limits

  • Bonfire's public lists have no description, category or estimated value; open the url for documents (downloading them needs a free vendor account, which this actor does not use).
  • Opportunity pages, bid documents and submissions are not scraped.
  • Notices are fetched for open opportunities only; closed ones get no new addenda.
  • Agency region and type come from the built-in catalog and are empty for other portals.
  • Agencies that do not publish an archive or contracts return none.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.