---
title: "List federal contract opportunities"
method: GET
path: "/api/contracts"
tags: ["Government contracts"]
---

# List federal contract opportunities

`GET /api/contracts`

## Request

- Base URL: `https://noozra.com`
- URL: `https://noozra.com/api/contracts`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/noozra/apis/noozra-news-api/docs/api/contracts/get.ts> (a function with typed inputs; its response is checked against the schema)

Federal contract opportunities from SAM.gov: solicitations, pre-solicitations, sources sought and award notices. Each item's `date` is the day the opportunity was posted. Sort with `sort`; page by passing `next_cursor` back as `cursor`. `as_of` is when the data was last known current. Records dated in the last 14 days for every key; a free key sees an opportunity 48 hours after Noozra first reads it. API Pro reaches every record as soon as it is read.

## Query parameters

- `q` string
- `naics` string
- `psc` string
- `agency` string
- `set_aside` string
- `state` string
- `type` string
- `after` string, date
- `posted_after` string, date
- `deadline_after` string, date
- `active` boolean
- `sort` 'newest' | 'deadline'
- `cursor` string
- `limit` integer

## Response `200`

OK

- ContractsResponse
  - `as_of` string, date-time, nullable, required: When this dataset was last known current: the oldest last successful read among its sources (the city's own, with `city`).
  - `contracts` Contract[], required
    - `active` boolean, required: Still open: active, and the deadline unset or ahead.
    - `agency` string, nullable, required
    - `amount` number, nullable, required: Dollars.
    - `archive_date` string, date, nullable, required
    - `award` object, nullable, required
      - `amount` number, nullable
      - `awardee` string, nullable
      - `date` string, date, nullable
      - `number` string, nullable
    - `date` string, date, required: YYYY-MM-DD: the day the opportunity was posted.
    - `description` string, nullable, required: The source's own text, at most 1000 characters.
    - `id` string, uuid, required
    - `naics` Classification, required
      - `code` string, required
      - `description` string, nullable, required
    - `notice_type` string, nullable, required
    - `office` string, nullable, required
    - `place` Place, required
      - `address` string, nullable, required
      - `city` string, nullable, required
      - `country` string, nullable, required: ISO 3166-1 alpha-3, such as USA.
      - `latitude` number, nullable, required
      - `longitude` number, nullable, required
      - `state` string, nullable, required: Two-letter state.
      - `zip` string, nullable, required
    - `psc` Classification, required
      - `code` string, required
      - `description` string, nullable, required
    - `reference` string, required: The record's own number at its source.
    - `response_deadline` string, date-time, nullable, required
    - `set_aside` object, nullable, required
      - `code` string, nullable
      - `name` string, nullable
    - `solicitation_number` string, nullable, required
    - `source` string, required: Who published the record. Name it when you show the record.
    - `sub_agency` string, nullable, required
    - `title` string, required
    - `url` string, uri, nullable, required: The record at its source; for a city record without a page of its own, the city's dataset.
  - `count` integer, required
  - `next_cursor` string, nullable, required: Pass as `cursor` for the next page; null at the end.

## Other responses

- `400`: A parameter out of shape (the `error` says which), a sort this dataset does not take, a cursor not given out for this sort, or a date outside 1970–9999
- `401`: No API key, or an invalid or revoked one
- `403`: `after` reaches past the last 14 days: that needs API Pro
- `429`: Daily rate limit exceeded (honor the Retry-After header)

## Changes

- **2026-10-29** `e0c2d7df6d6f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/noozra/apis/noozra-news-api/changes/api/contracts/get.md)

---

[API](https://skmtc.dev/noozra/apis/noozra-news-api.md) - [All operations](https://skmtc.dev/noozra/apis/noozra-news-api/llms.txt) - [OpenAPI document](https://skmtc.dev/noozra/apis/noozra-news-api/revisions/9067da767e84?raw)
