FEMA Public Assistance Funded Projects Details API

Obligated Public Assistance grant projects (project worksheets) funded under the PA program, including damage category, project amount, and federal share obligated. Joins to the Public Assistance Applicants dataset via applicantId.

OpenAPI Specification

fema-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: OpenFEMA API
  description: >-
    OpenFEMA is FEMA's open data platform. It exposes a read-only RESTful API
    over individually versioned dataset endpoints (Entities) using OData-style
    query string parameters. No API key, subscription, or authentication is
    required. Responses default to JSON; CSV and Parquet are also available
    via $format. This document models the confirmed public dataset endpoints
    covering disaster declarations, public assistance, hazard mitigation,
    NFIP, IPAWS alerts, web disaster summaries, and the self-describing
    dataset/field catalog. Field lists shown here are representative, not
    exhaustive - the full data dictionary for any dataset/version is available
    live from the OpenFemaDataSetFields endpoint modeled below.
  termsOfService: https://www.fema.gov/about/website-information/privacy-policy
  contact:
    name: OpenFEMA
    email: OpenFEMA@fema.dhs.gov
    url: https://www.fema.gov/about/openfema
  license:
    name: Public Domain (U.S. Government Work)
    url: https://www.usa.gov/government-works
  version: '2.1'
servers:
  - url: https://www.fema.gov/api/open
    description: OpenFEMA production API (dataset version is part of each path)
tags:
  - name: Disaster Declarations
    description: Federally declared disasters.
  - name: Public Assistance
    description: FEMA Public Assistance (PA) grant program data.
  - name: Hazard Mitigation
    description: Hazard Mitigation Assistance (HMA) grant program data.
  - name: NFIP
    description: National Flood Insurance Program redacted policy and claims data.
  - name: IPAWS
    description: Integrated Public Alert and Warning System archived alerts.
  - name: Web Disaster Summaries
    description: Per-disaster financial summary totals from NEMIS.
  - name: Catalog
    description: Self-describing metadata - dataset list and data dictionaries.
paths:
  /v2/DisasterDeclarationsSummaries:
    get:
      operationId: listDisasterDeclarationsSummaries
      tags:
        - Disaster Declarations
      summary: List disaster declarations summaries
      description: >-
        Returns summarized records for every official FEMA disaster
        declaration since 1953 - major disaster, emergency, and fire
        management assistance declarations.
      parameters:
        - $ref: '#/components/parameters/Filter'
        - $ref: '#/components/parameters/Select'
        - $ref: '#/components/parameters/Top'
        - $ref: '#/components/parameters/Skip'
        - $ref: '#/components/parameters/OrderBy'
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Metadata'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/AllRecords'
      responses:
        '200':
          description: A page of disaster declarations summary records.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/OpenFemaEnvelope'
                  - type: object
                    properties:
                      DisasterDeclarationsSummaries:
                        type: array
                        items:
                          $ref: '#/components/schemas/DisasterDeclarationsSummary'
            text/csv:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadFilter'
  /v1/PublicAssistanceFundedProjectsDetails:
    get:
      operationId: listPublicAssistanceFundedProjectsDetails
      tags:
        - Public Assistance
      summary: List Public Assistance funded projects details
      description: >-
        Returns obligated Public Assistance grant projects (project
        worksheets), joinable to Public Assistance Applicants via
        applicantId.
      parameters:
        - $ref: '#/components/parameters/Filter'
        - $ref: '#/components/parameters/Select'
        - $ref: '#/components/parameters/Top'
        - $ref: '#/components/parameters/Skip'
        - $ref: '#/components/parameters/OrderBy'
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Metadata'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/AllRecords'
      responses:
        '200':
          description: A page of Public Assistance funded project detail records.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/OpenFemaEnvelope'
                  - type: object
                    properties:
                      PublicAssistanceFundedProjectsDetails:
                        type: array
                        items:
                          $ref: '#/components/schemas/PublicAssistanceFundedProjectDetail'
            text/csv:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadFilter'
  /v3/HazardMitigationAssistanceProjects:
    get:
      operationId: listHazardMitigationAssistanceProjects
      tags:
        - Hazard Mitigation
      summary: List Hazard Mitigation Assistance projects
      description: >-
        Returns funded projects under the HMGP, FMA, and (historically) PDM
        hazard mitigation grant programs.
      parameters:
        - $ref: '#/components/parameters/Filter'
        - $ref: '#/components/parameters/Select'
        - $ref: '#/components/parameters/Top'
        - $ref: '#/components/parameters/Skip'
        - $ref: '#/components/parameters/OrderBy'
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Metadata'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/AllRecords'
      responses:
        '200':
          description: A page of Hazard Mitigation Assistance project records.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/OpenFemaEnvelope'
                  - type: object
                    properties:
                      HazardMitigationAssistanceProjects:
                        type: array
                        items:
                          $ref: '#/components/schemas/HazardMitigationAssistanceProject'
            text/csv:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadFilter'
  /v2/FimaNfipPolicies:
    get:
      operationId: listFimaNfipPolicies
      tags:
        - NFIP
      summary: List NFIP redacted policies
      description: >-
        Returns policy-level NFIP transactions redacted to protect
        policyholder personally identifiable information.
      parameters:
        - $ref: '#/components/parameters/Filter'
        - $ref: '#/components/parameters/Select'
        - $ref: '#/components/parameters/Top'
        - $ref: '#/components/parameters/Skip'
        - $ref: '#/components/parameters/OrderBy'
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Metadata'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/AllRecords'
      responses:
        '200':
          description: A page of redacted NFIP policy records.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/OpenFemaEnvelope'
                  - type: object
                    properties:
                      FimaNfipPolicies:
                        type: array
                        items:
                          $ref: '#/components/schemas/FimaNfipPolicy'
            text/csv:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadFilter'
  /v2/FimaNfipClaims:
    get:
      operationId: listFimaNfipClaims
      tags:
        - NFIP
      summary: List NFIP redacted claims
      description: >-
        Returns NFIP claims transactions redacted to protect policyholder
        personally identifiable information.
      parameters:
        - $ref: '#/components/parameters/Filter'
        - $ref: '#/components/parameters/Select'
        - $ref: '#/components/parameters/Top'
        - $ref: '#/components/parameters/Skip'
        - $ref: '#/components/parameters/OrderBy'
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Metadata'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/AllRecords'
      responses:
        '200':
          description: A page of redacted NFIP claim records.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/OpenFemaEnvelope'
                  - type: object
                    properties:
                      FimaNfipClaims:
                        type: array
                        items:
                          $ref: '#/components/schemas/FimaNfipClaim'
            text/csv:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadFilter'
  /v1/IpawsArchivedAlerts:
    get:
      operationId: listIpawsArchivedAlerts
      tags:
        - IPAWS
      summary: List IPAWS archived alerts
      description: >-
        Returns archived Common Alerting Protocol (CAP) messages issued
        through the Integrated Public Alert and Warning System. The payload
        is hierarchical/nested, unlike most other OpenFEMA datasets.
      parameters:
        - $ref: '#/components/parameters/Filter'
        - $ref: '#/components/parameters/Select'
        - $ref: '#/components/parameters/Top'
        - $ref: '#/components/parameters/Skip'
        - $ref: '#/components/parameters/OrderBy'
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Metadata'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/AllRecords'
      responses:
        '200':
          description: A page of IPAWS archived alert records.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/OpenFemaEnvelope'
                  - type: object
                    properties:
                      IpawsArchivedAlerts:
                        type: array
                        items:
                          $ref: '#/components/schemas/IpawsArchivedAlert'
        '400':
          $ref: '#/components/responses/BadFilter'
  /v1/FemaWebDisasterSummaries:
    get:
      operationId: listFemaWebDisasterSummaries
      tags:
        - Web Disaster Summaries
      summary: List FEMA web disaster summaries
      description: >-
        Returns per-disaster financial summary totals (Individual Assistance,
        Public Assistance, and Hazard Mitigation) sourced raw from NEMIS.
      parameters:
        - $ref: '#/components/parameters/Filter'
        - $ref: '#/components/parameters/Select'
        - $ref: '#/components/parameters/Top'
        - $ref: '#/components/parameters/Skip'
        - $ref: '#/components/parameters/OrderBy'
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Metadata'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/AllRecords'
      responses:
        '200':
          description: A page of FEMA web disaster summary records.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/OpenFemaEnvelope'
                  - type: object
                    properties:
                      FemaWebDisasterSummaries:
                        type: array
                        items:
                          $ref: '#/components/schemas/FemaWebDisasterSummary'
            text/csv:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadFilter'
  /v1/OpenFemaDataSets:
    get:
      operationId: listOpenFemaDataSets
      tags:
        - Catalog
      summary: List the OpenFEMA dataset catalog
      description: >-
        Returns metadata describing every dataset and version published on
        OpenFEMA - name, version, description, last-refresh date, record
        count, and whether an API endpoint exists for it.
      parameters:
        - $ref: '#/components/parameters/Filter'
        - $ref: '#/components/parameters/Select'
        - $ref: '#/components/parameters/Top'
        - $ref: '#/components/parameters/Skip'
        - $ref: '#/components/parameters/OrderBy'
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Metadata'
      responses:
        '200':
          description: A page of dataset catalog records.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/OpenFemaEnvelope'
                  - type: object
                    properties:
                      OpenFemaDataSets:
                        type: array
                        items:
                          $ref: '#/components/schemas/OpenFemaDataSet'
        '400':
          $ref: '#/components/responses/BadFilter'
  /v1/OpenFemaDataSetFields:
    get:
      operationId: listOpenFemaDataSetFields
      tags:
        - Catalog
      summary: List the data dictionary for a dataset/version
      description: >-
        Returns the field-level data dictionary (name, title, type,
        description) for a given dataset name and version. Typically called
        with a $filter such as
        `openFemaDataSet eq 'DisasterDeclarationsSummaries' and datasetVersion eq 2`.
      parameters:
        - $ref: '#/components/parameters/Filter'
        - $ref: '#/components/parameters/Select'
        - $ref: '#/components/parameters/Top'
        - $ref: '#/components/parameters/Skip'
        - $ref: '#/components/parameters/OrderBy'
        - $ref: '#/components/parameters/Format'
        - $ref: '#/components/parameters/Metadata'
      responses:
        '200':
          description: A page of data dictionary field records.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/OpenFemaEnvelope'
                  - type: object
                    properties:
                      OpenFemaDataSetFields:
                        type: array
                        items:
                          $ref: '#/components/schemas/OpenFemaDataSetField'
        '400':
          $ref: '#/components/responses/BadFilter'
components:
  parameters:
    Filter:
      name: $filter
      in: query
      description: >-
        OData-style filter expression, e.g. state eq 'FL' and fyDeclared eq 2024.
        The parser is strict about spacing, quoting, and capitalization; string
        literals must be single-quoted.
      schema:
        type: string
    Select:
      name: $select
      in: query
      description: Comma-separated list of fields to include in the response.
      schema:
        type: string
    Top:
      name: $top
      in: query
      description: >-
        Number of records to return. Defaults to 1000 when omitted; maximum
        of 10000 per call.
      schema:
        type: integer
        default: 1000
        maximum: 10000
        minimum: 1
    Skip:
      name: $skip
      in: query
      description: Number of records to skip, used to page through results beyond $top.
      schema:
        type: integer
        default: 0
        minimum: 0
    OrderBy:
      name: $orderby
      in: query
      description: Field name to sort results by.
      schema:
        type: string
    Format:
      name: $format
      in: query
      description: Response format. Defaults to json when omitted.
      schema:
        type: string
        enum: [json, csv, parquet, jsona, xlsx]
        default: json
    Metadata:
      name: $metadata
      in: query
      description: >-
        When false, suppresses the metadata envelope object and returns only
        the data array. Accepts true/false (the legacy on/off values are
        deprecated).
      schema:
        type: boolean
        default: true
    Count:
      name: $count
      in: query
      description: >-
        When true, includes the total matching record count in the metadata
        envelope. Replacement for the deprecated $inlinecount parameter.
      schema:
        type: boolean
        default: false
    AllRecords:
      name: $allrecords
      in: query
      description: >-
        BETA. When true, forces the full result set to be returned in one
        download, overriding the 10000-record $top ceiling. Intended for bulk
        export, not interactive paging.
      schema:
        type: boolean
        default: false
  responses:
    BadFilter:
      description: >-
        Malformed OData query string (commonly a $filter with incorrect
        quoting, spacing, or an unknown field name).
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
  schemas:
    OpenFemaEnvelope:
      type: object
      description: >-
        Every OpenFEMA response wraps the requested dataset array in a
        metadata object (unless $metadata=false is passed).
      properties:
        metadata:
          type: object
          properties:
            skip:
              type: integer
            filter:
              type: string
            orderby:
              type: string
            select:
              type: string
            rundate:
              type: string
              format: date-time
            count:
              type: integer
              description: Total matching records, present only when $count=true.
            entityname:
              type: string
            version:
              type: integer
            url:
              type: string
    DisasterDeclarationsSummary:
      type: object
      description: One federally declared disaster summary record.
      properties:
        femaDeclarationString:
          type: string
        disasterNumber:
          type: integer
          description: Sequentially assigned number designating an event or incident declared as a disaster.
        state:
          type: string
          description: U.S. state, district, or territory name/abbreviation.
        declarationType:
          type: string
          description: Two-character code - major disaster (DR), fire management (FM), or emergency (EM).
        declarationDate:
          type: string
          format: date-time
        fyDeclared:
          type: integer
        incidentType:
          type: string
          description: Type of incident, e.g. Flood, Hurricane, Fire; affects available assistance types.
        declarationTitle:
          type: string
        incidentBeginDate:
          type: string
          format: date-time
        incidentEndDate:
          type: string
          format: date-time
        fipsStateCode:
          type: string
        fipsCountyCode:
          type: string
        designatedArea:
          type: string
        ihProgramDeclared:
          type: boolean
        iaProgramDeclared:
          type: boolean
        paProgramDeclared:
          type: boolean
        hmProgramDeclared:
          type: boolean
        hash:
          type: string
        lastRefresh:
          type: string
          format: date-time
        id:
          type: string
    PublicAssistanceFundedProjectDetail:
      type: object
      description: One obligated Public Assistance project worksheet.
      properties:
        disasterNumber:
          type: integer
        applicantId:
          type: string
          description: Joins to the Public Assistance Applicants dataset.
        pwNumber:
          type: string
        projectSize:
          type: string
        damageCategoryCode:
          type: string
          description: Category of damage (e.g. A-Debris Removal, G-Parks).
        projectAmount:
          type: number
          format: double
        federalShareObligated:
          type: number
          format: double
        totalObligated:
          type: number
          format: double
        dcc:
          type: string
        applicantName:
          type: string
        county:
          type: string
        state:
          type: string
        obligatedDate:
          type: string
          format: date-time
        hash:
          type: string
        lastRefresh:
          type: string
          format: date-time
        id:
          type: string
    HazardMitigationAssistanceProject:
      type: object
      description: One funded Hazard Mitigation Assistance project.
      properties:
        id:
          type: string
        disasterNumber:
          type: integer
        state:
          type: string
        programArea:
          type: string
          description: HMGP, FMA, or PDM.
        projectType:
          type: string
        status:
          type: string
        projectTitle:
          type: string
        projectAmount:
          type: number
          format: double
        federalShareObligated:
          type: number
          format: double
        costSharePercentage:
          type: number
          format: double
        dateApproved:
          type: string
          format: date-time
        hash:
          type: string
        lastRefresh:
          type: string
          format: date-time
    FimaNfipPolicy:
      type: object
      description: One redacted NFIP policy transaction. The live dataset carries 81 fields; representative fields shown.
      properties:
        id:
          type: string
        policyEffectiveDate:
          type: string
          format: date
        policyTerminationDate:
          type: string
          format: date
        totalBuildingInsuranceCoverage:
          type: number
          format: double
        totalContentsInsuranceCoverage:
          type: number
          format: double
        totalInsurancePremiumOfThePolicy:
          type: number
          format: double
        propertyState:
          type: string
        countyCode:
          type: string
        censusTract:
          type: string
        floodZone:
          type: string
        occupancyType:
          type: integer
        constructionDate:
          type: string
          format: date
        ratedFloodZone:
          type: string
        hash:
          type: string
        lastRefresh:
          type: string
          format: date-time
    FimaNfipClaim:
      type: object
      description: One redacted NFIP claim transaction. The live dataset carries 73 fields; representative fields shown.
      properties:
        id:
          type: string
        dateOfLoss:
          type: string
          format: date
        state:
          type: string
        countyCode:
          type: string
        causeOfDamage:
          type: string
        floodZone:
          type: string
        amountPaidOnBuildingClaim:
          type: number
          format: double
        amountPaidOnContentsClaim:
          type: number
          format: double
        netTotalPayments:
          type: number
          format: double
        lowestFloorElevation:
          type: number
          format: double
        occupancyType:
          type: integer
        yearOfLoss:
          type: integer
        hash:
          type: string
        lastRefresh:
          type: string
          format: date-time
    IpawsArchivedAlert:
      type: object
      description: >-
        One archived Common Alerting Protocol message. Nested/hierarchical -
        an alert contains one or more info blocks, each with one or more
        resource/area blocks.
      properties:
        id:
          type: string
        identifier:
          type: string
        sender:
          type: string
        sent:
          type: string
          format: date-time
        status:
          type: string
        msgType:
          type: string
        scope:
          type: string
        searchGeometry:
          type: string
        infos:
          type: array
          items:
            type: object
            properties:
              language:
                type: string
              category:
                type: string
              event:
                type: string
              urgency:
                type: string
              severity:
                type: string
              certainty:
                type: string
              headline:
                type: string
              description:
                type: string
              area:
                type: array
                items:
                  type: object
                  properties:
                    areaDesc:
                      type: string
                    polygon:
                      type: string
        originalMessage:
          type: string
        lastRefresh:
          type: string
          format: date-time
    FemaWebDisasterSummary:
      type: object
      description: One per-disaster raw financial summary sourced from NEMIS.
      properties:
        disasterNumber:
          type: integer
        totalNumberIaApproved:
          type: integer
        totalAmountIhpApproved:
          type: number
          format: double
        totalObligatedAmountPa:
          type: number
          format: double
        totalObligatedAmountHmgp:
          type: number
          format: double
        paProgramDeclared:
          type: boolean
        iaProgramDeclared:
          type: boolean
        hmProgramDeclared:
          type: boolean
        disasterCloseoutDate:
          type: string
          format: date-time
        hash:
          type: string
        lastRefresh:
          type: string
          format: date-time
    OpenFemaDataSet:
      type: object
      description: One catalog entry describing a dataset and version.
      properties:
        name:
          type: string
        title:
          type: string
        version:
          type: integer
        description:
          type: string
        webService:
          type: string
          description: API endpoint path, when the dataset is exposed via the API.
        lastDataSetRefresh:
          type: string
          format: date-time
        recordCount:
          type: integer
        dataDictionary:
          type: string
    OpenFemaDataSetField:
      type: object
      description: One data-dictionary field entry for a dataset/version.
      properties:
        openFemaDataSet:
          type: string
        datasetVersion:
          type: integer
        name:
          type: string
        title:
          type: string
        type:
          type: string
        description:
          type: string