---
title: "SAM.gov Contract Opportunities Search"
method: POST
path: "/us/sam/opportunities-search/v1"
tags: ["United States", "SAM.gov"]
---

# SAM.gov Contract Opportunities Search

`POST /us/sam/opportunities-search/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/us/sam/opportunities-search/v1`
- Auth: HTTP bearer

Search every contract opportunity US federal agencies list as active on SAM.gov: solicitations, combined synopsis/solicitations, presolicitations, sources sought, special notices, justifications and award notices, about 75,000. Filter by words in the title, text, awardee or solicitation number, kind of notice, solicitation number, department, agency, NAICS code, product service code, set-aside, state of the place of performance or of the contracting office, posting date and response deadline; order by posting date, deadline or award amount. Pages of up to 50. Served by Croma (`as_of` says how current the data is), brought up to date daily.

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `query` string: Optional words to find in the notice's title, description, awardee or solicitation number, e.g. `cybersecurity`, `janitorial services`. Every word must appear.
  - `type` '' | 'solicitation' | 'combined_synopsis_solicitation' | 'presolicitation' | 'sources_sought' | 'special_notice' | 'award_notice' | 'justification' | 'justification_and_approval' | 'modification' | 'sale_of_surplus_property' | 'consolidate_bundle': Optional kind of notice: `solicitation`, `combined_synopsis_solicitation`, `presolicitation`, `sources_sought`, `special_notice`, `award_notice`, `justification`, `justification_and_approval`, `modification`, `sale_of_surplus_property` or `consolidate_bundle`.
  - `solicitation_number` string: Optional solicitation number, exactly as the agency wrote it, e.g. `W912HN25B0012`. Case does not matter.
  - `department` string: Optional department or independent agency, exactly as SAM.gov writes it, e.g. `DEPT OF DEFENSE`, `VETERANS AFFAIRS, DEPARTMENT OF`, `GENERAL SERVICES ADMINISTRATION`. Case does not matter.
  - `sub_tier` string: Optional agency within the department, exactly as SAM.gov writes it, e.g. `DEPT OF THE ARMY`, `DEFENSE LOGISTICS AGENCY`, `FOREST SERVICE`. Case does not matter.
  - `naics_code` string: Optional NAICS code, two to six digits; a shorter code matches every code that starts with it, e.g. `23` for all of construction, `541512` for computer systems design.
  - `classification_code` string: Optional product service code (PSC), one to four characters; a shorter code matches every code that starts with it, e.g. `D` for IT services, `D302`, `7030`.
  - `set_aside` string: Optional set-aside code as SAM.gov writes it, e.g. `SBA` (total small business), `SBP` (partial), `SDVOSBC`, `WOSB`, `8A`, `HZC`, or `NONE` for notices that state no set-aside.
  - `performance_state` string: Optional two-letter state of the place of performance, e.g. `VA`, `TX`.
  - `office_state` string: Optional two-letter state of the contracting office, e.g. `PA`, `OH`.
  - `from_date` string, date: Optional date filter in yyyy-mm-dd format.
  - `to_date` string, date: Optional date filter in yyyy-mm-dd format.
  - `deadline_from` string, date: Optional date filter in yyyy-mm-dd format.
  - `deadline_to` string, date: Optional date filter in yyyy-mm-dd format.
  - `sort` 'recent' | 'deadline' | 'amount_desc': Order of the results: `recent` (newest posting first, the default), `deadline` (soonest response deadline first, notices with no deadline last) or `amount_desc` (largest award first).
  - `page` integer: 1-based page number for paginated results.
  - `per_page` integer: Resultados por página (1-50).

## Response `200`

Successful response

- SamOpportunitiesSearchResponse
  - `data` SamOpportunitiesSearchData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `query` string, required
    - `type` string, nullable, required
    - `solicitation_number` string, nullable, required
    - `department` string, nullable, required
    - `sub_tier` string, nullable, required
    - `naics_code` string, nullable, required
    - `classification_code` string, nullable, required
    - `set_aside` string, nullable, required
    - `performance_state` string, nullable, required
    - `office_state` string, nullable, required
    - `from_date` string, nullable, required
    - `to_date` string, nullable, required
    - `deadline_from` string, nullable, required
    - `deadline_to` string, nullable, required
    - `sort` string, required
    - `total` number, required: Notices matching the filters, across every page, counted up to 1000.
    - `total_is_exact` boolean, required: False when more than 1000 match: `total` is then 1000, and the pages go on.
    - `page` number, required
    - `per_page` number, required
    - `total_pages` number, required: Pages over `total`; there are more when `total_is_exact` is false.
    - `count` number, required
    - `opportunities` object[], required
      - `id` string, required: SAM.gov's id for the notice, 32 hex characters, stable across the notice's updates. The key.
      - `title` string, required
      - `solicitation_number` string, nullable, required: The solicitation number the agency assigned, upper-cased, e.g. `W912HN25B0012`. Null on a notice that has none yet.
      - `type` string, required: The kind of notice as SAM.gov words it: `Solicitation`, `Combined Synopsis/Solicitation`, `Presolicitation`, `Sources Sought`, `Special Notice`, `Award Notice`, `Justification`, `Justification and Approval (J&A)`, `Modification/Amendment/Cancel`, `Sale of Surplus Property` or `Consolidate/(Substantially) Bundle`.
      - `base_type` string, nullable, required: The kind of notice it was first posted as. `type` is what it is now: a solicitation that was awarded carries `Award Notice` there and `Solicitation` here.
      - `department` string, nullable, required: The department or independent agency, as SAM.gov writes it, e.g. `DEPT OF DEFENSE`, `VETERANS AFFAIRS, DEPARTMENT OF`.
      - `department_code` string, nullable, required: The department's three-digit CGAC code, e.g. `097`.
      - `sub_tier` string, nullable, required: The agency within the department, as SAM.gov writes it, e.g. `DEPT OF THE ARMY`, `DEFENSE LOGISTICS AGENCY`, `FOREST SERVICE`.
      - `agency_code` string, nullable, required: The agency's FPDS code, e.g. `2100`, `97AS`.
      - `office` string, nullable, required: The contracting office, as the notice names it.
      - `office_code` string, nullable, required: The office's activity address code (AAC).
      - `organization_type` string, nullable, required: The level of the organization that posted: `OFFICE`, `SUB COMMAND`, `MAJOR COMMAND`, `AGENCY` or `DEPARTMENT`.
      - `posted_date` string, required: When the notice was posted (yyyy-mm-dd).
      - `posted_at` string, nullable, required: When the notice was posted, to the second, as SAM.gov writes it (`yyyy-mm-dd hh:mm:ss`, no time zone stated).
      - `response_deadline` string, nullable, required: When responses are due, as SAM.gov writes it: usually an ISO 8601 timestamp with the office's UTC offset (`2026-10-20T12:00:00-04:00`), sometimes a date alone.
      - `response_deadline_date` string, nullable, required: The day responses are due (yyyy-mm-dd); null when the notice sets no deadline.
      - `archive_type` string, nullable, required: How the notice archives: `auto15` or `auto30` (that many days after the deadline), `autocustom` (on `archive_date`) or `manual`.
      - `archive_date` string, nullable, required: When the notice is set to archive (yyyy-mm-dd).
      - `set_aside_code` string, nullable, required: The set-aside code, upper-cased: `SBA` (total small business), `SBP` (partial), `SDVOSBC`, `WOSB`, `EDWOSB`, `8A`, `8AN`, `HZC`, `HZS`, `VSA`, `ISBEE`, `BICIV` and so on; `NONE` when the notice states there is none; null when it says nothing.
      - `set_aside` string, nullable, required: The set-aside spelled out, as SAM.gov writes it, e.g. `Small Business Set Aside - Total`.
      - `naics_code` string, nullable, required: The NAICS code of the work, usually six digits, e.g. `541512`.
      - `classification_code` string, nullable, required: The product service code (PSC), e.g. `D302`, `7030`, `Y1AA`.
      - `performance_street` string, nullable, required: The place of performance, when the notice states one.
      - `performance_city` string, nullable, required
      - `performance_state` string, nullable, required: The two-letter state of the place of performance.
      - `performance_zip` string, nullable, required
      - `performance_country` string, nullable, required: A three-letter country code, e.g. `USA`, `DEU`, `JPN`.
      - `award_number` string, nullable, required: For an award: the contract or order number.
      - `award_date` string, nullable, required: For an award: when it was made (yyyy-mm-dd).
      - `award_amount` number, nullable, required: For an award: the amount in US dollars, when the agency wrote a number.
      - `awardee` string, nullable, required: For an award: the winning contractor, as the agency wrote it, often with its UEI and address.
      - `primary_contact` object, nullable, required: The contracting officer or point of contact the notice names.
        - `title` string, nullable, required: The contact's role, when the notice gives one, e.g. `Contract Specialist`.
        - `name` string, nullable, required
        - `email` string, nullable, required
        - `phone` string, nullable, required: As the agency wrote it: digits alone, or with dashes, dots or parentheses.
        - `fax` string, nullable, required
      - `secondary_contact` object, nullable, required
        - `title` string, nullable, required: The contact's role, when the notice gives one, e.g. `Contract Specialist`.
        - `name` string, nullable, required
        - `email` string, nullable, required
        - `phone` string, nullable, required: As the agency wrote it: digits alone, or with dashes, dots or parentheses.
        - `fax` string, nullable, required
      - `office_city` string, nullable, required: The contracting office's address.
      - `office_state` string, nullable, required: The two-letter state of the contracting office.
      - `office_zip` string, nullable, required
      - `office_country` string, nullable, required: A three-letter country code, usually `USA`.
      - `active` boolean, required: Whether SAM.gov lists the notice as active. The copy carries the active list.
      - `description` string, nullable, required: The notice's text, as the agency wrote it. SAM.gov cuts it at about 32,000 characters.
      - `additional_info_url` string, nullable, required: A link the agency added for more information, when any.
      - `source_url` string, required: The notice's page on SAM.gov.

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/df016cdb29d7?raw)
