USAspending.gov Subawards API

Subaward (pass-through award) listings scoped to a prime award.

Documentation

Specifications

OpenAPI Specification

usaspending-subawards-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: USAspending Agency Subawards API
  description: The USAspending API provides free, public, unauthenticated access to U.S. federal spending data - contracts, grants, loans, direct payments, and other financial assistance awards, plus agency budgets, federal account (Treasury Account Symbol) data, recipient profiles, and disaster/emergency (including COVID-19) relief spending. USAspending.gov is operated by the Treasury Department's Bureau of the Fiscal Service to implement the DATA Act's federal spending transparency mandate. Most search and listing endpoints accept a POST with a JSON body describing filters, fields, sort, and pagination, because filter combinations are too complex for query strings; simpler single-resource lookups use GET with path parameters. This document is a representative, hand-authored subset of the full API grounded directly in the official API Blueprint contracts published in the usaspending-api GitHub repository - it is not a complete mirror of every endpoint and field.
  version: v2
  contact:
    name: USAspending.gov / Bureau of the Fiscal Service
    url: https://www.usaspending.gov
  license:
    name: Open source (CC0 / public domain, U.S. Government work)
    url: https://github.com/fedspendingtransparency/usaspending-api/blob/master/LICENSE.md
servers:
- url: https://api.usaspending.gov/api/v2
  description: Production (no authentication required)
tags:
- name: Subawards
  description: Subaward (pass-through award) listings scoped to a prime award.
paths:
  /subawards/:
    post:
      operationId: listSubawards
      tags:
      - Subawards
      summary: List subawards for a prime award
      description: Returns a paged, sortable list of subawards (pass-through awards to a subrecipient) for the given prime award ID. Powers the Sub-Awards tab on the award profile page.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubawardsRequest'
            example:
              page: 1
              limit: 15
              sort: subaward_number
              order: desc
              award_id: '25882628'
      responses:
        '200':
          description: Paged subaward listing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubawardsResponse'
components:
  schemas:
    SubawardResponse:
      type: object
      properties:
        id:
          type: integer
        subaward_number:
          type: string
        description:
          type: string
        action_date:
          type: string
          format: date
        amount:
          type: number
        recipient_name:
          type: string
    SubawardsResponse:
      type: object
      properties:
        page_metadata:
          $ref: '#/components/schemas/PageMetadata'
        results:
          type: array
          items:
            $ref: '#/components/schemas/SubawardResponse'
    SubawardsRequest:
      type: object
      required:
      - page
      - sort
      - order
      properties:
        page:
          type: integer
          default: 1
        limit:
          type: integer
          default: 10
        sort:
          type: string
          enum:
          - subaward_number
          - id
          - description
          - action_date
          - amount
          - recipient_name
        order:
          type: string
          enum:
          - asc
          - desc
          default: desc
        award_id:
          type: string
          description: Generated natural award ID (preferred) or legacy surrogate award ID.
    PageMetadata:
      type: object
      properties:
        page:
          type: integer
        next:
          type: integer
          nullable: true
        previous:
          type: integer
          nullable: true
        hasNext:
          type: boolean
        hasPrevious:
          type: boolean
        total:
          type: integer