State Bids Scraper: COMMBUYS, BidBuy, NJSTART, OregonBuys avatar

State Bids Scraper: COMMBUYS, BidBuy, NJSTART, OregonBuys

Pricing

from $2.00 / 1,000 bids

Go to Apify Store
State Bids Scraper: COMMBUYS, BidBuy, NJSTART, OregonBuys

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

Mohamed Bahaa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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.

State Bids Scraper output table: NevadaEPro bids with agency, title, bid number, due date, buyer and contact email

What you can extractFeatures & integrations
📄 Bid basics: title, bid number, status, posted date5 state portals: COMMBUYS, BidBuy, NJSTART, OregonBuys, NevadaEPro
⏰ Deadline: due date and timeFilters: keywords, commodity codes, due within, posted within
🏛️ Agency & buyer: the organization and buyer nameOnly new bids: plus new-amendment alerts
📞 Contact email & phone: as published by the state portalScheduling: run it hourly, daily or weekly with Apify schedules
🏷️ NIGP / UNSPSC codes: category codes per bidExport anywhere: JSON, CSV, Excel, XML or HTML from the dataset
📦 Line items: item number, code and descriptionAPI & SDKs: Apify REST API plus JavaScript and Python clients
📎 Attachments & amendments: links and amendment historyWebhooks & integrations: Zapier, Make, Slack, Google Drive and more
📅 Contract dates: contract begin and end datesAI 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. 920 keeps every NIGP 920 IT-services bid, 958-85 one class. Each bid also lists its line items with code and description.
  • Bid alert feed: only new bids, plus optional new-amendment alerts. With onlyNew on, each run returns only bids you have not received yet. With alertOnNewAmendments, a bid you already have comes back once with changeType: "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

  1. Create a free Apify account.
  2. Open State Bids Scraper.
  3. Add your input: pick states (or leave empty for all five), then keywords, agency names or NIGP codes to keep the list focused.
  4. Click Start. Results appear in the Bids table.
  5. 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 }
FieldWhat it does
statesIL, MA, NJ, OR, NV. Empty = all five.
keywordsKeep bids whose title, bid number or alternate ID contains any of these (word start, case-insensitive).
searchFullTextAlso match keywords in the bulletin description and line items (reads every bid's detail page).
excludeKeywordsDrop bids whose title contains any of these, e.g. farm lease, change order notice.
organizationContainsKeep only these agencies, e.g. transportation, city of.
categoryCodesNIGP / UNSPSC code prefixes, e.g. 920, 208-11. COMMBUYS uses its own codes such as 81-11.
dueWithinDays / postedWithinDaysDeadline in the next N days / posted in the last N days.
includeDetailsDetail page per bid (on by default). Same price either way.
onlyNew, alertOnNewAmendments, stateKeyBid alert mode and its memory name.
bidUrlsSingle bid links from any of the five portals.
maxBidsPerStateSoonest 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
}
FieldDescription
state, portalTwo-letter state and portal name
bidNumber, alternateId, blanketNumberSolicitation number and the state's other IDs
title, organization, department, locationWhat is being bought, and by whom
buyer, infoContactPurchaser name; contact name, email and phone as published by the state
dueAt, dueAtLocal, timezone, daysUntilDueBid opening (deadline) in UTC and as shown on the portal
postedAtWhen the bid was made available
typeCode, bidType, purchaseMethod, informalBidSolicitation type as the state labels it
preBidConference, bulletinDescriptionPre-bid meeting notes and summary
categoryCodes, items[]NIGP / UNSPSC codes and each line item with its code and description
attachments[], attachmentCountFile names with download links on the state portal
amendments[], amendmentCount, latestAmendmentAtAmendment number, date and note
contractBeginDate, contractEndDate, requiredDateContract dates where given
shipToAddress, billToAddressAgency addresses
otherFieldsState-specific fields, e.g. NJ small-business set-aside and bond requirements, MA SBPP eligibility, NV contract type
changeType, matchedKeywordsnew / new_amendment in only-new mode; which keywords matched
urlPublic 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

ActorWhat it does
Telegram Channel ScraperPublic Telegram channel posts with a keyword monitor and only-new mode
Substack ScraperSubstack newsletters to clean Markdown, plus podcast transcripts
Greenhouse & Workday Jobs ScraperJobs from 8 career-site platforms with visa sponsorship and clearance flags
App Store & Google Play Reviews ScraperReviews from both stores in one run, only new reviews on schedules
Website to Markdown CrawlerAny website to Markdown for RAG, with incremental sync and llms.txt
Government Bids & RFP ScraperOpen bids and RFPs from 500+ US city and county portals on OpenGov
PERM Green Card SponsorsCompanies 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.

errorWhen it happens
UNSUPPORTED_STATEA 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_INPUTA bid link that is not a URL, or not from one of the five portals with a docId
BID_NOT_FOUNDA bid link whose bid was not found or is not public
PORTAL_UNAVAILABLEA state's open-bid list could not be loaded (usually temporary)
FETCH_FAILEDA bid link could not be loaded, or an unexpected error for a state
DETAILS_UNAVAILABLESome bids could not be checked against a code / posted-date / full-text filter because their detail page did not load; has uncheckedBids
RATE_LIMITEDSame 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, postedWithinDays and searchFullText read 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 a DETAILS_UNAVAILABLE record 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 ApifyClient
client = 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.

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.