> ## Documentation Index
> Fetch the complete documentation index at: https://docs.govly.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List awards

> Retrieve federal contract awards with filtering by date range, unique key, or recipient

## Request

At least one filter is required: `start_date`, `unique_keys[]`, or `recipient_ueis[]`.

### Date Range Filtering

<ParamField query="start_date" type="string">
  Start date for filtering awards by last modified date (ISO 8601 format, e.g., "2024-01-15"). Required unless filtering by `unique_keys[]` or `recipient_ueis[]`.
</ParamField>

<ParamField query="end_date" type="string">
  End date for filtering awards by last modified date (ISO 8601 format). Defaults to 7 days after `start_date` if not provided. Maximum date range is 7 days.
</ParamField>

### Identifier Filtering

<ParamField query="unique_keys[]" type="string[]">
  Array of award unique keys (e.g., FPDS PIID) to retrieve. Maximum 100 values. When provided, `start_date` is not required.
</ParamField>

<ParamField query="recipient_ueis[]" type="string[]">
  Array of recipient UEIs to filter by. Maximum 100 values. When provided, `start_date` is not required.
</ParamField>

### Pagination

<ParamField query="page_size" type="integer" default={100}>
  Number of results per page. Maximum: 100.
</ParamField>

<ParamField query="cursor" type="string">
  Base64-encoded cursor for pagination. Use the `nextCursor` value from the previous response to get the next page of results.
</ParamField>

## Response

Returns an array of award objects with pagination metadata.

<ResponseField name="results" type="array">
  Array of award objects

  <Expandable title="Award Properties">
    <ResponseField name="id" type="string">
      Unique identifier for the award
    </ResponseField>

    <ResponseField name="uniqueKey" type="string">
      Unique identifier key for the award (e.g., FPDS PIID)
    </ResponseField>

    <ResponseField name="identifier" type="string">
      External identifier for the award
    </ResponseField>

    <ResponseField name="title" type="string">
      Title of the award
    </ResponseField>

    <ResponseField name="description" type="string">
      Description of the award
    </ResponseField>

    <ResponseField name="aiSummary" type="string">
      AI-generated summary of the award
    </ResponseField>

    <ResponseField name="category" type="string">
      Award category (e.g., "contract", "grant")
    </ResponseField>

    <ResponseField name="url" type="string">
      Govly web URL for viewing the award
    </ResponseField>

    <ResponseField name="externalUrl" type="string">
      URL to the original government source
    </ResponseField>

    <ResponseField name="awardedDate" type="string">
      ISO 8601 date when the award was made
    </ResponseField>

    <ResponseField name="lastModifiedDate" type="string">
      ISO 8601 date when the award was last modified
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      ISO 8601 timestamp when the record was created in Govly
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      ISO 8601 timestamp when the record was last updated in Govly
    </ResponseField>

    <ResponseField name="externalSolicitationDate" type="string">
      ISO 8601 date of the related solicitation
    </ResponseField>

    <ResponseField name="periodOfPerformanceStartDate" type="string">
      ISO 8601 date when the period of performance begins
    </ResponseField>

    <ResponseField name="periodOfPerformanceEndDate" type="string">
      ISO 8601 date when the period of performance ends
    </ResponseField>

    <ResponseField name="periodOfPerformancePotentialEndDate" type="string">
      ISO 8601 date of the potential end date including options
    </ResponseField>

    <ResponseField name="awardAmount" type="number">
      Total award amount in USD
    </ResponseField>

    <ResponseField name="ceilingAmount" type="number">
      Maximum potential value of the award in USD
    </ResponseField>

    <ResponseField name="obligatedAmount" type="number">
      Amount obligated in USD
    </ResponseField>

    <ResponseField name="paidAmount" type="number">
      Amount paid in USD
    </ResponseField>

    <ResponseField name="paymentStructure" type="string">
      Payment structure type (e.g., "Fixed Price", "Cost Reimbursement")
    </ResponseField>

    <ResponseField name="acquisitionType" type="string">
      Type of acquisition
    </ResponseField>

    <ResponseField name="acquisitionCategory" type="string">
      Category of acquisition
    </ResponseField>

    <ResponseField name="extentCompeted" type="string">
      Extent of competition (e.g., "Full and Open Competition", "Not Competed")
    </ResponseField>

    <ResponseField name="naics" type="string">
      NAICS code for the award
    </ResponseField>

    <ResponseField name="psc" type="string">
      Product Service Code (PSC)
    </ResponseField>

    <ResponseField name="numberOfBidsReceived" type="integer">
      Number of bids received for the award
    </ResponseField>

    <ResponseField name="setAside" type="object">
      Set-aside information for the award

      <Expandable title="Properties">
        <ResponseField name="code" type="string">Set-aside code</ResponseField>
        <ResponseField name="name" type="string">Set-aside name (e.g., "Small Business Set-Aside")</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="parentUniqueKey" type="string">
      Unique key of the parent award (for modifications)
    </ResponseField>

    <ResponseField name="externalParentIdentifier" type="string">
      External identifier of the parent award
    </ResponseField>

    <ResponseField name="externalSolicitationId" type="string">
      External ID of the related solicitation
    </ResponseField>

    <ResponseField name="recipientUniqueKey" type="string">
      Unique key of the award recipient (UEI)
    </ResponseField>

    <ResponseField name="recipientParentUniqueKey" type="string">
      Unique key of the recipient's parent organization
    </ResponseField>

    <ResponseField name="recipientCageCode" type="string">
      CAGE code of the recipient
    </ResponseField>

    <ResponseField name="recipient" type="object">
      Information about the award recipient

      <Expandable title="Properties">
        <ResponseField name="uniqueKey" type="string">Unique identifier for the recipient (UEI)</ResponseField>
        <ResponseField name="name" type="string">Recipient organization name</ResponseField>
        <ResponseField name="cageCode" type="string">CAGE code</ResponseField>

        <ResponseField name="address" type="object">
          Recipient address

          <Expandable title="Properties">
            <ResponseField name="streetAddress" type="string">Street address line 1</ResponseField>
            <ResponseField name="streetAddress2" type="string">Street address line 2</ResponseField>
            <ResponseField name="streetAddress3" type="string">Street address line 3</ResponseField>
            <ResponseField name="city" type="string">City</ResponseField>
            <ResponseField name="region" type="string">State or region</ResponseField>
            <ResponseField name="postalCode" type="string">Postal code</ResponseField>
            <ResponseField name="country" type="string">Country</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="aiHqAddress" type="string | object">AI-enriched headquarters address</ResponseField>
        <ResponseField name="aiUrl" type="string">AI-enriched website URL</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="buyer" type="object">
      Information about the buying organization

      <Expandable title="Properties">
        <ResponseField name="id" type="string">Organization ID</ResponseField>
        <ResponseField name="name" type="string">Organization name</ResponseField>
        <ResponseField name="hierarchy" type="string[]">Array of organization names from highest to lowest level</ResponseField>
        <ResponseField name="hierarchyIds" type="string[]">Array of organization IDs corresponding to the hierarchy</ResponseField>
        <ResponseField name="aiUrl" type="string">AI-enriched organization website</ResponseField>
        <ResponseField name="aiHqAddress" type="string | object">AI-enriched headquarters address</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="buyingOffice" type="object">
      Information about the buying office

      <Expandable title="Properties">
        <ResponseField name="id" type="string">Office ID</ResponseField>
        <ResponseField name="name" type="string">Office name</ResponseField>
        <ResponseField name="hierarchy" type="string[]">Array of organization names from highest to lowest level</ResponseField>
        <ResponseField name="hierarchyIds" type="string[]">Array of organization IDs corresponding to the hierarchy</ResponseField>
        <ResponseField name="aiUrl" type="string">AI-enriched organization website</ResponseField>
        <ResponseField name="aiHqAddress" type="string | object">AI-enriched headquarters address</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="funder" type="object">
      Information about the funding organization

      <Expandable title="Properties">
        <ResponseField name="id" type="string">Organization ID</ResponseField>
        <ResponseField name="name" type="string">Organization name</ResponseField>
        <ResponseField name="hierarchy" type="string[]">Array of organization names from highest to lowest level</ResponseField>
        <ResponseField name="hierarchyIds" type="string[]">Array of organization IDs corresponding to the hierarchy</ResponseField>
        <ResponseField name="aiUrl" type="string">AI-enriched organization website</ResponseField>
        <ResponseField name="aiHqAddress" type="string | object">AI-enriched headquarters address</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="fundingOffice" type="object">
      Information about the funding office

      <Expandable title="Properties">
        <ResponseField name="id" type="string">Office ID</ResponseField>
        <ResponseField name="name" type="string">Office name</ResponseField>
        <ResponseField name="hierarchy" type="string[]">Array of organization names from highest to lowest level</ResponseField>
        <ResponseField name="hierarchyIds" type="string[]">Array of organization IDs corresponding to the hierarchy</ResponseField>
        <ResponseField name="aiUrl" type="string">AI-enriched organization website</ResponseField>
        <ResponseField name="aiHqAddress" type="string | object">AI-enriched headquarters address</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="placeOfManufacture" type="string">
      Place of manufacture designation
    </ResponseField>

    <ResponseField name="placeOfPerformance" type="object">
      Location where the work is performed

      <Expandable title="Properties">
        <ResponseField name="city" type="string">City</ResponseField>
        <ResponseField name="region" type="string">State or region</ResponseField>
        <ResponseField name="postalCode" type="string">Postal code</ResponseField>
        <ResponseField name="country" type="string">Country</ResponseField>
        <ResponseField name="county" type="string">County</ResponseField>
        <ResponseField name="congressionalCode" type="string">Congressional district code</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="meta" type="object">
  Pagination metadata

  <Expandable title="Meta Properties">
    <ResponseField name="nextCursor" type="string">
      Base64-encoded cursor for the next page of results. Will be `null` if there are no more results.
    </ResponseField>

    <ResponseField name="pageSize" type="integer">
      Number of results per page
    </ResponseField>

    <ResponseField name="startDate" type="string">
      Start date used for filtering (ISO 8601 format)
    </ResponseField>

    <ResponseField name="endDate" type="string">
      End date used for filtering (ISO 8601 format)
    </ResponseField>
  </Expandable>
</ResponseField>

## Error Responses

| Status Code | Condition                                          |
| ----------- | -------------------------------------------------- |
| 401         | Invalid or missing API key                         |
| 422         | Invalid parameters (see error message for details) |

Common validation errors:

* "At least one filter is required: start\_date, unique\_keys, or recipient\_ueis"
* "Date range cannot exceed 7 days"
* "unique\_keys cannot exceed 100 values"
* "recipient\_ueis cannot exceed 100 values"
* "Invalid start\_date format"
* "Invalid end\_date format"

## Example Requests

### Filter by date range

```bash theme={null}
curl "https://app.govly.com/api/enterprise/awards?start_date=2024-01-15&end_date=2024-01-20" \
  -H "X-API-KEY: your_api_key"
```

### Filter by unique keys

```bash theme={null}
curl "https://app.govly.com/api/enterprise/awards?unique_keys[]=PIID123&unique_keys[]=PIID456" \
  -H "X-API-KEY: your_api_key"
```

### Filter by recipient UEIs

```bash theme={null}
curl "https://app.govly.com/api/enterprise/awards?recipient_ueis[]=ABC123DEF456" \
  -H "X-API-KEY: your_api_key"
```

### Paginate through results

```bash theme={null}
# First request
curl "https://app.govly.com/api/enterprise/awards?start_date=2024-01-15&page_size=50" \
  -H "X-API-KEY: your_api_key"

# Subsequent requests using cursor from previous response
curl "https://app.govly.com/api/enterprise/awards?start_date=2024-01-15&page_size=50&cursor=eyJsYXN0X21vZGlmaWVkX2RhdGUiOiIyMDI0LTAxLTE2IiwiaWQiOjEyMzQ1fQ==" \
  -H "X-API-KEY: your_api_key"
```
