New York State Contract Reporter Scraper
Pricing
Pay per event
New York State Contract Reporter Scraper
Extract NYSCR bid opportunities with CR numbers, agencies, due dates, categories, locations, and public notes for New York vendors.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Extract open procurement opportunities from the New York State Contract Reporter (NYSCR) into clean, structured Apify datasets.
Use this actor to monitor New York public-sector bid listings, proposal deadlines, agencies, categories, locations, and public notes without manually refreshing the NYSCR search page.
What does New York State Contract Reporter Scraper do?
New York State Contract Reporter Scraper turns NYSCR search result pages into structured procurement records.
It reads the public /Ads/Search results, paginates through matching opportunities, and saves one dataset item per contract reporter listing.
Each record includes the CR number, title, agency, division, issue date, due date, location, category, ad type, public note, source URL, and scrape timestamp.
The actor is HTTP based, so it is fast and lightweight compared with browser automation.
Who is it for?
š§¾ Government vendors use it to discover bid opportunities that match their services.
šļø Construction and engineering firms use it to watch categories such as environmental, architectural, surveying, and transportation.
š» IT and software vendors use it to monitor new technology-related opportunities.
š Capture managers use it to feed opportunity records into CRM, spreadsheets, and alerting workflows.
š° Bid-intelligence platforms use it to add New York State Contract Reporter coverage to tender databases.
Why use this actor?
Manual NYSCR monitoring is repetitive.
A proposal team may need to check new opportunities every day, copy titles into spreadsheets, and route due dates to sales teams.
This actor automates that first collection step and produces export-ready data.
It is especially useful when you need repeatable monitoring rather than one-off browsing.
What data can you extract?
| Field | Description |
|---|---|
crNumber | NYSCR Contract Reporter number |
title | Opportunity title |
agency | Issuing agency or public entity |
division | Agency division when shown |
issueDate | Published/issue date shown by NYSCR |
dueDate | Response due date shown by NYSCR |
location | Project or service location when shown |
category | NYSCR category |
adType | Ad type, such as General |
note | Public note from the listing card |
status | Listing status used by the actor |
sourceUrl | NYSCR search URL for the CR number |
scrapedAt | ISO timestamp when the row was extracted |
How much does it cost to scrape NYSCR opportunities?
This actor uses pay-per-event pricing.
There is a small run-start event and a per-opportunity event.
The exact per-item tiers are shown on the Apify Store pricing panel and may be updated after cost validation.
For planning, start with a small maxItems value, review output quality, then scale to larger monitoring runs.
Quick start
-
Open the actor on Apify.
-
Enter one or more keywords, such as
construction,software, orengineering. -
Choose a date filter: Today, Last 7 days, or All time.
-
Set the maximum number of opportunities.
-
Run the actor.
-
Export the dataset as JSON, CSV, Excel, XML, or HTML.
Input options
Keywords
Use keywords to search titles, contract numbers, or CR numbers.
Leave keywords empty to collect open opportunities sorted by issue date.
Date range
Use Today for daily checks.
Use LastWeek for a recurring weekly monitor.
Use All when building a broader historical lead list.
Maximum opportunities
maxItems caps the number of records saved.
Use a small number for testing and a larger number for production monitoring.
Direct NYSCR search URLs
Advanced users can paste NYSCR /Ads/Search URLs into startUrls.
The actor keeps the query parameters and paginates from the provided URL.
Agency ID
If you already know a NYSCR GovernmentId, pass it in governmentId to narrow results to one agency.
Example input: weekly procurement monitor
{"keywords": ["construction", "engineering"],"dateFilter": "LastWeek","maxItems": 100,"status": "Open","sort": "-DateIssued"}
Example input: IT opportunity search
{"keywords": ["software"],"dateFilter": "All","maxItems": 50,"status": "Open","sort": "-DateDue"}
Example output
{"crNumber": "2136420","title": "Dorsey Street and Lake Colby Parking Lots Stormwater Upgrades and Lake Colby Beach Site Civil and Engineering Work","agency": "Saranac Lake, Village of","division": "Community Development Department","issueDate": "7/3/2026","dueDate": "7/24/2026","location": "Dorsey Street Parking Lot and Lake Colby Beach Parking Lot and Site","category": "Environmental","adType": "General","note": "Responses are due by July 17, 2026...","status": "Open","sourceUrl": "https://www.nyscr.ny.gov/Ads/Search?Keyword=2136420","scrapedAt": "2026-07-06T04:23:33.999Z"}
Common workflows
š¬ Daily bid alerting: schedule a run with dateFilter set to Today, then send the dataset to Slack, email, or a webhook.
š CRM enrichment: export CR numbers, agencies, titles, and due dates into Salesforce, HubSpot, Airtable, or Google Sheets.
š§ Market intelligence: track categories and agencies over time to understand which departments are issuing relevant opportunities.
š Proposal pipeline review: sort by due date and route high-fit opportunities to capture managers.
Integrations
Apify datasets can be consumed by Zapier, Make, webhooks, API clients, and Apify integrations.
Use CSV or Excel exports for analysts.
Use JSON for data pipelines.
Use webhooks to trigger notifications after each scheduled run.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/new-york-state-contract-reporter-scraper').call({keywords: ['construction'],dateFilter: 'LastWeek',maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/new-york-state-contract-reporter-scraper').call(run_input={'keywords': ['software'],'dateFilter': 'All','maxItems': 50,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl "https://api.apify.com/v2/acts/automation-lab~new-york-state-contract-reporter-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"keywords":["engineering"],"dateFilter":"LastWeek","maxItems":100}'
MCP: use from Claude and other AI tools
You can connect this actor through the Apify MCP server.
Install it in Claude Code with:
$claude mcp add apify-nyscr --url "https://mcp.apify.com/?tools=automation-lab/new-york-state-contract-reporter-scraper"
Use this JSON configuration for MCP clients that accept server config files:
{"mcpServers": {"apify-nyscr": {"url": "https://mcp.apify.com/?tools=automation-lab/new-york-state-contract-reporter-scraper"}}}
Use a tool URL scoped to this actor:
https://mcp.apify.com/?tools=automation-lab/new-york-state-contract-reporter-scraper
Example prompts:
-
"Find NYSCR software opportunities issued in the last week and summarize due dates."
-
"Extract construction bid listings from the New York State Contract Reporter and group them by agency."
-
"Monitor open environmental opportunities and prepare a CSV for our capture team."
Tips for better results
Use specific keywords when you need focused results.
Use multiple keywords when different teams monitor different services.
Keep maxItems high enough to cover all matches for broad searches.
Use LastWeek for recurring schedules to reduce duplicate review.
Use All when discovering opportunities for the first time.
Limitations
The actor extracts public search result cards.
NYSCR full opportunity details may require login or sign-up on the source website.
Attachment links are not available on the public listing cards and are therefore not included unless NYSCR exposes them publicly in the result page.
The source website controls result availability, dates, and text formatting.
Troubleshooting
Why did I get zero records?
Try a broader keyword, set dateFilter to All, or leave keywords empty.
Very specific CR numbers or phrases may not have open matches.
Why do some fields look blank?
NYSCR does not show every field for every listing.
The actor saves null when a public listing card omits a division, location, or note.
Can I scrape closed opportunities?
The public search form is optimized for open listings.
If you pass status as Closed or All, NYSCR may still control what is returned.
Data freshness
Each run fetches live NYSCR search pages.
scrapedAt shows when a record was collected.
Schedule the actor daily or weekly for repeat monitoring.
Legality
This actor collects publicly visible procurement listing data.
Is it legal to scrape NYSCR?
This actor collects publicly visible procurement listing data.
You are responsible for using the data in accordance with applicable laws, NYSCR terms, and your organization's compliance policies.
Do not use extracted data for spam or unauthorized contact.
Related scrapers
Related Automation Lab actors for procurement and public-sector workflows:
Use the NYSCR scraper when your workflow specifically needs New York State Contract Reporter listings.
FAQ
Does this actor require my NYSCR login?
No. It uses the public search result pages.
Does it download bid attachments?
Not in the MVP. Public search cards do not expose downloadable attachments.
Can I schedule it?
Yes. Use Apify schedules with dateFilter set to Today or LastWeek.
Can it monitor multiple keywords?
Yes. Add multiple keywords and the actor will search each one, de-duplicate CR numbers, and stop at maxItems.
What if NYSCR changes its website?
If the public HTML structure changes, open an actor issue with a failed run URL and the input you used.
Output quality notes
The actor de-duplicates records by CR number.
Dates are preserved as shown by NYSCR.
The sourceUrl field points to a public search by CR number so users can quickly find the listing in NYSCR.
Changelog
Initial version extracts public NYSCR open opportunity search results with keyword and date filters.