Skip to main content
POST
Federal Solicitations
Finds federal agencies currently buying what you sell. Send NAICS codes; get back SAM.gov notices, each with the contracting officer’s published name, email and phone. By default it returns only the early notice types (r/p), where no formal solicitation exists yet and the contracting officer is looking for vendors. Async: POST a request, get a request_id, and poll GET /v1/requests/{request_id} with X-Agent-ID until the job completes. Without the wallet header the poll returns 401 missing_wallet.
Optional memo (≤ 1000 chars) and decisionContext (object) body fields are stored on the receipt. See Audit Trail.

Request

string[]
required
1–20 six-digit NAICS codes, e.g. ["541511"]. See NAICS codes to start from.
string[]
default:"['r', 'p']"
1–9 SAM.gov type codes: r Sources Sought, p Presolicitation, o Solicitation, k Combined Synopsis/Solicitation, s Special Notice, a Award Notice, u Justification, i Intent to Bundle, g Surplus Property.
number
default:"30"
Look-back window on posted date, 1–365.
string[]
Case-insensitive substrings matched against the agency path (max 20), e.g. ["DEPT OF THE ARMY"].
string[]
Title / full-text keywords (max 20).
string
Two-letter place-of-performance state code. Rows with no recorded place of performance are excluded.
string
Set-aside code: SBA, 8A, HZC, SDVOSBC, WOSB, …
boolean
default:"true"
Drop archived notices and notices whose response deadline has passed.
boolean
default:"false"
true keeps only notices whose point of contact has both a name and an email. Otherwise some rows have contact: null.
boolean
default:"true"
Fetch description bodies for the first rows. See the description cap.
number
default:"100"
1–500.
Send the signed payment in the payment-signature header (see Paying with raw HTTP). The SDK sets it for you.

Response

Zero rows is a completed job, not an error: results: [], total_found: 0. data_as_of is the timestamp of the data snapshot; same-day postings appear the next morning.

The description cap

Only a capped number of rows per search get a description; it is null on the rest. Top-level truncated: true means the cap stopped some rows short or the search stopped early; description_fetches and the rows with description: null tell which. Per-row description_truncated means the body was cut at the per-notice character cap.

NAICS codes to start from

Only full 6-digit codes are accepted. For other verticals, use the NAICS lookup on sam.gov.

SDK

See Pricing for costs.