GovCon API

Changelog

New endpoints, expanded coverage, and product launches. What shipped, when.

June 2026

Report a wrong response from the response

Every response under /api/v1/* now 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 (method, path, query, your email, request timestamp). Type what you expected versus what you actually got, hit Send, and the report emails the team directly. No portal login, no support-form hop. The signed link is valid for 24 hours. The token is bound to the customer who generated it, so don't paste a response containing this field into a public Slack or issue tracker.

Federal prime contracts (FPDS) API

Every federal prime contract transaction is now queryable as clean JSON: base award and every modification, sourced from the federal procurement system of record (FPDS) for contract types A, B, C, and D. Three new endpoints: /api/v1/contracts/search (filter by recipient UEI, parent UEI, PIID, parent PIID, agency, NAICS, award type, action date, obligation amount), /api/v1/contracts/{piid} (latest action plus a transaction roll-up across every action under the PIID), and /api/v1/contracts/{piid}/modifications (full ASC-ordered modification trail). Coverage today is FY2025 + FY2026 (action dates from October 2024 onward); 9 million+ transactions, 8 million+ distinct contracts, 100,000+ recipients. Refreshed daily. Contracts API guide →

FPDS contract context on the rest of the API

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 returns fpds_obligated_total of $4.18B across fpds_transaction_count 2,808 transactions on fpds_distinct_contracts 908 prime contracts, plus fpds_top_naics and fpds_top_agencies. The full federal activity picture in one call, alongside the existing SAM Award Notice slice.
  • GET /api/v1/entities/{uei} and GET /api/v1/entities/by-cage/{cage} gain the same fpds_obligated_total and date-bound activity fields on the entity response.
  • GET /api/v1/vendor-risk/{uei} gains a contract_exposure block alongside the existing subaward_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 a recent_contract_actions block: is this excluded UEI still receiving direct prime contract obligations? Combined with recent_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

The /api/v1/contracts/{piid} detail endpoint returns a subaward_rollup sibling 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-vendor count, first and last subaward dates, plus the top 5 named sub-vendors. The PIID join through the prime contract layer is dense: within the FY2025+ window roughly 88% of subaward filings match a prime contract row, and 98% of in-scope contracts that have subaward activity see a populated block. _sources extends to ["usaspending_fpds", "usaspending_ffata"] when the block fires. The PIID-join surface for subaward enrichment now lives on /contracts/{piid}; the SAM Award Notice surface at /awards/{piid} continues to serve its 16-field shape with CO contact field for integrations that depend on it.

Source attribution on every response

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

/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

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

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 a subaward_rollup showing 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 adds sub_revenue_total of $4.24B (Raytheon paid them $4.20B as a sub) and a prime_revenue_share of 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 adds recent_sub_payments showing $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-level subaward_exposure block (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} gain sub_revenue_total + top_paying_primes so 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

/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

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

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

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

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

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.

Enterprise tier

/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.

Contacts API

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 →

LLM-ingestible documentation

/docs/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.

Free federal contractor search

/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

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 →

Capabilities tour

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 →

Late April 2026

SAM entity registry

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

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.

Vendor Risk Intelligence

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

/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

SOWs, RFP documents, and amendments are indexed alongside the notice description. Filter has_attachments=true on /opportunities/search to focus on notices with docs.

Full-length SOW descriptions

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.

Mid April 2026

MCP for Claude, Cursor, and any MCP client

Dedicated page documenting the MCP package for Claude Desktop, Claude Code, Cursor, ChatGPT, 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

Includes everything in Developer plus Companies API, Federal Contractor Search, Vendor Risk Intelligence, Renewal Radar, and unlimited access to GovCon Contacts. View pricing →

Early April 2026

Delta sync endpoint

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

GET /api/v1/awards/search and GET /api/v1/awards/{award_number}. Filter by NAICS, agency, amount, date, and place of performance. Awards guide →

Have a feature request or hit a missing piece?

We read every email.

Email [email protected]