Bonfire Bids Scraper - Open & Awarded Public Procurement
Pricing
from $9.00 / 1,000 opportunity returneds
Bonfire Bids Scraper - Open & Awarded Public Procurement
Open bids, RFPs and tenders from Bonfire public procurement portals of US and Canadian agencies: one row per opportunity with agency, reference, status (open, reopened, awarded, cancelled), closing time in UTC and local time, days left. Filter by keyword, type, country. No login.
Pricing
from $9.00 / 1,000 opportunity returneds
Rating
0.0
(0)
Developer
NeverEmpty
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Get every open bid, RFP, RFQ and tender from Bonfire (Euna Procurement) public portals in one table: US, Canadian and Caribbean cities, counties, school districts, universities, transit agencies, utilities and more. Each row is one opportunity with the agency, reference number, title, a clear status (open, reopened, evaluating, awarded, cancelled), the closing time in UTC and in the agency's own time zone, and how many days are left.
Type an agency name like dallascityhall, paste a portal link, or pick agency types and countries from the built-in directory of verified Bonfire portals. No login, no API key, no browser.
What you get
- One row per opportunity across as many agency portals as you choose, with duplicates removed.
- A status you can filter on. Bonfire's own portal shows only "Open", "Closed" or "Awarded". This Actor separates
open,reopened,evaluating,closed,awardedandcancelled, and keeps Bonfire's raw status codes next to it. - Closing time three ways:
closesAt(UTC),closesAtLocal(the agency's local time with its UTC offset, daylight saving handled) anddaysLeft(decimal days, for open bids). - Reopened bids with their history:
previousClosesAtshows the original closing date when an agency reopens a bid with a new deadline. - Past and awarded bids when you add
pastto the lists, newest first, with a date filter (closedOnOrAfter) so you get last month's awards instead of ten years of history. - Agency details on every row: name, type (city, county, k12, higher-ed, transit, utility, housing, airport, port, healthcare, workforce, state, other), country and time zone.
- Whole-word keyword filters:
ITmatches "IT Services" but not "Unit Pricing". End a word with*to match its beginning (pav*finds paving and pavement). Add words to exclude. - Clear reason rows when something is off. A misspelled agency, a list that could not be read, or a search with no matches each come back as a free row that says why, instead of an empty dataset.
Who uses it
- Bid hunters and sales teams who track public tenders in their category every morning.
- Government contractors watching specific cities, counties or universities for new RFPs.
- Market researchers studying who buys what and when: award rates, cancellations, seasonal timing.
- Lead-gen and alert services that feed public procurement opportunities into a CRM, Slack or email digest.
How to use it
- Put agency portals into Agencies: the part before
.bonfirehub.com(for exampledallascityhall), the full host (athabascau.bonfirehub.ca) or a copied portal link. - Or leave Agencies empty and choose Agency types and/or Countries to read every matching portal from the directory.
- Choose the lists: open (default) and/or past (closed, evaluating, awarded, cancelled and reopened).
- Optionally add keywords, words to exclude, statuses, "closing within N days" or "closed on or after".
- Run, then download the table as CSV, Excel or JSON, or read it through the API.
Input fields
| Field | What it does |
|---|---|
agencies | Agency portals to read: dallascityhall, athabascau.bonfirehub.ca or a portal link. |
agencyTypes | Adds every directory portal of these types (city, county, k12, higher-ed, transit, utility, ...). |
countries | Adds every directory portal in these countries (US, CA, BS, BB, KY, HT, SX). |
include | Which lists to read: open (default) and/or past. |
statuses | Keep only these bid statuses: open, reopened, evaluating, closed, awarded, cancelled. |
keywords | Keep bids whose title or reference number contains any of these whole words (pav* matches the beginning). |
excludeKeywords | Drop bids that contain any of these whole words. |
closingWithinDays | Keep bids closing between now and this many days from now. |
closedOnOrAfter | For the past list: keep bids that closed on or after this date (YYYY-MM-DD). |
maxResults | The most opportunity rows returned (your cost ceiling). Default 1000. |
Example input
{"agencies": ["dallascityhall"],"include": ["open"],"maxResults": 100}
Every open bid at the City of Dallas, soonest deadline first.
{"countries": ["CA"],"include": ["open"],"keywords": ["software", "IT", "technology", "cloud*", "data"],"closingWithinDays": 30}
IT, software and cloud bids from every Canadian portal in the directory (school boards, counties, universities, airports, utilities) that close within 30 days. Add "agencyTypes": ["higher-ed"] to keep only universities and colleges.
{"agencies": ["dallascityhall"],"include": ["past"],"statuses": ["awarded"],"closedOnOrAfter": "2026-09-01"}
Bids the City of Dallas has publicly awarded since September 1.
Output example
{"status": "ok","agency": "dallascityhall","agencyName": "City of Dallas","agencyType": "city","country": "US","agencyTimezone": "America/Chicago","opportunityId": "246143","referenceNumber": "BYZ26-00030828","title": "Temporary Stagehand and Tech Labor","bidStatus": "reopened","closesAt": "2026-10-22T18:00:00.000Z","closesAtLocal": "2026-10-22T13:00:00-05:00","daysLeft": 1.3,"previousClosesAt": "2026-09-11T18:00:00.000Z","publiclyAwarded": false,"departmentId": "1013","departmentName": null,"listedAs": "past","projectStatusCode": 6,"projectSubStatusCode": 1,"url": "https://dallascityhall.bonfirehub.com/opportunities/246143","portalUrl": "https://dallascityhall.bonfirehub.com/portal/?tab=pastOpportunities","checkedAt": "2026-10-21T12:00:00.000Z"}
Fields
| Field | Meaning |
|---|---|
status | ok for an opportunity row. Other values are free reason rows (below). |
agency, agencyName, agencyType, country, agencyTimezone | The agency portal the bid came from. country is an ISO code (US, CA, BS, ...) or null when it cannot be told from the portal (international bodies). |
opportunityId, referenceNumber, title | Bonfire's project ID, the agency's own bid number (spaces trimmed) and the title. |
bidStatus | open, reopened, evaluating, closed, awarded or cancelled. |
closesAt, closesAtLocal, daysLeft | Closing time in UTC, in the agency's time zone, and days left (open and reopened bids only, otherwise null). |
previousClosesAt | The earlier closing date of a reopened bid, otherwise null. |
publiclyAwarded | true when the agency published the award, false when not, null on the open list (Bonfire does not say there). |
departmentId, departmentName | The agency's department ID, and its name when the portal publishes department names. |
listedAs | Which Bonfire list the row came from: open or past. |
projectStatusCode, projectSubStatusCode | Bonfire's raw codes, kept so you can check our status labels. |
url, portalUrl, checkedAt | Link to the opportunity page, link to the agency's portal tab, and when the row was read. |
Free reason rows
status | When |
|---|---|
bad-input | An input value could not be used. The message says which one and how to write it. |
unknown-agency | The agency name does not exist on Bonfire, or the address is not an agency portal. |
failed | A list could not be read (for example Bonfire asked us to slow down for too long). retryable: true means running again later should work. |
no-results | An agency has no opportunities on that list, or nothing matched your filters. |
incomplete | The run was close to its time limit and stopped early. The message says how many agencies were not read. |
Reason rows are never charged.
Speed
Bonfire slows down anyone who reads its lists too quickly, so the Actor waits about 3 seconds between agency lists and backs off when asked. One agency takes a few seconds; the whole directory takes roughly 15 to 30 minutes for the open lists. Past lists of large agencies (City of Dallas has over 5,000 past bids) come in one response and are filtered on our side.
FAQ
How do I scrape open bids from Bonfire portals?
Put the agency name (the part before .bonfirehub.com) into Agencies and run. You get one row per open opportunity with reference number, title, closing time in UTC and local time, and days left.
Can I get awarded and cancelled bids from Bonfire?
Yes. Add past to the lists. Rows then carry bidStatus awarded, cancelled, closed, evaluating or reopened, and you can filter with statuses and closedOnOrAfter.
Which agencies are covered?
Any public portal on bonfirehub.com or bonfirehub.ca: type its name or paste its link. The built-in directory lists the portals we have verified, and lets you pick them by type and country without knowing their names.
Can I monitor Bonfire for new bids every day?
Schedule the Actor daily with closingWithinDays or your keywords, and compare opportunityId with your previous run, or sort by closesAt.
Does it need a Bonfire account?
No. It reads the same public lists that anyone sees on an agency's portal without signing in.
Limitations
- The bid description, documents, addenda and Q&A sit on each opportunity page behind a browser check, so they are not included. Every row links to that page (
url). - Bonfire does not publish the agency's state or province on its portal, so there is no state filter. Choose agencies by name, type or country instead.
- The directory covers the Bonfire portals we found and verified. Portals missing from it still work when you type their name.
daysLeftandbidStatusare computed at the time of the run from Bonfire's closing time.
Thanks for using this Actor
We build these tools for people who run them every day, and we improve them from what users tell us.
- Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
- Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.
If this Actor saved you time, a short review helps other people find it.