---
openapi: 3.0.1
info:
title: Beyond ACE
version: 3.0.0
servers:
- url: https://api-test.freddiemac.com/single-family/loan-advisor-suite/las-beyondace-api/v2
paths:
/image/{imageId}:
get:
tags:
- Property Data Images
summary: "Retrieve image."
description: Endpoint to retrieve Image.
operationId: getPropertyImage
parameters:
- name: imageId
in: path
description: image meta Id
required: true
style: simple
explode: false
schema:
type: string
- name: X-Lender-Id
in: header
description: Unique identifier assigned to the lender whose data is being submitted to the API. This lender must have a relationship established within Freddie Mac’s registration system with the AMC or Valuation Technology Provider submitting their data, if the lender is not submitting their own data directly. Sellers will generally have a 6-digit number and Third-Party Originators (TPOs) a 7-digit number (e.g. 000000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Amc-Id
in: header
description: Unique identifier for the submitting Appraisal Management Company (AMC) or Valuation Technology Provider submitting data to the API on behalf of a lender (e.g. AMC0000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-LenderLoan-Id
in: header
description: Identifier for the lender’s loan number (e.g. 0501555332).
required: true
style: simple
explode: false
schema:
type: string
responses:
"200":
description: actual Image
"401":
description: "
Unauthorized
\n Error codes & details
\n - 401.001: Invalid Access Token.
- 401.002: Access Token Expired.
- 401.003: API Product mismatch for token.
- 401.004: Invalid API Key.
- 401.005: Invalid API Key for given resource.
- 401.006: Insufficient scope for Application.
- 401.007: Invalid Username/Password combination.
- 401.008: Invalid Refresh Token.
- 401.009: Invalid Client Secret.
- 401.010: Refresh Token expired.
- 401: Unable to authorize the request.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIUnauthorizedResponse:
$ref: '#/components/examples/BACEAPIUnauthorizedResponse'
"404":
description: Image not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
GETResourceNotFound:
$ref: '#/components/examples/BACEAPINotFoundResponse'
ImageNotFoundResponse:
$ref: '#/components/examples/ImageNotFoundResponse'
"429":
description: "Too many Requests
\n Error codes & details
\n - 429.001: Rate limit exceeded, decrease the number of requests per second been sent
- 429.002: Quota limit exceeded, decrease the number of requests per minute been sent.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPILimitExceededResponse:
$ref: '#/components/examples/BACEAPILimitExceededResponse'
"500":
description: |-
Internal Server Error
Error codes & details
- 0005: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIInternalErrorResponse:
$ref: '#/components/examples/BACEAPIInternalErrorResponse'
security:
- bearerAuth: []
put:
tags:
- Property Data Images
summary: "Endpoint to upload and replace existing image."
description: End point to update image. Image size must be within 1 MB to 50 MB.Image must be submitted in a valid format of JPG/PNG/JPEG.
operationId: updatePropertyImage
parameters:
- name: imageId
in: path
description: image Id to update
required: true
style: simple
explode: false
schema:
type: string
- name: X-Lender-Id
in: header
description: Unique identifier assigned to the lender whose data is being submitted to the API. This lender must have a relationship established within Freddie Mac’s registration system with the AMC or Valuation Technology Provider submitting their data, if the lender is not submitting their own data directly. Sellers will generally have a 6-digit number and Third-Party Originators (TPOs) a 7-digit number (e.g. 000000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Amc-Id
in: header
description: Unique identifier for the submitting Appraisal Management Company (AMC) or Valuation Technology Provider submitting data to the API on behalf of a lender (e.g. AMC0000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-LenderLoan-Id
in: header
description: Identifier for the lender’s loan number (e.g. 0501555332).
required: true
style: simple
explode: false
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/insertDaImage'
responses:
"200":
description: Updated Image successfully
"401":
description: "Unauthorized
\n Error codes & details
\n - 401.001: Invalid Access Token.
- 401.002: Access Token Expired.
- 401.003: API Product mismatch for token.
- 401.004: Invalid API Key.
- 401.005: Invalid API Key for given resource.
- 401.006: Insufficient scope for Application.
- 401.007: Invalid Username/Password combination.
- 401.008: Invalid Refresh Token.
- 401.009: Invalid Client Secret.
- 401.010: Refresh Token expired.
- 401: Unable to authorize the request.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIUnauthorizedResponse:
$ref: '#/components/examples/BACEAPIUnauthorizedResponse'
"404":
description: Image not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPINotFoundResponse:
$ref: '#/components/examples/BACEAPINotFoundResponse'
ImageNotFoundResponse:
$ref: '#/components/examples/ImageNotFoundResponse'
"429":
description: "Too many Requests
\n Error codes & details
\n - 429.001: Rate limit exceeded, decrease the number of requests per second been sent
- 429.002: Quota limit exceeded, decrease the number of requests per minute been sent.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPILimitExceededResponse:
$ref: '#/components/examples/BACEAPILimitExceededResponse'
"500":
description: |-
Internal Server Error
Error codes & details
- 0005: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIInternalErrorResponse:
$ref: '#/components/examples/BACEAPIInternalErrorResponse'
security:
- bearerAuth: []
post:
tags:
- Property Data Images
summary: "Endpoint to upload image."
description: Endpoint to upload custom image for user entered comparable.Image size must be within 1 MB to 50 MB.Image must be submitted in a valid format of JPG/PNG/JPEG.
operationId: insertDaImage
parameters:
- name: imageId
in: path
description: image meta Id
required: true
style: simple
explode: false
schema:
type: string
- name: X-Lender-Id
in: header
description: Unique identifier assigned to the lender whose data is being submitted to the API. This lender must have a relationship established within Freddie Mac’s registration system with the AMC or Valuation Technology Provider submitting their data, if the lender is not submitting their own data directly. Sellers will generally have a 6-digit number and Third-Party Originators (TPOs) a 7-digit number (e.g. 000000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Amc-Id
in: header
description: Unique identifier for the submitting Appraisal Management Company (AMC) or Valuation Technology Provider submitting data to the API on behalf of a lender (e.g. AMC0000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-LenderLoan-Id
in: header
description: Identifier for the lender’s loan number (e.g. 0501555332).
required: true
style: simple
explode: false
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/insertDaImage'
responses:
"201":
description: Image stored
"401":
description: "Unauthorized
\n Error codes & details
\n - 401.001: Invalid Access Token.
- 401.002: Access Token Expired.
- 401.003: API Product mismatch for token.
- 401.004: Invalid API Key.
- 401.005: Invalid API Key for given resource.
- 401.006: Insufficient scope for Application.
- 401.007: Invalid Username/Password combination.
- 401.008: Invalid Refresh Token.
- 401.009: Invalid Client Secret.
- 401.010: Refresh Token expired.
- 401: Unable to authorize the request.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIUnauthorizedResponse:
$ref: '#/components/examples/BACEAPIUnauthorizedResponse'
"404":
description: Image Meta not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPINotFoundResponse:
$ref: '#/components/examples/BACEAPINotFoundResponse'
ImageNotFoundResponse:
$ref: '#/components/examples/ImageNotFoundResponse'
"429":
description: "Too many Requests
\n Error codes & details
\n - 429.001: Rate limit exceeded, decrease the number of requests per second been sent
- 429.002: Quota limit exceeded, decrease the number of requests per minute been sent.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPILimitExceededResponse:
$ref: '#/components/examples/BACEAPILimitExceededResponse'
"500":
description: |-
Internal Server Error
Error codes & details
- 0005: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIInternalErrorResponse:
$ref: '#/components/examples/BACEAPIInternalErrorResponse'
security:
- bearerAuth: []
/property/{propertyDataId}/imagemetalist:
get:
tags:
- Metadata
summary: "Get existing metadata list."
description: Endpoint to get the exisitng Image metadata.
operationId: getMetaDataList
parameters:
- name: propertyDataId
in: path
description: Existing PropertyDataID generated during initial submission.
required: true
style: simple
explode: false
schema:
type: string
- name: X-Lender-Id
in: header
description: Unique identifier assigned to the lender whose data is being submitted to the API. This lender must have a relationship established within Freddie Mac’s registration system with the AMC or Valuation Technology Provider submitting their data, if the lender is not submitting their own data directly. Sellers will generally have a 6-digit number and Third-Party Originators (TPOs) a 7-digit number (e.g. 000000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Amc-Id
in: header
description: Unique identifier for the submitting Appraisal Management Company (AMC) or Valuation Technology Provider submitting data to the API on behalf of a lender (e.g. AMC0000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-LenderLoan-Id
in: header
description: Identifier for the lender’s loan number (e.g. 0501555332).
required: true
style: simple
explode: false
schema:
type: string
responses:
"200":
description: Data has been found. Request body contains Property Data object.
content:
application/json:
schema:
$ref: '#/components/schemas/ImageMetaDataList'
"401":
description: "Unauthorized
\n Error codes & details
\n - 401.001: Invalid Access Token.
- 401.002: Access Token Expired.
- 401.003: API Product mismatch for token.
- 401.004: Invalid API Key.
- 401.005: Invalid API Key for given resource.
- 401.006: Insufficient scope for Application.
- 401.007: Invalid Username/Password combination.
- 401.008: Invalid Refresh Token.
- 401.009: Invalid Client Secret.
- 401.010: Refresh Token expired.
- 401: Unable to authorize the request.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIUnauthorizedResponse:
$ref: '#/components/examples/BACEAPIUnauthorizedResponse'
"404":
description: Property not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPINotFoundResponse:
$ref: '#/components/examples/BACEAPINotFoundResponse'
PropertyNotFoundResponse:
$ref: '#/components/examples/GETImageMetaNotFoundResponse'
"429":
description: "Too many Requests
\n Error codes & details
\n - 429.001: Rate limit exceeded, decrease the number of requests per second been sent
- 429.002: Quota limit exceeded, decrease the number of requests per minute been sent.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPILimitExceededResponse:
$ref: '#/components/examples/BACEAPILimitExceededResponse'
"500":
description: |-
Internal Server Error
Error codes & details
- 0005: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIInternalErrorResponse:
$ref: '#/components/examples/BACEAPIInternalErrorResponse'
security:
- bearerAuth: []
/property:
post:
tags:
- Property Data
summary: "Submit new Property Data set."
description: Endpoint to submit property data.
operationId: postPropertyData
parameters:
- name: X-Lender-Id
in: header
description: Unique identifier assigned to the lender whose data is being submitted to the API. This lender must have a relationship established within Freddie Mac’s registration system with the AMC or Valuation Technology Provider submitting their data, if the lender is not submitting their own data directly. Sellers will generally have a 6-digit number and Third-Party Originators (TPOs) a 7-digit number (e.g. 000000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Amc-Id
in: header
description: Unique identifier for the submitting Appraisal Management Company (AMC) or Valuation Technology Provider submitting data to the API on behalf of a lender (e.g. AMC0000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-LenderLoan-Id
in: header
description: Identifier for the lender’s loan number (e.g. 0501555332).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Dataset-Version
in: header
description: Version of Uniform Property Dataset the property data submission conforms to. The current version is UPD1. This is not to be confused with the UPD Document Version Number which may be UPD1.0 or UPD1.1.
required: true
style: simple
explode: false
schema:
type: string
- name: X-PropertyDataReportType
in: header
description: The LPA offering associated with the request for a PDR. Use ACEPDR for ACE+ PDR or HYBRID for hybrid appraisals (only when LPA offered a hybrid appraisal, NOT when you know you might upgrade to a HYBRID appraisal from an ACE+ PDR).
required: true
style: simple
explode: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyDataReport'
examples:
SingleFamilyExample:
$ref: '#/components/examples/SingleFamilyExample'
CondoExample:
$ref: '#/components/examples/CondoExample'
responses:
"201":
description: Data has been submitted successfully.Based on the request submitted,Response body contains Data Quality Errors or Image Requirements as part Property Data Status object.Note*: Refer UPD specifications for Image Requirements
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyDataReportStatus'
"400":
description: Bad request. Request body contains PropertyDataReportStatus object with validationErrors definition
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIBadRequestMissingResponse:
$ref: '#/components/examples/BACEAPIBadRequestMissingResponse'
BACEAPIBadRequestCustomResponse:
$ref: '#/components/examples/BACEAPIBadRequestCustomResponse'
BACEAPIBadRequestCustomResponseInvalid:
$ref: '#/components/examples/BACEAPIBadRequestCustomResponseInvalid'
"401":
description: "Unauthorized
\n Error codes & details
\n - 401.001: Invalid Access Token.
- 401.002: Access Token Expired.
- 401.003: API Product mismatch for token.
- 401.004: Invalid API Key.
- 401.005: Invalid API Key for given resource.
- 401.006: Insufficient scope for Application.
- 401.007: Invalid Username/Password combination.
- 401.008: Invalid Refresh Token.
- 401.009: Invalid Client Secret.
- 401.010: Refresh Token expired.
- 401: Unable to authorize the request.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIUnauthorizedResponse:
$ref: '#/components/examples/BACEAPIUnauthorizedResponse'
"404":
description: "Resource not found
\n Error codes & details
- 404.001: No resource for {user provided value} uri.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPINotFoundResponse:
$ref: '#/components/examples/BACEAPINotFoundResponse'
"429":
description: "Too many Requests
\n Error codes & details
\n - 429.001: Rate limit exceeded, decrease the number of requests per second been sent
- 429.002: Quota limit exceeded, decrease the number of requests per minute been sent.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPILimitExceededResponse:
$ref: '#/components/examples/BACEAPILimitExceededResponse'
"500":
description: |-
Internal Server Error
Error codes & details
- 0005: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIInternalErrorResponse:
$ref: '#/components/examples/BACEAPIInternalErrorResponse'
security:
- bearerAuth: []
/property/{propertyDataId}/imagemeta:
post:
tags:
- Metadata
summary: "Submit Property Data Image MetaData."
description: Endpoint to submit Image metadata.
operationId: postPropertyDataImage
parameters:
- name: propertyDataId
in: path
description: Existing PropertyDataID generated during initial submission.
required: true
style: simple
explode: false
schema:
type: string
- name: X-Lender-Id
in: header
description: Unique identifier assigned to the lender whose data is being submitted to the API. This lender must have a relationship established within Freddie Mac’s registration system with the AMC or Valuation Technology Provider submitting their data, if the lender is not submitting their own data directly. Sellers will generally have a 6-digit number and Third-Party Originators (TPOs) a 7-digit number (e.g. 000000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Amc-Id
in: header
description: Unique identifier for the submitting Appraisal Management Company (AMC) or Valuation Technology Provider submitting data to the API on behalf of a lender (e.g. AMC0000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-LenderLoan-Id
in: header
description: Identifier for the lender’s loan number (e.g. 0501555332).
required: true
style: simple
explode: false
schema:
type: string
requestBody:
description: Image metadata
content:
application/json:
schema:
$ref: '#/components/schemas/ImageMetaData'
application/pda.v3+json:
schema:
$ref: '#/components/schemas/ImageMetaData'
application/pda.v4+json:
schema:
$ref: '#/components/schemas/ImageMetaData'
required: true
responses:
"201":
description: Metadata created, image Id returned.
content:
application/json:
schema:
$ref: '#/components/schemas/ImageStorageLocation'
"400":
description: Bad request. Request body contains ErrorResponse object with validationErrors definition
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
"401":
description: "Unauthorized
\n Error codes & details
\n - 401.001: Invalid Access Token.
- 401.002: Access Token Expired.
- 401.003: API Product mismatch for token.
- 401.004: Invalid API Key.
- 401.005: Invalid API Key for given resource.
- 401.006: Insufficient scope for Application.
- 401.007: Invalid Username/Password combination.
- 401.008: Invalid Refresh Token.
- 401.009: Invalid Client Secret.
- 401.010: Refresh Token expired.
- 401: Unable to authorize the request.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIUnauthorizedResponse:
$ref: '#/components/examples/BACEAPIUnauthorizedResponse'
"404":
description: Property not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPINotFoundResponse:
$ref: '#/components/examples/BACEAPINotFoundResponse'
GETImageMetaNotFoundResponse:
$ref: '#/components/examples/GETImageMetaNotFoundResponse'
"429":
description: "Too many Requests
\n Error codes & details
\n - 429.001: Rate limit exceeded, decrease the number of requests per second been sent
- 429.002: Quota limit exceeded, decrease the number of requests per minute been sent.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPILimitExceededResponse:
$ref: '#/components/examples/BACEAPILimitExceededResponse'
"500":
description: |-
Internal Server Error
Error codes & details
- 0005: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIInternalErrorResponse:
$ref: '#/components/examples/BACEAPIInternalErrorResponse'
security:
- bearerAuth: []
/property/{propertyDataId}/status:
get:
tags:
- Submission Status
summary: "Get Existing Property Data Status."
description: Endpoint to get the status of property data submitted.
operationId: getPropertyDataStatus
parameters:
- name: propertyDataId
in: path
description: Existing PropertyDataID generated during initial submission.
required: true
style: simple
explode: false
schema:
type: string
- name: X-Lender-Id
in: header
description: Unique identifier assigned to the lender whose data is being submitted to the API. This lender must have a relationship established within Freddie Mac’s registration system with the AMC or Valuation Technology Provider submitting their data, if the lender is not submitting their own data directly. Sellers will generally have a 6-digit number and Third-Party Originators (TPOs) a 7-digit number (e.g. 000000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Amc-Id
in: header
description: Unique identifier for the submitting Appraisal Management Company (AMC) or Valuation Technology Provider submitting data to the API on behalf of a lender (e.g. AMC0000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-LenderLoan-Id
in: header
description: Identifier for the lender’s loan number (e.g. 0501555332).
required: true
style: simple
explode: false
schema:
type: string
responses:
"200":
description: Data has been found. Request body contains Property Data Status object.
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyDataReportStatus'
"401":
description: "Unauthorized
\n Error codes & details
\n - 401.001: Invalid Access Token.
- 401.002: Access Token Expired.
- 401.003: API Product mismatch for token.
- 401.004: Invalid API Key.
- 401.005: Invalid API Key for given resource.
- 401.006: Insufficient scope for Application.
- 401.007: Invalid Username/Password combination.
- 401.008: Invalid Refresh Token.
- 401.009: Invalid Client Secret.
- 401.010: Refresh Token expired.
- 401: Unable to authorize the request.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIUnauthorizedResponse:
$ref: '#/components/examples/BACEAPIUnauthorizedResponse'
"404":
description: Property not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPINotFoundResponse:
$ref: '#/components/examples/BACEAPINotFoundResponse'
PropertyNotFoundResponse:
$ref: '#/components/examples/PropertyNotFoundResponse'
"429":
description: "Too many Requests
\n Error codes & details
\n - 429.001: Rate limit exceeded, decrease the number of requests per second been sent
- 429.002: Quota limit exceeded, decrease the number of requests per minute been sent.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPILimitExceededResponse:
$ref: '#/components/examples/BACEAPILimitExceededResponse'
"500":
description: |-
Internal Server Error
Error codes & details
- 0005: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIInternalErrorResponse:
$ref: '#/components/examples/BACEAPIInternalErrorResponse'
security:
- bearerAuth: []
/property/imagemeta/{imageId}:
put:
tags:
- Metadata
summary: "Update Property Data Image MetaData."
description: Endpoint to update Image metadata.
operationId: updateMetadata
parameters:
- name: imageId
in: path
description: Existing Image Id
required: true
style: simple
explode: false
schema:
type: string
- name: X-Lender-Id
in: header
description: Unique identifier assigned to the lender whose data is being submitted to the API. This lender must have a relationship established within Freddie Mac’s registration system with the AMC or Valuation Technology Provider submitting their data, if the lender is not submitting their own data directly. Sellers will generally have a 6-digit number and Third-Party Originators (TPOs) a 7-digit number (e.g. 000000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Amc-Id
in: header
description: Unique identifier for the submitting Appraisal Management Company (AMC) or Valuation Technology Provider submitting data to the API on behalf of a lender (e.g. AMC0000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-LenderLoan-Id
in: header
description: Identifier for the lender’s loan number (e.g. 0501555332).
required: true
style: simple
explode: false
schema:
type: string
requestBody:
description: Image metadata
content:
application/json:
schema:
$ref: '#/components/schemas/ImageMetaData'
required: true
responses:
"200":
description: Metadata updated.
"400":
description: Bad request. Request body contains ErrorResponse object with validationErrors definition
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
"401":
description: "Unauthorized
\n Error codes & details
\n - 401.001: Invalid Access Token.
- 401.002: Access Token Expired.
- 401.003: API Product mismatch for token.
- 401.004: Invalid API Key.
- 401.005: Invalid API Key for given resource.
- 401.006: Insufficient scope for Application.
- 401.007: Invalid Username/Password combination.
- 401.008: Invalid Refresh Token.
- 401.009: Invalid Client Secret.
- 401.010: Refresh Token expired.
- 401: Unable to authorize the request.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIUnauthorizedResponse:
$ref: '#/components/examples/BACEAPIUnauthorizedResponse'
"404":
description: Property not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPINotFoundResponse:
$ref: '#/components/examples/BACEAPINotFoundResponse'
"429":
description: "Too many Requests
\n Error codes & details
\n - 429.001: Rate limit exceeded, decrease the number of requests per second been sent
- 429.002: Quota limit exceeded, decrease the number of requests per minute been sent.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPILimitExceededResponse:
$ref: '#/components/examples/BACEAPILimitExceededResponse'
"500":
description: |-
Internal Server Error
Error codes & details
- 0005: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIInternalErrorResponse:
$ref: '#/components/examples/BACEAPIInternalErrorResponse'
security:
- bearerAuth: []
/property/{propertyDataId}:
get:
tags:
- Property Data
summary: "Get Existing Property Data set."
description: Endpoint to retrieve submitted property data.
operationId: getPropertyData
parameters:
- name: propertyDataId
in: path
description: Existing PropertyDataID generated during initial submission.
required: true
style: simple
explode: false
schema:
type: string
- name: X-Lender-Id
in: header
description: Unique identifier assigned to the lender whose data is being submitted to the API. This lender must have a relationship established within Freddie Mac’s registration system with the AMC or Valuation Technology Provider submitting their data, if the lender is not submitting their own data directly. Sellers will generally have a 6-digit number and Third-Party Originators (TPOs) a 7-digit number (e.g. 000000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Amc-Id
in: header
description: Unique identifier for the submitting Appraisal Management Company (AMC) or Valuation Technology Provider submitting data to the API on behalf of a lender (e.g. AMC0000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-LenderLoan-Id
in: header
description: Identifier for the lender’s loan number (e.g. 0501555332).
required: true
style: simple
explode: false
schema:
type: string
responses:
"200":
description: Data has been found. Request body contains Property Data object.
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyDataReportWithImages'
"401":
description: "Unauthorized
\n Error codes & details
\n - 401.001: Invalid Access Token.
- 401.002: Access Token Expired.
- 401.003: API Product mismatch for token.
- 401.004: Invalid API Key.
- 401.005: Invalid API Key for given resource.
- 401.006: Insufficient scope for Application.
- 401.007: Invalid Username/Password combination.
- 401.008: Invalid Refresh Token.
- 401.009: Invalid Client Secret.
- 401.010: Refresh Token expired.
- 401: Unable to authorize the request.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIUnauthorizedResponse:
$ref: '#/components/examples/BACEAPIUnauthorizedResponse'
"404":
description: Property not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPINotFoundResponse:
$ref: '#/components/examples/BACEAPINotFoundResponse'
PropertyNotFoundResponse:
$ref: '#/components/examples/PropertyNotFoundResponse'
"429":
description: "Too many Requests
\n Error codes & details
\n - 429.001: Rate limit exceeded, decrease the number of requests per second been sent
- 429.002: Quota limit exceeded, decrease the number of requests per minute been sent.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPILimitExceededResponse:
$ref: '#/components/examples/BACEAPILimitExceededResponse'
"500":
description: |-
Internal Server Error
Error codes & details
- 0005: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIInternalErrorResponse:
$ref: '#/components/examples/BACEAPIInternalErrorResponse'
security:
- bearerAuth: []
/pdf/{propertyDataId}:
get:
tags:
- Property Data PDF
summary: "Retrieve PDF."
description: Endpoint to get the PDF submitted.
operationId: getPDF
parameters:
- name: propertyDataId
in: path
description: Existing PropertyDataID generated during initial submission.
required: true
style: simple
explode: false
schema:
type: string
- name: X-Lender-Id
in: header
description: Unique identifier assigned to the lender whose data is being submitted to the API. This lender must have a relationship established within Freddie Mac’s registration system with the AMC or Valuation Technology Provider submitting their data, if the lender is not submitting their own data directly. Sellers will generally have a 6-digit number and Third-Party Originators (TPOs) a 7-digit number (e.g. 000000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Amc-Id
in: header
description: Unique identifier for the submitting Appraisal Management Company (AMC) or Valuation Technology Provider submitting data to the API on behalf of a lender (e.g. AMC0000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-LenderLoan-Id
in: header
description: Identifier for the lender’s loan number (e.g. 0501555332).
required: true
style: simple
explode: false
schema:
type: string
responses:
"200":
description: PDF retrieved Sucussesfully
"401":
description: "Unauthorized
\n Error codes & details
\n - 401.001: Invalid Access Token.
- 401.002: Access Token Expired.
- 401.003: API Product mismatch for token.
- 401.004: Invalid API Key.
- 401.005: Invalid API Key for given resource.
- 401.006: Insufficient scope for Application.
- 401.007: Invalid Username/Password combination.
- 401.008: Invalid Refresh Token.
- 401.009: Invalid Client Secret.
- 401.010: Refresh Token expired.
- 401: Unable to authorize the request.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIUnauthorizedResponse:
$ref: '#/components/examples/BACEAPIUnauthorizedResponse'
PDFNotFoundResponse:
$ref: '#/components/examples/PDFNotFoundResponse'
"404":
description: Url malformed found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPINotFoundResponse:
$ref: '#/components/examples/BACEAPINotFoundResponse'
PDFNotFoundResponse:
$ref: '#/components/examples/PDFNotFoundResponse'
"429":
description: "Too many Requests
\n Error codes & details
\n - 429.001: Rate limit exceeded, decrease the number of requests per second been sent
- 429.002: Quota limit exceeded, decrease the number of requests per minute been sent.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPILimitExceededResponse:
$ref: '#/components/examples/BACEAPILimitExceededResponse'
"500":
description: |-
Internal Server Error
Error codes & details
- 0005: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIInternalErrorResponse:
$ref: '#/components/examples/BACEAPIInternalErrorResponse'
security:
- bearerAuth: []
post:
tags:
- Property Data PDF
summary: "Endpoint to upload PDF."
description: Endpoint to submit the PDF.
operationId: savePDF
parameters:
- name: propertyDataId
in: path
description: Existing PropertyDataID generated during initial submission.
required: true
style: simple
explode: false
schema:
type: string
- name: X-Lender-Id
in: header
description: Unique identifier assigned to the lender whose data is being submitted to the API. This lender must have a relationship established within Freddie Mac’s registration system with the AMC or Valuation Technology Provider submitting their data, if the lender is not submitting their own data directly. Sellers will generally have a 6-digit number and Third-Party Originators (TPOs) a 7-digit number (e.g. 000000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-Amc-Id
in: header
description: Unique identifier for the submitting Appraisal Management Company (AMC) or Valuation Technology Provider submitting data to the API on behalf of a lender (e.g. AMC0000).
required: true
style: simple
explode: false
schema:
type: string
- name: X-LenderLoan-Id
in: header
description: Identifier for the lender’s loan number (e.g. 0501555332).
required: true
style: simple
explode: false
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/insertDaImage'
responses:
"201":
description: PDF Saved Sucussesfully
"401":
description: "Unauthorized
\n Error codes & details
\n - 401.001: Invalid Access Token.
- 401.002: Access Token Expired.
- 401.003: API Product mismatch for token.
- 401.004: Invalid API Key.
- 401.005: Invalid API Key for given resource.
- 401.006: Insufficient scope for Application.
- 401.007: Invalid Username/Password combination.
- 401.008: Invalid Refresh Token.
- 401.009: Invalid Client Secret.
- 401.010: Refresh Token expired.
- 401: Unable to authorize the request.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIUnauthorizedResponse:
$ref: '#/components/examples/BACEAPIUnauthorizedResponse'
"404":
description: Image Meta not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPINotFoundResponse:
$ref: '#/components/examples/BACEAPINotFoundResponse'
PDFNotFoundResponse:
$ref: '#/components/examples/PDFNotFoundResponse'
"429":
description: "Too many Requests
\n Error codes & details
\n - 429.001: Rate limit exceeded, decrease the number of requests per second been sent
- 429.002: Quota limit exceeded, decrease the number of requests per minute been sent.
"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPILimitExceededResponse:
$ref: '#/components/examples/BACEAPILimitExceededResponse'
"500":
description: |-
Internal Server Error
Error codes & details
- 0005: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
BACEAPIInternalErrorResponse:
$ref: '#/components/examples/BACEAPIInternalErrorResponse'
security:
- bearerAuth: []
components:
schemas:
GPSCoordinates:
required:
- latitude
- longitude
type: object
properties:
latitude:
type: number
description: Waterfall Subject Latitude as centroid of latitude of all images, OR a specific image likely to be present in all dwellings, such as the kitchen OR a photo of the main entrance of the dwelling. If latitude from images is unavailable, use geocoder from subject address.
format: float
example: 38.889248
longitude:
type: number
description: Waterfall Subject Longitude as centroid of longitude of all images, OR a specific image likely to be present in all dwellings, such as the kitchen OR a photo of the main entrance of the dwelling. If latitude/longitude from images is unavailable, use geocoder from subject address.
format: float
example: -77.050636
additionalProperties: false
ImageMetaDataList:
required:
- metadataList
type: object
properties:
metadataList:
type: array
items:
$ref: '#/components/schemas/ImageStorageLocation'
ImageMetaData:
required:
- description
- geoPosition
- imageNotAvailable
- imageType
- parentObjectJsonPath
- timestamp
type: object
properties:
propertyDataId:
type: string
example: acde070d-8c4c-4f0d-9d8a-162843c10333
imageType:
type: string
enum:
- STREET_ADDRESS
- UNIT_NUMBER
- STREET_LEFT
- STREET_RIGHT
- ROAD_UNDER_MAINTAINED
- ADVERSE_SITE_CONDITIONS
- ATTACHED_GARAGE_EXTERIOR
- ATTACHED_GARAGE_INTERIOR
- DETACHED_GARAGE_EXTERIOR
- DETACHED_GARAGE_INTERIOR
- BUILTIN_GARAGE_EXTERIOR
- BUILTIN_GARAGE_INTERIOR
- SIDING_GARAGE_DEFICIENCY
- WINDOWS_GARAGE_DEFICIENCY
- DOORS_GARAGE_DEFICIENCY
- GARAGE_DOOR_GARAGE_DEFICIENCY
- EXTERIOR_WALLS_GARAGE_DEFICIENCY
- INTERIOR_WALLS_GARAGE_DEFICIENCY
- CEILING_GARAGE_DEFICIENCY
- ROOF_GARAGE_DEFICIENCY
- FOUNDATION_GARAGE_DEFICIENCY
- OTHER_GARAGE_DEFICIENCY
- SIDING_CARSTORAGE_DEFICIENCY
- WINDOWS_CARSTORAGE_DEFICIENCY
- DOORS_CARSTORAGE_DEFICIENCY
- GARAGE_DOOR_CARSTORAGE_DEFICIENCY
- EXTERIOR_WALLS_CARSTORAGE_DEFICIENCY
- INTERIOR_WALLS_CARSTORAGE_DEFICIENCY
- CEILING_CARSTORAGE_DEFICIENCY
- ROOF_CARSTORAGE_DEFICIENCY
- FOUNDATION_CARSTORAGE_DEFICIENCY
- OTHER_CARSTORAGE_DEFICIENCY
- CARPORT
- OPEN_ASSIGNED
- SF_VIEW
- CONDO_VIEW
- VIEW_FRONT
- VIEW_LEFT_SIDE
- VIEW_RIGHT_SIDE
- VIEW_REAR
- BORDERING_INFLUENCE
- WATERFRONT
- WATERFRONT_SITE_IMPROVEMENTS
- PROPERTY_IMPROVEMENTS
- FEATURE_TYPE
- INGROUND_POOL_CONCERNS
- NONRESIDENTIAL_USE
- STRUCTURE_FRONT
- STRUCTURE_LEFT_SIDE
- STRUCTURE_RIGHT_SIDE
- STRUCTURE_REAR
- BUILDING_FRONT
- BUILDING_LEFT
- BUILDING_RIGHT
- BUILDING_REAR
- ROOM
- KITCHEN
- BATHROOM
- LIVING_ROOM
- OVEN_RANGE
- FLOORING_INTERIOR_DEFICIENCY
- PLUMBING_FIXTURES_INTERIOR_DEFICIENCY
- ELECTRICAL_FIXTURES_INTERIOR_DEFICIENCY
- CABINET_COUNTERTOPS_INTERIOR_DEFICIENCY
- APPLIANCES_INTERIOR_DEFICIENCY
- WALLS_INTERIOR_DEFICIENCY
- CEILING_INTERIOR_DEFICIENCY
- SHOWER_TUB_SURROUND_INTERIOR_DEFICIENCY
- OTHER_INTERIOR_DEFICIENCY
- FLOORING_INTERIOR_UPDATE
- PLUMBING_FIXTURES_INTERIOR_UPDATE
- ELECTRICAL_FIXTURES_INTERIOR_UPDATE
- CABINET_COUNTERTOPS_INTERIOR_UPDATE
- APPLIANCES_INTERIOR_UPDATE
- WALLS_INTERIOR_UPDATE
- CEILING_INTERIOR_UPDATE
- OTHER_INTERIOR_UPDATE
- FLOOR_PLAN
- FOUNDATION_EXTERIOR_DEFICIENCY
- ROOF_EXTERIOR_DEFICIENCY
- SIDING_EXTERIOR_DEFICIENCY
- FASCIA_EXTERIOR_DEFICIENCY
- WINDOWS_EXTERIOR_DEFICIENCY
- DOORS_EXTERIOR_DEFICIENCY
- GUTTERS_DOWNSPOUTS_EXTERIOR_DEFICIENCY
- EAVES_EXTERIOR_DEFICIENCY
- CHIMNEY_EXTERIOR_DEFICIENCY
- PORCH_EXTERIOR_DEFICIENCY
- PATIO_EXTERIOR_DEFICIENCY
- DECK_EXTERIOR_DEFICIENCY
- BALCONY_EXTERIOR_DEFICIENCY
- ENTRY_STAIRS_EXTERIOR_DEFICIENCY
- CARPORT_EXTERIOR_DEFICIENCY
- DRIVEWAY_EXTERIOR_DEFICIENCY
- INCOMPLETE_LANDSCAPING_EXTERIOR_DEFICIENCY
- OTHER_EXTERIOR_DEFICIENCY
- EXTERIOR_WALLS_EXTERIOR_DEFICIENCY
- SIDING_EXTERIOR_UPDATE
- DOORS_EXTERIOR_UPDATE
- WALLS_EXTERIOR_UPDATE
- ROOF_EXTERIOR_UPDATE
- FOUNDATION_EXTERIOR_UPDATE
- FENCE_EXTERIOR_UPDATE
- OTHER_EXTERIOR_UPDATE
- WINDOWS_EXTERIOR_UPDATE
- PLUMBING_MECHANICAL_DEFICIENCY
- ELECTRICAL_MECHANICAL_DEFICIENCY
- HEATING_MECHANICAL_DEFICIENCY
- WATER_HEATER_MECHANICAL_DEFICIENCY
- COOLING_MECHANICAL_DEFICIENCY
- SUMP_PUMP_MECHANICAL_DEFICIENCY
- OTHER_MECHANICAL_DEFICIENCY
- PLUMBING_MECHANICAL_UPDATE
- ELECTRICAL_MECHANICAL_UPDATE
- HEATING_MECHANICAL_UPDATE
- WATER_HEATER_MECHANICAL_UPDATE
- COOLING_MECHANICAL_UPDATE
- SUMP_PUMP_MECHANICAL_UPDATE
- OTHER_MECHANICAL_UPDATE
- OTHER
description:
type: string
description: Image Description
imageTags:
type: array
description: optional image tags
items:
type: string
geoPosition:
$ref: '#/components/schemas/GPSCoordinates'
timestamp:
type: integer
description: Must be UTC timestamp in seconds.
format: int64
example: 1694559274
imageNotAvailable:
type: boolean
description: true/false (if an image is not available then this field should be set to true, otherwise it should be false.) Note: Image omission will affect Waiver Eligibility. Conditional value, if alwaysRequired is true, imageNotAvailable must be false, image must be provided.
alwaysRequired:
type: boolean
description: true/false (This field will be true for images that are required for the Inspection to be considered Complete).
parentObjectJsonPath:
type: string
feature:
type: object
properties:
featureType:
type: string
description: 'Indicate all features specific to the unit. If there are no additional unit features, “None” must be selected. Required (/property/propertyType = CONDO) '
enum:
- ORNATE_LANDSCAPING
- OUTDOOR_KITCHEN
- INGROUND_POOL
- INGROUND_HOTTUB
- SPORTS_COURT
- SAUNA
- GAZEBO
- PATIO
- DECK
- BALCONY
- UNCOVERED_PORCH
- COVERED_PORCH
- ENCLOSED_PORCH
- WRAP_AROUND_PORCH
- STOOP
- FIREPIT
- OUTDOOR_FIREPLACE
- OTHER
- NONE
- CARPORT
- ABOVE_GROUND_POOL
ImageStorageLocation:
type: object
properties:
imageId:
type: string
example: bcde070d-8c4c-4f0d-9d8a-162843c10334
imageMeta:
$ref: '#/components/schemas/ImageMetaData'
uploadUrl:
type: string
ValidationError:
type: object
properties:
jsonPath:
type: string
validationErrorMessage:
type: string
Address:
required:
- city
- county
- postalCode
- state
- streetAddress
type: object
properties:
streetAddress:
type: string
description: House number and street name.
example: 123 Main St
unitNumber:
maxLength: 10
minLength: 0
type: string
description: Unit number of the property, if applicable.
example: Unit 2B
city:
type: string
description: City
example: City
county:
type: string
description: County or parish
example: County
state:
maxLength: 2
minLength: 2
type: string
description: Provide the state abbrevaition
example: VA
postalCode:
maxLength: 5
minLength: 5
type: string
description: Zip code
example: 98765
additionalProperties: false
AdverseSiteCondition:
required:
- adverseType
type: object
properties:
adverseType:
type: string
description: "Indicate any adverse site conditions observed on the subject property. \r\nSelect one or more of the items from the list of allowable values. If there is an observation not listed, choose “Other” and provide a description of the observation. If there are none, then choose “None Observed”.\r\n"
enum:
- CONTAMINATION
- FAILING_SITE_IMPROVEMENT
- ENCROACHMENTS
- SIGNIFICANT_JUNK_TRASH
- SINKHOLE
- WETLANDS
- EXTREME_SLOPE
- OTHER
- NONE_OBSERVED
adverseSiteConditionDescription:
type: string
description: Provide a description of the adverse site condition observed. Required IF ( /property/site/siteFeature/adverseSiteConditions/adverseType != 'NONE_OBSERVED' ).Note* Maximum length must be less than 2500 characters.
additionalProperties: false
Ancillary:
type: object
properties:
roadDesc:
type: string
description: A free-form text field used to describe the property off-site improvement specified by Property Off Site Improvement Feature Type.Note* Maximum length must be less than 2500 characters.
example: Asphalt
atticFloorExists:
type: boolean
description: Indicates if the feature specified in Attic Feature Type is present in the structure.
example: false
atticHeated:
type: boolean
description: Indicates if the feature specified in Attic Feature Type is present in the structure.
example: false
heatingFuelDesc:
type: string
description: A free-form text field used to describe the fuel used by the heating unit.Note* Maximum length must be less than 2500 characters.
drivewaySurfaceDesc:
type: string
description: A free-form text field used to describe or comment on the aspect of the property named in the Site Feature Type.Note* Maximum length must be less than 2500 characters.
example: Concrete
alley:
$ref: '#/components/schemas/AncillaryAlley'
appliances:
$ref: '#/components/schemas/AncillaryAppliances'
exterior:
$ref: '#/components/schemas/AncillaryExterior'
gas:
$ref: '#/components/schemas/AncillaryGas'
interior:
$ref: '#/components/schemas/AncillaryInterior'
AncillaryAlley:
type: object
properties:
desc:
type: string
description: A free-form text field used to describe the property off-site improvement specified by Property Off Site Improvement Feature Type.Note* Maximum length must be less than 2500 characters.
example: Gravel
public:
type: boolean
description: Indicates that the particular off-site improvement feature specified by Property Off Site Improvement Feature Type is present.
example: false
private:
type: boolean
description: Indicates that the particular off-site improvement feature specified by Property Off Site Improvement Feature Type is present.
example: false
AncillaryAppliances:
type: object
properties:
refrigeratorExists:
type: boolean
description: Indicates if the kitchen equipment specified in Kitchen Equipment Type is present in the unit.
example: true
dishwasherExists:
type: boolean
description: Indicates if the kitchen equipment specified in Kitchen Equipment Type is present in the unit.
example: true
disposalExists:
type: boolean
description: Indicates if the kitchen equipment specified in Kitchen Equipment Type is present in the unit.
example: true
microwaveExists:
type: boolean
description: Indicates if the kitchen equipment specified in Kitchen Equipment Type is present in the unit.
example: true
washerDryerExists:
type: boolean
description: Indicates if the kitchen equipment specified in Kitchen Equipment Type is present in the unit.
example: true
otherExists:
type: boolean
description: Indicates if the kitchen equipment specified in Kitchen Equipment Type is present in the unit.
example: false
otherDesc:
type: string
description: A free-form text field used to describe the kitchen equipment if Other is selected as the Kitchen Equipment Type.Note* Maximum length must be less than 2500 characters.
example: Wine Cooler
AncillaryExterior:
type: object
properties:
descFoundationWalls:
type: string
description: A free-form text field used to describe the exterior feature. Note* Maximum length must be less than 2500 characters.
example: Concrete Block
descExtWalls:
type: string
description: A free-form text field used to describe the exterior feature. Note* Maximum length must be less than 2500 characters.
example: Concrete Block
descRoofSurface:
type: string
description: A free-form text field used to describe the exterior feature. Note* Maximum length must be less than 2500 characters.
example: Standing Seam Metal
descGuttersDownspouts:
type: string
description: A free-form text field used to describe the exterior feature. Note* Maximum length must be less than 2500 characters.
example: Aluminum
descWindowType:
type: string
description: A free-form text field used to describe the exterior feature. Note* Maximum length must be less than 2500 characters.
example: Vinyl Double Hung
descStormSashInsulated:
type: string
description: A free-form text field used to describe the exterior feature. Note* Maximum length must be less than 2500 characters.
example: Metal
descScreens:
type: string
description: A free-form text field used to describe the exterior feature. Note* Maximum length must be less than 2500 characters.
example: Fabric
AncillaryGas:
type: object
properties:
otherDesc:
type: string
description: A free-form text field used to describe the ownership of the utility specified by Site Utility Type if it is a non-public utility. Note* Maximum length must be less than 2500 characters.
example: Propane
AncillaryInterior:
type: object
properties:
floorsDesc:
type: string
description: A free-form text field used to describe the material used and condition of an interior feature specified by Interior Feature Type. Note* Maximum length must be less than 2500 characters.
example: Carpet
wallsDesc:
type: string
description: A free-form text field used to describe the material used and condition of an interior feature specified by Interior Feature Type. Note* Maximum length must be less than 2500 characters.
example: Plaster
trimFinishDesc:
type: string
description: A free-form text field used to describe the material used and condition of an interior feature specified by Interior Feature Type. Note* Maximum length must be less than 2500 characters.
example: Crown
bathFloorDesc:
type: string
description: A free-form text field used to describe the material used and condition of an interior feature specified by Interior Feature Type. Note* Maximum length must be less than 2500 characters.
example: Tile
bathWainscotDesc:
type: string
description: A free-form text field used to describe the material used and condition of an interior feature specified by Interior Feature Type. Note* Maximum length must be less than 2500 characters.
example: Tile
ElectricalService:
required:
- electricalType
type: object
properties:
electricalType:
type: string
description: Indicate the electrical service type(s) for the subject property. If more than one type is available, select all that apply. If the property has both public service as well as private service, select both public and all other electrical service types. If there is no electrical service at the property, select “No Electrical Service.”
enum:
- PUBLIC
- SOLAR
- GENERATOR
- WIND
- HYDRO_ELECTRIC
- NO_ELECTRICAL_SERVICE
offGridService:
type: boolean
description: If an alternative electrical source is indicated for electrical service type and connected to the grid.True = identified electrical service is connected to the public utility.False = identified electrical service is NOT connected to the public utility.Required IF ( /property/site/siteUtility/electricalServices/electricalType = 'SOLAR' OR 'GENERATOR' OR 'WIND' OR 'HYDRO_ELECTRIC' )
additionalProperties: false
ExteriorDeficiency:
required:
- exteriorDeficiencyName
type: object
properties:
exteriorDeficiencyName:
type: string
description: Indicate the item or component of the exterior of the property that has deferred maintenance requiring significant repairs (e.g. - missing siding, boarded up windows, hole in door, etc.). If an item or component is missing, identify that it is deficient. Select all that apply.
enum:
- NONE_OBSERVED
- FOUNDATION
- ROOF
- SIDING
- FASCIA
- WINDOWS
- DOORS
- GUTTERS_DOWNSPOUTS
- EAVES
- CHIMNEY
- PORCH
- PATIO
- DECK
- BALCONY
- ENTRY_STAIRS
- CARPORT
- DRIVEWAY
- INCOMPLETE_LANDSCAPING
- OTHER
- EXTERIOR_WALLS
exteriorDeficiencyType:
type: string
description: Identify the type of deficiencies associated with the exterior of the property.Required if /property/buildings/exteriorDeficiencies/exteriorDeficiencyName != ‘NONE_OBSERVED’
enum:
- EXCESSIVE_WEAR
- DAMAGE
- EVIDENCE_OF_INFESTATION
- MISSING
- OTHER
exteriorDeficiencyDetailFoundation:
type: array
description: Indicate the details of the Deficiency Type for the item or component(s) selected.Required if /property/buildings/exteriorDeficiencies/exteriorDeficiencyName = 'FOUNDATION'
items:
type: string
enum:
- ERODED_MATERIAL
- CRACKING
- SETTLEMENT
- EVIDENCE_OF_MOISTURE
- SEEPAGE
- INFESTATION
- LEANING_OR_BOWING_WALLS
- HEAVING
- OTHER
exteriorDeficiencyDetailExteriorWalls:
type: array
description: Indicate the details of the Deficiency Type for the item or component(s) selected.Required if /property/buildings/exteriorDeficiencies/exteriorDeficiencyName = 'EXTERIOR_WALLS'
items:
type: string
enum:
- ERODED_MATERIAL
- CRACKING
- HOLES
- DRY_ROT
- MOISTURE_ROT
- SETTLEMENT
- WIND_DAMAGE
- MISSING_MATERIAL
- OTHER
exteriorDeficiencyDetailRoofSurface:
type: array
description: Indicate the details of the Deficiency Type for the item or component(s) selected.Required if /property/buildings/exteriorDeficiencies/exteriorDeficiencyName = 'ROOF'
items:
type: string
enum:
- ERODED_MATERIAL
- CRACKING
- TARP_ON_ROOF
- LEAK_EVIDENT
- MISSING_MATERIAL
- WOOD_ROT
- SOFFIT_DAMAGE
- FASCIA_DAMAGE
- OTHER
exteriorDeficiencyDetailGuttersandDownspouts:
type: array
description: Indicate the details of the Deficiency Type for the item or component(s) selected.Required if /property/buildings/exteriorDeficiencies/exteriorDeficiencyName = GUTTERS_DOWNSPOUTS
items:
type: string
enum:
- ERODED_MATERIAL
- CRACKING
- MISSING_DOWNSPOUTS
- DAMAGED
- LEAKING
- INFESTATION
- IMPROPER_FLOW
- MISSING_GUTTER
- OTHER
exteriorDeficiencyDetailWindows:
type: array
description: Indicate the details of the Deficiency Type for the item or component(s) selected.Required if /property/buildings/exteriorDeficiencies/exteriorDeficiencyName = 'WINDOWS'
items:
type: string
enum:
- CRACKING
- MISSING_WINDOW_PANE
- DRY_ROT
- BROKEN_GLASS
- BOARDED_UP
- MISSING_WINDOW
- EXPOSED_WOOD
- STORM_SASH_DAMAGE
- THERMOPANE_DAMAGE
- OTHER
exteriorDeficiencySeverity:
type: boolean
description: Indicate if the noted deficiency to the exterior item or component impacts the safety, soundness, or structural integrity of the structure or unit.Required if /property/buildings/exteriorDeficiencies/exteriorDeficiencyName != ‘NONE_OBSERVED’
exteriorDeficiencyDescription:
type: string
description: Provide a brief description of each exterior item or component deficiency observed.Required if /property/buildings/exteriorDeficiencies/exteriorDeficiencyName != ‘NONE_OBSERVED’. Note* Maximum length must be less than 2500 characters.
example: The balcony is only partially attached to the exterior wall of the structure.
additionalProperties: false
ExteriorUpdate:
required:
- exteriorUpdatedComponent
type: object
properties:
exteriorUpdatedComponent:
type: string
description: 'Indicate which component(s) has been updated if there have been updates to the exterior of the structure. Select all that apply. '
enum:
- NONE_OBSERVED
- SIDING
- WINDOWS
- DOORS
- WALLS
- ROOF
- FOUNDATION
- FENCE
- OTHER
exteriorUpdateType:
type: string
description: Indicate to what degree the component(s) have been updated, if there have been updates to the exterior of the structure.Refinished = Changed the existing component, such as by painting or refacing.Replaced = Removed and replaced the existing component with new materials.Required IF ( /property/buildings/exteriorUpdates/exteriorUpdatedComponent != 'NONE_OBSERVED' )
enum:
- FULLY_UPDATED
- PARTIALLY_UPDATED
exteriorUpdateTimeframe:
type: string
description: Indicate what timeframe the updates to the exterior of the structure have been completed. If not known, an estimated timeframe may be provided. For instance, if an update was made approximately 3 years ago, then the user would select '1_TO_10_YEARS'. Required IF ( /property/buildings/exteriorUpdates/exteriorUpdatedComponent != 'NONE_OBSERVED' )
enum:
- LESS_THAN_1_YEAR
- 1_TO_10_YEARS
- 10_TO_20_YEARS
- MORE_THAN_20_YEARS
exteriorUpdateDescription:
type: string
description: "Exterior Update Description\r\nProvide a brief description of the nature of the improvements, if there have been updates to the exterior of the structure.\r\nRequired IF ( /property/buildings/exteriorUpdates/exteriorUpdatedComponent != 'NONE_OBSERVED' ). Note* Maximum length must be less than 2500 characters."
example: The garage door was replaced 16 months ago.
additionalProperties: false
garage:
type: object
properties:
garageType:
type: string
description: Indicate the type of garage. If more than one type of garage is available, choose all that apply. Required IF ( /property/propertyType = SF or (/property/propertyType = CONDO & property/buildings/buildingDesign = ROWHOUSE_TOWNHOUSE or DETACHED OR OTHER))
enum:
- ATTACHED_GARAGE
- DETACHED_GARAGE
- BUILTIN_GARAGE
- NONE
garageSpaceCount:
type: integer
description: Indicate the count of spaces for each garage type indicated. If multiple types were indicated, assign the correct number of spaces for each type. A tandem garage can be counted as one or more spaces if the depth of the garage allows for two or more cars to be parked front to back.Required IF(/property/buildings/units/garages/garageType != NONE)
garageSpaceArea:
type: integer
description: Indicate the square footage of the garage for each instance of Attached Garage, Built-In Garage or Detached Garage selected.Required IF(/property/buildings/units/garages/garageType != NONE)
garageConversionIndicator:
type: boolean
description: User to indicate whether the garage was converted to finished area.Possible indicators of a garage conversion:1. Garage door may have been removed or modified.2. Garage has been improved with finishes such as drywall, flooring, heating/cooling, etc. 3. Converted space has heating and/or cooling at least equal to main dwelling.TRUE = garage was converted.FALSE = garage is utilized car storage or original use, not converted.Required IF(/property/buildings/units/garages/garageType != NONE)
garageDeficiencies:
type: array
items:
$ref: '#/components/schemas/garageDeficiency'
additionalProperties: false
garageDeficiency:
type: object
properties:
garageDeficiencyName:
type: string
description: User to identify any garage components that are either damaged or show obvious signs of wear and tear. User should select 'None Observed' if no obvious signs of damage are apparent.Required IF(/property/buildings/units/garages/garageType != NONE)
enum:
- NONE_OBSERVED
- SIDING
- WINDOWS
- DOORS
- GARAGE_DOOR
- EXTERIOR_WALLS
- INTERIOR_WALLS
- CEILING
- ROOF
- FOUNDATION
- OTHER
garageDeficiencyType:
type: string
description: User to identify the type of deficiency of the component selected.Required IF ( /property/buildings/units/garages/garageDeficiencies/garageDeficiencyName != 'NONE_OBSERVED'
enum:
- EXCESSIVE_WEAR
- EVIDENCE_OF_INFESTATION
- MISSING
- OTHER
garageDeficiencyDetailFoundation:
type: array
description: User to identify the type of deficiency of the component selected.Required IF ( /property/buildings/units/garages/garageDeficiencies/garageDeficiencyName = 'FOUNDATION' )
items:
type: string
enum:
- ERODED_MATERIAL
- CRACKING
- SETTLEMENT
- EVIDENCE_OF_MOISTURE
- SEEPAGE
- INFESTATION
- LEANING_OR_BOWED_WALLS
- HEAVING
- OTHER
garageDeficiencyDetailExteriorWalls:
type: array
description: User to identify the type of deficiency of the component selected.Required IF ( /property/buildings/units/garages/garageDeficiencies/garageDeficiencyName = 'EXTERIOR_WALLS' )
items:
type: string
enum:
- ERODED_MATERIAL
- CRACKING
- HOLES
- DRY_ROT
- MOISTURE_ROT
- SETTLEMENT
- WIND_DAMAGE
- MISSING_MATERIAL
- OTHER
garageDeficiencyDetailRoofSurface:
type: array
description: User to identify the type of deficiency of the component selected.Required IF ( /property/buildings/units/garages/garageDeficiencies/garageDeficiencyName = 'ROOF' )
items:
type: string
enum:
- ERODED_MATERIAL
- CRACKING
- TARP_ON_ROOF
- LEAK_EVIDENT
- MISSING_MATERIAL
- WOOD_ROT
- SOFFIT_DAMAGE
- FASCIA_DAMAGE
- OTHER
garageDeficiencyDetailWindows:
type: array
description: User to identify the type of deficiency of the component selected.Required IF ( /property/buildings/units/garages/garageDeficiencies/garageDeficiencyName = 'WINDOWS' )
items:
type: string
enum:
- CRACKING
- MISSING_WINDOW_PANE
- EXPOSED_WOOD
- STORM_SASH_DAMAGE
- THERMOPANE_DAMAGE
- OTHER
garageDeficiencyDetailCeiling:
type: array
description: User to identify the type of deficiency of the component selected.Required IF ( /property/buildings/units/garages/garageDeficiencies/garageDeficiencyName = 'CEILING' )
items:
type: string
enum:
- DISCOLORATION
- MISSING
- CRUMBLING
- WATER_DAMAGE
- OTHER
garageDeficiencyDetailInteriorWalls:
type: array
description: User to identify the type of deficiency of the component selected.Required IF ( /property/buildings/units/garages/garageDeficiencies/garageDeficiencyName = 'INTERIOR_WALLS' )
items:
type: string
enum:
- DISCOLORATION
- MISSING
- CRUMBLING
- WATER_DAMAGE
- OTHER
garageDeficiencySeverity:
type: boolean
description: User to select whether the deficient item does or does not impact the safety, structural integrity, or habitability of the affected structural component.True = Deficiency impacts the safety, structural integrity or habitability of the structure.False = The deficiency does NOT affect the safety, structural integrity or habitability of the structure. Required IF ( /property/buildings/units/garages/garageDeficiencies/garageDeficiencyName != 'NONE_OBSERVED').
garageDeficiencyDescription:
type: string
description: User to provide a concise text description of any deficiencies observed.Required IF ( /property/buildings/units/garages/garageDeficiencies/garageDeficiencyName != 'NONE_OBSERVED' ). Note* Maximum length must be less than 2500 characters.
additionalProperties: false
heating:
required:
- heatingType
type: object
properties:
heatingType:
type: string
description: Indicate all heating systems for each unit. If there are multiple heat sources, choose all that apply. If there is no heat source, “No Heat” must be selected.
enum:
- CENTRAL_HOT_AIR
- HOT_WATER_RADIATORS
- HOT_WATER_BASEBOARD
- ELECTRIC_BASEBOARD
- IN_WALL_HEATER
- RADIANT_FLOOR
- CENTRAL_HEATPUMP
- DUCTLESS_HEATPUMP
- DUCTLESS_HEAT
- GEOTHERMAL
- WALL_FURNACE
- GAS_FURNACE
- OIL_FURNACE
- COAL_FURNACE
- NO_HEAT
cooling:
required:
- coolingType
type: object
properties:
coolingType:
type: string
description: Indicate all cooling systems for each unit. If there are multiple systems, chose all that apply. If there is no cooling, “None” must be selected.
enum:
- CENTRAL_AIR_CONDITIONING
- CENTRAL_HEATPUMP
- DUCTLESS_HEATPUMP
- DUCTLESS_AIR_CONDITIONING
- WHOLE_HOUSE_FAN
- EVAPORATIVE_COOLER
- GEOTHERMAL
- NONE
Identification:
required:
- gpsCoordinates
type: object
properties:
gpsCoordinates:
$ref: '#/components/schemas/GPSCoordinates'
additionalProperties: false
IngroundPoolConcern:
type: object
properties:
poolConcernType:
type: string
description: Indicate if any of the concern types apply when inground pool is selected as a property improvement. If no concerns are identified, provide select “None”.Required IF ( /property/site/propertyFeature/propertyImprovements/propertyImprovementType = 'INGROUND_POOL' AND /property/propertyType = SF)
enum:
- NONE
- EMPTY_AND_UNCOVERED
- DAMAGED
- MISSING_EQUIPMENT
- DAMAGED_POOL_ENCLOSURE
- UNSANITARY_WATER
poolConcernDescription:
type: string
description: Provide a brief description of each pool concern noted if any pool concern type other than “None” was selected.e g.Large cracks were noted in the lining of the pool. Required IF ( /property/site/siteFeature/siteImprovements/ingroundPoolConcerns/poolConcernType != 'NONE' AND /property/propertyType = SF).Note* Maximum length must be less than 2500 characters.
additionalProperties: false
interiorDeficiency:
required:
- interiorDeficiencyName
type: object
properties:
interiorDeficiencyName:
type: string
description: 'Indicate if any portion or element of a room has deferred maintenance and requires significant repair(s). Also indicate if any item is missing. '
enum:
- NONE_OBSERVED
- FLOORING
- PLUMBING_FIXTURES
- ELECTRICAL_FIXTURES
- CABINET_COUNTERTOPS
- APPLIANCES
- WALLS
- CEILING
- SHOWER_TUB_SURROUND
- OTHER
interiorDeficiencyType:
type: string
description: Indicate the type of deferred maintenance and significant repair(s) associated with the components of the interior of the structure. Provide all that apply.Required IF( /property/buildings/units/levels/rooms/interiorDeficiencies/interiorDeficiencyName != ‘NONE_OBSERVED’)
enum:
- EXCESSIVE_WEAR
- DAMAGE
- EVIDENCE_OF_MOLD
- EVIDENCE_OF_INFESTATION
- MISSING
- POOR_FUNCTIONAL_UTILITY
- OTHER
interiorDeficiencyDetailFlooring:
type: array
description: Indicate the details of Deficiency Type for the component that was selected.Required IF( /property/buildings/units/levels/rooms/interiorDeficiencies/interiordeficiencyName = ‘FLOORING’)
items:
type: string
enum:
- BUCKLED
- HOLES
- SAGGING
- SPONGY
- INFESTATION
- DRY_ROT
- DISCOLORATION
- CRACKS
- UNFINISHED_SECTION
- DAMPNESS
- OTHER
interiorDeficiencyDetailCeiling:
type: array
description: Indicate the details of Deficiency Type for the component that was selected.Required IF( /property/buildings/units/levels/rooms/interiorDeficiencies/interiordeficiencyName = ‘CEILING’)
items:
type: string
enum:
- DISCOLORATION
- MISSING
- CRUMBLING
- WATER_DAMAGE
- OTHER
interiorDeficiencyDetailWalls:
type: array
description: Indicate the details of Deficiency Type for the component that was selected. Required IF( /property/buildings/units/levels/rooms/interiorDeficiencies/interiordeficiencyName = ‘WALLS’)
items:
type: string
enum:
- DISCOLORATION
- MISSING
- CRUMBLING
- WATER_DAMAGE
- OTHER
interiorDeficiencyDetailTubShowerSurround:
type: boolean
description: Indicate the details of Deficiency Type for the component that was selected.Required IF( /property/buildings/units/levels/rooms/interiorDeficiencies/interiordeficiencyName = ‘SHOWER_TUB_SURROUND’)
interiorDeficiencySeverity:
type: boolean
description: Indicate if the noted deficiency to the room component impacts the safety, soundness, or structural integrity of the structure or unit.Required IF( /property/buildings/units/levels/rooms/interiorDeficiencies/interiorDeficiencyName != ‘NONE_OBSERVED’)
interiorDeficiencyDescription:
type: string
description: User to provide a text description of any deficiencies observed.IF( /property/buildings/units/levels/rooms/interiorDeficiencies/deficiencyName != ‘NONE_OBSERVED’). Note* Maximum length must be less than 2500 characters.
example: New carpet has been installed and the walls have been recently painted.
additionalProperties: false
interiorUpdate:
required:
- interiorUpdatedComponent
type: object
properties:
interiorUpdatedComponent:
type: string
description: "Indicate which component(s) has been updated.\r\nSelect all that apply\r\n"
enum:
- NONE_OBSERVED
- FLOORING
- PLUMBING_FIXTURES
- ELECTRICAL_FIXTURES
- CABINET_COUNTERTOPS
- APPLIANCES
- WALLS
- CEILING
- OTHER
interiorUpdateType:
type: string
description: Indicate the degree of updating for the Interior Updated Component.Required IF ( /property/buildings/units/levels/rooms/interiorUpdates/interiorUpdatedComponent != 'NONE_OBSERVED')
enum:
- FULLY_UPDATED
- PARTIALLY_UPDATED
interiorUpdateTimeframe:
type: string
description: Indicate the timeframe for which updates to the room were completed. If not known, an estimated timeframe may be provided. For instance, if an update was made approximately 3 years ago, then the user would select 'TWO_TO_FIVE_YEARS'. .Required IF ( /property/buildings/units/levels/rooms/interiorUpdates/interiorUpdatedComponent != 'NONE_OBSERVED')
enum:
- LESS_THAN_1_YEAR
- 1_TO_5_YEARS
- 5_TO_10_YEARS
- 10_OR_MORE_YEARS
interiorUpdateDescription:
type: string
description: Provide a brief description of the nature of the improvements if there have been updates to the room.Required IF ( /property/buildings/units/levels/rooms/interiorUpdates/interiorUpdatedComponent != 'NONE_OBSERVED'). Note* Maximum length must be less than 2500 characters.
example: The kitchen has missing cabinets/countertops.
additionalProperties: false
Level:
required:
- attic
- belowGrade
- finishedArea
- levelLowCeiling
- levelNumber
- nonStandardFinishedArea
- totalArea
- rooms
type: object
properties:
levelNumber:
type: integer
description: Indicate each level of the building, including condominium units, and label them sequentially from the bottom to the top, starting with level 1, regardless if any level is identified as being below grade. All responses should be in whole numbers. e.g., 1, 2, 3
example: 1
belowGrade:
type: boolean
description: 'User to identify below grade areas by indicating whether any area that is partially or wholly below grade; A floor level is partially or wholly below grade if any portion of its walls is not entirely at or above ground level. True should be selected for ''Below Grade'' if any portion of any wall for a level is partially or wholly below grade. '
example: true
belowGradeExits:
type: array
description: User to indicate the type(s) of exits to/from below grade areas (indicated by the selection of 'Below Grade'. The user should select the type(s) of exits for either external access and/or internal access.Required IF ( /property/buildings/units/levels/belowGrade = TRUE )
items:
type: string
enum:
- WALKUP
- WALKOUT
- GARAGE
- CELLAR_DOOR
- INTERIOR
levelLowCeiling:
type: boolean
description: User to indicate whether any portion of the level has ceilings less than 7 feet above the floor.
attic:
type: boolean
description: User to indicate whether an attic is accessible from the level.True = Attic can be accessed from this level.False = Attic cannot be accessed from this level.
atticAccess:
type: array
description: 'User to select the option that best describes the type of access to the attic when the attic indicator is set to ''TRUE''.Required IF ( /property/buildings/units/levels/attic = ''TRUE'' '
items:
type: string
enum:
- ATTIC_SCUTTLE
- DROP_STAIR
- PERMANENT_STAIRWELL
- DOOR
- NONE_OBSERVED
atticAccessLocation:
type: boolean
description: Some levels have attic access through a small door, or hatch on the same level as a finished living area. If this is they type of attic access indicate True. If the Attic accessed from this level is above this level indicate False.Required IF ( /property/buildings/units/levels/attic = 'TRUE' )
totalArea:
type: integer
description: User to input the total floor area for each level. Total floor area includes all finished and unfinished regardless of ceiling height. This field is not used in calculating GLA.
finishedArea:
type: integer
description: User to input the finished living area for each level. Finished area is defined as any space within the dwelling that is finished to the standards of the home with a ceiling height no less than 7 feet above the floor. The finished area must be provided in square feet.Finished area that is below grade will be counted separately from those that are not below grade.
nonStandardFinishedArea:
type: integer
description: User to input any area of a level that is finished to the same degree of the property but does not meet the ANSI standard of finished area due to the height of the ceiling.
rooms:
maxItems: 1000
minItems: 1
type: array
items:
$ref: '#/components/schemas/Room'
additionalProperties: false
Location:
required:
- locationDescriptionDetails
- locationDescriptionType
type: object
properties:
locationDescriptionType:
type: string
description: 'Indicate the location (or locations) or characteristic that best describes the aspects of the subject’s location or characteristic. '
enum:
- BORDERING_AMENITIES
- BORDERING_RAIL_STOP
- BORDERING_TROLLEY_STOP
- BORDERING_CITY_BUS_STOP
- BORDERING_BEACH
- BORDERING_RECREATION
- GATED_COMMUNITY
- OCEAN_FRONT_BEACH
- OCEAN_FRONT_NO_BEACH
- INLAND_SALTWATER_FRONT_BEACH
- INLAND_SALTWATER_FRONT_NO_BEACH
- LAKE_FRONT_BEACH
- LAKE_FRONT_NO_BEACH
- SEASONAL_LAKE_FRONT
- RIVER_CANAL_FRONT
- BORDERING_GOLF_COURSE
- GOLF_COURSE_COMMUNITY
- RESIDENTIAL
- BORDERING_INDUSTRIAL_USE
- BORDERING_COMMERCIAL_USE
- BORDERING_SCHOOL
- BORDERING_VACANT_LAND
- BORDERING_HOSPITAL
- BORDERING_RESTAURANT
- BORDERING_HOTEL_MOTEL_INN
- ON_CUL_DE_SAC_STREET
- ON_OR_BORDERING_BUSY_ROAD
- ON_OR_BORDERING_INTERSTATE_HWY
- AIR_TRAFFIC_DIRECTLY_OVERHEAD
- BORDERING_PARK
- BORDERING_OVERHEAD_ELECTRIC_POWER_TRANSMISSION_LINE
- BORDERING_LANDFILL
- NOTABLE_NOISE
- NOTABLE_ODOR
- OTHER_ADVERSE
- OTHER_BENEFICIAL
- OTHER_NEUTRAL
locationDescriptionDetails:
minLength: 1
type: string
description: Provide a short description of all location types selected.e.g., The subject property is located on the 9th hole of the golf course.Note* Maximum length must be less than 2500 characters.
example: The subject property is located on the 9th hole of the golf course.
additionalProperties: false
Lot:
description: Required IF (/property/propertyType = SF).
type: object
properties:
lotSize:
type: integer
description: The total area of all encumbered parcels is prepopulated in the property data and displayed in square feet. Verify the accuracy of provided data with the point of contact, if possible. Required IF (/property/propertyType = SF)
format: int64
example: 22000
lotSizeUnits:
type: string
description: The units in which the lot size is expressed. Square feet must always be selected for this field.Required IF (/property/propertyType = SF)
enum:
- SQUARE_FEET
additionalProperties: false
mechanicalDeficiency:
required:
- mechanicalDeficiencyName
type: object
properties:
mechanicalDeficiencyName:
type: string
description: Indicate the mechanical deficiency that exists or identify the portion or element of the structure’s mechanicals that has deferred maintenance requiring significant repairs. If a mechanical item or component is missing, identify that it is deficient. Select all that apply.
enum:
- NONE_OBSERVED
- PLUMBING
- ELECTRICAL
- HEATING
- WATER_HEATER
- COOLING
- SUMP_PUMP
- OTHER
mechanicalDeficiencyType:
type: string
description: Indicate the type of deficiencies associated with the mechanicals.Required if /property/buildings/units/mechanicalDeficiencies/mechanicalDeficiencyName != ‘NONE_OBSERVED’
enum:
- EXCESSIVE_WEAR
- DAMAGE
- MISSING
- NON_FUNCTIONAL
- EVIDENCE_OF_LEAKS
- EVIDENCE_OF_FIRE
- OTHER
mechanicalDeficiencySeverity:
type: boolean
description: Indicate if the noted deficiency to the mechanical component impacts the safety, soundness, or structural integrity of the structure or unit..Required if /property/buildings/units/mechanicalDeficiencies/mechanicalDeficiencyName != ‘NONE_OBSERVED’
mechanicalDeficiencyDescription:
type: string
description: Provide a brief description of the Deficiency Type for the component that was selected. e.g., The toilet in the primary bathroom is leaking. Note* Maximum length must be less than 2500 characters.Required if /property/buildings/units/mechanicalDeficiencies/mechanicalDeficiencyName != ‘NONE_OBSERVED’
example: The toilet in the primary bathroom is leaking.
additionalProperties: false
mechanicalUpdates:
required:
- mechanicalUpdatedComponent
type: object
properties:
mechanicalUpdatedComponent:
type: string
description: Indicate all components that have been updated or replaced. If there have been no updates, select “None Observed”.
enum:
- NONE_OBSERVED
- PLUMBING
- ELECTRICAL
- HEATING
- WATER_HEATER
- COOLING
- SUMP_PUMP
- OTHER
mechanicalUpdateType:
type: string
description: Indicate if the mechanical component has been Fully Updated or only Partially Updated.Required IF(/property/buildings/units/mechanicalUpdates/mechanicalUpdatedComponent != 'NONE_OBSERVED'
enum:
- FULLY_UPDATED
- PARTIALLY_UPDATED
mechanicalUpdateTimeframe:
type: string
description: Indicate the timeframe the improvements were made for the mechanical component. For instance, if an update was made approximately 3 years ago, then the user would select '1_TO_5_YEARS'. Required IF(/property/buildings/units/mechanicalUpdates/mechanicalUpdatedComponent != 'NONE_OBSERVED'
enum:
- LESS_THAN_1_YEAR
- 1_TO_5_YEARS
- 5_TO_10_YEARS
- 10_OR_MORE_YEARS
mechanicalUpdateDescription:
type: string
description: Provide a brief description of each mechanical component update observed.Required IF(/property/buildings/units/mechanicalUpdates/mechanicalUpdatedComponent != 'NONE_OBSERVED. Note* Maximum length must be less than 2500 characters.
example: The plumbing in the primary bathroom has been updated with new faucets and sinks.
additionalProperties: false
NonResidentialUse:
type: object
properties:
nonResidentialUseType:
type: string
description: "Indicate any non-residential uses identified on the subject property. Select all that apply. \r\nIf the observed non-residential use is not listed, select “Other”. If there are no indications of non-residential use, select “None Observed”.\r\n.Required If (/property/propertyType = SF)"
enum:
- CHILDCARE
- ELDERCARE
- BOARDING_HOUSE
- AUTO_SHOP
- MEDICAL
- SALON
- OFFICE
- RETAIL
- HOTEL_BED_BREAKFAST
- FOOD_SERVICE
- AGRICULTURE
- GROW_ROOM
- OTHER
- NONE_OBSERVED
nonResidentialUseDescription:
type: string
description: Provide a brief description for the non-residential use of the subject property, if a non-residential use is indicated. If “Other” was selected, provide a description of the non-residential use. .Required IF ( /property/site/siteFeature/nonResidentialUses/nonResidentialUseType != 'NONE_OBSERVED' AND /property/propertyType = SF).Note* Maximum length must be less than 2500 characters.
additionalProperties: false
offSiteFeature:
required:
- road
type: object
properties:
road:
$ref: '#/components/schemas/Road'
additionalProperties: false
PlumbingFixture:
type: object
properties:
fixtureType:
type: string
description: 'Indicate the fixture for every bathroom, kitchen, laundry room, and butler’s pantry in the structure. Select all that apply. Note: The count and type of fixtures will determine the bathroom type programmatically. A full bathroom is identified by the presence of a shower/tub, sink, and toilet fixtures. A half-bath is identified by the presence of sink and toilet fixtures, with no shower/tub.Required IF ( /property/buildings/units/levels/rooms/roomType = ''FULL_BATH'' OR ''HALF_BATH'' OR ''KITCHEN'' OR ''BUTLERS_PANTRY'' OR ''LAUNDRY_ROOM'')'
enum:
- SINK
- LAUNDRY_HOOKUP
- POT_FILLER
- JETTED_TUB
- TOILET
- TUB_SHOWER
- WALK_IN_SHOWER
- TUB_W_NO_SHOWER
- FREESTANDING_TUB
- APPLIANCE_HOOKUP
- ROUGH_IN
- NONE_OBSERVED
Building:
required:
- constructionStatus
- containsRooms
- exteriorDeficiencies
- exteriorUpdates
type: object
properties:
structureType:
type: string
description: Indicate the best option to identify all permanently affixed structures. All structures must be identified. “Dwelling” should be selected for structures that include finished areas and are not one of the other specifically identified structures, such as a workshop or a barn. Required IF (/property/propertyType = SF)
enum:
- DWELLING
- DETACHED_GARAGE
- OTHER_OUTBUILDING
- WORKSHOP
- BARN
- POLE_BUILDING
- STABLES
- RIDING_ARENA
- POOL_HOUSE
structureArea:
type: integer
description: Provide the total square footage for all structures on the property. This includes the finished areas, non-standard finished areas, and unfinished areas. Required IF(property/propertyType = 'SF')
format: int32
attachmentType:
type: string
description: Indicate whether the subject property is attached or detached to another property. If the property is attached on one side, indicate Semi-Detached and whether it is attached on the left side or right side. (e.g., a structure is 'Left Semi-Detached' if the user faces an end unit that does not have a unit to the left). Required IF(/property/propertyType = 'SF' and /property/buildings/structureType = 'DWELLING' or /property/propertyType = 'CONDO')
example: LEFT_SEMI_DETACHED
enum:
- ATTACHED
- DETACHED
- LEFT_SEMI_DETACHED
- RIGHT_SEMI_DETACHED
foundationType:
type: array
description: Indicate the type of foundation for the structure. Select all that apply.Required IF(property/propertyType = 'SF' or /property/buildings/buildingDesign = ROWHOUSE_TOWNHOUSE and DETACHED).
items:
type: string
enum:
- SLAB
- CRAWLSPACE
- BASEMENT
- POST_PIER
- RUNNER
constructionStatus:
type: string
description: User to select the option that best describes the structure’s construction status.
enum:
- COMPLETE
- INCOMPLETE_CONSTRUCTION
- INCOMPLETE_RENOVATION_CONSTRUCTION
- PROPOSED
constructionType:
type: string
description: Indicate the construction type that best describes the subject property. Only one type per structure may be provided.Required IF(property/propertyType = 'SF')
enum:
- FRAME
- MASONRY
- LOG
- MANUFACTURED
- MODULAR
- GEODESIC
- EARTH_BERM
- 3D_PRINTED
containsRooms:
type: boolean
description: "Indicate whether the structure contains rooms, including the garage. \r\ne.g., a barn used for housing animals or storing equipment would not contain rooms associated with finished areas.\r\nTrue = Contains rooms False = Does NOT contain rooms."
example: false
yearBuilt:
type: integer
description: "Indicate the year the structure on the property was built. Confirm the provided year built with the property point of contact. If the exact age of the property cannot be determined, an estimate may be provided. \r\nRequired IF(/property/propertyType = 'SF' and /property/buildings/structureType = 'DWELLING' or /property/propertyType = 'CONDO')"
yearBuiltEstimate:
type: boolean
description: Indicate if the year built is an estimate.TRUE = year built is estimated for the structure.FALSE = year built is actual year built for the structure.Required IF(/property/propertyType = 'SF' and /property/buildings/structureType = 'DWELLING' or /property/propertyType = 'CONDO')
buildingDesign:
type: string
description: Identify the design style for the building in which the unit is located. If none of the building designs listed apply, select “Other”. Required IF (/property/propertyType = CONDO)
enum:
- GARDEN
- LOW_RISE
- MID_RISE
- HIGH_RISE
- ROWHOUSE_TOWNHOUSE
- DETACHED
- OTHER
buildingDesignDescription:
type: string
description: If other is selected for the building design, describe the building type in which the subject unit is located.Required IF (/property/buildings/buildingDesign = 'OTHER').Note* Maximum length must be less than 2500 characters.
projectName:
type: string
description: Identify the name of the condominium project in which the unit is located. e.g., Bay Lake Towers
buildingNumber:
type: string
description: Identify the building number in which the subject unit is located.
numberOfStories:
type: integer
description: Identify the number of stories for the building in which the subject unit is located.Required IF (/property/propertyType = CONDO)
numberOfElevators:
type: integer
description: The number of elevators for the building in which the subject is located.Required IF (/property/propertyType = CONDO)
condoOffstreetParkingAvailable:
type: boolean
description: Indicate whether the subject property or building has parking or car storage available such as a garage, carport, or driveway..Required IF (property/buildings/buildingDeisgn = GARDEN OR LOW_RISE OR MID_RISE OR HIGH_RISE)
condoCarStorages:
type: array
items:
$ref: '#/components/schemas/condoCarStorage'
exteriorDeficiencies:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/ExteriorDeficiency'
exteriorUpdates:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/ExteriorUpdate'
units:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/unit'
additionalProperties: false
Property:
required:
- address
- buildings
- identification
- propertyOccupied
- propertyType
- site
type: object
properties:
address:
$ref: '#/components/schemas/Address'
identification:
$ref: '#/components/schemas/Identification'
site:
$ref: '#/components/schemas/Site'
propertyType:
type: string
description: Indicate whether the property is a Single Family Dwelling or a Condominium.
example: SF
enum:
- SF
- CONDO
propertyOccupied:
type: boolean
description: Indicate whether the property is occupied when the data is collected.
buildings:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/Building'
ancillary:
$ref: '#/components/schemas/Ancillary'
additionalProperties: false
propertyDataCollectorContacts:
type: array
minItems: 1
maxItems: 10
items:
$ref: '#/components/schemas/PropertyDataCollectorContact'
PropertyDataCollectorContact:
required:
- contactDetail
- contactMethod
type: object
properties:
contactMethod:
type: string
description: Contact information for the individual performing the property data collection.
enum:
- PHONE
- EMAIL
contactDetail:
type: string
description: "Contact information for the individual performing the property data collection, i.e. the email address or phone number. e.g., (123)456-7890 or\r\nJane_Smith@email.com\r\n "
PropertyDataReport:
required:
- collectionType
- dataCollectionDate
- dataCollectorAcknowledgement
- pdaCollectionEntity
- pdaSubmitterEntity
- property
- propertyDataCollectorContacts
- propertyDataCollectorName
- propertyDataCollectorType
type: object
properties:
collectionType:
type: string
description: Indicate how the property data collection was performed.
enum:
- ONSITE
- VIRTUAL
- 3D_SCAN
caseFileID:
type: string
description: Indicate the CaseFile obtained from DU submissions.
example: AA123456
lpaID:
type: string
description: Indicate the loan identifier produced by Freddie Mac Loan Product Advisor® (LPASM).
example: "123456789"
pdaSubmitterEntity:
type: string
description: Name of entity submitting the final property data collected to the API.
propertyDataCollectorName:
type: string
description: Indicate the name of the individual who conducted the property data collection.
example: Jane X Smith
pdaHyperlink:
type: string
description: Location to submit a hyperlink for 3d scans.
pdaCollectionEntity:
type: string
description: Company name of the entity that performed the property data collection.
example: Jones Data Collection LLC
propertyDataCollectorType:
type: string
description: Name of the labor force type of the individual who conducted the property data collection.
enum:
- APPRAISER
- APPRAISER_TRAINEE
- INSURANCE_INSPECTOR
- REAL_ESTATE_AGENT
- NOTARY_PUBLIC
- SMART_HOME_SERVICES
- PHOTOGRAPHER
- PROPERTY_PRESERVATION_AGENT
- HOME_INSPECTOR
- HOMEOWNER
- OTHER
propertyDataCollectorTypeDescription:
type: string
description: Provide a short description of the Property Data Collector Type when “Other” has been selected.e.g., Staff Employee Required IF propertyDataCollectorType = OTHER .Note* Maximum length must be less than 2500 characters.
example: Staff Employee
dataCollectorAcknowledgement:
type: boolean
description: Indicate acknowledgement and adherence to the Certifications and Limiting Conditions.
example: true
dataCollectionDate:
type: string
pattern: ^([2-9][0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
description: Indicate the date the property data collection was performed. format:YYYY-MM-DD
example: 2023-11-03
propertyDataCollectorContacts:
$ref: '#/components/schemas/propertyDataCollectorContacts'
property:
$ref: '#/components/schemas/Property'
additionalProperties: false
description: Note* Maximum length of description fields must be less than 2500 characters.
PropertyImprovement:
type: object
properties:
ingroundPoolConcerns:
type: array
description: 'Required if siteImprovementType is INGROUND_POOL'
items:
$ref: '#/components/schemas/IngroundPoolConcern'
propertyImprovementDescription:
type: string
description: Provide a brief description of any indicated amenity or property feature. The description should include things such as size and detailed description of the property features.e.g., 10 x 10 gazebo with composite decking.Required IF ( /property/site/siteFeature/propertyImprovements/propertyImprovementType != 'NONE' AND /property/propertyType = SF).Note* Maximum length must be less than 2500 characters.
propertyImprovementType:
type: string
description: Indicate all improvements, amenities, property features, or structures. These features include elements attached and detached from the structures.Required IF (/property/propertyType = SF)
enum:
- ORNATE_LANDSCAPING
- IRRIGATION_SYSTEM
- GRAYWATER_SYSTEM
- WATER_COLLECTION_SYSTEM
- OUTDOOR_KITCHEN
- INGROUND_POOL
- INGROUND_HOTTUB
- SPORTS_COURT
- SAUNA
- ORCHARD_HOBBY
- VINEYARD_HOBBY
- FENCE
- GAZEBO
- GREENHOUSE
- TOOL_SHED
- PATIO
- DECK
- BALCONY
- UNCOVERED_PORCH
- COVERED_PORCH
- ENCLOSED_PORCH
- WRAP_AROUND_PORCH
- STOOP
- FIREPIT
- OUTDOOR_FIREPLACE
- OTHER
- NONE
- CARPORT
- ABOVE_GROUND_POOL
additionalProperties: false
Road:
required:
- roadOwnershipType
- yearRoundAccessIndicator
type: object
properties:
roadOwnershipType:
type: string
description: Indicate the road that the subject property is accessed from as being public or private. Select “Unknown” if the data collector cannot determine whether the road is public or private.
enum:
- PUBLIC
- PRIVATE
- UNKNOWN
roadMaintainedIndicator:
type: boolean
description: Indicate whether the subject’s access road requires repairs that impact the accessibility of the property (e.g., washed out road). If the road does not require these type of repairs, indicate “Yes” that the road is maintained. If the road requires these types of repairs, indicate “No” that it is not maintained.Required IF ( /property/site/offSiteFeature/road/roadOwnershipType = 'PRIVATE' OR 'UNKNOWN' )
yearRoundAccessIndicator:
type: boolean
description: Indicate whether the subject property is accessible during all seasons.e.g., The property is located in a rural area with no road maintenance and is not accessible during certain seasons.
additionalProperties: false
Room:
required:
- interiorDeficiencies
- interiorUpdates
- roomType
- roomFeatures
type: object
properties:
roomType:
type: string
description: Indicate each room on every level within every building from the options provided. If an additional room type is needed, choose "Other Room".
enum:
- FOYER
- LIVING_ROOM
- DINING_ROOM
- KITCHEN
- DEN
- FAMILY_ROOM
- REC_ROOM
- BEDROOM
- FULL_BATH
- HALF_BATH
- LAUNDRY_ROOM
- HALL
- LIBRARY
- MEDIA
- OFFICE
- UTILITY_ROOM
- WORKSHOP
- BUTLERS_PANTRY
- OTHER_ROOM
- UNFINISHED_BASEMENT
otherRoomTypeDescription:
maxLength: 100
minLength: 0
type: string
description: Provide a brief description if “Other Room” is selected for room type.e.g., Solarium The acceptable string length is 100 characters or less.Required IF(/property/buildings/units/levels/rooms/roomType = 'OTHER_ROOM').
example: Solarium
appliances:
$ref: '#/components/schemas/Room_appliances'
interiorDeficiencies:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/interiorDeficiency'
interiorUpdates:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/interiorUpdate'
roomFeatures:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/RoomFeature'
plumbingFixtures:
type: array
maxItems: 1000
minItems: 1
description: Conditionally required if roomType is FULL_BATH, HALF_BATH, KITCHEN, LAUNDRY_ROOM, or BUTLERS_PANTRY.
items:
$ref: '#/components/schemas/PlumbingFixture'
RoomFeature:
required:
- roomFeatureType
type: object
properties:
roomFeatureType:
type: array
maxItems: 1000
minItems: 1
description: Indicate if there are any features from the list provided for each room identified. Select all that apply.
items:
type: string
enum:
- FIREPLACE
- WOOD_STOVE
- BUILT_INS
- WET_BAR
- WALK_IN_CLOSET
- PANTRY
- NONE
description: Indicate if there are any features from the list provided for each room identified. Select all that apply.
SewerService:
required:
- sewerType
type: object
properties:
sewerType:
type: string
description: Indicate the type(s) of sewage disposal available for the subject property. If more than one type is available, select all that apply.
enum:
- PUBLIC
- SEPTIC
- CESSPOOL
- NONE
additionalProperties: false
Site:
required:
- offSiteFeature
- siteFeature
- siteUtility
type: object
properties:
lot:
$ref: '#/components/schemas/Lot'
siteFeature:
$ref: '#/components/schemas/SiteFeature'
offSiteFeature:
$ref: '#/components/schemas/offSiteFeature'
siteUtility:
$ref: '#/components/schemas/SiteUtility'
additionalProperties: false
SiteFeature:
required:
- adverseSiteConditions
- location
type: object
properties:
location:
$ref: '#/components/schemas/SiteFeature_location'
siteView:
$ref: '#/components/schemas/SiteFeature_siteView'
adverseSiteConditions:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/AdverseSiteCondition'
propertyImprovements:
description: Required IF (/property/propertyType = SF).
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/PropertyImprovement'
nonResidentialUses:
description: Required IF (/property/propertyType = SF).
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/NonResidentialUse'
waterfrontSiteImprovements:
type: array
description: Required IF (/property/propertyType = SF AND /property/site/siteFeature/location/locations/locationDescriptionType = 'OCEAN_FRONT_BEACH' OR 'OCEAN_FRONT_NO_BEACH' OR 'INLAND_SALTWATER_FRONT_BEACH' OR 'INLAND_SALTWATER_FRONT_NO_BEACH' OR 'LAKE_FRONT_BEACH' OR 'LAKE_FRONT_NO_BEACH' OR 'SEASONAL_LAKE_FRONT' OR 'RIVER_CANAL_FRONT' )
items:
$ref: '#/components/schemas/WaterfrontSiteImprovement'
additionalProperties: false
SiteUtility:
required:
- electricalServices
- gasServices
- sewerServices
- waterServices
type: object
properties:
electricalServices:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/ElectricalService'
sewerServices:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/SewerService'
waterServices:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/WaterService'
gasServices:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/GasService'
additionalProperties: false
View:
type: object
description: Required IF (/property/propertyType = SF).
properties:
viewDescriptionType:
type: string
description: Indicate the view or views that best describes the subject’s view. Select all that apply and select the most notable view first, followed by any other identified views. Determine the view after completing the data collection and consider the view from both ground level, and from elevated vantage points within the subject property.Required IF(/property/propertyType = SF)
enum:
- NONE_NOTABLE
- VACANT_LOT
- WOODS_TREED_PRIVATE
- HILLS_FOOTHILLS
- GREENBELT_OPEN_SPACE
- MOUNTAIN
- MOUNTAIN_RANGE
- POND
- LAKE
- CANAL
- OCEAN
- RIVER
- CREEK
- BAY
- SOUND
- LAGOON
- MARINA
- INTRACOASTAL_WATERWAY
- HARBOR
- GULF
- WETLANDS
- BAYOU
- MARSH
- COMMERCIAL
- PARKING_LOT
- INDUSTRIAL
- MILITARY_BASE
- RAILROAD
- INTERSTATE
- ELEVATED_OVERPASS
- PASTURES_FIELDS_ETC
- AGRICULTURAL_FARM_ETC
- DESERT
- CANYON
- VALLEY
- COUNTRYSIDE
- RAVINE
- CITY_SKYLINE
- GOLF_COURSE
- PARK
- APARTMENT_COMPLEX
- WINDMILL_WINDFARM
- OVERHEAD_ELECTRIC_POWER_TRANSMISSION_LINE
- SCHOOL
viewQuality:
type: string
description: 'Indicate the best option to further describe the selected view. This field is not required if “None Notable” was chosen. Required IF ( /property/site/siteFeature/siteView/views/viewDescriptionType != ''NONE_NOTABLE'') '
enum:
- FULL
- PARTIAL
viewDescriptionDetails:
type: string
description: Provide a brief description of the view for all enumerations except “None Notable”The subject property has a view of the Pacific Ocean from the second floor of the property. Required IF ( /property/site/siteFeature/siteView/views/viewDescriptionType != 'NONE_NOTABLE') Note* Maximum length must be less than 2500 characters.
additionalProperties: false
GasService:
required:
- gasType
type: object
properties:
gasType:
type: string
description: Indicate the type of gas service available for the subject property.
enum:
- PUBLIC
- PRIVATE
- NONE
additionalProperties: false
WaterService:
required:
- waterType
type: object
properties:
waterType:
type: string
description: Indicate the type(s) of water source available for subject property. If more than one type is available, select all that apply.
enum:
- PUBLIC
- WELL
- CISTERN
- HAULED_WATER
additionalProperties: false
WaterfrontSiteImprovement:
type: object
properties:
waterfrontImprovementType:
type: string
description: Indicate any amenities or features if the location description has been identified as waterfront. If there are no waterfront amenities select “None”.Required IF (/property/propertyType = SF AND /property/site/siteFeature/location/locations/locationDescriptionType = 'OCEAN_FRONT_BEACH' OR 'OCEAN_FRONT_NO_BEACH' OR 'INLAND_SALTWATER_FRONT_BEACH' OR 'INLAND_SALTWATER_FRONT_NO_BEACH' OR 'LAKE_FRONT_BEACH' OR 'LAKE_FRONT_NO_BEACH' OR 'SEASONAL_LAKE_FRONT' OR 'RIVER_CANAL_FRONT' ).
enum:
- SEAWALL
- FLOATING_DOCK
- BOAT_LIFT
- BOAT_HOUSE
- BOAT_RAMP
- DOCK
- PIER
- NONE
additionalProperties: false
PropertyDataReportWithImages:
type: object
properties:
status:
type: string
version:
type: string
propertyDataReport:
$ref: '#/components/schemas/PropertyDataReport'
imageMetaData:
type: array
items:
$ref: '#/components/schemas/ImageStorageLocation'
requiredImages:
type: array
description: array of required images. Exists only if status=INCOMPLETE
items:
$ref: '#/components/schemas/ImageMetaData'
missingImageFiles:
type: array
description: array of missed image files for existing metadata. Exists only if status=INCOMPLETE
items:
$ref: '#/components/schemas/ImageStorageLocation'
messages:
type: array
items:
$ref: '#/components/schemas/Message'
PropertyDataReportStatus:
type: object
properties:
proxyCorrelationId:
type: string
description: PDR API assigned control number for the request.
example: "12345678"
propertyDataId:
type: string
example: acde070d-8c4c-4f0d-9d8a-162843c10333
status:
type: string
enum:
- COMPLETE
- INCOMPLETE
validationErrors:
type: array
description: array of validation errors. Exists only if status=INCOMPLETE
items:
$ref: '#/components/schemas/ValidationError'
requiredImages:
type: array
description: array of required images. Exists only if status=INCOMPLETE
items:
$ref: '#/components/schemas/ImageMetaData'
missingImageFiles:
type: array
description: array of missed image files for existing metadata. Exists only if status=INCOMPLETE
items:
$ref: '#/components/schemas/ImageStorageLocation'
messages:
type: array
items:
$ref: '#/components/schemas/Message'
Message:
required:
- messageCode
- messageDescription
type: object
properties:
messageCode:
type: string
messageDescription:
type: string
Error:
required:
- error
type: object
properties:
error:
type: string
description: Information about the error.
ErrorResponse:
required:
- code
- details
- message
- proxyCorrelationId
type: object
properties:
proxyCorrelationId:
type: string
description: PDR API assigned control number for the request.
code:
type: string
description: Error Code
message:
type: string
description: Error Description
details:
type: array
description: A collection of error details. Details container will contain error format.
items:
anyOf:
- $ref: '#/components/schemas/Error'
- $ref: '#/components/schemas/Message'
description: Information about the errors.
unitViewDetails:
type: object
properties:
unitViewDescriptionType:
type: string
description: Select from the list of choices the view or views that best describes the unit view. Select the most important view first, followed by any other impactful views. The view identified for condominium unit must be determined from the unit itself. Required (/property/propertyType = CONDO
enum:
- NONE_NOTABLE
- VACANT_LOT
- WOODS_TREED_PRIVATE
- HILLS_FOOTHILLS
- GREENBELT_OPEN_SPACE
- MOUNTAIN
- MOUNTAIN_RANGE
- POND
- LAKE
- CANAL
- OCEAN
- RIVER
- CREEK
- BAY
- SOUND
- LAGOON
- MARINA
- INTRACOASTAL_WATERWAY
- HARBOR
- GULF
- WETLANDS
- BAYOU
- MARSH
- COMMERCIAL
- PARKING_LOT
- INDUSTRIAL
- MILITARY_BASE
- RAILROAD
- INTERSTATE
- ELEVATED_OVERPASS
- PASTURES_FIELDS_ETC
- AGRICULTURAL_FARM_ETC
- DESERT
- CANYON
- VALLEY
- COUNTRYSIDE
- RAVINE
- CITY_SKYLINE
- GOLF_COURSE
- PARK
- APARTMENT_COMPLEX
- WINDMILL_WINDFARM
- OVERHEAD_ELECTRIC_POWER_TRANSMISSION_LINE
- SCHOOL
unitViewQuality:
type: string
description: Select the best option to further describe the selected view. Required (/property/propertyType = CONDO AND /property/buildings/units/unitViewDescriptionType != "NONE_NOTEABLE")
enum:
- FULL
- PARTIAL
unitViewDescriptionDetails:
type: string
description: Provide a description of the view.Required (/property/propertyType = CONDO AND /property/buildings/units/unitViewDescriptionType != "NONE_NOTEABLE"). Note* Maximum length must be less than 2500 characters.
additionalProperties: false
unit:
required:
- levels
- heatingSystems
- coolingSystems
type: object
properties:
aduIndicator:
type: boolean
description: ' Indicate whether this structure is or contains an Accessory Dwelling Unit (ADU).Required IF (/property/propertyType = SF AND /property/buildings/containsRooms = TRUE)'
unitConstructionStatus:
type: string
description: 'Indicate the construction status that best describes the unit. Required IF (/property/propertyType = CONDO) '
enum:
- COMPLETE
- INCOMPLETE_CONSTRUCTION
- INCOMPLETE_RENOVATION_CONSTRUCTION
floorNumber:
type: integer
description: Indicate the specific floor of the building on which the unit is located.Required IF (/property/propertyType = CONDO and /property/buildings/buildingDesign = 'GARDEN' or 'LOW_RISE' or 'MID_RISE' or 'HIGH_RISE')
topFloor:
type: boolean
description: Indicate whether the unit is on the top floor. select 'Y'. If not select 'N'. Required (/property/propertyType = CONDO)
unitMainEntrance:
type: integer
description: Indicate the floor of the building where the main entrance of the unit is located.Required IF (/property/propertyType = CONDO and /property/buildings/buildingDesign = 'GARDEN' or 'LOW_RISE' or 'MID_RISE' or 'HIGH_RISE')
unitView:
$ref: '#/components/schemas/unit_unitView'
unitFeatures:
type: array
description: Indicate all features specific to the unit. If there are no additional unit features, “None” must be selected.Required if propertyType is CONDO
items:
$ref: '#/components/schemas/feature'
heatingSystems:
maxItems: 1000
minItems: 1
type: array
items:
$ref: '#/components/schemas/heating'
coolingSystems:
maxItems: 1000
minItems: 1
type: array
items:
$ref: '#/components/schemas/cooling'
mechanicalDeficiencies:
type: array
items:
$ref: '#/components/schemas/mechanicalDeficiency'
mechanicalUpdates:
type: array
items:
$ref: '#/components/schemas/mechanicalUpdates'
garages:
type: array
items:
$ref: '#/components/schemas/garage'
levels:
maxItems: 1000
minItems: 1
type: array
items:
$ref: '#/components/schemas/Level'
additionalProperties: false
condoCarStorage:
type: object
properties:
condoCarStorageType:
type: string
description: If off street parking is selected, indicate the type of car storage (e.g., garage, carport, assigned or unassigned) is available. If more than one type is available, choose all that apply.Required IF (/property/propertyType = CONDO) . Required If (/property/buildings/condoOffStreetParkingAvailable =TRUE)
enum:
- ATTACHED_GARAGE
- DETACHED_GARAGE
- BUILTIN_GARAGE
- CARPORT
- OPEN_UNASSIGNED
- OPEN_ASSIGNED
condoCarStorageSpaceCount:
type: integer
description: Indicate the count of spaces for each car storage type indicated. If multiple types were indicated, assign the correct number of spaces for each type. Tandem car storage can be counted as one or more spaces if the depth of the car storage allows for two or more cars to be parked front to back. e.g., Attached Garage – 3. Required IF (/property/propertyType = CONDO). Required If (/property/buildings/condoOffStreetParkingAvailable =TRUE)
carStorageDeficiencies:
type: array
description: Required if condoCarStorageType is BUILTIN_GARAGE or ATTACHED_GARAGE or DETACHED_GARAGE
items:
$ref: '#/components/schemas/carStorageDeficiency'
additionalProperties: false
carStorageDeficiency:
type: object
properties:
condoCarStorageDeficiencyName:
type: string
description: Indicate whether a car storage deficiency exists or identify the item or component of the car storage (Attached Garage, Detached Garage or Built-in Garage) that has deferred maintenance requiring significant repairs (e.g., missing siding, boarded up windows, hole in door, etc.). If an item is missing, identify that it is deficient. Select all that apply. Minor or typical wear and tear does not need to be identified. Required IF(/property/buildings/condoCarStorages/condoCarStorageType= 'BUILTIN_GARAGE' or 'ATTACHED_GARAGE' or 'DETACHED_GARAGE')
enum:
- NONE_OBSERVED
- SIDING
- WINDOWS
- DOORS
- GARAGE_DOOR
- EXTERIOR_WALLS
- INTERIOR_WALLS
- CEILING
- ROOF
- FOUNDATION
- OTHER
condoCarStorageDeficiencyType:
type: string
description: Indicate the type of deficiencies associated with the car storage. Required IF ( /property/buildings/condoCarStorages/carStorageDeficiencies/condoCarStorageDeficiencyName != 'NONE_OBSERVED' )
enum:
- EXCESSIVE_WEAR
- EVIDENCE_OF_INFESTATION
- MISSING
- OTHER
condoCarStorageDeficiencyDetailFoundation:
type: array
description: Indicate whether a car storage deficiency exists or identify the item or component of the car storage (Attached Garage, Detached Garage or Built-in Garage) that has deferred maintenance requiring significant repairs (e.g., missing siding, boarded up windows, hole in door, etc.). If an item is missing, identify that it is deficient. Select all that apply. Minor or typical wear and tear does not need to be identified.Required IF ( /property/buildings/condoCarStorages/carStorageDeficiencies/condoCarStorageDeficiencyName = 'FOUNDATION' )
items:
type: string
enum:
- ERODED_MATERIAL
- CRACKING
- SETTLEMENT
- EVIDENCE_OF_MOISTURE
- SEEPAGE
- INFESTATION
- LEANING_OR_BOWED_WALLS
- HEAVING
- OTHER
condoCarStorageDeficiencyDetailExteriorWalls:
type: array
description: Indicate whether a car storage deficiency exists or identify the item or component of the car storage (Attached Garage, Detached Garage or Built-in Garage) that has deferred maintenance requiring significant repairs (e.g., missing siding, boarded up windows, hole in door, etc.). If an item is missing, identify that it is deficient. Select all that apply. Minor or typical wear and tear does not need to be identified. Required IF ( /property/buildings/condoCarStorages/carStorageDeficiencies/condoCarStorageDeficiencyName = 'EXTERIOR_WALLS' )
items:
type: string
enum:
- ERODED_MATERIAL
- CRACKING
- HOLES
- DRY_ROT
- MOISTURE_ROT
- SETTLEMENT
- WIND_DAMAGE
- MISSING_MATERIAL
- OTHER
condoCarStorageDeficiencyDetailRoofSurface:
type: array
description: Indicate whether a car storage deficiency exists or identify the item or component of the car storage (Attached Garage, Detached Garage or Built-in Garage) that has deferred maintenance requiring significant repairs (e.g., missing siding, boarded up windows, hole in door, etc.). If an item is missing, identify that it is deficient. Select all that apply. Minor or typical wear and tear does not need to be identified.Required IF ( /property/buildings/carStorages/carStorageDeficiencies/carStorageDeficiencyName = 'ROOF' )
items:
type: string
enum:
- ERODED_MATERIAL
- CRACKING
- TARP_ON_ROOF
- LEAK_EVIDENT
- MISSING_MATERIAL
- WOOD_ROT
- SOFFIT_DAMAGE
- FASCIA_DAMAGE
- OTHER
condoCarStorageDeficiencyDetailWindows:
type: array
description: Indicate whether a car storage deficiency exists or identify the item or component of the car storage (Attached Garage, Detached Garage or Built-in Garage) that has deferred maintenance requiring significant repairs (e.g., missing siding, boarded up windows, hole in door, etc.). If an item is missing, identify that it is deficient. Select all that apply. Minor or typical wear and tear does not need to be identified.Required IF ( /property/buildings/condoCarStorages/carStorageDeficiencies/condoCarStorageDeficiencyName = 'WINDOWS' )
items:
type: string
enum:
- CRACKING
- MISSING_WINDOW_PANE
- EXPOSED_WOOD
- STORM_SASH_DAMAGE
- THERMOPANE_DAMAGE
- OTHER
condoCarStorageDeficiencyDetailCeiling:
type: array
description: Indicate whether a car storage deficiency exists or identify the item or component of the car storage (Attached Garage, Detached Garage or Built-in Garage) that has deferred maintenance requiring significant repairs (e.g., missing siding, boarded up windows, hole in door, etc.). If an item is missing, identify that it is deficient. Select all that apply. Minor or typical wear and tear does not need to be identified. Required IF ( /property/buildings/condoCarStorages/carStorageDeficiencies/condoCarStorageDeficiencyName = 'CEILING' )
items:
type: string
enum:
- DISCOLORATION
- MISSING
- CRUMBLING
- WATER_DAMAGE
- OTHER
condoCarStorageDeficiencyDetailInteriorWalls:
type: array
description: Indicate whether a car storage deficiency exists or identify the item or component of the car storage (Attached Garage, Detached Garage or Built-in Garage) that has deferred maintenance requiring significant repairs (e.g., missing siding, boarded up windows, hole in door, etc.). If an item is missing, identify that it is deficient. Select all that apply. Minor or typical wear and tear does not need to be identified. Required IF ( /property/buildings/condoCarStorages/carStorageDeficiencies/condoCarStorageDeficiencyName != 'INTERIOR_WALLS' )
items:
type: string
enum:
- DISCOLORATION
- MISSING
- CRUMBLING
- WATER_DAMAGE
- OTHER
condoCarStorageDeficiencySeverity:
type: boolean
description: Indicate if the noted deficiency to the car storage component impacts the safety, soundness or structural integrity of the structure or unit.Required IF ( /property/buildings/condoCarStorages/carStorageDeficiencies/condoCarStorageDeficiencyName != 'NONE_OBSERVED' )
condoCarStorageDeficiencyDescription:
type: string
description: Provide a description of each car storage deficiency observed.e.g., The roof of the attached garage has a 6 x 8 hole on one side of the roof.Required IF ( /property/buildings/condoCarStorages/carStorageDeficiencies/condoCarStorageDeficiencyName != 'NONE_OBSERVED' ).Note* Maximum length must be less than 2500 characters.
example: The roof of the attached garage has a 6 x 8 hole on one side of the roof.
additionalProperties: false
Room_appliances:
type: object
properties:
rangeOvenExists:
type: boolean
description: Indicate if there is a range or oven, or a range or oven hook up, for all kitchens identified.Required IF(/property/buildings/units/levels/rooms/roomType = KITCHEN)
SiteFeature_location:
required:
- locations
type: object
properties:
locations:
maxItems: 1000
minItems: 1
type: array
items:
$ref: '#/components/schemas/Location'
additionalProperties: false
SiteFeature_siteView:
type: object
description: Required IF (/property/propertyType = SF).
properties:
views:
type: array
items:
$ref: '#/components/schemas/View'
additionalProperties: false
unit_unitView:
type: object
properties:
views:
type: array
description: Identify the floor of the building where the main entrance of the unit is located.Required (/property/propertyType = CONDO)
items:
$ref: '#/components/schemas/unitViewDetails'
additionalProperties: false
description: Required IF (/property/propertyType = CONDO)
examples:
SingleFamilyExample:
summary: SingleFamily Example
description: Single Family Example
value:
collectionType: ONSITE
caseFileID: '1234567890'
lpaID: AB123123
pdaSubmitterEntity: Data Submitter Company 1
propertyDataCollectorName: Jane Q Public
pdaCollectionEntity: REAL_ESTATE_AGENT
propertyDataCollectorType: APPRAISER
propertyDataCollectorTypeDescription: a
dataCollectorAcknowledgement: true
dataCollectionDate: '2023-11-03'
pdaHyperlink: ''
propertyDataCollectorContacts:
contactMethod: EMAIL
contactDetail: janeqpublic@email.123
property:
address:
streetAddress: 123 main street
city: City
county: county
state: VA
postalCode: "98765"
unitNumber: "Unit 2B"
identification:
gpsCoordinates:
latitude: 39.123456
longitude: -123.456789
site:
lot:
lotSize: 22000
lotSizeUnits: SQUARE_FEET
siteFeature:
location:
locations:
- locationDescriptionType: RESIDENTIAL
locationDescriptionDetails: The subject property is located on the 9th hole tee of the golf course
siteView:
views:
- viewDescriptionType: VACANT_LOT
viewQuality: FULL
viewDescriptionDetails: Panoramic view of fields
adverseSiteConditions:
- adverseType: NONE_OBSERVED
adverseSiteConditionDescription: None Observed.
propertyImprovements:
- ingroundPoolConcerns:
- poolConcernType: NONE
poolConcernDescription: None Observed.
propertyImprovementDescription: Covered porch that goes around 3 sides of the home
propertyImprovementType: WRAP_AROUND_PORCH
- ingroundPoolConcerns:
- poolConcernType: NONE
poolConcernDescription: None Observed.
propertyImprovementDescription: Small shed for lawn maintanence equipment
propertyImprovementType: TOOL_SHED
nonResidentialUses:
- nonResidentialUseType: NONE_OBSERVED
nonResidentialUseDescription: None Observed.
waterfrontSiteImprovements:
- waterfrontImprovementType: SEAWALL
offSiteFeature:
road:
roadOwnershipType: PUBLIC
roadMaintainedIndicator: true
yearRoundAccessIndicator: true
siteUtility:
electricalServices:
- electricalType: PUBLIC
offGridService: true
sewerServices:
- sewerType: PUBLIC
waterServices:
- waterType: PUBLIC
gasServices:
- gasType: PUBLIC
propertyType: SF
propertyOccupied: true
buildings:
- structureType: DWELLING
structureArea: 25000
attachmentType: DETACHED
foundationType:
- BASEMENT
constructionStatus: COMPLETE
constructionType: FRAME
containsRooms: true
yearBuilt: 1980
yearBuiltEstimate: false
exteriorDeficiencies:
- exteriorDeficiencyName: NONE_OBSERVED
exteriorUpdates:
- exteriorUpdatedComponent: DOORS
exteriorUpdateType: FULLY_UPDATED
exteriorUpdateTimeframe: 1_TO_10_YEARS
exteriorUpdateDescription: All exterior doors replaced in 2021
units:
- aduIndicator: false
unitView:
views: []
heatingSystems:
- heatingType: DUCTLESS_HEATPUMP
coolingSystems:
- coolingType: DUCTLESS_HEATPUMP
mechanicalDeficiencies:
- mechanicalDeficiencyName: NONE_OBSERVED
mechanicalUpdates:
- mechanicalUpdatedComponent: COOLING
mechanicalUpdateType: FULLY_UPDATED
mechanicalUpdateTimeframe: 1_TO_5_YEARS
mechanicalUpdateDescription: Ductless heatpumps were added for A/C throughout home
garages:
- garageType: ATTACHED_GARAGE
garageSpaceCount: 3
garageSpaceArea: 600
garageConversionIndicator: false
garageDeficiencies:
- garageDeficiencyName: NONE_OBSERVED
levels:
- levelNumber: 1
belowGrade: true
belowGradeExits:
- INTERIOR
levelLowCeiling: false
attic: false
totalArea: 800
finishedArea: 400
nonStandardFinishedArea: 0
rooms:
- roomType: REC_ROOM
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
plumbingFixtures:
- fixtureType: SINK
roomFeatures:
- roomFeatureType:
- WALK_IN_CLOSET
- roomType: LAUNDRY_ROOM
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
appliances:
rangeOvenExists: true
plumbingFixtures:
- fixtureType: LAUNDRY_HOOKUP
roomFeatures:
- roomFeatureType:
- NONE
- roomType: UNFINISHED_BASEMENT
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
roomFeatures:
- roomFeatureType:
- NONE
- levelNumber: 2
belowGrade: false
levelLowCeiling: false
attic: false
totalArea: 800
finishedArea: 800
nonStandardFinishedArea: 0
rooms:
- roomType: LIVING_ROOM
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
roomFeatures:
- roomFeatureType:
- FIREPLACE
- roomType: KITCHEN
appliances:
rangeOvenExists: true
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
plumbingFixtures:
- fixtureType: APPLIANCE_HOOKUP
- fixtureType: SINK
roomFeatures:
- roomFeatureType:
- PANTRY
- roomType: DINING_ROOM
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
roomFeatures:
- roomFeatureType:
- NONE
- roomType: HALF_BATH
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
plumbingFixtures:
- fixtureType: TOILET
- fixtureType: SINK
roomFeatures:
- roomFeatureType:
- NONE
- levelNumber: 3
belowGrade: false
levelLowCeiling: false
attic: true
atticAccessLocation: true
atticAccess:
- DROP_STAIR
totalArea: 800
finishedArea: 800
nonStandardFinishedArea: 0
rooms:
- roomType: BEDROOM
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
roomFeatures:
- roomFeatureType:
- WALK_IN_CLOSET
- roomType: FULL_BATH
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
plumbingFixtures:
- fixtureType: TOILET
- fixtureType: SINK
- fixtureType: WALK_IN_SHOWER
roomFeatures:
- roomFeatureType:
- NONE
- roomType: BEDROOM
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
roomFeatures:
- roomFeatureType:
- NONE
- roomType: FULL_BATH
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
plumbingFixtures:
- fixtureType: TOILET
- fixtureType: SINK
- fixtureType: TUB_SHOWER
roomFeatures:
- roomFeatureType:
- NONE
- roomType: BEDROOM
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
roomFeatures:
- roomFeatureType:
- BUILT_INS
- roomType: BEDROOM
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
roomFeatures:
- roomFeatureType:
- NONE
ancillary:
roadDesc: Asphalt
atticFloorExists: true
atticHeated: true
heatingFuelDesc: Free Text
drivewaySurfaceDesc: Concrete
alley:
desc: Gravel
public: true
private: true
appliances:
refrigeratorExists: true
dishwasherExists: true
disposalExists: true
microwaveExists: true
washerDryerExists: true
otherExists: true
otherDesc: Wine Cooler
exterior:
descFoundationWalls: Concrete Block
descExtWalls: Brick Veneer
descRoofSurface: Standing Seam Metal
descGuttersDownspouts: Aluminum
descWindowType: Vinyl Double Hung
descStormSashInsulated: Metal
descScreens: Fabric
gas:
otherDesc: Propane
interior:
floorsDesc: Carpet
wallsDesc: Plaster
trimFinishDesc: Crown
bathFloorDesc: Tile
bathWainscotDesc: Tile
CondoExample:
summary: Condo Example
description: Condo Family Example
value:
collectionType: ONSITE
caseFileID: '1234567890'
lpaID: AB123123
pdaSubmitterEntity: Data Submitter Company 1
propertyDataCollectorName: Jane Q Public
pdaCollectionEntity: REAL_ESTATE_AGENT
propertyDataCollectorType: APPRAISER
propertyDataCollectorTypeDescription: Staff Employee
dataCollectorAcknowledgement: true
dataCollectionDate: '2023-11-03'
pdaHyperlink: ''
propertyDataCollectorContacts:
contactMethod: EMAIL
contactDetail: janeqpublic@email.123
property:
address:
streetAddress: 123 main street
city: s
county: s
state: VA
postalCode: '99999'
unitNumber: ''
identification:
gpsCoordinates:
latitude: 0.1
longitude: 0.1
site:
lot:
lotSize: 1
lotSizeUnits: SQUARE_FEET
siteFeature:
location:
locations:
- locationDescriptionType: BORDERING_AMENITIES
locationDescriptionDetails: a
siteView:
views:
- viewDescriptionType: VACANT_LOT
viewQuality: FULL
viewDescriptionDetails: a
adverseSiteConditions:
- adverseType: CONTAMINATION
adverseSiteConditionDescription: a
propertyImprovements:
- ingroundPoolConcerns:
- poolConcernType: NONE
poolConcernDescription: a
propertyImprovementDescription: a
propertyImprovementType: ORNATE_LANDSCAPING
nonResidentialUses:
- nonResidentialUseType: CHILDCARE
nonResidentialUseDescription: a
waterfrontSiteImprovements:
- waterfrontImprovementType: SEAWALL
offSiteFeature:
road:
roadOwnershipType: PUBLIC
roadMaintainedIndicator: true
yearRoundAccessIndicator: true
siteUtility:
electricalServices:
- electricalType: PUBLIC
offGridService: true
sewerServices:
- sewerType: PUBLIC
waterServices:
- waterType: PUBLIC
gasServices:
- gasType: PUBLIC
propertyType: CONDO
propertyOccupied: true
buildings:
- structureType: DWELLING
structureArea: 1
attachmentType: ATTACHED
foundationType:
- SLAB
constructionStatus: COMPLETE
constructionType: FRAME
containsRooms: true
yearBuilt: 1
yearBuiltEstimate: true
buildingDesign: GARDEN
buildingDesignDescription: a
projectName: a
buildingNumber: a
numberOfStories: 1
numberOfElevators: 1
condoOffstreetParkingAvailable: true
condoCarStorages:
- condoCarStorageType: ATTACHED_GARAGE
condoCarStorageSpaceCount: 1
carStorageDeficiencies:
- condoCarStorageDeficiencyName: NONE_OBSERVED
exteriorDeficiencies:
- exteriorDeficiencyName: NONE_OBSERVED
exteriorUpdates:
- exteriorUpdatedComponent: NONE_OBSERVED
units:
- aduIndicator: true
unitConstructionStatus: COMPLETE
floorNumber: 1
topFloor: true
unitMainEntrance: 1
unitView:
views:
- unitViewDescriptionType: NONE_NOTABLE
unitFeatures:
- featureType: ORNATE_LANDSCAPING
heatingSystems:
- heatingType: CENTRAL_HOT_AIR
coolingSystems:
- coolingType: CENTRAL_AIR_CONDITIONING
mechanicalDeficiencies:
- mechanicalDeficiencyName: NONE_OBSERVED
mechanicalUpdates:
- mechanicalUpdatedComponent: NONE_OBSERVED
garages:
- garageType: ATTACHED_GARAGE
garageSpaceCount: 1
garageSpaceArea: 1
garageConversionIndicator: true
garageDeficiencies:
- garageDeficiencyName: NONE_OBSERVED
levels:
- levelNumber: 1
belowGrade: true
belowGradeExits:
- WALKUP
levelLowCeiling: true
attic: true
atticAccess:
- ATTIC_SCUTTLE
atticAccessLocation: true
totalArea: 1
finishedArea: 1
nonStandardFinishedArea: 1
rooms:
- roomType: FOYER
otherRoomTypeDescription: Solarium
appliances:
rangeOvenExists: true
interiorDeficiencies:
- interiorDeficiencyName: NONE_OBSERVED
interiorUpdates:
- interiorUpdatedComponent: NONE_OBSERVED
plumbingFixtures:
- fixtureType: SINK
roomFeatures:
- roomFeatureType:
- FIREPLACE
ancillary:
roadDesc: Asphalt
atticFloorExists: true
atticHeated: true
heatingFuelDesc: Free Text
drivewaySurfaceDesc: Concrete
alley:
desc: Gravel
public: true
private: true
appliances:
refrigeratorExists: true
dishwasherExists: true
disposalExists: true
microwaveExists: true
washerDryerExists: true
otherExists: true
otherDesc: Wine Cooler
exterior:
descFoundationWalls: Concrete Block
descExtWalls: Brick Veneer
descRoofSurface: Standing Seam Metal
descGuttersDownspouts: Aluminum
descWindowType: Vinyl Double Hung
descStormSashInsulated: Metal
descScreens: Fabric
gas:
otherDesc: Propane
interior:
floorsDesc: Carpet
wallsDesc: Plaster
trimFinishDesc: Crown
bathFloorDesc: Tile
bathWainscotDesc: Tile
BACEAPIBadRequestMissingResponse:
summary: Bad Request
description: Mandatory header is missing in the response.
value:
proxyCorrelationId: "12345678"
code: 400.006
message: Missing header Content-type
details:
- error: Content-type must be either application/json or application/xml
BACEAPIBadRequestCustomResponse:
summary: Validation Error-Empty
description: Provided the schema is valid, errors are specific to missing or incorrect data in request.
value:
proxyCorrelationId: "12345678"
code: 400
message: Request data does not match the application schema, please validate the request data.
details:
- MessageCode: "400"
MessageDescription: Must not be null -> propertyDataReport.propertyDataCollectorName.
BACEAPIBadRequestCustomResponseInvalid:
summary: Validation Error-Invalid
description: Provided the schema is valid, errors are specific to missing or incorrect data in request.
value:
proxyCorrelationId: "12345678"
code: 400
message: Request data does not match the application schema, please validate the request data.
details:
- MessageCode: "400"
MessageDescription: 23-04-203 is invalid -> propertyDataReport.dataCollectionDate.
BACEAPIUnauthorizedResponse:
summary: Unauthorized Response
description: The user is not authorized to access the application.
value:
proxyCorrelationId: "12345678"
code: 401
message: Unable to authorize the request.
details:
- error: The user profile is not authorized to access the system.
BACEAPIInternalErrorResponse:
summary: Internal Server error
description: An 0005 error that indicates that the request could not be processed. Please reach out to Customer Support.
value:
proxyCorrelationId: "12345678"
code: 500
message: Internal Server Error
details:
- MessageCode: "0005"
MessageDescription: API is unable to assess the submitted data at this time. Please resubmit or contact Customer Support at (800-FREDDIE) for assistance.
BACEAPINotFoundResponse:
summary: Resource not found
description: This typically can happen if the resource URL is not correct.
value:
proxyCorrelationId: "12345678"
code: 404.001
message: No resource for GET/POST
details:
- error: No resource for GET/POST
ImageNotFoundResponse:
summary: Image not found response
description: This typically can happen when the image is not submitted.
value:
proxyCorrelationId: "12345678"
code: 404.001
message: No resource for GET/POST
details:
- error: imageId {imageId} provided not found.
GETImageMetaNotFoundResponse:
summary: Imagemetadata not found response
description: This typically can happen when the image is not submitted.
value:
proxyCorrelationId: "12345678"
code: 404.001
message: No resource for GET/POST
details:
- error: propertyDataId {propertyDataId} provided for getting Image metaData not found.
PropertyNotFoundResponse:
summary: Property not found response
description: This typically can happen when the propertyData is not submitted.
value:
proxyCorrelationId: "12345678"
code: 404
message: No resource for GET/POST
details:
- error: propertyDataId {propertyDataId} provided for getting property Status not found.
PDFNotFoundResponse:
summary: PDF not found response
description: This typically can happen when the PDF is not submitted.
value:
proxyCorrelationId: "12345678"
code: 404
message: No resource for GET/POST
details:
- error: propertyDataId {propertyDataId} provided for PDF not found.
BACEAPILimitExceededResponse:
summary: Quota or Resource Limit Exceeded
description: The number of requests made exceed the threshold. Reduce the number of requests.
value:
proxyCorrelationId: "12345678"
code: 429.002
message: Quota limit exceeded
details:
- error: Quota limit exceeded, decrease the number of requests per minute been sent.
requestBodies:
insertDaImage:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: Image size must be within 1 MB to 50 MB.Image must be submitted in a valid format of JPG/PNG/JPEG.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: Token acquired from OAuth API for the user credentials
security:
- bearerAuth: []