Changelog
Updated
What changed in GovCon API, and when.
Each entry describes the product on the day it was published. Counts, prices, plan names, limits and availability in an older entry are as of that date and may differ today.
For the product as it is today: plans, prices, limits and what each plan includes are on Pricing; what each capability is and which endpoints serve it are on Capabilities; how each thing we build works is on Workflows; sources, coverage and freshness are on Data; the MCP tools are listed on MCP tools.
October 2026
Connect Claude with no install, through six tools
1 Oct 2026
Claude on the web, desktop and mobile connects to GovCon API through a hosted MCP server: add the connector, sign in with your email, and ask. Six tools (resolve, search, get, market, price, contact) reach every dataset, under your plan's rules. The local package, govconapi-mcp 0.3.0, serves the same six, and the 53 single-purpose tools stay one setting away. Connect Claude.
September 2026
Paid plans search every notice we hold
14 Sep 2026
On Developer and Pro, /opportunities/search and /awards/search now search every notice we hold, so an older solicitation turns up by its number and year-over-year comparisons span every year we have. The free trial keeps its 90-day window. Award search now returns the same window block as opportunity search. Search window.
A simpler plan model: CSV export retired, filters freed, trial allowance doubled
12 Sep 2026
Every search filter now works on every plan, including the free trial, and the free trial moves to 50 requests a day. /export.csv and ?format=csv are retired; JSON is the API, and three accounts had used CSV in the product's lifetime. Price benchmarking moves to Pro, and its separate daily quota is gone. An over-large page size now returns the same error everywhere. Pricing.
August 2026
53 tools for AI agents, with the source public
31 Aug 2026
The MCP server spans the full contracting lifecycle: market research, opportunity discovery, capture and teaming, bid and pricing, award and compliance. It reaches the attachment full-text index, so an agent searches inside solicitation documents rather than only the notice fields. MIT source on GitHub, package on PyPI, listed in the official MCP registry. Works with Claude Desktop, Claude Code, Cursor, Zed, and any MCP client. The 53 tools →
Which awards are being challenged, and when the freeze lifts
25 Aug 2026
/api/v1/protests returns GAO bid protests, pending as well as decided: protester, solicitation, agency, outcome, and the date GAO must decide by. 13,778 decided since October 2019, plus 219 still pending (25 August 2026). A pending protest obliges the agency to suspend performance, so ?status=Open&sort=due ranks contested awards by which unfreeze first. Every plan; the per-solicitation lookup is Pro. Federal bid protests, explained →
Which certifications actually win a NAICS market, not just which work is set aside
23 Aug 2026
/api/v1/naics/{code}/competition now carries a socioeconomic block: the share of a market's obligations that went to firms holding each set-aside certification (8(a), SDVOSB, VOSB, WOSB, EDWOSB, HUBZone, small-disadvantaged), plus the small-business share overall. It is winner-based, so it counts a certified firm that won full-and-open work, not only work formally set aside, which is a different question from how a market's contracts were competed. Janitorial services (561720) sends about 36% of its dollars to small business, led by 8(a) at 16% and veteran-owned at 13%. It answers whether your certification actually wins share in a market before you invest in it. Facts only, no score. Included in every plan. NAICS competition reference →
Which contracting offices buy your NAICS, and how each one buys
22 Aug 2026
/api/v1/offices?naics= returns the specific contracting offices that buy a NAICS, ranked, each with its own obligations, average number of offers, single-bidder share, and set-aside share; /api/v1/offices/{office_code} profiles one office, how it buys overall and the NAICS it actually buys. It resolves the buyer below the department, to the office you actually target, and reports competition per office rather than market-wide, because the market-wide average hides it: janitorial services (561720) reads 35% single-bidder market-wide, but by office it runs from 0% (effectively locked) to 100% set-aside and eleven bidders per award (wide open). Facts only, no score. Included in every plan. Contracting Office Intelligence guide →
Is the incumbent beatable? A vulnerability read on any recompeting contract
22 Aug 2026
/api/v1/recompetes/{piid} returns one recompeting contract plus a vulnerability block on the incumbent, composed from their SBA-registered certifications and full FPDS obligation history. Three named, self-evidencing signals, no score: a certification lapse (the incumbent's set-aside certification expires before the contract even ends, so they may be ineligible to recompete under the same set-aside), thin past performance (few distinct federal prime contracts on record), and single-buyer dependence (obligations concentrated in one department, read as entrenchment when that department runs the recompete and as thin roots when it does not). Each reason carries its own evidence text; the conclusion is yours. Pro. How these signals are built, and what we tried first →
Teaming partner search screens every recommended firm for active debarment
22 Aug 2026
/api/v1/partners/search carries an excluded flag on every firm it returns, checked against the active federal exclusion (debarment) list. A firm currently barred from federal awards comes back excluded: true with the details (exclusion type, excluding agency, activation date, FASCSA), so a debarred contractor is flagged rather than surfaced as a clean teaming candidate; excluded: false is a positive clearance, not an absence of data. The check counts only exclusions in force today, so a debarment since lifted or terminated does not flag. The screen runs inside the same call that ranks the shortlist. Pro. Teaming Partner Finder →
SBA small-business status and verified certifications, on any company lookup
20 Aug 2026
/api/v1/dsbs/{uei} and an sba_profile block on entity and company lookups add the SBA layer SAM's self-reported flags don't carry: which NAICS a firm is actually small for (SBA's authoritative determination, exposed as the naics_small filter on entity search) and verified SBA-registered certifications (8(a), HUBZone, WOSB, EDWOSB, VOSB, SDVOSB) with entry and exit dates, so you can tell a current certification from a lapsed one. SAM carries only self-attested business types; this is the SBA-registered certification itself. Across the base, 79,290 firms carry an SBA-registered certification. Pro. SBA profile reference →
The prevailing-wage floor for one occupation, in a single call
13 Aug 2026
/api/v1/wage-determinations/rate-summary returns the labor-cost floor for one occupation as a distribution: the base hourly wage at the 25th, 50th, and 75th percentiles (plus min and max) and the Health & Welfare fringe owed on top, aggregated across every wage determination that carries it. A federal Janitor (SCA 11150) sets a base floor around $16.78/hour plus a $5.55 fringe, across more than a thousand county determinations. On a Service Contract Act bid, that loaded-labor floor drives the price far more than the award ceiling does. The endpoint rolls the county determinations up for you. Key it by occupation code or name, filter by state, DBA or SCA. Included in every plan. Prevailing-wage floor reference →
How contested a NAICS market is, and whether a newcomer can break in
13 Aug 2026
/api/v1/naics/{code}/competition reads the award record for one NAICS and returns the four facts that decide whether a market is worth pursuing: how many bidders an award draws on average and the share that went to a single bidder, the states where the work is performed, the award volume by quarter, and how open the field is, the share of the last year's winners holding only one or two awards. Janitorial Services (561720) is contested but open: awards draw about eight bidders, roughly a third still go to a single bidder, and two thirds of winners hold one or two awards. Security Guard Services (561612) is the opposite shape, awards average under two bidders and most go to a single bidder. Facts only; you read whether a market is contested, concentrated, or open. Pairs with /api/v1/naics/{code} for the whole-market size and concentration. Included in every plan. NAICS competition reference →
Slice opportunities by product-vs-service, PSC family, and several notice types at once
11 Aug 2026
/api/v1/opportunities/search gains three ways to scope a market without listing every code. psc_type=supply returns notices whose primary Product & Service Code is a numeric supply code, psc_type=services the letter-prefixed service codes, a first-pass supply-versus-services split. psc now also takes a trailing-* prefix (psc=70* for the whole 70-series, psc=R* for R-series services) and a comma-separated list. And notice_type accepts several values in one call (notice_type=Solicitation,Presolicitation,Combined Synopsis/Solicitation, matched as OR), so one request covers every biddable stage. Existing single-value queries are unchanged. Included in every plan. Opportunities search reference →
The language contracting officers use for a market, so your profile matches how they search
11 Aug 2026
/api/v1/naics/{code}/positioning reads the solicitation side of a NAICS over the last 24 months of SAM opportunities and returns three things: the phrase vocabulary contracting officers actually put in solicitation titles, the set-aside makeup as a share of notices, and the top soliciting agencies. For 541512 (computer systems design) across 1,900 recent notices, the language runs to support services, information technology, and management system; 57% post full-and-open and 11% as total small-business set-asides; the VA's Technology Acquisition Center solicits the most. Put those phrases in your SAM and DSBS profile and capability statement so the contracting team surfaces you during market research. Pairs with /api/v1/naics/{code} for the award side. Included in every plan. NAICS positioning reference →
Federal spending totals by agency, PSC, and set-aside, free
11 Aug 2026
Three free rollups summarize the last twelve months of federal prime contract obligations from FPDS. /api/v1/spending/by-agency, /api/v1/spending/by-psc, and /api/v1/spending/by-set-aside each return obligated dollars, action count, and distinct recipients per bucket, ranked. The Department of Defense obligated $352.75B across 2.8M actions to 36,569 recipients over the trailing year; small-business set-asides (SBA) moved $27.29B; medical managed-healthcare (PSC Q201) topped the code cut at $38.02B. Included in every plan. Spending rollups reference →
The full Product & Service Code catalog, with award volume, free
11 Aug 2026
Resolve or discover any Product & Service Code without an account. /api/v1/psc/{code} returns a code's name, full description, product-versus-service class, category hierarchy, and total federal award count: D302 is IT and Telecom Systems Development, 5,661 awards. /api/v1/psc/search?q= finds codes by keyword: janitorial returns S201 (Housekeeping, Custodial Janitorial), 29,265 awards, under Facility Related Services. Included in every plan. PSC catalog reference →
Opportunity attachments now tell you what each file is, before you download it
7 Aug 2026
Every file in a solicitation's attachment list comes labelled. /api/v1/opportunities/{notice_id}/attachments returns a files array alongside the plain URLs, each entry carrying the filename, size in bytes, and file type. You can pick the solicitation out of a set, skip a 27 MB drawing package, or filter to the spreadsheets without opening a single file: a notice reads back 19SN1026R0005_Attachment 1_C-SCRM Questionnaire.xlsx at 172,980 bytes next to the Mobile Subscription.pdf. The resource_id on each file is the same key that drives attachment full-text search, so you can target the exact document you want to read inside. The original URL array is unchanged. Included in every plan. Attachments reference →
Wage rates: what each trade and occupation actually pays, not just which determination applies
6 Aug 2026
The wage determination tells you which floor governs a contract; now you can read the floor itself. /api/v1/wage-determinations/rates returns the classification-level rates inside the Davis-Bacon and Service Contract Act determinations, roughly 495,000 rate lines, each trade or occupation with its hourly base wage and fringe, queryable by occupation, state, or WD number. A San Francisco electrician reads $91.25 base plus $48.05 fringe; the same Service Contract Act janitor occupation runs from $9.65 to $22.38 by locality. Each determination's full schedule is also inline on its detail record as a rates block. Included in every plan. SAM.gov wage determination API guide →
July 2026
GSA labor rates: what a role costs per hour, from the awarded record
23 Jul 2026
The labor half of should-cost. /api/v1/pricing/labor-rates returns the awarded ceiling-rate distribution for a labor category as percentiles, from about 262,000 GSA Schedule (CALC) rates, filterable by education, experience, NAICS, and vendor. It also returns the typical year-over-year escalation and a named competitor's rate card, and when a title pools variants it shows how they break down. A Program Manager runs about $183 an hour at the median. The should-cost / IGCE labor input, paired with the contract price benchmark for the full picture. Developer and Pro. GSA labor rates →
Contract price benchmarks: what a contract goes for, and where your bid ranks
23 Jul 2026
Price a federal bid against the record, not a guess. /api/v1/pricing/benchmark returns a NAICS's award-value distribution as percentiles, split by contract pricing type and scopable by set-aside and PSC, so firm-fixed-price and cost-plus never blend into one meaningless average. /api/v1/pricing/position takes your own number and returns its percentile rank plus the real comparable contracts nearest it, to judge whether that rank is justified. Computed from 9.8 million awards; for 541512 competed under 8(a), the median award runs about $4.6M. Developer and Pro. Contract price benchmarks →
Procurement forecasts: what agencies plan to buy, before the solicitation
22 Jul 2026
The forward-looking layer: an agency's own projection of a planned requirement, published months to years before a solicitation posts to SAM.gov. /api/v1/forecasts/search covers more than 12,000 forecasts from the GSA, DHS, and HHS feeds by NAICS, agency, set-aside, place of performance, award year, and value. On a recompete, a Pro incumbent_award block names who holds the contract today and when it expires; over 1,500 forecasts name one. The requirement owner is on every record; direct contact lines are Pro. Federal procurement forecasts →
Search inside the attached documents, not just the notice
16 Jul 2026
The requirements that decide a bid, the clearance level, the incumbent, compliance bars like FedRAMP or CMMC, usually live inside the attached solicitation, not the notice's own fields. Now you can search that text. Pass content= to /api/v1/opportunities/search to match the full text of attached documents (PDF, Word, Excel, PowerPoint, scanned pages read by OCR) across 511,539 files on 210,761 opportunities. It combines with every other filter, so content="active secret clearance" surfaces ordinary-looking contracts, a locksmith solicitation, a fire-suppression job, whose statement of work quietly requires a cleared workforce. Pro plan. Searching inside SAM.gov attachments →
Free CAGE and UEI lookup, no account
16 Jul 2026
Resolve one federal contractor identifier to its current SAM record in the browser, no key required. /cage-code-lookup takes a 5-character CAGE code, /uei-lookup-api takes a 12-character UEI, and both return the legal name, the crossed identifier, registration status and expiration, address, primary NAICS, and certifications. For example CAGE 53YC5 resolves to K & K Construction Supply Inc. Full NAICS/PSC arrays, batch resolution, and the Pro FPDS/FFATA activity are a step up to the API.
Wage determinations: the Davis-Bacon, SCA, and CBA rates a contract is bound to
16 Jul 2026
Federal construction and service contracts carry a legally binding wage floor: the Davis-Bacon, Service Contract Act, or collective-bargaining determination that sets minimum hourly and fringe rates by county and job type. /api/v1/wage-determinations/search queries all 90,033 of them by type, state, county, WD number, or construction type; /api/v1/wage-determinations/by-location?state=CA&county=Alameda returns every active determination covering a jurisdiction, the statewide ones included. Collective-bargaining determinations carry a cba block with contractor, union, and term, so a section 4(c) carryover is visible at a glance. Included in every plan. SAM.gov wage determination API guide →
Contract vehicles: the IDIQs, GWACs, and schedules behind the task orders
15 Jul 2026
Most federal services work is a task order placed against a vehicle the winner already holds. Now you can see those vehicles. /api/v1/vehicles/search finds the IDIQs, GWACs, FSS schedules, BPAs, and BOAs by holder, agency, NAICS, or type across 429,003 vehicles; /api/v1/vehicles/{piid}/holders shows who else holds a multiple-award vehicle; and /api/v1/contracts/{piid}/vehicle resolves any order to its parent, for example to SEWP V, NASA's $20B government-wide acquisition contract. Company profiles gain a vehicles_held view (Booz Allen holds 498). Base data in every plan; the holder list and portfolio are Pro. Contract vehicles API reference →
Market Pulse: federal market intelligence by NAICS
10 Jul 2026
See the shape of a federal market before you chase it. /api/v1/naics/{code} returns a market's obligated size, active competitor count, and set-aside flow; /api/v1/naics/leaderboard/{board} ranks markets by size, competition, or set-aside leverage. For example 541512 (Computer Systems Design) reads $29.2B obligated across 1,827 vendors, 10.2% set aside. Across 1,083 markets and $667.6B tracked, the biggest are commercial and institutional building construction ($56.0B) and aircraft manufacturing ($51.7B). Included in every plan. Explore Market Pulse →
Company contact resolver: the real decision-maker, registration agents filtered out
10 Jul 2026
Find the named decision-maker behind a vendor, not the third-party agent who filed their SAM registration. /api/v1/company-contact/{uei} returns the real contact (name, title, city, state) after filtering out the registration agents that fill the point-of-contact slots on a large share of entities. EBH Fitness returns Steve Howard, Owner. Where only an agent is on file it says so and names them: The Sherwin-Williams Company returns status: agent_only and flags John Rybicki, listed as the registration contact on 2,594 unrelated firms. SAM carries no email or phone, so names and titles only. Factual, deterministic. Pro plan.
June 2026
Agency concentration on company profiles
26 Jun 2026
/api/v1/companies/{uei} now returns fpds_top_agency_share_pct: the share of a company's prime-contract obligations (FY2025 onward, from FPDS) flowing to its single largest awarding department. The comprehensive read of single-customer dependence, where the existing top_agency_share_pct sees only the sparse subset of contracts that carry a SAM Award Notice. For example GET /api/v1/companies/HNN4F9JZWDY8 (Palantir USG Inc) reads 94.5, nearly all of its FY2025+ obligations running through one department. Pro plan; silently omitted on non-Pro keys.
Agency abbreviations in contact lookup
26 Jun 2026
/api/v1/contacts/lookup now resolves common agency abbreviations and codes in the agency filter to the agency name as stored, so agency=DLA returns Defense Logistics Agency contacts, agency=VA Veterans Affairs, and agency=GSA General Services Administration. Pro plan.
Every data source on one page, and how current it is
26 Jun 2026
Every dataset we serve now has one page, /data, that lays out what each source is, its coverage window, the upstream system and its publishing cadence, and the exact current-as-of date, read live from GET /api/v1/status rather than hand-maintained. Where the most recent weeks of a source look thin, it notes that the upstream system has not reported those records yet, not that we are behind. The same numbers are available programmatically on /api/v1/status. See the data sources →
Recompete Watchlist API
19 Jun 2026
See the contracts in your market that must recompete before they hit SAM. /api/v1/recompetes takes a market (NAICS, agency, set-aside, geography, value) and a window you choose, and returns the contracts entering their recompete window with the bid/no-bid facts: the incumbent, the value, the option runway, whether it was genuinely competed, and named subcontractors. Plus a live feed of sources-sought and pre-solicitation notices with the contracting officer's contact, to get on the radar before the RFP. Factual, not scored. Pro plan. Recompete Watchlist guide →
Teaming Partner Finder API
19 Jun 2026
Find federal contractors with proven past performance, not just who is registered. /api/v1/partners/search takes a NAICS, awarding agency, place-of-performance state, or set-aside and returns the firms that have actually won matching prime contracts, ranked by obligated dollars, each with its socioeconomic status, SAM registration, and named points of contact. The only contractor endpoint that filters by awarding agency and returns who to call. Factual, not scored. Pro plan. Teaming Partner Finder guide →
Report a wrong response from the response
5 Jun 2026
Every response under /api/v1/* carries a top-level _report_url. Open it in a browser and you land on a single-textarea form pre-filled with the exact call you just made. Type what you expected versus what you got, hit Send, and it emails the team directly, no portal login. The link is bound to the calling customer and expires after 24 hours.
Federal prime contracts (FPDS) API
1 Jun 2026
Every federal prime contract transaction as clean JSON: base award and every modification, from the federal procurement system of record (FPDS), contract types A, B, C, and D. Three endpoints: /api/v1/contracts/search (by recipient UEI, PIID, agency, NAICS, award type, action date, obligation), /api/v1/contracts/{piid} (latest action plus a roll-up across every action under the PIID), and /api/v1/contracts/{piid}/modifications (the full modification trail). Coverage is FY2025 + FY2026: 9 million+ transactions, 8 million+ distinct contracts, 100,000+ recipients, refreshed daily. Contracts API guide →
FPDS contract context on the rest of the API
1 Jun 2026
On endpoints you're already calling, Pro responses now include FPDS prime contract context inline alongside the subaward enrichment shipped previously. Same pattern, parallel data layer. A few concrete examples from prod, same keys, same auth:
GET /api/v1/companies/CKV2L9GZKJK3(Deloitte Consulting LLP) now returnsfpds_obligated_totalof $4.18B acrossfpds_transaction_count2,808 transactions onfpds_distinct_contracts908 prime contracts, plusfpds_top_naicsandfpds_top_agencies. The full federal activity picture in one call, alongside the existing SAM Award Notice slice.GET /api/v1/entities/{uei}andGET /api/v1/entities/by-cage/{cage}gain the samefpds_obligated_totaland date-bound activity fields on the entity response.GET /api/v1/vendor-risk/{uei}gains acontract_exposureblock alongside the existingsubaward_exposure: obligation flow, top awarding agencies, action-date bounds. Compliance teams read both sides of the supply-chain blast radius in one screen.GET /api/v1/exclusions/{uei_sam}gains arecent_contract_actionsblock: is this excluded UEI still receiving direct prime contract obligations? Combined withrecent_sub_payments, the compliance question goes from "are they debarred?" to "is anyone in the federal supply chain still paying them, directly or indirectly?" in one call.
All blocks are silently omitted on non-Pro keys; existing integrations keep working unchanged. _sources composes the underlying sources whenever the enrichment fires. Contracts API guide →
Dense subaward enrichment on contract detail
1 Jun 2026
/api/v1/contracts/{piid} returns a subaward_rollup block on Pro keys summarizing the FFATA subaward footprint flowing from this prime contract: sub count, total subcontracted, share of the prime obligation, distinct sub-vendors, first and last dates, and the top 5 named sub-vendors. The PIID join is dense: within FY2025+ roughly 88% of subaward filings match a prime row, and 98% of in-scope contracts with subaward activity get a populated block. _sources extends to ["usaspending_fpds", "usaspending_ffata"] when the block fires.
Source attribution on every response
1 Jun 2026
Every response under /api/v1/* now carries a top-level _sources array naming where the data came from: sam_opportunities, sam_entities, sam_exclusions, usaspending_fpds, usaspending_ffata, derived_duns_uei_crosswalk, derived_vendor_risk. Endpoints that compose multiple sources list each one. Customers reading _sources know exactly what to verify upstream when something looks off, without reading the per-endpoint documentation.
Money filter aliases across the obligation-flow cluster
1 Jun 2026
/contracts/search, /awards/search, and /subawards/search accept both amount_min / amount_max and value_min / value_max as the same filter. /opportunities/search accepts both forms too. Cross-endpoint scripts no longer need to remember which name lives on which surface. Sending both forms at once returns a 400.
May 2026
Federal subaward (FFATA) data
31 May 2026
Every federal prime contractor over the FFATA threshold must report each sub-vendor they pay more than $30K under a federal contract. That public filing is now queryable as clean JSON: map any prime contractor's supply chain, see the real federal revenue of small businesses (sub income is often the larger half), or pull every sub on one prime contract. Four new endpoints: /api/v1/subawards/search (filter by prime UEI, sub UEI, prime PIID, agency, NAICS, sub name), /api/v1/subawards/{report_id}, /api/v1/companies/{uei}/subawards (subs paid by a prime, with summary leaderboard), /api/v1/companies/{uei}/prime-relationships (primes that paid a sub, with top-10 paying-primes leaderboard). Coverage today is FY2025 + FY2026 (October 2024 onward), refreshed daily from USAspending with ~2-day source lag. Pro plan. Subawards guide →
Subaward context on the rest of the API
31 May 2026
On endpoints you're already calling, Pro responses now include subaward context inline so you don't need a second round-trip. A few concrete examples from prod, same keys, same auth:
GET /api/v1/awards/N0001918C1037(Navy IDIQ to Northrop Grumman, $49.67M) now returns asubaward_rollupshowing 570 downstream sub-payments to 136 distinct sub-vendors totaling $226.7M, plus the named top 5 (Lockheed Martin $22.32M, Triumph Actuation $19.54M, …). One call instead of impossible.GET /api/v1/companies/E7XWKERHVVD9(TVAR Solutions, LLC) used to show $247K won as a prime. The same call now addssub_revenue_totalof $4.24B (Raytheon paid them $4.20B as a sub) and aprime_revenue_shareof 0.0001. The prime-only view was missing 99.99% of their federal revenue. Common case for SMBs.GET /api/v1/exclusions/SMFQMVEAJVM9(HM 2 Mechanical, NASA Voluntary Exclusion since 2023-08-02) used to return just the exclusion record. The same call now addsrecent_sub_paymentsshowing $158K received from Amentum Spaceport LLC as recently as 2025-08-19, two years into the exclusion. The compliance question goes from "are they debarred?" to "are they still being paid?" in one call./vendor-risk/{uei}gains a top-levelsubaward_exposureblock (descriptive only, not part of triage) so compliance teams read supply-chain blast radius alongside the seven existing signals./entities/{uei}and/entities/by-cage/{cage}gainsub_revenue_total+top_paying_primesso vendor onboarding sees federal scale alongside the SAM registration.
All blocks are silently omitted on non-Pro keys; existing integrations keep working unchanged. Subawards guide →
Search window visible in every response
26 May 2026
/opportunities/search returns a top-level window block on every response: the plan window in days, the earliest searchable date, a clamped flag, and a ready-to-display reason string. Surface "showing results from the last 24 months" directly in your UI without computing it client-side, and distinguish a request with no date from one whose date fell outside the window. active_only is echoed in filters_applied when set, so a client can confirm the filter applied.
Consistent parameters across endpoints
26 May 2026
A round of cross-endpoint consistency to make it easier to share code across calls. /awards/search accepts date_from / date_to, mirroring opportunities. /companies/{uei}/awards accepts sort_by + sort_order, with ascending order supported. Company and entity name searches accept queries up to 250 characters for long pasted legal names. value_min and value_max on opportunities accept 0, matching amount_min / amount_max on awards. List endpoints expose the row array under both data and results, so a single client can read every list endpoint with one code path. Invalid sort fields return a clear 400 with the list of valid options. /api/v1/federal-hierarchy accepts requests with or without the trailing slash.
Clearer guidance on UEI exclusion checks
26 May 2026
The 404 body on GET /api/v1/exclusions/{uei} now spells out the FAR 9.404 screening gap: ~80% of SAM exclusions are individuals or entities with no UEI, so a clean UEI lookup is not a full screen. The body points callers at /exclusions/search?name=<legal_name> to complete the check. Same guidance as the docs, surfaced inline where the decision happens.
Exact response deadlines and accurate posting dates
26 May 2026
Response deadlines now include the exact closing time, not just the day, whenever SAM provides one, so you can see and sort by when a solicitation actually closes. The field stays a full UTC timestamp (ISO 8601 with offset) you can convert to any timezone; notices that list only a date are returned as that date. Posting dates now match SAM.gov's official calendar date for every notice, including those published late in the day.
Faster search at every plan tier
26 May 2026
To keep response times steady as the dataset grew, search endpoints (/opportunities/search, /awards/search, /export.csv) now operate within a per-plan window: Free 90 days, Developer 12 months, Pro 24 months. It's a guardrail against the handful of scripts pulling the full database, so normal workflows aren't affected. Older date filters quietly clamp to the window (no 400s, no breaking changes). Lookups by ID (single notice, full company award history, entity profiles) keep returning records at any age. Check your effective window in GET /api/v1/me. Details → Need a wider window? Email us.
Expanded FY2025 coverage
18 May 2026
The opportunities index now spans FY2025 (October 2024) onward in full detail. 10,542 new federal contractor profiles with award history are available to /companies and /vendor-risk callers. The /api/v1/stats response now includes a coverage field documenting the temporal scope; the same is noted at the top of /api-guide.
Contacts API
15 May 2026
GET /api/v1/contacts/lookup resolves federal contracting officers by name, email, or agency. Up to 5 matches per query with role, current agency, location, and last-seen date. Pro tier. Details →
Free federal contractor search
15 May 2026
/federal-contractor-search opens the 873K SAM entity registry as a no-account public lookup. Search by name, filter by certifications, see registration status. Top 25 results per query, with a clean upgrade path to the full API.
Search experience upgrades
15 May 2026
Six search and list endpoints now accept ?fields= to return only the columns you need, dropping payload size 80-95% when you only care about a few columns. ?sort_by=relevance ranks keyword hits by match quality. ?active_only=true filters to currently-open notices in one parameter. Bad query parameters return 400 with valid alternatives instead of silently dropping. Response shaping →
Enterprise tier
9 May 2026
/enterprise for high-volume customers above Pro: bulk rate limits, SLA, dedicated support, custom contracts, and direct slack/email line. Form-based inquiry instead of self-serve checkout.
LLM-ingestible documentation
9 May 2026
/llms.txt and /docs/all.md publish the full API reference as single-file plain-text bundles for Claude Code, Cursor, ChatGPT, and any AI coding tool to ingest in one shot. Vendor your own copy in .cursor/rules or project context.
Capabilities tour
1 May 2026
Single page covering all 12 capabilities the API exposes: opportunities, awards, 873K SAM entities, exclusions, vendor risk, contracting-officer contacts, MCP, attachments. Each capability shows the tier required, the endpoint, a working curl example, and concrete use cases. Browse capabilities →
SAM entity registry
1 May 2026
Companies endpoint returns a profile for any of 873,000 SAM-registered firms: legal name, certifications, full NAICS list, registration expiration, address, POC, and (when applicable) award history in a single call. Response shape →
Four new SAM entity endpoints
1 May 2026
GET /api/v1/entities/{uei} for single entity lookup, GET /api/v1/entities/by-cage/{cage} for the DoD legacy bridge, GET /api/v1/entities/search with NAICS × state × certification filters, GET /api/v1/entities/expiring for renewal radar.
April 2026
Full-length SOW descriptions
27 Apr 2026
Notice descriptions return uncapped, including SOWs and amendments that run tens of thousands of characters. Suitable as input to AI summarization, semantic search, or full-text indexing pipelines.
Vendor Risk Intelligence
25 Apr 2026
Seven-signal screening per UEI: exclusion status, address-cluster, name-variant cluster, individual exclusions at address, coordinated-wave membership, last-award-to-debarment timing, and dual CAGE codes. Returns a triage verdict and the underlying signal records. Single GET and bulk POST (up to 100 UEIs per request). How it works →
Pro Company Intelligence
23 Apr 2026
/companies/{uei} returns total awards, top agencies, top NAICS, and recent activity. /peers ranks similar firms by NAICS and agency overlap. /search by name with pagination.
Notice attachments in the API
23 Apr 2026
SOWs, RFP documents, and amendments are indexed alongside the notice description. Filter has_attachments=true on /opportunities/search to focus on notices with docs.
MCP for Claude, Cursor, and any MCP client
14 Apr 2026
Dedicated page documenting the MCP package for Claude Desktop, Claude Code, Cursor, and any other MCP-compatible client. Interactive agency name crosswalk at /agency-crosswalk with 1,397 mappings between agency name variants.
Pro launched at $39/mo
11 Apr 2026
Includes everything in Developer plus Companies API, Federal Contractor Search, Vendor Risk Intelligence, Renewal Radar, and unlimited access to GovCon Contacts. View pricing →
Delta sync endpoint
6 Apr 2026
GET /api/v1/opportunities/delta?since=YYYY-MM-DDTHH:MM:SSZ returns only records created or modified since the given timestamp. Lets you keep an internal index in sync without re-downloading.
Awards search endpoint
5 Apr 2026
GET /api/v1/awards/search and GET /api/v1/awards/{award_number}. Filter by NAICS, agency, amount, date, and place of performance. Awards guide →
March 2026
Responses compress on the wire
23 Mar 2026
Every JSON response under /api/v1/* is gzip-compressed when your client sends Accept-Encoding: gzip, which most HTTP libraries do by default. Large result sets are mostly repeated field names, so they compress hard, and a thousand-row page moves a small fraction of its raw size over the connection. Nothing changes in your code: the payload is decoded before your parser sees it. Responses under a kilobyte are sent uncompressed.
Bracket a search by when the work closes
20 Mar 2026
due_after=YYYY-MM-DD puts a lower bound on the response deadline, alongside due_before. The pair brackets a bidding window: due_after=2026-03-25&due_before=2026-04-15 returns only what closes inside those three weeks, which is the list a weekly pipeline review actually needs. Pair it with active_only=true to drop what is already archived, and with naics to hold it to your market. Both bounds are inclusive.
Keyword search reads the whole notice, not just the title
11 Mar 2026
keywords= matches the notice title, the agency name, and the full description text as one full-text search. A solicitation titled Base Operations Support comes back for keywords=fluorine-free foam when the requirement sits in the body, which is where the specifics usually live. Hyphenated terms match as written. A solicitation number still resolves exactly through the same parameter, so one filter looks up a known number and explores a market.
February 2026
Federal exclusions: who is barred from award
20 Feb 2026
/api/v1/exclusions/search queries SAM's exclusion list by entity or person name, UEI, CAGE code, excluding agency, state, classification, or exclusion type, and /api/v1/exclusions/{uei_sam} returns a single record. active_only defaults to true, so you get the exclusions in force now. Most of the list is individuals, who carry no UEI, which makes name search the real screen. Included in every plan.
Which federal buyers are accelerating
10 Feb 2026
/agencies now carries the numbers that make a buyer list actionable: how many notices each agency posted in the last week against the last month, how many of its solicitations are open for bidding right now, the median award size, and the set-aside breakdown. Read top to bottom, it tells you which agencies are picking up pace and which route work through the set-asides you hold. Public page, no key.
Tell us what a page is missing, from the page
6 Feb 2026
Press Ctrl+Enter (Cmd+Enter on a Mac) on pages across the site and a prompt opens for a note: what you came for, what is missing, what reads wrong. Any text you had selected travels with it, so a number that looks off or a thin parameter description arrives with its context attached. No account, no ticket queue, no portal login. It reaches the people who maintain the page.
January 2026
A 429 tells you which ceiling you hit
16 Jan 2026
When a key runs past its rate limit, the 429 body names the ceiling it hit and the window that ceiling covers. A free key reads back its daily allowance and the hourly limit a paid plan carries; a paid key reads back its hourly number. Your client can log the exact limit, back off against the right window, and show an accurate message to whoever is waiting on the call, without hardcoding our plan table.
December 2025
The data patterns that decide whether your filter works
29 Dec 2025
The API guide documents the shape of the source data, not just the parameter list. The active field reads Yes on every notice, so response_deadline is what tells you whether something is open. Award amount and awardee populate on Award Notice records only. Combined Synopsis/Solicitation is its own notice type and a large share of biddable work, so notice_type=Solicitation alone leaves it out. Amendments repeat a solicitation number under new notice ids.
Pull one procurement by its solicitation number
3 Dec 2025
solicitation_number= on /api/v1/opportunities/search matches a solicitation number exactly, case-insensitively, so a number handed to you in an email or lifted off a SAM page resolves in one call. Because every stage and every amendment carries the same solicitation number under a different notice id, what comes back is the trail of that procurement, ordered by posting date, rather than one isolated record.
Filter by Product and Service Code
1 Dec 2025
psc= filters /api/v1/opportunities/search by the Product and Service Code the buying office assigned, alongside naics=. The two answer different questions: NAICS is the industry a contractor sits in, PSC is what is being bought, and plenty of markets are only clean on one of them. Both codes come back on every row, so you can see which one a notice carries before you commit a filter to it.
November 2025
The full API reference, plus a spec your tools can read
22 Nov 2025
/api-guide documents every endpoint, parameter, and response field with curl examples you can paste. The same surface is published as a machine-readable OpenAPI document at /openapi.json and an interactive explorer at /docs, so you can generate a typed client or import the API into Postman or Insomnia instead of hand-writing request code. All three describe the same live API.
Four guides to what SAM.gov's own API does
21 Nov 2025
Reference pages on the parts of SAM.gov that eat integration time: the API as a whole, the request ceilings and how they are counted, the field shapes and the codes behind them, and the distance between what the feed returns and what a bid team needs. Public, no key.
The notice text itself, on every record
12 Nov 2025
SAM's own API hands you a link to a notice description, not the description. Every record in the index carries description_text resolved: the notice body as published, or an explicit NO_DESCRIPTION_AVAILABLE marker where SAM publishes none. On 12 November 2025 that is 34,458 notices with real text across 52,491 records. Feed the field straight into a summarizer or a search index, with no per-notice round trip.
Which federal buyers are posting, without a key
7 Nov 2025
/agencies is a public page built from the live index: the federal buyers posting the most contract notices, what each posted over the last week and the last month, and how many of their solicitations are open. It is generated when you load it, so the numbers are what the index holds at that moment. No key, no account, and the page links through to the API for the same data as JSON.
October 2025
The day's federal contract activity, in public
23 Oct 2025
/daily publishes what the market did that day: notices posted, what is open to bid, the most active buying agencies, the largest awards with their winners, the notice type mix, and the small-business set-aside share. No key and no account. It reads from the same index the API serves, rendered for a browser, so someone who will never write a curl command can still see what moved.
Scope a search the way you scope a market
17 Oct 2025
The search endpoint takes the filters a capture team actually works in, combinable in one call: naics, agency, state, set_aside, notice_type, and bounds on posted and due dates. state takes either the two-letter code or the full state name. keywords runs across title and agency and also matches a solicitation number, so tracking one procurement and scanning a market use the same parameter.
Ask a key what it can do
11 Oct 2025
GET /api/v1/me returns the plan attached to the key you are calling with, and the account it was issued to. An internal tool or a dashboard can gate its own features off that response instead of hardcoding which key belongs to which tier, and a support question starts from what the key actually is rather than a guess about which one is in the config.
The whole notice, not a summary of it
9 Oct 2025
Search and single-notice responses return the complete structured record: award number, winner, amount, and date where the notice is an award; primary and secondary contacts with titles, emails, and phones; set-aside type and description; the full place-of-performance address; solicitation number; and the archive and link fields. Nothing is held back for a follow-up call, so one search response is enough to route and score a notice.
Keys arrive by email, on a 14 day trial
8 Oct 2025
The free trial is 14 days at 25 requests a day. Enter an address on the site and the key is issued immediately and sent to that inbox; the response itself carries no key, so a key never sits in a browser history or a screenshot.
September 2025
The API opens
25 Sep 2025
Email an address, get a key back, and search SAM.gov contract opportunities as JSON. No SAM.gov account, no entity registration, no approval queue between you and the data. Published with an OpenAPI spec on the first day, so a typed client or a Postman import needs no hand-written request code.
Have a feature request or hit a missing piece? We read every email sent to [email protected].