The federal contracting data layer

SAM.gov API: Capabilities vs. Common Requirements

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

When it doesn't

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

Official Resources

Community Feedback

Help improve this guide for fellow developers. Press Ctrl+Enter to share issues you encountered, missing information, or suggestions.