SAM.gov API: federal contract opportunities as JSON, no 10 calls a day limit
Every open federal contract opportunity on SAM.gov as JSON, refreshed daily: search by keyword, NAICS, set-aside, state and deadline, with daily alerts.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/sam/opportunities?naics=541512&setAside=SBA&size=2&description=false"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/sam/opportunities",
params={'naics': '541512', 'setAside': 'SBA', 'size': '2', 'description': 'false'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
)
print(r.json()){
"total": {
"value": 57,
"relation": "eq"
},
"opportunities": [
{
"noticeId": "91d23c14cbd34e3bac2d094052af945a",
"title": "Polaris GWAC Small Business Pool",
"solicitationNumber": "47QTCB22R0001",
"department": "GENERAL SERVICES ADMINISTRATION",
"cgac": "047",
"subTier": "FEDERAL ACQUISITION SERVICE",
"fpdsCode": "4732",
"office": "GSA/FAS ITC OFFICE OF ACQUISITION OPERATIONS, INTERAGENCY CONTRACTS",
"aacCode": "47QTCB",
"postedDate": "2026-10-16 14:40:29",
"type": "Solicitation",
"baseType": "Solicitation",
"archiveType": "autocustom",
"archiveDate": "2027-12-31",
"setAsideCode": "SBA",
"setAside": "Small Business Set Aside - Total",
"responseDeadline": "2022-10-07T16:00:00-04:00",
"naicsCode": "541512",
"classificationCode": "DA01",
"awardNumber": null,
"awardDate": null,
"awardAmount": null,
"awardee": null,
"organizationType": "OFFICE",
"additionalInfoLink": null,
"samUrl": "https://sam.gov/workspace/contract/opp/91d23c14cbd34e3bac2d094052af945a/view",
"lastSeen": "2026-10-28",
"firstSeen": "2026-10-28T00:00:00Z",
"active": true,
"placeOfPerformance": {
"street": null,
"city": null,
"state": null,
"zip": null,
"country": null
},
"officeAddress": {
"city": "WASHINGTON",
"state": "DC",
"zip": "20405",
"country": "USA"
},
"contacts": [
{
"role": "primary",
"title": null,
"fullname": "Lisa Yimbo, Contracting Officer",
"email": "Polaris@gsa.gov",
"phone": null,
"fax": null
}
]
},
{
"noticeId": "cf5b4f8a7340414486f8b96f97927c8b",
"title": "Polaris GWAC Small Business Pool",
"solicitationNumber": "47QTCB22R0001",
"department": "GENERAL SERVICES ADMINISTRATION",
"cgac": "047",
"subTier": "FEDERAL ACQUISITION SERVICE",
"fpdsCode": "4732",
"office": "GSA/FAS ITC OFFICE OF ACQUISITION OPERATIONS, INTERAGENCY CONTRACTS",
"aacCode": "47QTCB",
...Overview
SAM.gov is where federal agencies post what they want to buy: solicitations, presolicitations, sources sought and award notices. Its own API needs a key that expires every 90 days, and a personal key without an entity role gets 10 requests a day, which runs out after a few pages of one search.
SecFeed loads SAM.gov's public daily extract of every open notice into its own database, so searches are not rationed. Filter by keyword, NAICS code or prefix, set-aside type, place of performance, agency and response deadline, or save a search and receive new matching notices at your webhook after each daily refresh.
What you get
Built for developers who would rather not parse EDGAR.
Searches run on SecFeed's copy of the daily extract, not on a 10 calls a day personal key.
Keywords match title and description, with word* for prefixes.
SBA, SDVOSB, 8(a), WOSB and HUBZone codes; a NAICS prefix like 5415 covers every code under it.
Save a search once; new notices that match arrive at your https webhook every morning.
Endpoints
Authenticate with Authorization: Bearer YOUR_KEY. Responses are JSON.
Open federal contract opportunities from SAM.gov, refreshed daily: solicitations, presolicitations, sources sought and award notices.
Parameters: q, naics (6 digits or a prefix), setAside, state, type, psc, solicitationNumber, department, awardee, postedFrom, postedTo, deadlineFrom, deadlineTo, firstSeenFrom, active, sort=deadline, description=false, from, size (max 100)
One SAM.gov notice with contacts, place of performance and full description.
Parameters: noticeId
Your saved SAM.gov alerts with when each last sent and its status.
Response fields
The main fields in every result. The raw filing data is always one level down.
| Field | Meaning |
|---|---|
noticeId, solicitationNumber, title, type | The notice, its solicitation number and notice type. |
department, subTier, office | The buying agency down to the contracting office. |
naicsCode, classificationCode, setAsideCode | Industry code, product or service code and set-aside type. |
postedDate, responseDeadline, firstSeen | When it was posted, when responses are due and when SecFeed first saw it. |
placeOfPerformance, contacts[] | Where the work happens and the contracting officers to contact. |
awardNumber, awardAmount, awardee | Filled in on award notices. |
Use cases
- Bid pipelines for small and set-aside contractors
- Daily opportunity alerts by NAICS and state
- Market research on what agencies are buying
- Feeding opportunities into a sales pipeline or proposal tool
Guides
FAQ
Do I need my own SAM.gov API key?
No. SecFeed loads the public daily extract that SAM.gov publishes, so your SecFeed key is the only key you need.
How fresh is the data?
SAM.gov publishes its extract once a day, around 03:30 UTC. SecFeed loads it at 04:15 UTC and checks again at 10:15 UTC.
Does it include closed or archived notices?
The extract holds open notices. SecFeed keeps every notice it has loaded, so history builds up from October 2026 onward.
Try the SAM.gov Opportunities API free
Free key, no card, no sales call.