ParseForge Scrapers

Government Contract Awards Scraper

parseforge/government-contract-awards-scraper

Developer toolsAutomation

Scrapes federal contract awards from SAM.gov with filters for keyword, agency, NAICS code, amount, and date. Returns each award as a flat row with optional detail-page enrichment.

Run this scraper See the API call
Total users
4
Monthly active
0
Total runs
199
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

Government Contract Awards Scraper

Scrape federal contract awards from SAM.gov by keyword, agency, NAICS code, or date range. Every award comes with recipient, amount, place of performance, and full detail-page fields. No login or API key. Export to CSV, JSON, Excel, or XML.

SAM.gov's official API needs registration, API keys, and rate limits that slow you down. This Actor reads the public contract award feeds directly, filtered by keyword, agency, NAICS code, award type, amount, or date, and returns each match in one fixed schema. It also fetches full detail pages for recipient address, pricing type, and set-aside details.

Who uses it What they scrape SAM.gov for
Market researchers Which agencies are spending on a given product or service this quarter
Sales teams at government contractors Find recent awards to similar companies to build a prospect list
Competitive intelligence analysts Track which competitors are winning contracts and at what prices
Procurement consultants Analyze spending patterns by agency, NAICS code, or place of performance
Journalists and watchdogs Monitor federal spending for stories on contracts and recipients

What it does

This Actor collects federal contract awards from SAM.gov by keyword, agency, NAICS code, award type, amount, or date range, and returns each award as a flat row with optional detail-page enrichment.

  • ๐Ÿ” Keyword search: find awards by words in the description or title, like "cybersecurity" or "cloud services".
  • ๐Ÿ›๏ธ Agency filter: narrow to a specific awarding agency, such as Department of Defense or Department of Homeland Security.
  • ๐Ÿ“Š Amount range: set minimum and maximum award amounts to focus on deals of a certain size.
  • ๐Ÿ“… Date range: filter by action date to get only recent awards or a specific period.
  • ๐Ÿ“‹ Award types: choose BPA Call, Purchase Order, Delivery Order, or Definitive Contract.
  • ๐Ÿท๏ธ NAICS codes: filter by industry codes like 541512 for computer services.
  • ๐Ÿ“ Place of performance: limit to a 2-letter US state code where the work happens.
  • ๐Ÿ“„ Detail pages: fetch full award pages for recipient address, pricing type, and set-aside details.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with SAM.gov data

๐Ÿ“ˆ Track agency spending.

A market researcher runs the Actor weekly with a keyword like "cloud services" and a date range to see which agencies are buying and how much they spend.

๐ŸŽฏ Build a prospect list.

A sales team filters by NAICS code and minimum award amount to find companies that recently won contracts, then uses recipient names for outreach.

๐Ÿ” Monitor competitors.

A competitive analyst sets recipientName to a rival company and gets every award they won, with amounts and agencies, to understand their pipeline.

๐Ÿ“Š Analyze procurement trends.

A consultant pulls all awards for a state and NAICS code over a year, then exports to Excel to chart spending by agency and contractor.

๐Ÿ“ฐ Investigate federal spending.

A journalist searches for a specific agency and high award amounts to find notable contracts and recipients for a story.

Why choose this scraper

What you get
No API key Public SAM.gov feeds, no registration or rate limits
Complete data Detail-page enrichment adds recipient address, NAICS, pricing type, set-aside
Flexible filters Combine keyword, agency, NAICS, amount, date, and more
Scalable Up to 1,000,000 awards per run for paid users
Structured output Flat rows ready for CSV, JSON, Excel, or XML

How it compares

This Actor focuses on contract awards from SAM.gov, while the competitors below cover opportunities, bids, or multiple tender sources.

Feature ParseForge Government Contract Data & Federal Bids - SAM.gov Scraper SAM.gov Federal Contracts Scraper Government Tender Scraper
Contract awards (past contracts) Yes Not listed Not listed Not listed
Contract opportunities and bids No Yes Yes Not listed
Filter by NAICS code Yes Yes Yes Not listed
Filter by award amount Yes Not listed Not listed Not listed
Fetch detail pages for extra fields Yes Not listed Not listed Not listed
Multiple country tender sources No Not listed Not listed Yes

Configure the run

Drive the Actor from keywords, agencies, NAICS codes, award types, amounts, and dates, alone or together, and filters run as each award is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
 "keywords": "cybersecurity",
 "maxItems": 10,
 "awardTypes": [
 "A",
 "B",
 "C",
 "D"
 ],
 "startDate": "2024-01-01",
 "endDate": "2024-12-31"
}

A larger pull:

{
 "keywords": "cybersecurity",
 "maxItems": 200,
 "awardTypes": [
 "A",
 "B",
 "C",
 "D"
 ],
 "startDate": "2024-01-01",
 "endDate": "2024-12-31"
}

Pricing

Pay-per-result: $0.01599 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $1.60
1,000 results $15.99
10,000 results $159.90

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Government Contract Awards Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to SAM.gov through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/government-contract-awards-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your filters. If you set a keyword, agency, NAICS code, or date range that is too narrow, no awards may match. Try removing filters one by one to see which one is blocking results.

Why is the run slow?

Fetching detail pages for every award adds time. If you do not need the extra fields, set fetchDetailPages to false. You can also increase maxConcurrency to speed up detail fetching, but watch for rate limits.

I got a rate limit error.

Reduce maxConcurrency to 1 or 2 and increase requestDelayMs to 1000 or more. This slows down requests and avoids hitting SAM.gov's rate limits.

Some awards are missing detail fields.

Make sure fetchDetailPages is set to true. If it is, some awards may not have detail pages or the fields may be empty on SAM.gov. Check the raw data for those awards.

The output has duplicate awards.

SAM.gov may list the same award under multiple entries. Use a unique field like award ID to deduplicate in your downstream processing.

FAQ

Question Answer
What is SAM.gov? SAM.gov is the U.S. government's System for Award Management, the official source for federal contract awards, opportunities, and entity registrations.
Do I need an API key or login? No. This Actor reads the public SAM.gov award feeds directly, so no registration or API key is required.
What data does each award include? Each row includes award title, description, recipient name, awarding agency, award amount, action date, NAICS code, place of performance, and more. If you enable detail pages, you also get recipient address, pricing type, and set-aside details.
Can I filter by specific agencies? Yes, use the awardingAgencyName field to filter by agency name, such as "Department of Defense" or "Department of Homeland Security".
How do I search by industry? Use the naicsCodes field to filter by NAICS industry codes. For example, ["541512"] for computer systems design services.
Can I limit results by award amount? Yes, set minAwardAmount and maxAwardAmount to only return contracts within a dollar range.
What are award types A, B, C, and D? A is BPA Call, B is Purchase Order, C is Delivery Order, and D is Definitive Contract. You can select one or more in the awardTypes field.
How many awards can I get in one run? Free users are limited to 100 awards. Paid users can set maxItems up to 1,000,000.
Can I sort the results? Yes, use sortBy to sort by Award Amount, Period of Performance Start Date, Period of Performance Current End Date, or Base Obligation Date, and sortOrder for ascending or descending.
What if I get rate-limited? Lower maxConcurrency and increase requestDelayMs to slow down requests and avoid rate limits.
What export formats are supported? You can export the dataset to CSV, JSON, Excel, or XML from the Apify platform.
Is this the same as the SAM.gov opportunities scraper? No, this Actor focuses on contract awards (past contracts). For opportunities and bids, use a SAM.gov opportunities scraper.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. General Services Administration. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
keywords string Search contracts by keyword in description or award title (e.g., "cybersecurity", "cloud services"). cybersecurity
maxItems integer Free users: Limited to 100. Paid users: Optional, max 1,000,000. 10
awardTypes array Filter by contract award type codes. A=BPA Call, B=Purchase Order, C=Delivery Order, D=Definitive Contract. ["A","B","C","D"]
startDate string Filter contracts with action dates on or after this date (YYYY-MM-DD format). 2024-01-01
endDate string Filter contracts with action dates on or before this date (YYYY-MM-DD format). 2024-12-31
awardingAgencyName string Filter by awarding agency name (e.g., "Department of Defense", "Department of Homeland Security"). not set
naicsCodes array Filter by NAICS industry codes (e.g., ["541512", "541519"] for computer services). not set
minAwardAmount number Filter to only return contracts with total obligation at or above this amount in USD. not set
maxAwardAmount number Filter to only return contracts with total obligation at or below this amount in USD. not set
recipientName string Filter by contractor/recipient name (partial match supported). not set
placeOfPerformanceState string Filter by 2-letter US state code where work is performed (e.g., "CA", "TX", "VA"). not set
sortBy string (4 options) Field to sort results by. Award Amount
sortOrder string (2 options) Sort direction: desc for highest/newest first, asc for lowest/oldest first. desc
fetchDetailPages boolean Fetch full detail page for each award to get additional fields (recipient address, NAICS code, pricing type, set-aside details). Recommended for complete data. true
maxConcurrency integer Maximum number of parallel requests for detail page fetching. Lower this if you get rate-limited. 5
requestDelayMs integer Milliseconds to wait between page requests. Increase if the API rate-limits you. 500

Pricing

from $11.99 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged once when the run starts. $0.005
Result Item Charged once per result collected. $0.01199 to $0.01599

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~government-contract-awards-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Government Contract Awards Scraper on Apify All scrapers