A grants.gov notice gives you a program and a deadline. It does not tell you whether you're eligible to win, whether the program is a real competition or wired to the same incumbents every year, what a realistic award is, or when it reopens if you miss it. These endpoints turn an open grant into those answers. What follows is what you can find out, not a snapshot of what's open today.
Federal grant opportunities are open funding, grants.gov notices of funding opportunity (NOFOs), the forward-looking counterpart to grant awards (money already given out). The connective key is the CFDA / Assistance Listing number (for example 93.213): it lets an open opportunity be joined to the full record of who has won that program. That join, plus eligibility and timing filters, is what turns "here's a grant" into a workflow. The sections below are the workflows; each is one or two API calls.
Most for-profit companies assume federal grants aren't for them. The eligibility data disagrees: a large share of open notices are explicitly open to for-profits and small businesses. The honest tension, and the reason this is a workflow and not a press release, is that only a small fraction of grant dollars historically reach for-profit recipients. So the move is to surface the slice you're eligible for, then qualify it (workflow 2).
Filter open opportunities by a plain-language eligibility bucket (for_profit, small_business, nonprofit, government, tribal, higher_education), plus your domain (funding category, agency, keywords). The API resolves the bucket to the underlying grants.gov applicant-type codes and excludes the ambiguous "Others (see text)" catch-all, so for_profit means genuinely for-profit-eligible.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://govconapi.com/api/v1/grant-opportunities/search?status=open&eligibility=small_business&funding_category=ST&sort_by=close_date&sort_order=asc"
Answers the searches "can a for-profit company get a federal grant?", "federal grants for small business", "open SBIR-style research funding" (note: actual SBIR runs through sbir.gov; grants.gov carries the broader for-profit-eligible R&D and technology programs).
This is the workflow a notice can never give you, and the one that saves the most wasted effort. Two grants can both be "open"; one is a genuine competition and the other has gone to the same handful of incumbents for years. Writing a federal proposal is weeks of work, so knowing which is which up front is the difference between a real shot and a wasted month.
Join the opportunity's CFDA program to its award history and read the shape of the competition: how many distinct organizations have ever won it, what share of the dollars the single top recipient holds, and the median award. A program funded across hundreds or thousands of organizations with no dominant winner is a real open competition; one funded across a handful, with one recipient holding most of the money, is in practice closed. You get that classification in one call, instead of a manual, program-by-program dig through USAspending.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://govconapi.com/api/v1/grant-programs/93.213"
# example response (values are illustrative; query for current)
{
"cfda": "93.213",
"program_intel": {
"distinct_recipients": 191, # how many orgs have ever won
"top_recipient_share": 0.065, # 0..1; near 0 = open field, near 1 = wired
"top5_recipient_share": 0.20,
"median_award": 405588, # the realistic ask
"incumbents": [ /* top recipients by dollars: who you're up against */ ]
},
"open_opportunity_count": 70,
"_sources": ["grants_gov", "usaspending_fabs"]
}
The same program_intel block rides inline on a Pro key's opportunity detail (/api/v1/grant-opportunities/{id}), so one request on a notice tells you both what it is and whether it's worth pursuing. Answers "who wins federal grants under [program]", "is this grant competitive", "federal grant program incumbents".
Roughly half of open notices state no award ceiling, so the notice often can't tell you how much money is on the table. The defensible figure is the program's median historical award, available from the same program-history join. It ranges from a few thousand dollars for small discretionary programs to the hundreds of millions for the largest formula programs, enough to size a budget and decide whether the award justifies the proposal cost. Answers "how much money can I get from a federal grant", "average federal grant award size".
The program-history join also names the incumbents, the organizations that have actually won a program, ranked by dollars. That list is two workflows at once: it's who you're competing against, and it's your shortlist of potential teaming partners or primes to approach. For a defense or research program, the incumbents are often exactly the institutions you'd want on a proposal. Answers "who has won [program] grants", "federal grant teaming partners".
Two timing workflows from the same feed. Deadline radar: filter open opportunities by close date, sorted soonest-first, to act on what's closing now. Forecast pipeline: agencies forecast many programs before the notice posts, so the forecasted set is what's coming, time to line up a proposal before the clock starts.
# closing soon (eligible to you)
curl ... "/api/v1/grant-opportunities/search?status=open&eligibility=for_profit&date_to=2026-09-30&sort_by=close_date&sort_order=asc"
# coming soon (forecasted), by agency
curl ... "/api/v1/grant-opportunities/search?status=forecasted&agency=NSF"
Because status is derived live from the dates, "open" means open today, not a stale "posted" flag. Answers "federal grants closing soon", "upcoming federal grant opportunities".
Many federal grant programs run on an annual cycle. If you missed one, the question is when it reopens. The program's history shows its cadence (the dates of past notices under the same CFDA), and the forecasted feed plus a status filter catch the next opening as soon as the agency signals it. Set a watch on a CFDA or an agency and you stop missing cycles. Answers "when does [program] grant reopen", "annual federal grant cycles".
# the program's history (all statuses), to read its cadence
curl ... "/api/v1/grant-opportunities/search?cfda=93.213&status=all&sort_by=post_date&sort_order=desc"
Every workflow above composes. Given a company profile (entity type, domain, past awards), an agent or pipeline can: pull the eligible open set, score each program's winnability and award size, rank by fit and odds, and surface the worth-pursuing few. The API gives an LLM or a BD system exactly the inputs it needs, clean JSON, plain-language eligibility, live-derived status, and program winnability, rather than raw grants.gov XML it has to interpret. This is also why an AI assistant asked "what federal grants can my firm realistically win?" can answer it: the endpoints turn the question into queries it can run.
Pair it with the same-key joins to grant awards, contracts, and the company profile on a recipient's UEI for a full federal-funding picture.
A notice moves through a lifecycle: forecasted (an agency signals intent), posted / open (you can apply), closed (deadline passed), archived (retired). Status here is derived from the dates against today rather than trusted from a stored flag, which is why "open" means open now.
Each notice carries an eligibility list (usually several applicant-type codes; "Others, see text" is a common, ambiguous catch-all), an award ceiling and floor (often blank), a funding instrument and category, one or more CFDA programs, and a deadline. An opportunity has no recipient, there's no winner yet; the recipient only exists once the award posts to USAspending. The CFDA number is the bridge that connects the two, which is what makes the winnability and award-size workflows possible.
Two layers. The opportunity feed (search and detail, every filter) is the base layer included in every plan. The program-intelligence layer (the award-history join behind workflows 2-4) is the additional Pro capability, part of the Pro intelligence suite alongside vendor risk and company intelligence, not a standalone purchase.
| Endpoint | Layer | What it does |
|---|---|---|
GET /api/v1/grant-opportunities/search | Base | Filter by eligibility, agency, cfda, funding category/instrument, status, deadline, award size, keywords. |
GET /api/v1/grant-opportunities/{opportunity_id} | Base (+ Pro block) | Full notice; on Pro keys adds the program_intel block inline. |
GET /api/v1/grant-programs/{cfda} | Pro | Program winnability: distinct winners, top-recipient share, median award, incumbents, plus what's open under it now. |
List responses are a data array plus pagination, a filters_applied echo, and a _sources array. Unknown parameters return 400 with the valid list. See pricing.
Yes. Many open federal grant opportunities are explicitly open to for-profit organizations and small businesses. The catch is that historically only a small fraction of federal grant dollars have gone to for-profit recipients, so "eligible" is not "likely to win." The useful move is to filter open opportunities to the ones you're eligible for, then check each program's award history to see whether for-profits actually win it before you invest in a proposal.
Both, and it varies entirely by program. Some federal grant programs have funded thousands of different organizations with no dominant winner, a genuine open competition. Others have funded only a handful, with a single recipient holding most of the dollars, effectively closed to newcomers. A notice never tells you which; the program's award history does, via the distinct-winner count and the top recipient's share of dollars.
Before writing a proposal, check three things from the program's award history: how many distinct organizations have ever won it (few means incumbent-locked), what share of dollars the top recipient holds (high means wired), and the median award size (the realistic ask, since the notice often omits it). A program with hundreds of winners, no dominant recipient, and a workable median award is worth the effort; one with five winners and a 70%-dominant incumbent usually is not.
The notice frequently does not say, roughly half of open notices state no award ceiling. The realistic figure is the program's median historical award, which ranges from a few thousand dollars to hundreds of millions depending on the program. Pull the program's award history and you have a defensible number to size a budget against.
An opportunity is open funding you can still apply for (a grants.gov notice of funding opportunity). An award is money already given out (recorded in USAspending). Opportunity data answers "what can I apply for"; award data answers "who got it." They are different systems, keyed differently, and an opportunity has no recipient until it is awarded, the link between them is the CFDA program number. See the grant awards API for the award side.
Not on grants.gov, which carries almost no SBIR or STTR solicitations; those run through sbir.gov and agency-specific systems. What grants.gov does carry for for-profits is the broader R&D, health, and technology program funding, which is what shows up when you filter open opportunities to for-profit-eligible science and technology notices.
Filter open opportunities by close date and sort ascending so the soonest deadlines come first: GET /api/v1/grant-opportunities/search?status=open&date_to=YYYY-MM-DD&sort_by=close_date&sort_order=asc. Because status is derived live from the dates, "open" means open today, not whatever a stale feed last recorded.
A CFDA number, now called an Assistance Listing number (for example 93.213), identifies a federal grant program. Every opportunity and every award carries one. It is the key that connects an open opportunity to the full history of who has won that program and at what award sizes, which is what makes program-level winnability analysis possible.
The full grants.gov corpus is refreshed daily, and status (open, forecasted, closed, archived) is computed live from the notice dates rather than stored, so a notice that closes tonight reads as closed tomorrow with no lag. That avoids the common problem of stale "posted" records that are no longer actually open.
| GovCon API | Grants.gov | USASpending | Grant-finder tools | |
|---|---|---|---|---|
| What it covers | Open + forecasted + historical NOFOs | Open + forecasted NOFOs | Awards, not opportunities | Curated open opportunities |
| Response format | Clean JSON | JSON / XML (verbose) | JSON | Usually no API |
| Plain-language eligibility filter | Yes | No (raw codes) | n/a | Varies |
| Status derived live | Yes | No (stale "posted") | n/a | Varies |
| Program winnability (who wins, concentration) | Yes | No | Manual, by CFDA | No |
| Realistic award size from history | Yes | No | Derivable manually | No |
Last updated: June 2026