State Bids Scraper: COMMBUYS, BidBuy, NJSTART, OregonBuys
Pricing
from $2.00 / 1,000 bids
State Bids Scraper: COMMBUYS, BidBuy, NJSTART, OregonBuys
State government bids & RFP scraper: open bids from Illinois BidBuy, COMMBUYS, NJSTART, OregonBuys and NevadaEPro with deadline, buyer contact, NIGP codes. No login. Export data, run via API, schedule and monitor runs, or integrate with other tools.
Pricing
from $2.00 / 1,000 bids
Rating
0.0
(0)
Developer
Mohamed Bahaa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
The only Apify Store Actor for Illinois BidBuy and NevadaEPro (Store search on Oct 19, 2026), plus COMMBUYS, NJSTART and OregonBuys in the same run. $2 per 1,000 bids, details included. Filter by NIGP / UNSPSC code and get only new bids on a schedule.

| What you can extract | Features & integrations |
|---|---|
| 📄 Bid basics: title, bid number, status, posted date | 5 state portals: COMMBUYS, BidBuy, NJSTART, OregonBuys, NevadaEPro |
| ⏰ Deadline: due date and time | Filters: keywords, commodity codes, due within, posted within |
| 🏛️ Agency & buyer: the organization and buyer name | Only new bids: plus new-amendment alerts |
| 📞 Contact email & phone: as published by the state portal | Scheduling: run it hourly, daily or weekly with Apify schedules |
| 🏷️ NIGP / UNSPSC codes: category codes per bid | Export anywhere: JSON, CSV, Excel, XML or HTML from the dataset |
| 📦 Line items: item number, code and description | API & SDKs: Apify REST API plus JavaScript and Python clients |
| 📎 Attachments & amendments: links and amendment history | Webhooks & integrations: Zapier, Make, Slack, Google Drive and more |
| 📅 Contract dates: contract begin and end dates | AI agents (MCP): call it from Claude or other agents via Apify's MCP server |
Free sample: 53 open Massachusetts government bids (+ a few CT/NY) for HVAC, roofing, janitorial, IT and landscaping, most of them from COMMBUYS via this Actor. Run it yourself for your own states and get new bids on a schedule.
Try it free in 1 click: open this ready-made example and press Start. Apify's free plan includes $5 of usage every month, no credit card needed. The Input example below returned 10 records and costs about $0.02 at list price.
What does State Bids Scraper do?
- State government bids scraper for five official state e-procurement portals: Illinois BidBuy, Massachusetts COMMBUYS (state agencies plus cities, towns, schools and authorities), New Jersey NJSTART, OregonBuys and Nevada NevadaEPro.
- Pulls every open bid, RFP, RFQ and invitation for bid with its deadline, agency, buyer and published contact email and phone.
- Adds NIGP / UNSPSC category codes, line items, attachment links, amendments and contract dates from each bid's detail page.
- Bid alerts: only-new mode returns just the bids you have not received yet, plus optional new-amendment alerts.
- No login, no browser, no proxies. About 1,300 open bids across the five portals on Oct 18, 2026 (COMMBUYS 894, BidBuy 194, OregonBuys 170, NevadaEPro 38, NJSTART 22).
- An alternative to a paid bid-subscription service for these five public state portals: you pay only per bid delivered, and there is no monthly plan.
What makes it different
- Illinois BidBuy and NevadaEPro are not covered by any other Store Actor (Store search on Oct 19, 2026). The one other multi-state Actor covering COMMBUYS, NJSTART and OregonBuys charges $15 per 1,000 bids; this one is $2 per 1,000, details included.
- Filter by NIGP / UNSPSC commodity code, the way vendors register for bids.
920keeps every NIGP 920 IT-services bid,958-85one class. Each bid also lists its line items with code and description. - Bid alert feed: only new bids, plus optional new-amendment alerts. With
onlyNewon, each run returns only bids you have not received yet. WithalertOnNewAmendments, a bid you already have comes back once withchangeType: "new_amendment"when the state posts an amendment. - Official state sources, polite by design. The open-bid list comes from each portal's own CSV export (one request per state). Detail pages are paced under 90 requests per 5 minutes.
Output fields at a glance
📄 title: what is being bought | 🔢 bidNumber: solicitation number | 🗺️ state / portal: where it was posted |
🏛️ organization: the agency | 👤 buyer: purchaser name | 📞 infoContact: contact name, email, phone as published |
⏰ dueAt: deadline (UTC) | 🕑 dueAtLocal: deadline as shown on the portal | ⏳ daysUntilDue: days left |
📅 postedAt: when it was made available | 🏷️ categoryCodes: NIGP / UNSPSC codes | 📦 items: line items with code and description |
📎 attachments: file names and links | 📝 amendments: number, date and note | 🧾 contractBeginDate / contractEndDate: contract dates |
📍 shipToAddress / billToAddress: agency addresses | 🧩 otherFields: state-specific fields | 🔔 changeType: new / new_amendment in only-new mode |
How to use State Bids Scraper in 5 steps
- Create a free Apify account.
- Open State Bids Scraper.
- Add your input: pick states (or leave empty for all five), then keywords, agency names or NIGP codes to keep the list focused.
- Click Start. Results appear in the Bids table.
- Download the results as JSON, CSV or Excel, or pull them through the API. For alerts, turn on Only new bids and add a daily schedule.
Input
This input was run on the Apify platform on Oct 19, 2026 (256 MB): 10 Nevada bids with full details in about 8 seconds.
{ "states": ["NV"], "maxBidsPerState": 10 }
| Field | What it does |
|---|---|
states | IL, MA, NJ, OR, NV. Empty = all five. |
keywords | Keep bids whose title, bid number or alternate ID contains any of these (word start, case-insensitive). |
searchFullText | Also match keywords in the bulletin description and line items (reads every bid's detail page). |
excludeKeywords | Drop bids whose title contains any of these, e.g. farm lease, change order notice. |
organizationContains | Keep only these agencies, e.g. transportation, city of. |
categoryCodes | NIGP / UNSPSC code prefixes, e.g. 920, 208-11. COMMBUYS uses its own codes such as 81-11. |
dueWithinDays / postedWithinDays | Deadline in the next N days / posted in the last N days. |
includeDetails | Detail page per bid (on by default). Same price either way. |
onlyNew, alertOnNewAmendments, stateKey | Bid alert mode and its memory name. |
bidUrls | Single bid links from any of the five portals. |
maxBidsPerState | Soonest deadline first. |
More tested examples
All three ran on the Apify platform on Oct 18–19, 2026.
1. Software, cloud, network and data bids in Illinois and Massachusetts (the prefilled input)
{ "states": ["IL", "MA"], "keywords": ["software", "cloud", "network", "data"] }
1,088 open bids checked, 17 matched (7 Illinois, 10 Massachusetts), each with details, in 39 s. Cost: 17 bids = $0.034.
2. IT bids by NIGP code in Illinois, New Jersey and Nevada
{ "states": ["IL", "NJ", "NV"], "categoryCodes": ["920", "208", "209"] }
254 open bids checked (every detail page read, paced politely), 21 IT bids matched: 11 Illinois (e.g. ERP Production Support RFP, CMMS RFP), 6 New Jersey (e.g. NJ Labor Tax Integrated Solution), 4 Nevada (e.g. Customer Portal & AMI Technology). Two Illinois bids needed a vendor login and were reported in one DETAILS_UNAVAILABLE record. 10.6 minutes, 63 MB. Cost: 22 records = $0.044.
3. Daily alert for new Massachusetts construction bids
{ "states": ["MA"], "keywords": ["construction", "roof", "paving", "hvac", "renovation"], "onlyNew": true, "alertOnNewAmendments": true }
First run: 52 bids. Second run right after: 0 bids (nothing new, nothing charged but the start). When a remembered bid gained an amendment, the next run returned just that bid with changeType: "new_amendment".
Ready-made example Tasks: IT and software bids from Illinois, New Jersey and Nevada, Daily alert for new Massachusetts construction bids, Oregon and Nevada state bids due in the next 14 days.
Output
A real record from the run above (NevadaEPro, Oct 19, 2026), trimmed: some fields and two of three attachments left out.
{"type": "bid","state": "NV","portal": "NevadaEPro","bidNumber": "80DOT-S4026","title": "3M Reflectors","organization": "Department of Transportation","buyer": "Jennifer Thomas","dueAt": "2026-10-23T21:00:00.000Z","dueAtLocal": "10/23/2026 2:00 PM","timezone": "America/Los_Angeles","daysUntilDue": 3,"portalStatus": "Sent","url": "https://nevadaepro.com/bso/external/bidDetail.sda?docId=80DOT-S4026&external=true&parentUrl=close","postedAtLocal": "09/23/2026 02:30:27 PM","department": "800 - Department of Transportation","bidType": "OPEN","purchaseMethod": "Open Market","bulletinDescription": "The State of Nevada Purchasing Division on behalf of the Department of Transportation is looking for vendors who can provide pricing for 3M Reflectors. Please see the items tab for more information.","infoContact": { "name": "Jennifer Thomas", "email": "jennthomas@admin.nv.gov", "phone": null, "raw": "Jennifer Thomas - jennthomas@admin.nv.gov" },"categoryCodes": ["550-08"],"items": [{ "itemNumber": 1, "code": "550-08", "description": "3M Reflectors RPM-290-WR Two Way White","nigpCodes": [{ "code": "550-08", "description": "Buttons, Delineators, Reflectors, etc., Reflectorized" }], "additionalCodes": [] }],"attachmentCount": 3,"attachments": [{ "name": "Quote Instructions", "url": "https://nevadaepro.com/bso/external/bidDetail.sda?docId=80DOT-S4026&downloadFileNbr=19837&external=true&fn=Quote%20Instructions&mode=download&parentUrl=close" }],"amendmentCount": 1,"otherFields": {"Procurement type": "Goods (commodities, supplies, materials, or equipment)","One-time or on-going purchase": "One-Time"},"changeType": null}
| Field | Description |
|---|---|
state, portal | Two-letter state and portal name |
bidNumber, alternateId, blanketNumber | Solicitation number and the state's other IDs |
title, organization, department, location | What is being bought, and by whom |
buyer, infoContact | Purchaser name; contact name, email and phone as published by the state |
dueAt, dueAtLocal, timezone, daysUntilDue | Bid opening (deadline) in UTC and as shown on the portal |
postedAt | When the bid was made available |
typeCode, bidType, purchaseMethod, informalBid | Solicitation type as the state labels it |
preBidConference, bulletinDescription | Pre-bid meeting notes and summary |
categoryCodes, items[] | NIGP / UNSPSC codes and each line item with its code and description |
attachments[], attachmentCount | File names with download links on the state portal |
amendments[], amendmentCount, latestAmendmentAt | Amendment number, date and note |
contractBeginDate, contractEndDate, requiredDate | Contract dates where given |
shipToAddress, billToAddress | Agency addresses |
otherFields | State-specific fields, e.g. NJ small-business set-aside and bond requirements, MA SBPP eligibility, NV contract type |
changeType, matchedKeywords | new / new_amendment in only-new mode; which keywords matched |
url | Public bid page |
A RUN_SUMMARY record in the key-value store has counts per state.
How can I use the data?
- Win more state contracts: one daily list of open bids in your NIGP codes instead of five portal logins.
- Reach the buyer early: the published contact email and phone are in each record.
- Never miss an amendment: only-new mode with amendment alerts re-sends a bid once when the state changes it.
- Bid-alert services and govtech sales teams: route or resell opportunities by state, agency or commodity code.
- Research and journalism: track what state agencies are buying and when.
More Actors from the same developer
| Actor | What it does |
|---|---|
| Telegram Channel Scraper | Public Telegram channel posts with a keyword monitor and only-new mode |
| Substack Scraper | Substack newsletters to clean Markdown, plus podcast transcripts |
| Greenhouse & Workday Jobs Scraper | Jobs from 8 career-site platforms with visa sponsorship and clearance flags |
| App Store & Google Play Reviews Scraper | Reviews from both stores in one run, only new reviews on schedules |
| Website to Markdown Crawler | Any website to Markdown for RAG, with incremental sync and llms.txt |
| Government Bids & RFP Scraper | Open bids and RFPs from 500+ US city and county portals on OpenGov |
| PERM Green Card Sponsors | Companies that sponsor green cards, from official DOL PERM data |
Error items
Errors are pushed to the dataset as their own records, so you always see what went wrong. Each one has type: "error", input (the state or URL it is about), error (the code), errorMessage and scrapedAt; per-state errors also carry state and portal.
error | When it happens |
|---|---|
UNSUPPORTED_STATE | A state code other than IL, MA, NJ, OR, NV. If no supported state or bid link is left, the run ends right away with a clear status message (still Succeeded) |
INVALID_INPUT | A bid link that is not a URL, or not from one of the five portals with a docId |
BID_NOT_FOUND | A bid link whose bid was not found or is not public |
PORTAL_UNAVAILABLE | A state's open-bid list could not be loaded (usually temporary) |
FETCH_FAILED | A bid link could not be loaded, or an unexpected error for a state |
DETAILS_UNAVAILABLE | Some bids could not be checked against a code / posted-date / full-text filter because their detail page did not load; has uncheckedBids |
RATE_LIMITED | Same as above, but because the portal rate limited detail pages; has uncheckedBids |
When a bid's detail page fails and no detail-only filter is on, the bid still comes back from the list with a detailsError field instead of an error record. Error records are charged like bids.
Limitations
- Open bids only. Closed, awarded and historical bids are not collected.
- Five states. Georgia, Maryland, Virginia and Texas run on other systems and are not included.
- Detail-based filters are slower.
categoryCodes,postedWithinDaysandsearchFullTextread every candidate bid's detail page, paced at 90 per 5 minutes, so a full COMMBUYS code scan (about 900 bids) takes around 50 minutes. Keyword, agency and deadline filters run on the list first and stay fast. - Some detail pages need a vendor login (HTTP 401). Those bids still come back from the list with
detailsError, or are counted in aDETAILS_UNAVAILABLErecord when a detail-only filter is on. - Contact emails appear only when the state publishes them. COMMBUYS often leaves the contact field empty; the buyer's name is always there.
- Attachments are listed with links; files are not downloaded.
- Not affiliated with any state or with Periscope Holdings. Data is public solicitation information from the state portals.
FAQ
How much does it cost?
Pay per event: $2.00 per 1,000 bids plus a $0.00005 start fee. Error records count as results. An only-new run with nothing new costs only the start fee. Platform usage is small: 256 MB by default, test runs used under 80 MB. See the Pricing tab.
Does it work with Make, Zapier, Google Sheets or Slack?
Yes, through Apify integrations: Make, Zapier, Google Sheets, Slack and webhooks. A common setup is a daily schedule with Only new bids on, sending new bids to a sheet or a Slack channel.
Can I run it through the API?
Yes. Node.js with apify-client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('chimey_forearm/state-bids-scraper').call({ states: ['IL', 'MA'], keywords: ['software'] });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python with apify-client:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("chimey_forearm/state-bids-scraper").call(run_input={"states": ["IL", "MA"], "keywords": ["software"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Can AI agents use it (MCP)?
Yes. Through the Apify MCP server, Claude and other MCP-capable agents can call this Actor and read its results.
Is it legal to scrape state bids?
The Actor collects public solicitation information that the state portals publish for vendors, without logging in. Contact names, emails and phone numbers are returned only as the state published them. Requests are paced on purpose: the open-bid list is one CSV export per state, and the whole run stays under 90 requests per 5 minutes. Contact details are personal data under laws such as GDPR, so use them only for legitimate purposes like responding to the solicitation.
Found a bug or need another state?
Open an issue on the Actor's Issues tab with your input and what you expected.
If it saved you time, a quick review on the Store helps a solo developer keep improving it. Bugs or ideas? Open an Issue.