SAM.gov API: Capabilities vs. Common Requirements
Updated
What the SAM.gov opportunities API returns, what it leaves to you, and how much of a contracting workflow you can build on it alone.
Overview: The SAM.gov opportunities API is free and public. This guide sets what it returns against what a contracting workflow usually has to do, so you can tell which gaps you would be closing yourself.
Common Requirements vs. SAM.gov Capabilities
| Requirement | SAM.gov Provides | Notes |
|---|---|---|
| Rate limits | 10-1,000/day | 1,000/day requires entity registration |
| Descriptions | Via document download | Requires additional API calls |
| Setup time | Up to 10 business days | For entity registration (public access is instant) |
What Contractors Actually Need From This Data
Four jobs a contracting workflow has to do, and what each one costs against the API's own limits.
Daily opportunity monitoring
Monitoring means one query per combination you care about. The API filters a search by NAICS, state, set-aside and posting window, but each distinct combination is its own request, and the basic tier allows 10 requests per day in total. The budget is not measured in notices returned, it is measured in how many separate questions you ask.
Bid/no-bid decisions need the full description
The SAM.gov API returns notice metadata (title, agency, dates, NAICS) but not the actual requirement description. To make a bid/no-bid decision, you need the full text. SAM.gov provides a URL to the description, but fetching it is a separate step for each opportunity. If you're reviewing 20 opportunities a day, that's 20 additional requests just for descriptions.
Competitive intelligence: who won similar contracts
Contractors want to know who won similar work, at what price, and when. SAM.gov publishes Award Notices with this data (awardee name, amount, date), but they're separate records from the original solicitation. Connecting a solicitation to its award means searching by solicitation number and filtering by notice_type=Award Notice.
Compliance: checking exclusions before teaming
Before teaming with another company or hiring a subcontractor, you're required to check SAM.gov's exclusions list (FAR 9.405). The exclusions data is on a completely separate API endpoint with a different schema. If your workflow needs both opportunities and exclusions, you're integrating two different APIs.
Understanding Notice Types
SAM.gov uses notice_type to indicate where a notice is in its lifecycle. This matters because different types mean different things for your business:
| Notice Type | What It Means | Can You Bid? |
|---|---|---|
| Presolicitation | Agency plans to issue a solicitation. Early signal. | Not yet. Watch for the solicitation. |
| Sources Sought | Agency is doing market research. Wants to know who can do the work. | No, but respond to show interest. |
| Solicitation | Formal request for proposals/quotes. | Yes, before the response deadline. |
| Combined Synopsis/Solicitation | Combined notice and solicitation (most common type). | Yes, before the response deadline. |
| Award Notice | Contract has been awarded. Shows winner and amount. | No. Contract is awarded. |
| Special Notice | Announcements outside the solicitation sequence: industry days, draft documents for comment, program news, cancellations. | No. Read it for the event or document it points to. |
Tip:
To find open opportunities, filter for notice_type=Solicitation or notice_type=Combined Synopsis/Solicitation where the response_deadline is in the future. Don't rely on the active field. SAM.gov sets it to "Yes" on every record we index, so it does not separate open from closed.
What SAM.gov Gives You vs. What You Probably Need
| What you need | SAM.gov API | Notes |
|---|---|---|
| Notice metadata (title, agency, dates) | Yes | Returned inline on every notice. No second call. |
| Full requirement descriptions | Not in the API response | API returns a URL. You fetch it separately. |
| Contact info (contracting officer) | Yes, when provided | Whatever the posting agency put on that notice. Scoped to the notice, not to the office or the person deciding. |
| Award data (winner, amount) | Yes, on Award Notices | Separate record from the solicitation. |
| Exclusions (debarred entities) | Separate API | Different endpoint, different schema. |
| Attachments (SOWs, RFP docs) | Via resource links | URLs provided, you download separately. |
| Historical data (older notices) | Limited | API surfaces recent/modified notices. Long-running vehicles from prior years may not appear. |
The description and contact rows are the two that cost the most to close yourself. Our index carries the full notice description for every notice since October 2024, alongside the notice records, and GovCon Contacts carries 37,000+ contracting officers and buyers with verified email and phone.
When SAM.gov Direct Works
- Government agencies: .gov/.mil accounts get 10,000 requests/day. Plenty for internal tools.
- Occasional lookups: Checking a specific solicitation or a handful of opportunities per day.
- Prototyping: Validating an idea before investing in production infrastructure.
- Simple monitoring: One NAICS code, one state, checked once a day.
When it doesn't
- Multiple search criteria daily: Every NAICS code, agency or state you watch separately is its own request against the same 10.
- Need for descriptions: If your users need the actual solicitation text, the API alone isn't enough.
- Production reliability: A product that depends on SAM.gov data needs to handle rate limits, format changes, and indexing delays gracefully.
- Combined data: If you need opportunities + exclusions + awards in one place, that's three different integrations with SAM.gov.
Your Options
SAM.gov direct (free)
Start here. Register for an API key, run your real queries against it, and see whether 10 requests a day covers them. If it does not, entity registration is free and raises the ceiling to 1,000/day. What each tier allows.
Third-party APIs
A key issued at signup, 1,000 / hour instead of 10 a day, and the fields SAM.gov leaves out of the notice response already joined in. GovCon API from $19/mo, against the pipeline you would otherwise build and keep running.
Enterprise platforms
Web dashboards and analyst services built on the same public data. A different purchase from an API key: you are buying screens and support rather than a query surface, so the comparison is which of the two your workflow needs.
Transparency note:
GovCon API sells access to this data, so we have a commercial interest in the comparison above. The rows describe what the SAM.gov API returns; verify them against SAM.gov's own documentation before you build on them.
Related Guides
- SAM.gov API Guide - Overview and getting started
- Response Structure Reference - JSON parsing patterns
- Rate Limits Explained - Access tiers and limits
- SAM.gov Exclusions Guide - Bulk sync, deduplication, compliance
- Federal Contracts API - Search FPDS prime contract transactions
Official Resources
- SAM.gov - Official federal contracts portal
- SAM.gov API Portal