The SAM.gov API, without the wait.
Federal contract opportunities as clean JSON on a key you get in 30 seconds. SAM.gov's
own Get Opportunities API works, but it wants a system account, a key that can take a while to provision,
and it rate-limits you by role. Edgrapi wraps the public feed, normalizes it, and hands it back on one
X-API-Key — solicitations, presolicitations, sources-sought and award notices, filtered
by NAICS, set-aside, state and date.
One call
curl "https://api.edgrapi.com/v1/opportunities?naics=541519&set_aside=SBA&limit=20" \
-H "X-API-Key: edgr_..."
What comes back
{
"count": 1, "total": 1284, "posted_from": "08/17/2026", "posted_to": "09/16/2026",
"opportunities": [
{ "notice_id": "a1b2c3d4e5", "title": "Enterprise Cloud Services BPA",
"solicitation_number": "W912-26-R-0001", "posted_date": "2026-08-27",
"type": "Solicitation", "active": true, "naics_code": "541519",
"set_aside": "Total Small Business Set-Aside",
"ui_link": "https://sam.gov/opp/a1b2c3d4e5/view" }
],
"source": "SAM.gov Contract Opportunities API (open.gsa.gov)"
}
Parameters
| Param | What it filters |
|---|---|
posted_from, posted_to | Posted-date window, YYYY-MM-DD (default: last 30 days; SAM caps a query at 1 year) |
naics | NAICS code, up to 6 digits |
set_aside | Set-aside code (SBA, 8A, WOSB, HZC…) |
ptype, state, title | Procurement type, place-of-performance state, title match |
limit, offset | Paging (limit 1–200) |
Honest freshness. Data is only as fresh as SAM.gov publishes it — Edgrapi
doesn't add or hold data, it normalizes the official feed. Cost: 2 credits
per call; empty results are free.
Agent-ready. This endpoint is also the
get_opportunities tool on the
hosted MCP server. Point Claude, Cursor, or your own agent at Edgrapi and it
searches SAM.gov with your one key — no wrapper code.