Buildings

Buildings represent the physical structures that are being insured on a premises in a commercial risk profile. On this page, we'll dive into the different buildings endpoints you can use to manage them programmatically.

The Building object

Building objects represent a single building in a commercial risk profile.
Building objects can be looked up in bulk using the lookup endpoint using their uuid.

They contain the following properties and relationships:

Commercial-only Properties

These properties are available only for commercial risk profiles.
  • Name
    premise
    Type
    string
    Filterable
    Description

    The UUID of the premise this building belongs to

  • Name
    owning_entity
    Type
    nullable string
    Filterable
    Sortable
    Description

    The UUID of the legal entity that owns the building

  • Name
    number
    Type
    int
    Filterable
    Sortable
    Description

    The building's number. The value must be unique for each building related to a specific commercial risk profile.

  • Name
    description
    Type
    nullable string
    Filterable
    Sortable
    Description

    A text description of the building

  • Name
    year_built
    Type
    nullable string
    Filterable
    Sortable
    Description

    The year the building was built

  • Name
    number_stories
    Type
    nullable int
    Filterable
    Sortable
    Description

    The building’s total number of floors or levels

  • Name
    basements
    Type
    nullable int
    Filterable
    Sortable
    Description

    The number of basements in the building. Maps to HazardHub data.

  • Name
    floor_area
    Type
    nullable int
    Filterable
    Sortable
    Description

    The building’s total square footage

  • Name
    construction
    Type
    nullable enum | string
    Filterable
    Sortable
    Description

    The building's construction type

    • Name
      Fire Resistive
      Description
      Fire Resistive
    • Name
      Frame
      Description
      Frame
    • Name
      Joisted Masonry
      Description
      Joisted Masonry
    • Name
      Masonry Noncombustible
      Description
      Masonry Noncombustible
    • Name
      Modified Fire Resistive
      Description
      Modified Fire Resistive
    • Name
      Noncombustible
      Description
      Noncombustible
    • Name
      Other / Unknown
      Description
      Other / Unknown
  • Name
    occupancy
    Type
    nullable string
    Sortable
    Description

    How the building is being used, whether it is owner-occupant or renter-occupied for homeowners and the number of families for which the building is designed

  • Name
    protection_class
    Type
    nullable string
    Sortable
    Description

    A rating from 1-10, indicating how well the building is protected from fire. A class of 1 indicates the best protection, while a class of 10 indicates the worst protection

  • Name
    sprinkler
    Type
    nullable enum
    Filterable
    Sortable
    Description

    Does the building have a fire suppression sprinkler system?

    • Name
      no
      Description
      no
    • Name
      partial
      Description
      partial
    • Name
      yes
      Description
      yes
  • Name
    fire_alarm
    Type
    nullable enum[]
    Filterable
    Sortable
    Description

    Multi-select fire alarm systems present in the building.

  • Name
    dist_to_fire_hydrant
    Type
    nullable int
    Filterable
    Sortable
    Description

    Distance to the nearest fire hydrant in feet. Maps to HazardHub categories.

  • Name
    dist_to_fire_dept
    Type
    nullable float
    Filterable
    Sortable
    Description

    Distance to the nearest fire department in miles (xx.xx format).

  • Name
    flood_zone
    Type
    nullable string
    Sortable
    Description

    Flood hazard areas identified on the Flood Insurance Rate Map are identified as a Special Flood Hazard Area (SFHA). Visit our help page for Flood Zone Rating Definitions.

  • Name
    roof_year
    Type
    nullable int
    Filterable
    Sortable
    Description

    The year the roof was built or last updated.

  • Name
    roof_type
    Type
    nullable enum | string
    Filterable
    Sortable
    Description

    The type of roof covering. Supports custom values.

  • Name
    plumbing_year
    Type
    nullable int
    Filterable
    Sortable
    Description

    The year the plumbing system was last updated.

  • Name
    electrical_year
    Type
    nullable int
    Filterable
    Sortable
    Description

    The year the electrical system was last updated.

  • Name
    heating_year
    Type
    nullable int
    Filterable
    Sortable
    Description

    The year the heating system was last updated.

  • Name
    security_alarm
    Type
    nullable enum[]
    Filterable
    Sortable
    Description

    Multi-select security alarm systems present in the building

  • Name
    building_status
    Type
    nullable enum
    Filterable
    Sortable
    Description

    Current occupancy status of the building.

  • Name
    itv
    Type
    nullable numeric-string
    Filterable
    Sortable
    Description

    Insurance-to-value, the estimated full dollar cost to replace or restore the building

  • Name
    assessor
    Type
    nullable numeric-string
    Filterable
    Sortable
    Description

    The assessed dollar value of the building for tax purposes

  • Name
    appraisal
    Type
    nullable numeric-string
    Filterable
    Sortable
    Description

    The appraised dollar market value of the building

  • Name
    notes
    Type
    nullable string
    Description

    Any additional notes or comments about the building

  • Name
    image
    Type
    nullable string
    Description

    The URL of the building's image, if uploaded via the Wunderite UI

Meta

  • Name
    created
    Type
    timestamp
    Filterable
    Sortable
    Description

    An ISO-8601 timestamp (UTC) indicating when the building was created

  • Name
    updated
    Type
    timestamp
    Filterable
    Sortable
    Description

    An ISO-8601 timestamp (UTC) indicating when the building was last updated

  • Name
    has_property_data
    Type
    bool
    Filterable
    Description

    When true, indicates the building has 3rd-party property data available

Commercial-only Relations

Learn more about including relations.

GET/api/v1/risks/{risk}/data/buildings

List all buildings

This endpoint allows you to retrieve a paginated list of all buildings in the corresponding commercial risk profile.

Parameters

See the building object for a list of all available filters and sorts.

Searchable

You can search for buildings by providing a search query in the filter[search] parameter. The search query will be matched against a building's number, description, premise's description or address.

Request

GET
/api/v1/risks/{risk}/data/buildings
curl -G https://app.wunderite.com/api/v1/risks/{risk}/data/buildings \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json" \
-d filter[search]=Location \
-d per_page=50

Response

{ "data": [ { "object": "building", "uuid": "9f5e6609-4647-47b0-a8f0-02865e4053c4", "data": { "premise": "aee2f644-9b1d-4481-8735-19827528da15", "owning_entity": "f5b8ca66-9315-4cd2-b2bf-67eb8fd584aa", "number": 1, "description": "Main Office",
"year_built": "2005", "number_stories": 5, "basements": 1, "floor_area": 12560, "construction": "Fire Resistive", "occupancy": "Miscellaneous Commercial", "protection_class": "P1, PROTECTED 1", "sprinkler": "yes", "fire_alarm": [ "Central Station", "Local Gong" ], "dist_to_fire_hydrant": 43, "flood_zone": "X", "roof_year": null, "roof_type": "Tar & Gravel", "plumbing_year": 1999, "electrical_year": 1980, "heating_year": 1970, "security_alarm": [ "Cameras", "Guard" ], "building_status": "Unoccupied", "itv": null, "assessor": "1956370.00", "appraisal": "12453040.00", "notes": null, "image": null }, "meta": { "created": "2025-02-04T15:58:58+00:00", "updated": "2026-02-26T17:50:34+00:00", "has_property_data": true }, "relations": { "premise": "aee2f644-9b1d-4481-8735-19827528da15", "owning_entity": "f5b8ca66-9315-4cd2-b2bf-67eb8fd584aa", "subjects_of_insurance": [ "cbcfc28a-58a0-4f14-b06f-2d63392b2342", "3f371215-2b1d-409b-b2ec-2df7364fd0a1" ] } }, { "object": "building", "uuid": "a9625a29-248c-49fd-a8c0-247e674a3ad0", "data": { "premise": "042814d3-dd5d-45e3-bebb-2ee915c09ce5", "owning_entity": "91ef2898-bb1c-45b5-b960-f92b7bfeb9af", "number": 7, "description": "Headquarters", "year_built": "2000", "number_stories": 2, "basements": 2, "floor_area": 10000, "construction": "Joisted Masonry", "occupancy": null, "protection_class": "P3, Protected 3", "sprinkler": null, "fire_alarm": [ "Battery", "Central Station" ], "dist_to_fire_hydrant": 25, "dist_to_fire_dept": null, "flood_zone": null, "roof_year": null, "roof_type": "Custom", "plumbing_year": null, "electrical_year": null, "heating_year": null, "security_alarm": [ "Armed Guard", "Fenced", "Hold-up" ], "building_status": null, "itv": null, "assessor": null, "appraisal": null, "notes": "This is the main building", "image": null }, "meta": { "created": "2026-02-23T19:59:53+00:00", "updated": "2026-02-26T17:50:36+00:00", "has_property_data": false }, "relations": { "premise": "042814d3-dd5d-45e3-bebb-2ee915c09ce5", "owning_entity": "91ef2898-bb1c-45b5-b960-f92b7bfeb9af", "subjects_of_insurance": [] } } ], "path": "https:\/\/app.wunderite.com\/api\/v1\/risks\/d10e34bb-4420-47de-ba9f-42a4a3f34b0e\/data\/buildings", "per_page": 50, "next_cursor": null, "next_page_url": null, "prev_cursor": null, "prev_page_url": null }

POST/api/v1/risks/{risk}/data/buildings

Create buildings

This endpoint allows you to create new buildings in the corresponding commercial risk profile.

At least one building object must be provided in the request body.

You can also create subjects of insurance in the same request if you provide the subjects_of_insurance property.

Required properties

  • Name
    premise
    Type
    string
    Description

    The premise UUID that the building should belong to

Optional properties

See all available properties in the building properties section.

  • Name
    number
    Type
    int
    Description

    The building's number. The value must be unique for each building in a premise related to a specific commercial risk profile. When this property is not provided, the building will be assigned a number automatically.

  • Name
    subjects_of_insurance
    Type
    SubjectOfInsurance[]
    Description

    An array of subject of insurance objects that should be created with the building

Flags

Learn more about flags.

When creating a building and providing a premise, Wunderite will automatically fill the building's COPE data based on its premise's property data.

If you don't want this to happen, you can disable it by providing the fill_cope_data flag and setting it to false.

  • Name
    flags.fill_cope_data
    Type
    bool
    Description

    Defaults to true if not provided.

    COPE data fields include:

    • year_built
    • number_stories
    • floor_area
    • occupancy
    • protection_class
    • assessor
    • construction
    • flood_zone

    Specify whether you want Wunderite to fill available COPE data for the building based on its premise's pulled property data. Note that we will only fill COPE data that is not already provided in the request, e.g. if you provide a year_built, we will not overwrite it.

Request

POST
/api/v1/risks/{risk}/data/buildings
curl -X POST "https://app.wunderite.com/api/v1/risks/{risk}/data/buildings" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \ 
-d '{
"data": [
    {
        "object": "building",
        "data": {
            "premise": "3ec7722d-9be3-46f2-b8e7-a788f977238c",
            "number": 10,
            "description": "Headquarters",
            "year_built": "2000",
            "number_stories": 2,
            "basements": 1,
            "floor_area": 10000,
            "construction": "Joisted Masonry",
            "occupancy": "Office",
            "protection_class": "P3, Protected 3",
            "sprinkler": "yes",
            "fire_alarm": [
                "Central Station",
                "Hardwired"
            ],
            "dist_to_fire_hydrant": 500,
            "dist_to_fire_dept": 2.5,
            "roof_year": 2015,
            "roof_type": "Aluminum Shingle",
            "plumbing_year": 2015,
            "electrical_year": 2015,
            "heating_year": 2015,
            "security_alarm": [
                "Cameras"
            ],
            "building_status": "Occupied",
            "notes": "This is the main building"
        },
        "profile_type": "commercial"
    }
]
}'

Response

{ "data": [ { "object": "building", "uuid": "06cd890c-5f6a-4a21-a3f7-2867d3236eba", "data": { "premise": "3ec7722d-9be3-46f2-b8e7-a788f977238c", "owning_entity": null, "number": 10, "description": "Headquarters",
"year_built": "2000", "number_stories": 2, "basements": 1, "floor_area": 10000, "construction": "Joisted Masonry", "occupancy": "Office", "protection_class": "P3, Protected 3", "sprinkler": "yes", "fire_alarm": [ "Central Station", "Hardwired" ], "dist_to_fire_hydrant": 500, "dist_to_fire_dept": 2.5, "flood_zone": null, "roof_year": 2015, "roof_type": "Aluminum Shingle", "plumbing_year": 2015, "electrical_year": 2015, "heating_year": 2015, "security_alarm": [ "Cameras" ], "building_status": "Occupied", "itv": null, "assessor": null, "appraisal": null, "notes": "This is the main building", "image": null }, "meta": { "created": "2026-02-26T18:56:57+00:00", "updated": "2026-02-26T18:56:57+00:00", "has_property_data": false }, "relations": { "premise": "3ec7722d-9be3-46f2-b8e7-a788f977238c", "owning_entity": null, "subjects_of_insurance": [] } } ] }

Request with sub resources

POST
/api/v1/risks/{risk}/data/buildings
curl -X POST "https://app.wunderite.com/api/v1/risks/{risk}/data/buildings?include=subjects_of_insurance" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \ 
-d '{
"data": [
    {
        "object": "building",
        "data": {
            "premise": "3ec7722d-9be3-46f2-b8e7-a788f977238c",
            "number": 11,
            "description": "Headquarters",
            "year_built": "2000",
            "number_stories": 2,
            "basements": 1,
            "floor_area": 10000,
            "construction": "Joisted Masonry",
            "occupancy": "Office",
            "protection_class": "P3, Protected 3",
            "sprinkler": "yes",
            "fire_alarm": [
                "Central Station",
                "Hardwired"
            ],
            "dist_to_fire_hydrant": 500,
            "dist_to_fire_dept": 2.5,
            "roof_year": 2015,
            "roof_type": "Aluminum Shingle",
            "plumbing_year": 2015,
            "electrical_year": 2015,
            "heating_year": 2015,
            "security_alarm": [
                "Cameras"
            ],
            "building_status": "Occupied",
            "notes": "This is the main building",
            "subjects_of_insurance": [
                {
                    "object": "subject_of_insurance",
                    "data": {
                        "type": "b",
                        "amount": 1000000,
                        "coinsurance_percent": 80,
                        "valuation": "Replacement Cost",
                        "cause_of_loss": "Hail",
                        "inflation_guard": 5,
                        "deductible": 250000,
                        "deductible_type": "Per Claim",
                        "forms_and_conditions": "Standard commercial property coverage terms and conditions apply."
                    }
                }
            ]
        },
        "profile_type": "commercial"
    }
]
}'

Response

{ "data": [ { "object": "building", "uuid": "3a705d25-4512-4802-843f-eda2f902f3eb", "data": { "premise": "3ec7722d-9be3-46f2-b8e7-a788f977238c", "owning_entity": null, "number": 11, "description": "Headquarters",
"year_built": "2000", "number_stories": 2, "basements": 1, "floor_area": 10000, "construction": "Joisted Masonry", "occupancy": "Office", "protection_class": "P3, Protected 3", "sprinkler": "yes", "fire_alarm": [ "Central Station", "Hardwired" ], "dist_to_fire_hydrant": 500, "dist_to_fire_dept": 2.5, "flood_zone": null, "roof_year": 2015, "roof_type": "Aluminum Shingle", "plumbing_year": 2015, "electrical_year": 2015, "heating_year": 2015, "security_alarm": [ "Cameras" ], "building_status": "Occupied", "itv": null, "assessor": null, "appraisal": null, "notes": "This is the main building", "image": null }, "meta": { "created": "2026-02-26T18:56:57+00:00", "updated": "2026-02-26T18:56:57+00:00", "has_property_data": false }, "relations": { "premise": "3ec7722d-9be3-46f2-b8e7-a788f977238c", "owning_entity": null, "subjects_of_insurance": [ { "object": "subject_of_insurance", "uuid": "089f1c30-2683-48b6-98d8-8e4f4af96090", "data": { "type": "b", "amount": 1000000, "display_value": null, "coinsurance_percent": 80, "valuation": "Replacement Cost", "cause_of_loss": "Hail", "inflation_guard": 5, "deductible": 250000, "deductible_type": "Per Claim", "forms_and_conditions": "Standard commercial property coverage terms and conditions apply." }, "meta": { "created": "2026-02-26T18:56:57+00:00", "updated": "2026-02-26T18:56:57+00:00" } } ] } } ] }

PATCH/api/v1/risks/{risk}/data

Update buildings

This endpoint allows you to perform bulk updates on buildings.

At least one building object must be provided in the request body. Each object must contain at least one property from the building properties section.

Properties that are not provided will not be updated.

To clear a property, provide a null value.

Optional properties

See all available properties in the building properties section.

  • Name
    number
    Description

    If updating the number property, the value must be unique for each building in a premise related to a specific commercial risk profile.

Request

PATCH
/api/v1/risks/{risk}/data
curl -X PATCH "https://app.wunderite.com/api/v1/risks/{risk}/data" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \ 
-d '{
"data": [
    {
        "object": "building",
        "uuid": "77fcab81-a180-46f4-85ca-af8a601a739f",
        "data": {
            "premise": "3ec7722d-9be3-46f2-b8e7-a788f977238c",
            "owning_entity": null,
            "number": 9,
            "description": "Garage",
            "year_built": "2015",
            "number_stories": 5,
            "basements": null,
            "floor_area": 8000,
            "construction": "Joisted Masonry",
            "occupancy": "Miscellaneous Commercial",
            "protection_class": "P4, Protected 4",
            "sprinkler": "no",
            "fire_alarm": null,
            "dist_to_fire_hydrant": null,
            "dist_to_fire_dept": null,
            "flood_zone": "X",
            "roof_year": null,
            "roof_type": null,
            "plumbing_year": null,
            "electrical_year": null,
            "heating_year": null,
            "security_alarm": null,
            "building_status": null,
            "itv": "0.00",
            "assessor": "632154.00",
            "appraisal": "2100000.00",
            "notes": null,
            "image": null
        }
    }
]
}'

Response

{ "data": [ { "object": "building", "uuid": "77fcab81-a180-46f4-85ca-af8a601a739f", "data": { "premise": "3ec7722d-9be3-46f2-b8e7-a788f977238c", "owning_entity": null, "number": 9, "description": "Garage",
"year_built": "2015", "number_stories": 5, "basements": null, "floor_area": 8000, "construction": "Joisted Masonry", "occupancy": "Miscellaneous Commercial", "protection_class": "P4, Protected 4", "sprinkler": "no", "fire_alarm": null, "dist_to_fire_hydrant": null, "dist_to_fire_dept": null, "flood_zone": "X", "roof_year": null, "roof_type": null, "plumbing_year": null, "electrical_year": null, "heating_year": null, "security_alarm": null, "building_status": null, "itv": "0.00", "assessor": "632154.00", "appraisal": "2100000.00", "notes": null, "image": null }, "profile_type": "commercial" } ] }

DELETE/api/v1/risks/{risk}/data

Delete buildings

This endpoint allows you to bulk delete risk data, including buildings.

At least one building object must be provided in the request body to delete the corresponding building.

Required properties

  • Name
    object
    Type
    string
    Description

    The object type of the data to delete. Must be building in this case

  • Name
    uuid
    Type
    string
    Description

    The UUID of the building to delete

Request

DELETE
/api/v1/risks/{risk}/data
curl -X DELETE "https://app.wunderite.com/api/v1/risks/{risk}/data" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \ 
-d '{
"data": [
    {
        "object": "building",
        "uuid": "77fcab81-a180-46f4-85ca-af8a601a739f"
    }
]
}'

Response

{
    "data": [
        {
            "object": "building",
            "uuid": "77fcab81-a180-46f4-85ca-af8a601a739f",
            "profile_type": "commercial"
        }
    ]
}