openapi: 3.0.0 info: title: AI Feature API. description: > Serves Nearmap AI Features. **NOTE:** - Fields with the `x-internal` property set to `true` are available to internal users only. - Fields with the `x-beta` property set to `true` are currently under development and beta prototype, and may be changed without increasing the API major version number. Beta fields are closed to use by selected beta customers only. version: "4.0.0" contact: email: apiteam@nearmap.com servers: - description: Production url: https://api.nearmap.com/ai/features/v4 security: - APIKeyQuery: [] - APIKeyHeader: [] tags: - name: features - name: rollups paths: /features.json: get: tags: - features summary: Returns AI features with their attributes. description: > Returns features and their attributes within the given polygon/address and date range. operationId: getFeaturesByDate parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" responses: "200": $ref: "#/components/responses/features_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - features summary: Returns AI features with their attributes. description: > Returns features and their attributes within the given polygon/address and date range. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postFeaturesByDate parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/features_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /surveyresources/{surveyResourceId}/features.json: get: tags: - features summary: Returns AI features with their attributes. description: > Returns features and their attributes within the given survey resource and polygon OR address. operationId: getFeaturesBySurveyResourceId parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/surveyResourceId" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" responses: "200": $ref: "#/components/responses/features_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - features summary: Returns AI features with their attributes. description: | Returns features and their attributes within the given polygon/address and survey resource. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postFeaturesBySurveyResourceId parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/surveyResourceId" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/features_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /rollups.csv: get: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address and date range. operationId: getRollupsCSVByDate parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" responses: "200": $ref: "#/components/responses/rollups_csv_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address and date range. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postRollupsCSVByDate parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/rollups_csv_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /rollups.json: get: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address and date range. operationId: getRollupsJSONByDate parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" responses: "200": $ref: "#/components/responses/rollups_json_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address and date range. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postRollupsJSONByDate parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/rollups_json_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /rollups.geojson: get: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address and date range. operationId: getRollupsGeoJSONByDate parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" responses: "200": $ref: "#/components/responses/rollups_geojson_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address and date range. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postRollupsGeoJSONByDate parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/rollups_geojson_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /perspective/{perspective}/features.json: get: tags: - features summary: Returns AI features with their attributes. description: > Returns features and their attributes within the given polygon/address, date range, and perspective. operationId: getFeaturesByDateAndPerspective parameters: - $ref: "#/components/parameters/perspectivePath" - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" responses: "200": $ref: "#/components/responses/features_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - features summary: Returns AI features with their attributes. description: > Returns features and their attributes within the given polygon/address and date range. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postFeaturesByDateAndPerspective parameters: - $ref: "#/components/parameters/perspectivePath" - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/features_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /perspective/{perspective}/rollups.csv: get: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address, date range, and perspective. operationId: getRollupsCSVByDateAndPerspective parameters: - $ref: "#/components/parameters/perspectivePath" - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" responses: "200": $ref: "#/components/responses/rollups_csv_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address and date range. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postRollupsCSVByDateAndPerspective parameters: - $ref: "#/components/parameters/perspectivePath" - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/rollups_csv_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /perspective/{perspective}/rollups.json: get: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address, date range, and perspective. operationId: getRollupsJSONByDateAndPerspective parameters: - $ref: "#/components/parameters/perspectivePath" - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" responses: "200": $ref: "#/components/responses/rollups_json_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address and date range. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postRollupsJSONByDateAndPerspective parameters: - $ref: "#/components/parameters/perspectivePath" - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/rollups_json_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /perspective/{perspective}/rollups.geojson: get: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address, date range, and perspective. operationId: getRollupsGeoJSONByDateAndPerspective parameters: - $ref: "#/components/parameters/perspectivePath" - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" responses: "200": $ref: "#/components/responses/rollups_geojson_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given polygon/address and date range. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postRollupsGeoJSONByDateAndPerspective parameters: - $ref: "#/components/parameters/perspectivePath" - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/order" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/systemVersion" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" - $ref: "#/components/parameters/3dCoverageFeature" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/rollups_geojson_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /surveyresources/{surveyResourceId}/rollups.csv: get: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given survey resource and polygon. Either the polygon or all geocoding address related query parameters (but not both) must be provided. operationId: getRollupsCSVBySurveyResourceId parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/surveyResourceId" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" responses: "200": $ref: "#/components/responses/rollups_csv_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given survey resource and polygon. Either the polygon or all geocoding address related query parameters (but not both) must be provided. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postRollupsCSVBySurveyResourceId parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/surveyResourceId" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/rollups_csv_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /surveyresources/{surveyResourceId}/rollups.json: get: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given survey resource and polygon. Either the polygon or all geocoding address related query parameters (but not both) must be provided. operationId: getRollupsJSONBySurveyResourceId parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/surveyResourceId" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" responses: "200": $ref: "#/components/responses/rollups_json_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given survey resource and polygon. Either the polygon or all geocoding address related query parameters (but not both) must be provided. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postRollupsJSONBySurveyResourceId parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/surveyResourceId" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/rollups_json_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /surveyresources/{surveyResourceId}/rollups.geojson: get: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given survey resource and polygon. Either the polygon or all geocoding address related query parameters (but not both) must be provided. operationId: getRollupsGeoJSONBySurveyResourceId parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/surveyResourceId" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" responses: "200": $ref: "#/components/responses/rollups_geojson_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" post: tags: - rollups summary: Returns aggregated (rolled up) values computed from AI features. description: | Returns aggregated (rolled up) values computed from all AI features within the given survey resource and polygon. Either the polygon or all geocoding address related query parameters (but not both) must be provided. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. operationId: postRollupsGeoJSONBySurveyResourceId parameters: - $ref: "#/components/parameters/optionalPolygon" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/packs" - $ref: "#/components/parameters/surveyResourceId" - $ref: "#/components/parameters/classes" - $ref: "#/components/parameters/streetAddress" - $ref: "#/components/parameters/city" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/zip" - $ref: "#/components/parameters/country" - $ref: "#/components/parameters/reference" - $ref: "#/components/parameters/alpha" - $ref: "#/components/parameters/beta" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/rollups_geojson_ok" "400": $ref: "#/components/responses/features_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" "404": $ref: "#/components/responses/features_not_found" /coverage.json: get: tags: - coverage summary: Searches for the survey resources available in a particular area. description: Returns survey resources at a particular location, filtered by date. operationId: getCoverage parameters: - $ref: "#/components/parameters/coveragePolygon" - $ref: "#/components/parameters/coveragePoint" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/prerelease" - $ref: "#/components/parameters/perspective" - $ref: "#/components/parameters/3dCoverage" responses: "200": $ref: "#/components/responses/coverage_ok" "400": $ref: "#/components/responses/coverage_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" post: tags: - coverage summary: | Searches for the survey resources available in a particular area. Operates semantically the same way as the GET variant but allows the polygon parameter to be passed inside the request body rather than as a query parameter. This may be required for polygons whose representations are large, in order to avoid URL length limitations. description: Returns survey resources at a particular location, filtered by date. operationId: postCoverage parameters: - $ref: "#/components/parameters/coveragePolygon" - $ref: "#/components/parameters/coveragePoint" - $ref: "#/components/parameters/since" - $ref: "#/components/parameters/until" - $ref: "#/components/parameters/bulk" - $ref: "#/components/parameters/prerelease" - $ref: "#/components/parameters/perspective" - $ref: "#/components/parameters/3dCoverage" requestBody: $ref: "#/components/requestBodies/aoi" responses: "200": $ref: "#/components/responses/coverage_ok" "400": $ref: "#/components/responses/coverage_bad_request" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" /packs.json: get: tags: - features summary: Returns packs available to the user. description: Returns detailed information about the packs available to the user calling the API. Details include which feature and attribute classes are available as part of each pack. parameters: - $ref: "#/components/parameters/bulk" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PacksReport" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" /classes.json: get: tags: - features summary: Returns all the feature and attribute classes available to the user. description: Returns detailed information about the feature and attribute classes available to the user calling the API. parameters: - $ref: "#/components/parameters/bulk" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ClassesReport" "401": $ref: "#/components/responses/generic_unauthorized" "403": $ref: "#/components/responses/generic_forbidden" components: securitySchemes: APIKeyQuery: name: apikey type: apiKey in: query APIKeyHeader: name: Authorization type: apiKey in: header description: Header value in the format 'Apikey ' schemas: FeatureResult: type: object properties: systemVersion: type: string description: The version of the system used to generate the AI data. resourceId: type: string description: The ID of the survey resource. surveyId: type: string description: The survey ID of the survey associated with the survey resource. surveyDate: type: string description: The date of the survey capture. format: date example: "2019-09-27" credits: type: integer example: 1 description: The number of credits used for this request. link: type: string example: "https://apps.nearmap.com/maps/#/@-33.7251728,151.2955012,20.00z,0d/V/20190927" description: The MapBrowser link to the location that was requested. features: type: array description: The AI features at the location requested. items: $ref: "#/components/schemas/Feature" geomatchedAddress: type: string example: "10897 S River Front Pkwy Ste 150, South Jordan, UT 84095-5650, USA" description: Matched address used for geocoded requests. perspective: type: string description: The perspective used to generate the AI data. enum: - Vert - TrueOrtho reference: type: string example: "123456" description: > 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: x-beta: true type: number description: Approximate minimum longitude of the AOI extent. extentMinY: x-beta: true type: number description: Approximate minimum latitude of the AOI extent. extentMaxX: x-beta: true type: number description: Approximate maximum longitude of the AOI extent. extentMaxY: x-beta: true type: number description: Approximate maximum latitude of the AOI extent. prerelease: x-beta: true type: boolean description: > Indicates whether or not the system version used to serve the request is a prerelease. If it's not a prerelease, then it's a regular production release. This field is only populated if the alpha or beta request query parameters are set to true or a prerelease is explicitly requested. required: - systemVersion - perspective - resourceId - surveyId - surveyDate - credits - link - features - extentMinX - extentMinY - extentMaxX - extentMaxY Feature: type: object required: - id - classId - description - confidence - parentId - geometry - areaSqm - areaSqft - clippedAreaSqm - clippedAreaSqft - unclippedAreaSqm - unclippedAreaSqft - surveyDate - attributes properties: id: type: string description: The Unique ID of this feature. example: "1e88ed3a-abc7-5c34-963e-06df354d39fb" classId: type: string description: The unique ID for the class of this feature. example: "5a5cb214-eee3-4fdd-bfce-d21e9793cf6a" description: type: string description: A description of the class of this feature. example: "Roof" confidence: type: number description: The confidence level for this feature. format: double example: 0.94140625 parentId: type: string description: The feature ID of immediate parent of this feature. geometry: $ref: "#/components/schemas/Geometry" areaSqm: type: number description: | The area of the feature geometry, in square meters, rounded to 1 decimal place. Connected features (e.g. lawn grass, medium and high vegetation, etc.) are clipped to the requested AOI and area computed off this clipped geometry. For connected features, this area will always equal clippedAreaSqm. Discrete features (e.g. buildings, swimming pools, etc.) are not clipped to the requested AOI, and the area is computed from the entire feature geometry. For discrete features, this area will always equal unclippedAreaSqm. example: 12.8 areaSqft: type: number description: | The area of the feature geometry, in square feet, rounded to the nearest integer. Connected features (e.g. lawn grass, medium and high vegetation, etc.) are clipped to the requested AOI and area computed off this clipped geometry. For connected features, this area will always equal clippedAreaSqft. Discrete features (e.g. buildings, swimming pools, etc.) are not clipped to the requested AOI, and the area is computed from the entire feature geometry. For discrete features, this area will always equal unclippedAreaSqft. example: 138.0 clippedAreaSqm: type: number description: The area of the feature geometry, clipped to the requested AOI, in square meters, rounded to 1 decimal place. example: 12.8 clippedAreaSqft: type: number description: The area of the feature geometry, clipped to the requested AOI, in square feet, rounded to the nearest integer. example: 138.0 unclippedAreaSqm: type: number description: The unclipped area of the feature geometry in square meters, rounded to 1 decimal place. example: 15.8 unclippedAreaSqft: type: number description: The unclipped area of the feature geometry in square feet, rounded to the nearest integer. example: 150.0 surveyDate: type: string description: The date of the survey capture. format: date example: "2019-09-27" meshDate: type: string description: The date of the 3D mesh used to generate the resource (if applicable). format: date example: "2019-09-27" attributes: type: array description: The list of attributes related to this feature. items: $ref: "#/components/schemas/Attribute" classStatus: x-beta: true type: string enum: - prod - alpha - beta description: > Indicates if the class is a production, alpha, or beta class. This field is only populated if the alpha or beta request query parameters are set to true or a prerelease is explicitly requested. Attribute: type: object description: Additional attribute data for a feature. An attribute will contain many additional fields that are specific to each attribute class. The full schemas for each attribute class are available via the `classes.json` endpoint. required: - classId - description properties: classId: type: string description: The unique ID that identifies the class of this attribute. example: "9357faf9-ea45-4787-8e9c-967b9819de9e" description: type: string description: A description of this class of this attribute. example: "Roof Material" classStatus: x-beta: true type: string enum: - prod - alpha - beta description: > Indicates if the class is a production, alpha, or beta class. This field is only populated if the alpha or beta request query parameters are set to true or a prerelease is explicitly requested. Geometry: type: object description: "GeoJSON encoding of the feature geometry." properties: type: type: string description: GeoJSON geometry type. enum: - Point - Polygon - MultiPolygon coordinates: type: array description: Coordinates of the GeoJSON geometry. items: type: object RollupsJSONResult: type: object properties: systemVersion: type: string description: The version of the system used to generate the AI data. perspective: type: string description: The perspective that was used to generate the AI data. resourceId: type: string description: The ID of the survey resource. surveyId: type: string description: The ID of the survey associated with the survey resource. surveyDate: type: string description: The date of the survey capture. format: date example: "2019-09-27" credits: type: integer example: 1 description: The number of credits used for this request. link: type: string example: "https://apps.nearmap.com/maps/#/@-33.7251728,151.2955012,20.00z,0d/V/20190927" description: The MapBrowser link to the location that was requested. rollups: $ref: "#/components/schemas/JSONRollups" geomatchedAddress: type: string example: "10897 S River Front Pkwy Ste 150, South Jordan, UT 84095-5650, USA" description: Matched address used for geocoded requests. reference: type: string example: "123456" description: > 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: x-beta: true type: number description: Approximate minimum longitude of the AOI extent. extentMinY: x-beta: true type: number description: Approximate minimum latitude of the AOI extent. extentMaxX: x-beta: true type: number description: Approximate maximum longitude of the AOI extent. extentMaxY: x-beta: true type: number description: Approximate maximum latitude of the AOI extent. prerelease: x-beta: true type: boolean description: > Indicates whether or not the system version used to serve the request is a prerelease. If it's not a prerelease, then it's a regular production release. This field is only populated if the alpha or beta request query parameters are set to true or a prerelease is explicitly requested. required: - systemVersion - perspective - resourceId - surveyId - surveyDate - credits - link - rollups - extentMinX - extentMinY - extentMaxX - extentMaxY JSONRollups: type: object description: | The set of aggregated values computed out of AI features at the location requested. The rollups can be grouped by one or more combinations of the feature class (e.g. roof), primary feature of the requested location (e.g. primary), feature attributes (e.g. 3D), or feature components (e.g. roof pitch). additionalProperties: $ref: "#/components/schemas/JSONRollup" JSONRollup: type: object description: | A single aggregated value computed out of AI features at the location requested, keyed by a unique and stable ID designed for programmatic use cases. properties: value: oneOf: - type: boolean - type: number - type: string description: | The computed aggregated value for the rollup. This value can be "null"; for example, when no roof feature is detected in the requested location, its confidence will be set to "null". example: 170.9 description: type: string description: A human-readable description of the rollup. example: "total clipped area (sq. m) of solar panel" required: - value - description RollupsGeoJSONResult: type: object properties: type: type: string description: This is always "FeatureCollection". enum: - FeatureCollection features: type: array description: | This array contains a single "feature" representing the requested location. items: $ref: "#/components/schemas/GeoJSONFeature" required: - type - features GeoJSONFeature: type: object properties: type: type: string description: This is always "Feature". enum: - Feature geometry: type: object properties: type: type: string description: The GeoJSON geometry type of the requested location. enum: - Polygon coordinates: type: array description: | The collection of rings defining the Polygon. This should always only consist of a single ring (more specifically, rectangle) describing the extent of the requested location. maxItems: 1 items: $ref: "#/components/schemas/GeoJSONPolygonRing" properties: oneOf: - type: boolean - type: number - type: string description: | A dictionary of rollups keyed by the rollup identifier concatenated with the rollup field type (one of: "value" or "description"), and delimited by underscore. Each identifier will always have both a "description" and "value" field. example: "5a5cb214-eee3-4fdd-bfce-d21e9793cf6a_value": 170.9 "5a5cb214-eee3-4fdd-bfce-d21e9793cf6a_description": "total clipped area (sq. m) of solar panel" required: - type - geometry - properties GeoJSONPolygonRing: type: array description: A collection of coordinate pairs that define the Polygon ring. minItems: 5 items: $ref: "#/components/schemas/GeoJSONCoordinate" example: [ [-97.72889712645727, 30.30097004106024], [-97.72891413685106, 30.30094441770939], [-97.7286977067365, 30.300846611442992], [-97.7286821440362, 30.300871609858902], [-97.72889712645727, 30.30097004106024], ] GeoJSONCoordinate: type: array description: | An ordered pair of floating point numbers in the following sequence: longitude, latitude. items: type: number format: double example: [149.65576171875, -32.37996146435729] Error: title: Error response type: object description: Error response. properties: code: type: string description: Error code message: type: string description: Error message PacksReport: title: Packs report. type: object description: Packs available to the user. properties: packs: type: array description: The available packs. items: $ref: "#/components/schemas/PackReport" required: - packs PackReport: title: Pack report. type: object description: Details of an available pack. properties: code: type: string example: "roof_char" description: "The pack code, as appears in the 'packs' query parameter of the features.json endpoint" featureClasses: type: array description: The feature classes available in the pack. items: $ref: "#/components/schemas/PacksEndpointClass" attributeClasses: type: array description: The attribute classes available in the pack. items: $ref: "#/components/schemas/PacksEndpointClass" required: - code - featureClasses - attributeClasses PacksEndpointClass: title: Class report. type: object description: Details of a class available within a pack. The class can either be a feature class or an attribute class. properties: id: type: string description: A unique identifier that can be used to refer to the class. example: 1344cc38-cf6f-42fd-a2ca-6e7e1dd854c4 internalId: x-internal: true type: integer description: A unique internal identifier that can be used to refer to the class. Only available for internal users. example: 1001 description: type: string description: The user friendly human description of the class. example: Shingle roof supportedVersions: type: array description: The system versions that this class is available in. example: ["gen3-winter_sunrise-1.1"] items: type: string supportedVersionsInternal: x-internal: true type: array description: The internal system versions that this class is available in. items: type: string required: - id - description - supportedVersions ClassesReport: title: Classes report. type: object description: Classes available to the user. properties: packs: type: array description: The available feature and attribute classes. items: $ref: "#/components/schemas/ClassesEndpointClass" required: - classes ClassesEndpointClass: title: Feature Attribute Class report. type: object description: Details of a class. The class can either be a feature class or an attribute class. properties: type: type: string description: The class type. enum: - Attribute - Feature example: Attribute id: type: string description: A unique identifier that can be used to refer to the class. example: 1344cc38-cf6f-42fd-a2ca-6e7e1dd854c4 internalId: x-internal: true type: integer description: A unique internal identifier that can be used to refer to the class. Only available for internal users. example: 1001 description: type: string description: The user friendly human description of the class. example: Shingle roof schema: type: object description: > A JSON Schema object that represents the schema of attributes with this attribute class ID. More details of JSON Schema can be found at https://json-schema.org/. This field is only applicable for attribute classes. availablity: type: array description: Details about the availability of the class. items: type: object description: > Describes the availability of a class within a system release and perspective combination. required: - systemVersion - perspective - status properties: systemVersion: type: string description: The version of the system used to generate the AI Data. perspective: type: string description: The perspective used to generate the AI data. enum: - Vert - TrueOrtho status: type: string description: > The stage of the software release cycle that the class is in for the system version and perspective combination. enum: - prod - beta - alpha CoverageResult: type: object required: ["result"] properties: result: type: array items: type: object required: - id - surveyId - captureDate - systemVersion - perspective - classes properties: id: type: string description: The ID of the survey resource. example: ae6f93cc-befc-4538-b87b-4733909c5cc1 surveyId: type: string description: ID of the survey associated with the survey resource. example: aa8fd559-c2e9-4e9a-82e6-449c37f0b363 captureDate: type: string description: The capture date of the survey associated with the survey resource. format: date example: "2019-09-27" systemVersion: type: string description: The system version of the survey resource. example: gen3-winter_sunrise-1.1 perspective: type: string enum: - Vert - TrueOrtho description: The perspective of the survey resource. example: Vert classes: type: array description: The list of classes available in the survey resource. This includes both feature classes and attribute classes. items: type: object required: ["id"] properties: id: type: string description: The class ID. Details about the class are available via the `classes.json` endpoint. example: 2a29365e-e1c9-4be6-b5c2-233f2de6d845 taskId: x-internal: true type: string description: The task ID associated with the survey resource. Only available to internal users. example: 8bdb1651-3e32-4985-8c55-790e4cf36c76 parameters: since: name: since in: query description: | Since is a date (`YYYY-MM-DD`) specifying that the capture must be on or after the given date (if not provided then the first available survey date in the location is assumed). required: false schema: type: string example: "2018-08-18" until: name: until in: query description: | Until is a date (`YYYY-MM-DD`) specifying that the capture date must be on or before the given date (if not provided then the current date is assumed). required: false schema: type: string example: "2021-08-18" bulk: name: bulk in: query description: | Bulk determines whether if the request is part of a large batch of requests, meaning requests will not be rate-limited. required: false schema: type: boolean default: false packs: name: packs in: query description: | Packs accepts a list of comma-separated product packs. This returns specific features and attributes under the pack. The response will return all features and attributes that the user is entitled to if no packs are provided. It cannot be used with the `classes` query parameter. This parameter is ignored if used with an empty value. required: false schema: type: string example: "solar,pool,roof_char" classes: name: classes in: query description: | Classes accepts a list of comma-separated feature class IDs. Features classes not requested will be filtered out of the response. The full list of available feature classes can be obtained by using the `classes.json` endpoint (Feature class IDs are in the `id` field for classes of type `Feature`). The response will include all feature classes that the user is entitled to if the query parameter is not specified. It cannot be used with the `packs` query parameter. This parameter is ignored if used with an empty value. required: false schema: type: string example: 2e0bd9e3-3b67-4990-84dc-1b4812fdd02b,0339726f-081e-5a6e-b9a9-42d95c1b5c8a optionalPolygon: name: polygon in: query description: | Represents the Area Of Interest (AOI) to query against. It is depicted by a set of points (longitude/latitude pairs) where the first and last point must be the same. The polygon must not self-intersect. It cannot be used with the address geocoding parameters (`streetAddress`, `city`, `state`, `zip` and `country`), or with an `aoi` defined in the request body for the HTTP POST variant endpoints. required: false example: "-96.15764446556568,41.22445342518808,-96.15716367959976,41.22444989477328,-96.1571603268385,41.22461027628211,-96.15764245390892,41.224611789313336,-96.15764446556568,41.22445342518808" schema: type: string coveragePolygon: name: polygon in: query description: | The polygon to check for coverage, as a set of points where the first and last point must be the same. It cannot be used with the `point` parameter. required: false example: "-96.15764446556568,41.22445342518808,-96.15716367959976,41.22444989477328,-96.1571603268385,41.22461027628211,-96.15764245390892,41.224611789313336,-96.15764446556568,41.22445342518808" schema: type: string coveragePoint: name: point in: query description: | The point to check for coverage, as a comma separate longitude and latitude. It cannot be used with the `polygon` query parameter. required: false example: "-96.15764446556568,41.22445342518808" schema: type: string streetAddress: x-beta: true name: streetAddress in: query description: | The street address for a geocoded request. Should consist of the street number, street name, and street type. It cannot be used with the `polygon` query parameter. required: false example: "422 Towne Park Trl" schema: type: string city: x-beta: true name: city in: query description: | The city, suburb, or locality for a geocoded request. It cannot be used with the `polygon` query parameter. required: false example: "Austin" schema: type: string state: x-beta: true name: state in: query description: | The two-letter state code for a geocoded request. It cannot be used with the `polygon` query parameter. required: false example: "TX" schema: type: string zip: x-beta: true name: zip in: query description: | The five-digit ZIP code or nine-digit ZIP+4 code for US addresses or the four-digit postal code for AU addresses for a geocoded request. It cannot be used with the `polygon` query parameter. required: false example: "78751" schema: type: string country: x-beta: true name: country in: query description: | The two-letter country code for the geocoded request. Only supports US and AU. Defaults to US when geocoding is used without supplying the country code. It cannot be used with the `polygon` query parameter. required: false example: "US" schema: type: string enum: - US - AU surveyResourceId: name: surveyResourceId in: path description: | The ID of the survey resource to fetcha AI data from. required: true example: 6c6abf86-1727-4472-8e91-7defb3c7ae3c schema: type: string reference: name: X-Nearmap-Ext-Reference in: header description: Allows a reference string to be echoed back opaquely in the body of the response. required: false example: "123456" schema: type: string systemVersion: name: systemVersion in: query description: > If specified, causes the API to only consider the given system version when choosing which survey resource to use for serving the request. required: false schema: type: string example: gen5-tranquil_pool-1.0 alpha: name: alpha in: query description: > When set to true, causes alpha classes to be included in results. required: false schema: type: boolean default: false beta: name: beta in: query description: > When set to true, causes beta classes to be included in results. required: false schema: type: boolean default: false prerelease: name: prerelease in: query description: > When set to true, causes pre-release system versions to be included in results. required: false schema: type: boolean default: false order: name: order in: query required: false description: > The order by which the surveys are sorted (using capture date) when the API selects the survey resource to use for serving the request. schema: enum: - latest - earliest default: latest perspective: name: perspective in: query required: false description: > Accepts a comma-separated list of perspectives, limiting the coverage lookup to just those perspectives. The available perspectives are Vert and TrueOrtho. This parameter is ignored if used with an empty value. schema: type: string default: Vert example: Vert,TrueOrtho perspectivePath: name: perspective in: path required: true description: Requests the perspective to obtain AI results from. schema: type: string enum: - Vert - TrueOrtho example: Vert 3dCoverage: name: 3dCoverage in: query required: false description: > When set to true, performs coverage check using the 3D attribute coverage boundary of the resource. schema: type: boolean default: false 3dCoverageFeature: name: 3dCoverage in: query required: false description: > Use the 3D attribute boundary when the API selects the survey resource to use for serving the request. Othewise, the regular resource boundary will be used. schema: type: boolean default: false responses: features_ok: description: OK content: application/json: schema: $ref: "#/components/schemas/FeatureResult" features_bad_request: description: Bad Request. There was a problem with the request parameters. content: application/json: schema: $ref: "#/components/schemas/Error" examples: Invalid polygon: value: code: INVALID_POLYGON message: Input polygon must be a valid sequence of x,y coordinates. Invalid since date: value: code: INVALID_SINCE message: Date must be in YYYY-MM-DD format. Invalid until date: value: code: INVALID_UNTIL message: Date must be in YYYY-MM-DD format. Invalid date range: value: code: INVALID_DATE_RANGE message: Since date must be before until date. Both polygon and address set: value: code: BOTH_POLYGON_AND_ADDRESS_SET message: Only one of 'polygon' or address query parameters may be set, not both. Neither polygon nor address set: value: code: NEITHER_POLYGON_NOR_ADDRESS_SET message: No polygon or address query parameters provided. At least a polygon or address must be set. Invalid address: value: code: INVALID_ADDRESS message: All address fields must be set to valid non-empty values. Unknown pack: value: code: UNKNOWN_PACK message: foo is an unknown product pack Packs and classes: value: code: PACKS_AND_CLASSES message: Only one of 'packs' or 'classes' query parameters may be set, not both. AOI exceeds maximum size: value: code: AOI_EXCEEDS_MAX_SIZE message: AOI exceeds maximum size. Unknown feature class: value: code: UNKNOWN_CLASS message: Unknown class foo. Polygon too complex: value: code: POLYGON_TOO_COMPLEX message: "Polygon must be constructed by at most 2000 points." generic_unauthorized: description: Unauthorized content: text/plain: examples: Unauthorized: value: "Unauthorized" generic_forbidden: description: Forbidden content: application/json: schema: $ref: "#/components/schemas/Error" examples: Auth failure: value: message: "Forbidden due to auth failure" features_not_found: description: Not Found. No data is available matching the request criteria. content: application/json: schema: $ref: "#/components/schemas/Error" examples: No survey resources found: value: message: "no survey resources found" coverage_ok: description: OK content: application/json: schema: $ref: "#/components/schemas/CoverageResult" coverage_bad_request: description: Bad request. There was a problem with the request parameters. content: application/json: schema: $ref: "#/components/schemas/Error" examples: No geometry provided: value: code: NO_GEOMETRY_PROVIDED message: Polygon or point query parameter missing. Invalid polygon: value: code: INVALID_POLYGON message: Input polygon must be a valid sequence of x,y coordinates. Invalid since date: value: code: INVALID_SINCE message: Date must be in YYYY-MM-DD format. Invalid until date: value: code: INVALID_UNTIL message: Date must be in YYYY-MM-DD format. Invalid date range: value: code: INVALID_DATE_RANGE message: Since date must be before until date. rollups_csv_ok: description: OK response to the rollups.csv endpoint. content: text/csv: schema: type: string examples: csv: summary: Example rollups CSV output description: | Two headers are returned, followed by the rollup data, all comma-delimited. The first header contains the unique identifiers for each rollup. These identifiers are stable and should not change over time. This ID can be relied upon for programmatic use cases. The second header consists of a human-readable description of the rollup. Descriptions containing commas will be wrapped in quotes, and unwrapped otherwise. This is not stable and could change over time. "null" values in rollup data are represented as an empty value. For example, confidence rollups can be "null" if no features were detected for that rollup. value: | 011b6179-d17f-5744-9fad-49a4358c1a31,17b97c71-4ca8-596b-9dc5-c623024fc0a5 mansard confidence,"clipped area (sq. ft) of primary, roof rusting" ,155 rollups_json_ok: description: OK response to the rollups.json endpoint. content: application/json: schema: $ref: "#/components/schemas/RollupsJSONResult" rollups_geojson_ok: description: OK response to the rollups.geojson endpoint. content: application/json: schema: $ref: "#/components/schemas/RollupsGeoJSONResult" requestBodies: aoi: required: true content: application/json: schema: type: object properties: aoi: description: | A GeoJSON object representing the requested AOI. Must be a GeoJSON polygon with no interior rings. It cannot be used with the `polygon` query parameter. type: object properties: type: type: string description: GeoJSON geometry type. enum: - Polygon coordinates: type: array description: The collection of rings defining the Polygon. items: $ref: "#/components/schemas/GeoJSONPolygonRing"