---
title: "/v4/features.json"
method: GET
path: "/features.json"
tags: ["features"]
---

# /v4/features.json

`GET /features.json`

Returns features, their attributes and optional supplementary data
within the given polygon or address, and date range.

## Query parameters

- `polygon` string
- `since` string
- `until` string
- `order` 'latest' | 'earliest'
- `bulk` boolean
- `packs` string
- `classes` string
- `streetAddress` string
- `city` string
- `state` string
- `zip` string
- `country` 'US' | 'AU'
- `systemVersion` string
- `systemVersionPrefix` string
- `alpha` boolean
- `beta` boolean
- `3dCoverage` boolean
- `parcelMode` boolean
- `rapid` boolean
- `include` string
- `excludePartialResources` boolean
- `postcat` 'true' | 'false' | 'any'
- `damageModelVersion` string

## Headers

- `X-Nearmap-Ext-Reference` string

## Response `200`

OK

- FeatureResult
  - `systemVersion` string, required — The version of the system used to generate the AI data.
  - `resourceId` string, required — The ID of the survey resource.
  - `surveyId` string, required — The survey ID of the survey associated with the survey resource.
  - `surveyDate` string, date, required — The date of the survey capture.
  - `credits` integer, required — The number of credits used for this request.
  - `link` string, required — The MapBrowser link to the location that was requested.
  - `features` Feature[], required — The AI features at the location requested.
    - `geometry` object — GeoJSON polygon of the roof or parcel instance in EPSG:4326 projection to which the roof installation date applies.
    - `id` number — Feature unique identifier
    - `properties` object
      - `hilbertId` string — Stringified version of the feature ID.
      - `area` number — Area of the roof or parcel feature in square meters.
      - `installationDate` string, date — Predicted roof installation date in YYYY-MM-DD format. If the predicted roof installation date is prior to 2000, null will be returned.
      - `asOfDate` string, date — Date as of which the roof age is calculated.
      - `kind` 'roof' | 'parcel' — Indicates if feature is roof or parcel based.
      - `trustScore` integer — A score between 0 and 100 which is representative of the relative confidence of the roof installation dates.
      - `evidenceType` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 — Evidence status: - 0 No unobscured images available for the roof or parcel and there is no supporting evidence for that parcel. No roof installation date is provided. - 1 (Future Release) No unobscured images available for the roof or parcel. Aggregated supporting evidence from the area can provide an indication of the likely age of roofs in that area. - 2 No unobscured images available for the roof or parcel. Supporting evidence provides an indication of the roof installation date. - 3 Single unobscured image available and the model predicts the age of the roof by using the available image as well as other data sources. - 4 Single unobscured image available and the model predicts the age of the roof by using the available image as well as other data sources. Supporting evidence agrees with the predicted installation date. - 5 Multiple unobscured images available for the roof and the AI model has not detected a roof change between captures. The age of the roof has been predicted by a seperate model using the available images as well as other data sources. - 6 Multiple unobscured images available for the roof and the AI model has not detected a roof change between captures. The age of the roof has been predicted by a seperate model using the available images as well as other data sources. Supporting evidence agrees with the predicted installation date. - 7 Multiple unobscured images of the roof and the AI model has detected a roof change between two captures. - 8 Multiple unobscured images of the roof and the AI model has detected a roof change between two captures. Supporting evidence agrees with the predicted installation date.
      - `evidenceTypeDescription` 'no_evidence' | 'aggregate_adjunct_only' | 'adjunct_only' | 'single_image' | 'single_image_and_adjunct' | 'multiple_images_with_no_change' | 'multiple_images_with_no_change_and_adjunct' | 'multiple_images_with_change' | 'multiple_images_with_change_and_adjunct' — The evidence type used in the prediction of the roof installation date.
      - `minCaptureDate` string, date — Earliest capture date used to calculate the roof age in YYYY-MM-DD.
      - `maxCaptureDate` string, date — Latest capture date used to calculate the roof age in YYYY-MM-DD.
      - `numberOfCaptures` integer — Number of unique captures dates used to calculate the roof age.
      - `mapBrowserUrl` string, uri — Link to the Mapbrowser view of this property. If the installation date falls within the available imagery range, the view will show the imagery from the `beforeInstallationCaptureDate` and `afterInstallationCaptureDates` range. If the installation date is outside of the imagery range, the view will show imagery from the `minCaptureDate` and `maxCaptureDate` range.
      - `beforeInstallationCaptureDate` string, date — Capture date immediately preceding the predicted roof installation (YYYY-MM-DD) when within the imagery range. Null if the installation date is outside the range or unavailable (predicted before 2000).
      - `afterInstallationCaptureDate` string, date — Capture date immediately after the predicted roof installation (YYYY-MM-DD) if within the available imagery range. Null if the installation date is outside the range or unavailable (e.g., prediction before 2000).
      - `relevantPermits` boolean — True if roof installation related permits were used for the calculation of the roof installation date. False if no permits available or not used in calculation.
      - `assessorData` boolean — True if year-built assessor data associated with the parcel is available. False if no data is available.
  - `aggregate` Aggregate — Provides a summary of the AOI by aggregating or unioning relevant features into a single result. This field is used when the user's AOI spans multiple features and a single unified result is required. `aggregate` field is currently only set when defensible space is requested by the user.
    - `defensibleSpace` object — Provides information about defensible space coverage, area and risk object classes segmented by zones for unioned building footprints on the provided AOI. Building footprints are features identified as a `footprint`, which can be either `Roof` (default), or `Building Lifecycle` (fallback, used when Roof is significantly damaged or missing. To include this aggregate defensible space data in the response, set the `include` query parameter to `defensibleSpace`.
      - `skipped` boolean — Indicates that the processing for defensible space have been skipped. When this happens, the zone buffers are omitted. This usually occurs either when the buffer zones, when applied, extend beyond the resource boundary. This field is omitted when processing was not skipped.
      - `zones` ZoneDefensibleSpace[] — The defensible space zone buffers.
        - `zoneId` integer, required — Unique identifier for the zone.
        - `zoneInnerDistanceM` number, required — Inner boundary of the zone measured from the outer boundary of the building footprint (in meters).
        - `zoneInnerDistanceFt` number, required — Inner boundary of the zone measured from the outer boundary of the building footprint (in feet).
        - `zoneOuterDistanceM` number, required — Outer boundary of the zone measured from the inner boundary of the zone (in meters).
        - `zoneOuterDistanceFt` number, required — Outer boundary of the zone measured from the inner boundary of the zone (in feet).
        - `zoneGeometry` union, required — The geometry of the zone, typically a ring or doughnut shape.
          - Polygon — GeoJSON geometry
            - `type` string, required — The geometry type.
            - `coordinates` array[]
              - …
          - MultiPolygon — GeoJSON geometry
            - `type` string, required — The geometry type.
            - `coordinates` array[]
              - …
        - `zoneAreaSqm` number, required — Total area of zone in square meters.
        - `zoneAreaSqft` number, required — Total area of zone in square feet.
        - `defensibleSpaceAreaSqm` number, required — Area within the zone that is considered defensible space, measured in square meters.
        - `defensibleSpaceAreaSqft` number, required — Area within the zone that is considered defensible space, measured in square feet.
        - `totalRiskObjectAreaSqm` number — Total area occupied by all risk objects in the zone, in square meters.
        - `totalRiskObjectAreaSqft` number, required — Total area occupied by all risk objects in the zone, in square feet.
        - `defensibleSpaceCoverageRatio` number, required — Total area occupied by defensible space with respect to the total zone area.
        - `totalRiskObjectCoverageRatio` number, required — Ratio of risk object area to total zone area.
        - `riskObjects` ZoneRiskObject[] — List of risk objects detected in the zone.
          - `classId` string, required — External feaure class ID.
          - `description` string, required
          - `geometry` union, required — The geometry of the risk object.
            - Polygon — GeoJSON geometry
              - …
            - MultiPolygon — GeoJSON geometry
              - …
          - `areaSqm` number, required — Total coverage area of the risk feature class in the zone in square meters.
          - `areaSqft` number, required — Total coverage area of the risk feature class in the zone in square feet.
          - `ratio` number, required — Ratio of coverage risk feature class with respect to the zone area.
  - `geomatchedAddress` string — Matched address used for geocoded requests.
  - `perspective` 'Vert' | 'TrueOrtho', required — The perspective used to generate the AI data.
  - `reference` string — The reference passed in via the X-Nearmap-Ext-Reference request header value, if it is present. It is up to the user to track the semantics of this field. E.g. they may wish to interpret it as an insurance policy ID.
  - `extentMinX` number, required — Approximate minimum longitude of the AOI extent.
  - `extentMinY` number, required — Approximate minimum latitude of the AOI extent.
  - `extentMaxX` number, required — Approximate maximum longitude of the AOI extent.
  - `extentMaxY` number, required — Approximate maximum latitude of the AOI extent.
  - `prerelease` boolean — Indicates whether or not the system version used to serve the request is a preview release. If it's not a preview release, then it's a regular GA release. This field is only populated if the alpha or beta request query parameters are set to true or a preview release is explicitly requested.
  - `isRapidSurveyResource` boolean — Indicates whether or not the survey resource is a rapid survey resource. This field is only present if the `rapid` query parameter is set to true.
  - `versions` Versions — Version information for supplementary data sources. Version information is present only if the supplementary data source has been run.
    - `roofSpotlightIndex` Version — Version information for a supplementary data source.
      - `modelVersion` string — The version of the AI model that produced the supplementary data. Optional - omitted for supplementary data sources that do not expose a distinct model version.
      - `presentationVersion` string, required — The presentation version of the supplementary data source.
    - `damage` Version — Version information for a supplementary data source.
      - `modelVersion` string — The version of the AI model that produced the supplementary data. Optional - omitted for supplementary data sources that do not expose a distinct model version.
      - `presentationVersion` string, required — The presentation version of the supplementary data source.
    - `defensibleSpace` PresentationOnlyVersion — Version information for a supplementary data source that exposes only a presentation version.
      - `presentationVersion` string, required — The presentation version of the supplementary data source.
    - `hurricaneScore` Version — Version information for a supplementary data source.
      - `modelVersion` string — The version of the AI model that produced the supplementary data. Optional - omitted for supplementary data sources that do not expose a distinct model version.
      - `presentationVersion` string, required — The presentation version of the supplementary data source.
    - `windScore` Version — Version information for a supplementary data source.
      - `modelVersion` string — The version of the AI model that produced the supplementary data. Optional - omitted for supplementary data sources that do not expose a distinct model version.
      - `presentationVersion` string, required — The presentation version of the supplementary data source.
    - `wildfireScore` Version — Version information for a supplementary data source.
      - `modelVersion` string — The version of the AI model that produced the supplementary data. Optional - omitted for supplementary data sources that do not expose a distinct model version.
      - `presentationVersion` string, required — The presentation version of the supplementary data source.
    - `hailScore` Version — Version information for a supplementary data source.
      - `modelVersion` string — The version of the AI model that produced the supplementary data. Optional - omitted for supplementary data sources that do not expose a distinct model version.
      - `presentationVersion` string, required — The presentation version of the supplementary data source.
    - `windHailRiskScore` Version — Version information for a supplementary data source.
      - `modelVersion` string — The version of the AI model that produced the supplementary data. Optional - omitted for supplementary data sources that do not expose a distinct model version.
      - `presentationVersion` string, required — The presentation version of the supplementary data source.
  - `partialResource` boolean — Indicates that the resource only has prediction generated in certain areas of the survey. While it may have coverage in the AOI, it may not have coverage in other areas of the survey boundary.

## Other responses

- `400` — Bad Request. There was a problem with the request parameters.
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found. No data is available matching the request criteria.

---

[API](https://skmtc.net/nearmap/apis/tiles.md) · [All operations](https://skmtc.net/nearmap/apis/tiles/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nearmap/tiles/revisions/1f55d21ac4b9/schema)
