BidNet Direct Scraper - US Government Bids avatar

BidNet Direct Scraper - US Government Bids

Pricing

from $4.00 / 1,000 tender notices

Go to Apify Store
BidNet Direct Scraper - US Government Bids

BidNet Direct Scraper - US Government Bids

Collect public BidNet Direct government bids with keyword, state, category and publication filters. Export unique notices with listing dates and optional public AI overviews and precise deadlines.

Pricing

from $4.00 / 1,000 tender notices

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Security

Limited permissions

Share

BidNet Direct Scraper

BidNet Direct Scraper collects public US government bid notices for sales teams, contractors and procurement researchers. Search open or closed opportunities by keyword, state, category and publication window, then export structured records for qualification and monitoring.

Use it to build a daily opportunity feed, find projects in a particular service area, or track upcoming closing dates. Each record keeps the source notice ID and a public BidNet URL so your team can review the original opportunity. The actor collects publicly visible information. Buyer names, solicitation numbers, full descriptions, contacts and documents that require registration are returned as null or are unavailable; they are never inferred from a title.

BidNet Direct Scraper input

No input field is required. The default search returns up to 100 of the newest open bids. Set max_items to control the maximum number of unique notices across the complete run. Use include_details when your workflow needs public AI overviews or exact closing timestamps.

keywords accepts a list of phrases. Multiple phrases are combined using BidNet's OR search. A phrase containing spaces remains a phrase, and the combined search text cannot exceed 200 characters. The aliases keyword and query accept comma-separated text. Provide one keyword field per run.

states accepts state names, USPS abbreviations or BidNet location identifiers. Multiple locations are combined with OR. Territories such as Puerto Rico and Guam are supported. locations is an alias for this field. categories accepts the public NAICS sector names or corresponding BidNet identifiers, including Construction, Manufacturing and Information. Filters apply on the source website; a keyword can match information beyond the visible notice title.

agency_type selects all agencies, member agencies, state and local agencies, or federal agencies. status selects open or closed notices. Awarded notices are not a supported list. published_within selects any publication date, the past 24 hours, or the past week. published_after accepts an inclusive calendar date in YYYY-MM-DD format and requires publication date descending order.

Sorting supports publication date, closing date, title and state in either direction. For saved searches, start_urls accepts direct public BidNet listing URLs, including state and purchasing group listings. Direct URLs replace search filters and cannot be combined with them. startUrls and maxItems are supported aliases. A continuation cursor is handled automatically during an Apify run.

The checked examples in this product come from actual BidNet responses. One source URL used during validation was:

{"start_urls":["https://www.bidnetdirect.com/public/solicitations/open"],"max_items":100}

Output and available fields

The dataset contains one row per unique tender notice. Core fields include notice_id, title, url, country, status, stage, portal, source, fetched_at and a consecutive position. A keyword search also records the query that was sent. IDs remain text, preserving leading zeroes.

Location fields include the displayed state name and its USPS code. Territories retain their own country code. A location of Not Stated keeps a null state code. agency_type, time_remaining and purchasing_group describe the public listing where available; some state and group listings do not display all these fields.

Listing dates appear as publication_date and closing_date, using YYYY-MM-DD. They contain only what the listing provides. The published_at and deadline fields contain exact timestamps with the source time zone offset only when a detail page supplies them. They remain null when no precise time is available. The actor does not manufacture midnight timestamps from calendar dates.

With include_details, the actor opens each delivered notice and adds a public ai_overview, exact dates and time zone abbreviations when present. The overview is generated by the source and is kept separate from the unavailable full description. details_fetched indicates that the detail page was successfully retrieved and parsed, even if the page has no AI overview. Some notices never provide one.

Example output

One real record from a run with include_details enabled (the exact deadline comes from the notice's public detail page):

{
"source": "bidnet-direct-bids",
"fetched_at": "2026-11-01T21:52:47.378Z",
"notice_id": "0000441676",
"listing_id": "9912376401",
"url": "https://www.bidnetdirect.com/north-carolina/solicitations/open-bids/Evaluation-and-Space-Planning-for-Durham-County-s-Library-Facilities/0000441676",
"title": "Evaluation and Space Planning for Durham County's Library Facilities",
"state": "North Carolina",
"state_code": "NC",
"country": "US",
"publication_date": "2026-11-01",
"closing_date": "2026-11-30",
"published_at": null,
"deadline": "2026-11-30T14:00:00-05:00",
"published_time_zone": null,
"deadline_time_zone": "EST",
"buyer": null,
"buyer_name": null,
"reference_number": null,
"description": null,
"time_remaining": null,
"agency_type": "Member Agency Bids",
"purchasing_group": null,
"ai_overview": null,
"details_fetched": true,
"portal": "bidnet",
"status": "open",
"stage": "tender",
"position": 1
}

Without include_details, the same record has deadline, deadline_time_zone and ai_overview set to null and details_fetched set to false. Only closing_date carries the calendar date from the listing.

Use cases for a BidNet Direct Scraper

  • Daily bid feed for sales teams. Schedule a run with published_within set to the past 24 hours and push new notices to your CRM or a Slack channel.
  • Territory monitoring. Track one or more states, or a single NAICS sector such as Construction, and see which notices close in the next weeks.
  • Market sizing for B2G vendors. Count open notices per state, agency type and category to decide where to focus a bid team.
  • Lead research for consultants. Use the public notice URL and the source's AI overview to qualify an opportunity before anyone logs in to BidNet.

How this BidNet Direct Scraper compares

Other BidNet scrapers exist on the Apify Store. This one is built around what the public site actually shows:

  • Honest fields. Buyer name and solicitation number are only visible to registered BidNet members, so they are returned as null instead of being guessed from titles.
  • Paid details only on success. The detail event is charged only when the detail page was retrieved and parsed.
  • Unique notices. Rows are de-duplicated on the notice ID, including across the source's 10,000-result cap per search.
  • Direct listing URLs. Saved state and purchasing-group searches can be supplied as start_urls.
  • Free plan. Free accounts can test the output with up to ten notices per run.

Pricing and delivered results

The actor uses separate result and detail events. A tender event counts each delivered notice once. A tender detail event counts a delivered notice only when its detail page was successfully retrieved and parsed. Failed detail requests do not incur a detail event. There is no run-start event in this product's charge configuration, and a search returning no results has no result or detail charges. See the actor's Pricing tab for the active event prices.

Accounts on the free Apify plan receive at most ten notices per run. Detail enrichment remains available within that delivery limit. This is a volume limit, not a promise that billed dataset rows are free. Choose a smaller max_items when testing a saved search, and enable details only when your downstream workflow uses them.

Pagination, limits and incomplete results

BidNet shows 25 rows per listing page and exposes at most 10,000 results for a single search. A reported total can be larger than the accessible result set. The actor records this limitation in warnings. Split large collections by state or agency type to cover more of the source without repeating the final page.

Long runs continue through successive requests automatically. Source IDs prevent the same notice being delivered twice. If a detail page is unavailable, the listing record is retained, its detail flag remains false, and a warning explains the missing enrichment. The run output also includes result totals, counters and an incomplete-results flag. Review these before treating a collection as exhaustive. New publications can change page order while a run is in progress.

FAQ

Does this provide buyer names and solicitation numbers?

Those fields are locked for anonymous visitors and remain null. The actor does not log in to vendor accounts or derive buyer identities from notice titles or purchasing group names. Follow the public notice URL to review registration requirements on BidNet.

Why is an exact deadline missing when a closing date is present?

The listing provides a calendar date. An exact deadline requires a detail page with a time and recognized time zone. Enable details to collect available precise timestamps. A missing source time remains null, while the original calendar date stays available separately.

A single BidNet search is limited to 10,000 accessible records, even if its reported total is higher. Use multiple state searches and monitor the warnings. Public BidNet coverage is not a guarantee of every procurement opportunity published by every US agency.

What happens when my search returns nothing?

The actor records a not-found outcome and delivers no dataset rows. No tender or detail events are charged. Broaden the keywords or remove a restrictive location, category or publication filter before trying again.