---
title: "SAM.gov Contract Opportunity"
method: POST
path: "/us/sam/opportunity/v1"
tags: ["United States", "SAM.gov"]
---

# SAM.gov Contract Opportunity

`POST /us/sam/opportunity/v1`

## Request

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

Resolve one contract opportunity on SAM.gov by its notice id and return the full record: the notice's text, the solicitation number, the department, agency and office that posted it, the NAICS and product service codes, the set-aside, the response deadline, the place of performance, the contacts and, for an award, the contractor, the amount and the date. `found: false` when the active list does not carry that id. 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
  - `id` string, required: The notice's id in SAM.gov, 32 hex characters, as the search returns it.

## Response `200`

Successful response

- SamOpportunityResponse
  - `data` SamOpportunityData, required
    - `found` boolean, required
    - `id` string, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `opportunity` object, nullable, 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/74c745980c60?raw)
