USAspending Bulk Download API

Asynchronous bulk export of filtered award, account, and transaction data as zipped CSV, TSV, or pipe-delimited text files. A request kicks off zip-file generation on the backend; a companion status endpoint is polled until the file is ready for download. Also lists agencies and monthly generated files available for download. Powers the USAspending.gov Custom Award Data Download page.

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'