Obtain a public API key from your SAM.gov account settings
Send GET https://api.sam.gov/assistance-listings/v2/assistance-listings/search?api_key={key}&keyword={term}&status=Active to search active federal assistance programs
Filter by eligible applicant type using the applicantTypes parameter and by funding instrument type (grant, cooperative_agreement, etc.) using fundingInstrumentTypes
Retrieve a full program record by calling GET https://api.sam.gov/assistance-listings/v2/assistance-listings/{programNumber}?api_key={key} using the CFDA-style program number returned in search results
Parse the programTitle, objectives, eligibility, and usageAndUseRestrictions fields for program screening logic
For bulk extraction use the date-range filters lastUpdatedDateFrom and lastUpdatedDateTo to incrementally sync updated listings
Known gotchas
Program numbers (e.g., 10.001) are stable identifiers inherited from the legacy CFDA catalog, but the API field name is programNumber — do not confuse with the SAM.gov entityId used elsewhere
Inactive programs are returned only when status=Inactive is explicitly requested; a search without a status filter defaults to active-only, which can miss relevant historical programs for compliance research
The assistance listings API shares the same daily rate limit pool as other SAM.gov public APIs (1000 requests/day per key); bulk syncs should use the lastUpdatedDateFrom filter rather than pulling all records repeatedly
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp