Search Forecasts
search_forecastsSearch agency procurement forecasts to identify upcoming contract opportunities before they're posted, filtering by agency, NAICS, keywords, and estimated value.
Instructions
Search agency procurement forecasts, the only FORWARD-LOOKING layer in this API. These are pre-solicitation: work an agency has planned but hasn't posted an opportunity for yet.
Market Research tool. Use this to find what's coming before it's postable, not what's live now (for live notices, use search_opportunities instead).
source: fco | dhs | hhs (which agency forecast feed)
naics: 2-6 digit code, prefix match (e.g. "5415" matches 541511, 541512...)
is_recompete: true = only forecasts that name a current incumbent (see below)
amount_min/amount_max: USD, matched against the forecast's value range
active_only: default true, excludes already-awarded/cancelled forecasts
keywords: full-text search over title + description
sort_by: est_award_fy | est_solicitation_date | value_high | agency | last_updated_date
Recompete signal: when is_recompete is true, each row's incumbent_piid is the SAME
identifier get_contract and get_vehicle take as piid, chain into either to see who
currently holds it, its value, and when it expires (Pro accounts get this pre-joined
inline as incumbent_award, so check that field before making the extra call).
Direct-line PoC contact fields (poc_email, poc_phone, co_email, sb_specialist_email/phone)
are Pro-gated; poc_name stays visible on every plan.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| naics | No | ||
| state | No | ||
| agency | No | ||
| offset | No | ||
| source | No | ||
| status | No | ||
| sort_by | No | ||
| keywords | No | ||
| set_aside | No | ||
| amount_max | No | ||
| amount_min | No | ||
| sort_order | No | ||
| active_only | No | ||
| est_award_fy | No | ||
| is_recompete | No | ||
| est_award_quarter | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |