USAspending References & Autocomplete API

Reference and typeahead data used to build and validate search filters across the rest of the API - toptier agency listings with budgetary-resources share, plus autocomplete lookups for awarding/funding agencies and sub-agency offices, recipients, CFDA assistance listings, NAICS and PSC codes, locations, and glossary terms.

OpenAPI Specification

usaspending-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: USAspending 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: Awards Search
    description: Advanced search and filtering across award and subaward spending.
  - name: Agency
    description: Per-agency profile, budget, and award data.
  - name: Recipient
    description: Recipient (awardee) profile and search data.
  - name: Federal Accounts
    description: Federal account and Treasury Account Symbol (TAS) data.
  - name: Budget Functions
    description: Federal budget functional classification reference data.
  - name: Disaster
    description: Disaster and emergency (including COVID-19) supplemental funding data.
  - name: Bulk Download
    description: Asynchronous bulk CSV/TSV/text export of filtered spending data.
  - name: References
    description: Reference and typeahead/autocomplete lookup data.
  - name: Subawards
    description: Subaward (pass-through award) listings scoped to a prime award.
paths:
  /search/spending_by_award/:
    post:
      operationId: searchSpendingByAward
      tags:
        - Awards Search
      summary: Search spending by award
      description: >-
        Supports the Advanced Search page. Accepts a complex award filter
        object and a requested field list, and returns paged, sortable award
        or subaward records.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpendingByAwardRequest'
            example:
              subawards: false
              limit: 10
              page: 1
              filters:
                award_type_codes: ["A", "B", "C"]
                time_period:
                  - start_date: "2018-10-01"
                    end_date: "2019-09-30"
              fields:
                - "Award ID"
                - "Recipient Name"
                - "Start Date"
                - "End Date"
                - "Award Amount"
                - "Awarding Agency"
      responses:
        '200':
          description: Filtered, paged award or subaward results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingByAwardResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
  /agency/{toptier_code}/:
    parameters:
      - $ref: '#/components/parameters/ToptierCode'
      - $ref: '#/components/parameters/FiscalYear'
    get:
      operationId: getAgencyOverview
      tags:
        - Agency
      summary: Agency overview
      description: Returns basic profile information for the agency for the fiscal year specified.
      responses:
        '200':
          description: Agency overview.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgencyOverview'
        '404':
          $ref: '#/components/responses/NotFound'
  /recipient/:
    post:
      operationId: listRecipients
      tags:
        - Recipient
      summary: List / search recipients
      description: >-
        Returns a paged list of recipients, their level, UEI (and deprecated
        DUNS), and award amount. Supports keyword search on name, UEI, or DUNS.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecipientListRequest'
            example:
              order: desc
              sort: amount
              page: 1
              limit: 50
              award_type: all
      responses:
        '200':
          description: Paged recipient listing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecipientListResponse'
  /federal_accounts/{account_number}/:
    parameters:
      - $ref: '#/components/parameters/AccountNumber'
      - $ref: '#/components/parameters/FiscalYear'
    get:
      operationId: getFederalAccount
      tags:
        - Federal Accounts
      summary: Federal account detail
      description: >-
        Returns the agency identifier, account code, title, bureau, and
        aggregated obligated / outlay / budgetary-resources totals for the
        given federal account and its child Treasury Account Symbols (TAS).
      responses:
        '200':
          description: Federal account detail with child Treasury Accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FederalAccount'
        '404':
          $ref: '#/components/responses/NotFound'
  /budget_functions/list_budget_functions/:
    get:
      operationId: listBudgetFunctions
      tags:
        - Budget Functions
      summary: List budget functions
      description: Returns all federal budget functions, ordered by title.
      responses:
        '200':
          description: List of budget functions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/BudgetFunction'
  /budget_functions/list_budget_subfunctions/:
    get:
      operationId: listBudgetSubfunctions
      tags:
        - Budget Functions
      summary: List budget subfunctions
      description: Returns all federal budget subfunctions, optionally scoped to a parent budget function.
      parameters:
        - name: budget_function
          in: query
          required: false
          description: Budget function code to scope the subfunction list to.
          schema:
            type: string
      responses:
        '200':
          description: List of budget subfunctions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/BudgetSubfunction'
  /disaster/overview/:
    get:
      operationId: getDisasterOverview
      tags:
        - Disaster
      summary: Disaster / emergency funding overview
      description: >-
        Returns funding and spending detail from emergency and disaster
        supplemental appropriations (for example, CARES Act COVID-19 relief),
        optionally scoped to a comma-delimited list of Disaster Emergency
        Fund Codes (DEFC).
      parameters:
        - name: def_codes
          in: query
          required: false
          description: Comma-delimited list of Disaster Emergency Fund Codes to limit results to.
          schema:
            type: string
      responses:
        '200':
          description: Disaster spending overview.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisasterOverview'
  /bulk_download/awards/:
    post:
      operationId: createBulkAwardDownload
      tags:
        - Bulk Download
      summary: Request a bulk award data download
      description: >-
        Begins generating a zip file of award data in CSV, TSV, or
        pipe-delimited text form for download. Poll /bulk_download/status/
        with the returned file_name to check completion.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkDownloadRequest'
      responses:
        '200':
          description: Download job accepted; includes the file name to poll for status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkDownloadResponse'
  /bulk_download/status/:
    get:
      operationId: getBulkDownloadStatus
      tags:
        - Bulk Download
      summary: Check bulk download status
      description: Returns the generation status and download URL (once ready) for a previously requested bulk download file.
      parameters:
        - name: file_name
          in: query
          required: true
          description: The file name returned by the download-request endpoint.
          schema:
            type: string
      responses:
        '200':
          description: Download status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkDownloadStatus'
  /bulk_download/list_agencies/:
    get:
      operationId: listBulkDownloadAgencies
      tags:
        - Bulk Download
      summary: List agencies available for bulk download
      description: Returns the toptier and subtier agencies that can be used to scope a bulk award or account download.
      responses:
        '200':
          description: List of agencies available for bulk download.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
  /references/toptier_agencies/:
    get:
      operationId: listToptierAgencies
      tags:
        - References
      summary: List toptier agencies
      description: >-
        Returns all toptier agencies with their budgetary resources and the
        percentage of total government budget authority each accounts for.
        Powers the USAspending.gov agency profile pages.
      parameters:
        - name: sort
          in: query
          required: false
          description: Field to sort results by.
          schema:
            type: string
            default: percentage_of_total_budget_authority
        - name: order
          in: query
          required: false
          description: Sort direction.
          schema:
            type: string
            enum: [asc, desc]
            default: desc
      responses:
        '200':
          description: List of toptier agencies.
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ToptierAgency'
  /autocomplete/awarding_agency_office/:
    post:
      operationId: autocompleteAwardingAgencyOffice
      tags:
        - References
      summary: Autocomplete awarding agency / office
      description: >-
        Returns awarding agencies and sub-agency offices matching the
        specified search text. Used by the Advanced Search page's Awarding
        Agency filter.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [search_text]
              properties:
                search_text:
                  type: string
                limit:
                  type: integer
            example:
              search_text: Defense
      responses:
        '200':
          description: Matching awarding agencies / offices.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
  /autocomplete/recipient/:
    post:
      operationId: autocompleteRecipient
      tags:
        - References
      summary: Autocomplete recipient
      description: Returns recipients matching the specified search text, for use as a search filter.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [search_text]
              properties:
                search_text:
                  type: string
                limit:
                  type: integer
      responses:
        '200':
          description: Matching recipients.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
  /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:
  parameters:
    ToptierCode:
      name: toptier_code
      in: path
      required: true
      description: The toptier code of an agency (CGAC or FREC), 3-4 numeric characters.
      schema:
        type: string
        example: "020"
    FiscalYear:
      name: fiscal_year
      in: query
      required: false
      description: The desired "as of" fiscal year. Defaults to the current fiscal year.
      schema:
        type: integer
        example: 2026
    AccountNumber:
      name: account_number
      in: path
      required: true
      description: The Federal Account symbol (Agency Code-Main Account Code).
      schema:
        type: string
        example: "011-1022"
  responses:
    BadRequest:
      description: The request filters or fields failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        detail:
          type: string
    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
    AdvancedFilterObject:
      type: object
      description: >-
        Award search filter object. Common fields include award_type_codes,
        time_period, agencies, recipient_search_text, recipient_id,
        recipient_locations, place_of_performance_locations, naics_codes,
        psc_codes, keywords, and award_amounts. See the Advanced Search
        filter documentation for the full set.
      additionalProperties: true
      properties:
        award_type_codes:
          type: array
          items:
            type: string
          example: ["A", "B", "C", "D"]
        time_period:
          type: array
          items:
            type: object
            properties:
              start_date:
                type: string
                format: date
              end_date:
                type: string
                format: date
        keywords:
          type: array
          items:
            type: string
    SpendingByAwardRequest:
      type: object
      required: [filters, fields]
      properties:
        filters:
          $ref: '#/components/schemas/AdvancedFilterObject'
        fields:
          type: array
          items:
            type: string
          description: Requested response fields, e.g. "Award ID", "Recipient Name", "Award Amount".
        limit:
          type: integer
          default: 10
        page:
          type: integer
          default: 1
        order:
          type: string
          enum: [asc, desc]
          default: desc
        sort:
          type: string
        subawards:
          type: boolean
          default: false
          description: True to group by subawards instead of prime awards.
        spending_level:
          type: string
          enum: [awards, subawards]
          default: awards
    SpendingByAwardResponse:
      type: object
      properties:
        spending_level:
          type: string
          enum: [awards, subawards]
        limit:
          type: integer
        results:
          type: array
          items:
            type: object
            additionalProperties: true
            description: One object per requested field name, plus internal_id.
        page_metadata:
          $ref: '#/components/schemas/PageMetadata'
        messages:
          type: array
          items:
            type: string
    DEFC:
      type: object
      properties:
        code:
          type: string
          description: Disaster Emergency Fund Code.
        public_law:
          type: string
        title:
          type: string
          nullable: true
        disaster:
          type: string
          nullable: true
        urls:
          type: array
          items:
            type: string
          nullable: true
    AgencyOverview:
      type: object
      properties:
        fiscal_year:
          type: integer
        toptier_code:
          type: string
        name:
          type: string
        abbreviation:
          type: string
          nullable: true
        agency_id:
          type: integer
        mission:
          type: string
          nullable: true
        website:
          type: string
          nullable: true
        congressional_justification_url:
          type: string
          nullable: true
        subtier_agency_count:
          type: integer
        def_codes:
          type: array
          items:
            $ref: '#/components/schemas/DEFC'
        messages:
          type: array
          items:
            type: string
    RecipientListRequest:
      type: object
      properties:
        order:
          type: string
          enum: [asc, desc]
          default: desc
        sort:
          type: string
          enum: [name, duns, amount]
          default: amount
        limit:
          type: integer
          default: 50
          maximum: 1000
        page:
          type: integer
          default: 1
        keyword:
          type: string
          description: Searches on name, UEI, or DUNS.
        award_type:
          type: string
          enum: [all, contracts, grants, loans, direct_payments, other_financial_assistance]
          default: all
    RecipientListing:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        duns:
          type: string
          nullable: true
        uei:
          type: string
          nullable: true
        recipient_level:
          type: string
        amount:
          type: number
    RecipientListResponse:
      type: object
      properties:
        page_metadata:
          $ref: '#/components/schemas/PageMetadata'
        results:
          type: array
          items:
            $ref: '#/components/schemas/RecipientListing'
    TreasuryAccount:
      type: object
      properties:
        name:
          type: string
        code:
          type: string
        obligated_amount:
          type: number
        gross_outlay_amount:
          type: number
        budgetary_resources_amount:
          type: number
    FederalAccount:
      type: object
      properties:
        fiscal_year:
          type: string
        id:
          type: integer
        agency_identifier:
          type: string
        main_account_code:
          type: string
        federal_account_code:
          type: string
        account_title:
          type: string
        parent_agency_toptier_code:
          type: string
        parent_agency_name:
          type: string
        bureau_name:
          type: string
        bureau_slug:
          type: string
        total_obligated_amount:
          type: number
          nullable: true
        total_gross_outlay_amount:
          type: number
          nullable: true
        total_budgetary_resources:
          type: number
          nullable: true
        children:
          type: array
          items:
            $ref: '#/components/schemas/TreasuryAccount'
    BudgetFunction:
      type: object
      properties:
        budget_function_code:
          type: string
        budget_function_title:
          type: string
    BudgetSubfunction:
      type: object
      properties:
        budget_subfunction_code:
          type: string
        budget_subfunction_title:
          type: string
    DisasterFunding:
      type: object
      properties:
        def_code:
          type: string
        amount:
          type: number
    DisasterSpending:
      type: object
      properties:
        award_obligations:
          type: number
          nullable: true
        award_outlays:
          type: number
          nullable: true
        total_obligations:
          type: number
          nullable: true
        total_outlays:
          type: number
          nullable: true
    DisasterOverview:
      type: object
      properties:
        funding:
          type: array
          items:
            $ref: '#/components/schemas/DisasterFunding'
        total_budget_authority:
          type: number
        spending:
          $ref: '#/components/schemas/DisasterSpending'
    BulkDownloadRequest:
      type: object
      required: [filters]
      properties:
        filters:
          type: object
          additionalProperties: true
          description: Award/date/agency filter object; see the awards download API contract for the full shape.
        columns:
          type: array
          items:
            type: string
        file_format:
          type: string
          enum: [csv, tsv, pstxt]
          default: csv
    BulkDownloadResponse:
      type: object
      properties:
        file_name:
          type: string
        status:
          type: string
        url:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
    BulkDownloadStatus:
      type: object
      properties:
        file_name:
          type: string
        status:
          type: string
          enum: [ready, running, failed, finished]
        url:
          type: string
          nullable: true
        total_rows:
          type: integer
          nullable: true
        total_columns:
          type: integer
          nullable: true
    ToptierAgency:
      type: object
      properties:
        abbreviation:
          type: string
        agency_id:
          type: integer
        agency_name:
          type: string
        budget_authority_amount:
          type: number
        current_total_budget_authority_amount:
          type: number
        obligated_amount:
          type: number
        outlay_amount:
          type: number
        percentage_of_total_budget_authority:
          type: number
        toptier_code:
          type: string
        agency_slug:
          type: string
    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.
    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'