# Bees360 API v1.35.0

# API Endpoints

Production environment:

https://api.bees360.io/v1

Staging environment:

https://api.stag.bees360.io/v1

# Status Response Code

The following status code can be returned in HTTP responses.

HTTP Code HTTP Description Notes
2xx OK Request is handled successfully.
307 Temporary Redirect The resource has been relocated to a different location.
400 Bad Request Bad request format or invalid argument.
401 Unauthorized Invalid credentials, or token expires.
403 Forbidden Permission denied for a client already authenticated.
404 Not Found Resource is not available at the specified location.
409 Conflict Resource already exists.
422 Unprocessable Entity The request is well-formed but contains invalid data which makes the request cannot be processed.
429 Too Many Requests Some resource has been exhausted, perhaps a per-user quota
500 Internal Server Error Request failed due to Internal error.
503 Service Unavailable The service is currently unavailable.
504 Gateway Timeout The deadline is reached for the request. This error may be returned even when the request is handled successfully.

# Example Error response

400 BAD_REQUEST
{
    "error": {
        "message": "invailid project ID."
    }
}

# Authentication

To authenticate with Bees360 API, first request a client_id and a client_secret from Bees360 development team.

A client must act as a valid user on the Bees360 platform. The user's username and password is required when requesting access tokens.

# Environment-Specific Credentials

Each environment (e.g., Sandbox, Production) has its own independent set of credentials (client_id and client_secret). Credentials issued for one environment cannot be used to authenticate against another. Please ensure you request and use the correct credentials corresponding to your target environment.

# Acquire tokens

POST /oauth/token

Requests access_token and refresh_token from Bees360 API.

Currently we support client to use OAuth 2.0 Password Grant to authenticate.

The authentication request should use HTTP Basic authentication with client_id and client_secret.

# Request parameter grant_type required

grant_type should be set to password.

# Request parameter username required

The username of the user the client wants to act on behalf of.
This username will be recorded and displayed as the actor in all operations performed via this request — for example, when creating a Project, the system will show 'username' created the Project.
It serves as an audit trail and attribution mechanism, ensuring actions are traceable to the specific user account on whose behalf the client is operating.

# Request parameter password required

The password of the user corresponds to the specified username.

# Example request

For instance, suppose you have an account with the username [email protected] and the password ULX1AUPz. Your API client information is as follows:

  • client_id: myClientId
  • client_secret: myClientSecret

Using curl to acquire token:

curl --request POST \
    --url 'https://api.bees360.io/v1/oauth/token' \
    -u myClientId:myClientSecret \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data username=[email protected] \
    --data password=ULX1AUPz \
    --data grant_type=password

Using postman to acquire token:

Request authorization header in postman when acquiring token

Request body in postman when acquiring token

# Example successful response:

{
  "access_token": "ff16372e-38a7-4e29-88c2-1fb92897f558",
  "token_type": "bearer",
  "refresh_token": "f554d386-0b0a-461b-bdb2-292831cecd57",
  "expires_in": 43199,
  "scope": "myScope",
  "user_id": 10030,
  "jti": "08ccb060-515f-46d0-aaa7-06e38fe94c03"
}

The validity period of access_token is 10 minutes, while the validity period of refresh_token is 24 hours. The refresh_token can be used to acquired a new access_token before the access_token expires. See details of how to use refresh_token below.

# Refresh token

POST /oauth/token

Acquire refreshed tokens using a valid refresh token.

# Request parameter grant_type required

The grant_type parameter must be set to refresh_token.

# Request parameter refresh_token required

A valid refresh token previously issued to client.

# Example request

curl -X POST -vu myClientId:myClientSecret https://api.bees360.io/v1/oauth/token \
     -H "Accept: application/json" \
     -d "grant_type=refresh_token&refresh_token=f554d386-0b0a-461b-bdb2-292831cecd57"

# Example successful response

{
  "access_token": "f276df18-cfc2-454e-a6f2-3ec63578c73c",
  "token_type": "bearer",
  "refresh_token": "fb22be4a-2b85-48b3-bbc3-54b91ada9f71",
  "expires_in": 43199,
  "scope": "ABC INC"
  "user_id": 10030,
  "jti": "08ccb060-515f-46d0-aaa7-06e38fe94c03"
}

# Use token

When requesting any endpoints that require authentication, set Bearer [ACCESS_TOKEN] in the HTTP Authorization header.

# Example request

curl https://api.bees360.io/v1/project/1000012 \
    -H "Authorization: Bearer f276df18-cfc2-454e-a6f2-3ec63578c73c"

# Project API

# Create new project

POST /project

Creates a new project on Bees360 platform.

💡Please do not use null as field value. Drop the field if its value is not available.

# Request parameter streetAddress required

The street address part of the address of the property to inspect.

# Request parameter city required

The city part of the address of the property to inspect.

# Request parameter state required

The state part of the address of the property to inspect.

# Request parameter zipcode required

The zipcode part of the address of the property to inspect.

# Request parameter country optional

The country part of the address of the property to inspect. Defaults to US.

# Request parameter serviceName required String

Specifies the project's service name.

Acceptable service names include:

[
    "Roof Only",
    "Exterior",
    "4-Point",
    "Premium 4-Point",
    "High Value Premium 4-point",
    "Snap360",
    "Photo Only Inspection",
]

# Request parameter policyType required String

Specifies the policy type of the project. Acceptable values for policy type are:

[
    "Commercial Property Insurance",
    "Homeowners Insurance",
    "Farm & Ranch Insurance"
]

# Request parameter houseType required String

Specify the house type of the property. The acceptable values are determined by the policy type. Please refer to the table below.

policyType houseType
Commercial Property Insurance Habitational
Restaurant
Garage
Gas Station
General Commercial
Homeowners Insurance Residential Single Family
Residential Condo
Residential Townhouse
Residential Multi Family
Mobile Home
Other
Farm & Ranch Insurance Other

# Request paramter dueDate optional String

Specifies the due date for completion of the project, in YYYY-MM-DD format.

# Request paramter policyNumber optional String

Specifies the policy number related to this project.

# Request paramter inspectionNumber optional String

Specifies the inspection number related to this project.

# Request parameter insuredName required String

Specifies the name of the insured.

# Request parameter insuredPhone required String

Specifies the phone number of the insured.

# Request parameter insuredEmail required String

Specifies the email address of the insured.

# Request parameter agentName optional String

Specifies the name of the agent.

# Request parameter agentPhone optional String

Specifies the phone number of the agent.

# Request parameter agentEmail optional String

Specifies the email address of the agent.

# Request parameter policyEffectiveDate optional String

Specifies the Policy Effective Date in YYYY-MM-DD format.

# Request parameter yearBuilt optional Number

Specifies the property's built year as a four-digit integer.

# Request parameter allowDuplication optional Boolean

Determine whether the duplicate project can be created. The default value is true. Click Here for specific rules.

# Request parameter note optional String

The description or attention notes for the project.

# Request parameter isRenewal optional Boolean

Determine whether the policy is new or renewal.

# Request parameter supplementalServices optional List<String>

Specifies the supplemental services to subscribe. Acceptable values are:

[
    "RC Report",
    "Sinkhole",
    "Wildfire"
]

# Request parameter division optional String

Specifies the division key for the project. You may pass any string value as the division key. Pre-configuration of division is no longer required.

# Request parameter dwellingCoverage optional Number

Covers the physical structure of the home, including walls, floors, ceilings, and permanent fixtures. If the dwelling is damaged by events like windstorms, fires, or explosions, the insurance company will pay for repairs or rebuilding.

# Request parameter otherStructureCoverage optional Number

Provides coverage for other structures on the property, such as detached garages, sheds, and swimming pools. If these structures are damaged, the insurance company will provide compensation for repairs or replacement.

# Request parameter contentCoverage optional Number

Covers personal belongings inside the home, including furniture, appliances, and clothing. If these items are stolen or damaged by events like fire, the insurance company will provide reimbursement based on the specific circumstances.

# Request parameter carrierProvidedLivingArea optional Number

The total living area in Sq.Ft..

# Example request body:

{
    "streetAddress": "125 Hudson St, APT 708", // required
    "city": "New York",     // required
    "state": "NJ",          // required. Two letters representing a US state.
    "zipcode": "07302",     // required
    "country": "US",        // Currently only US is supported.
    "serviceName": "4-Point", // required
    "policyType": "Homeowners Insurance", // required
    "houseType": "Residential Single Family",
    "dueDate": "2020-01-31",
    "policyNumber": "1234567",
    "inspectionNumber": "12345678",
    "insuredBy": "Insurance Company",
    "insuredName": "Jane Doe",
    "insuredPhone": "2232131877",
    "insuredEmail": "[email protected]",
    "agentName": "John Smith",
    "agentPhone": "1234567891",
    "agentEmail": "[email protected]",
    "policyEffectiveDate": "2019-12-31",
    "yearBuilt": 1961,
    "allowDuplication": true,
    "note": "The description or attention notes for the project.",
    "isRenewal": false,
    "supplementalServices": ["RC Report", "Sinkhole"],
    "division": "division-key",
    "dwellingCoverage": 10.5,
    "otherStructureCoverage": 20.5,
    "contentCoverage": 30.5,
    "carrierProvidedLivingArea": 40.5
}

Please do not use null as field value. Drop the JSON field if its value is not available.

# Example successful response:

{
    "project": [
        {
            "id": 10001,
            "streetAddress": "125 Hudson St, APT 708",
            "city": "New York",
            "state": "NJ",
            "zipcode": "07302",
            "country": "US",
            "lat": 37.4222804,
            "lng": -122.0843428,
            "serviceName": "4-Point",
            "policyType": "Homeowners Insurance",
            "houseType": "Residential Single Family",
            "dueDate": "2020-01-31",
            "policyNumber": "1234567",
            "inspectionNumber": "12345678",
            "insuredBy": "Insurance Company",
            "insuredName": "Jane Doe",
            "insuredPhone": "2232131877",
            "insuredEmail": "[email protected]",
            "agentName": "John Smith",
            "agentPhone": "1234567891",
            "agentEmail": "[email protected]",
            "policyEffectiveDate": "2019-12-31",
            "yearBuilt": 1961,
            "inspectionCode": "YN43AR", // 6 random character if `serviceName` is `4-Point Self`, otherwise ""(empty string)
            "inspectionLink": "http://ibees.app/YN43AR" // url for iBees if `serviceName` is `4-Point Self`, otherwise ""(empty string)
            "note": "The description or attention notes for the project.",
            "isRenewal": false, // null if value is not present in request body.
            "supplementalServices": ["RC Report", "Sinkhole"], // null if value is not present in request body.
            "division": "division-key",
            "operatingCompany": "operating company name",
            "dwellingCoverage": 10.5,
            "otherStructureCoverage": 20.5,
            "contentCoverage": 30.5,
            "carrierProvidedLivingArea": 40.5
        }
    ]
}

# Get project details

GET /project/{projectId}

Retrives the details of the specified project.

# Request argument projectId (required)

The project ID previously returned when creating the project.

# Example successful response:

{
    "project": [
        {
            "id": 10001,
            "streetAddress": "125 Hudson St, APT 708",
            "city": "New York",
            "state": "NJ",
            "zipcode": "07302",
            "country": "US",
            "lat": 37.4222804,
            "lng": -122.0843428,
            "serviceName": "4-Point",
            "policyType": "Homeowners Insurance",
            "dueDate": "2020-01-31",
            "houseType": "Residential Single Family",
            "policyNumber": "1234567",
            "inspectionNumber": "12345678",
            "insuredBy": "Insurance Company",
            "insuredName": "Jane Doe",
            "insuredPhone": "2232131877",
            "insuredEmail": "[email protected]",
            "agentName": "John Smith",
            "agentPhone": "1234567891",
            "agentEmail": "[email protected]",
            "policyEffectiveDate": "2019-12-31",
            "yearBuilt": 1961,
            "inspectionCode": "",
            "inspectionLink": ""
            "note": "The description or attention notes for the project.",
            "isRenewal": false,
            "supplementalServices": ["RC Report", "Sinkhole"],
            "division": "division-key",
            "operatingCompany": "operating company name",
            "dwellingCoverage": 10.5,
            "otherStructureCoverage": 20.5,
            "contentCoverage": 30.5,
            "carrierProvidedLivingArea": 40.5
        }
    ]
}

# Get project status

GET /project/{projectId}/status

Check the status of the specified project.

# Request argument projectId (required)

The project ID previously returned when creating the project.

# Example response:

{
    "project": [
        {
            "id": 10001, // project id
            "status": "Returned to Client"
        }
    ]
}

# Possible values for status:

[
    "Project Created",
    "Customer Contacted",
    "Pending Acceptance",
    "Assigned to Pilot",
    "Project Rework",
    "Site Inspected",
    "IBees Uploaded",
    "Image Uploaded",
    "Returned to Client", // report and images are available to download.
    "Project Canceled",
    "Client Received"// marked as received by client
    "Receive Error" // marked as error state by client
]

# Search projects

GET /project?paramA=valueA&paramB=valueB&paramC=valueC

Search the list of projects by project status. The list will be sorted base on the projectId in ascending order.

# Request parameter status optional

The status of projects to search for. See Possible values for status. When this parameter is omit, the operation will search for projects in any status.

# Request parameter policyNumber optional

The policyNumber of projects to search for.

# Request parameter inspectionNumber optional

The inspectionNumber of projects to search for.

# Request parameter serviceName optional

The serviceName of projects to search for.

# Request parameter createdTime optional

A filter on the list based on the creation time of the project. Using the filter with the following options:

Field Type Description Example
createdTime.start Integer The start (included) the creation time. 1672502400
createdTime.end Integer The end (exclude) the creation time. 1698768000

# Request parameter limit optional

Limit the number of projects to return. The default value is 100. This value cannot exceed 500.

# Request parameter startId optional

Specify the returned projects has an ID that is larger than or equal to startId. You may combine this and limit to achieve pagination. The default value is 0.

# Example response

{
    "project": [
        {
            "id": 12345,
            "streetAddress": "125 Hudson St, APT 708",
            "city": "New York",
            "state": "NY",
            "zipcode": "10013",
            "country": "US",
            "serviceName": "4-Point",
            "status": "Returned to Client",
            "policyNumber": "1234567",
            "inspectionNumber": "12345678"
        },
        {
            "id": 23456,
            "streetAddress": "37 Washington St.",
            "city": "Jersey City",
            "state": "NJ",
            "zipcode": "07302",
            "country": "US",
            "serviceName": "4-Point",
            "status": "Returned to Client",
            "policyNumber": "1234567",
            "inspectionNumber": "12345678"
        }
    ]
}

# Update project status

PUT /project/{projectId}/status

This endpoint allows authorized users to update the status of a specific project.
Common use cases include:
Mark project as Client Received — After a client successfully retrieves their reports or deliverables, you can set the status to indicate receipt. This prevents the system from offering or re-sending the same deliverables in future queries or notifications.
Mark project as Project Canceled — A project may be required to be canceled due to various reasons. This endpoint allows you to cancel a specific project.

# Request Parameter value required String

Specifies the target status. Currently, the only acceptable values are [Client Received, Project Canceled].

  • Client Received may only be set when the project's current status is Returned to Client.
  • Project Canceled may only be set when the project's current status is prior to Returned to Client.

# Request Parameter comment optional String

The additional comment for the status. Its lenght must be less than 1000.

# Example Request Body

{
    "value": "Client Received"
}

# Example response

{
    "project": [
        {
            "id": 12345,
            "status": "Client Received",
        }
    ]
}

# Report API

The Report API provides access to project reports and related data. The workflow typically involves:

  1. Get available reports for project - First, retrieve the list of available reports for a project
  2. Get report file or Get report url - Download the actual report file or get a temporary URL
  3. Get report summary - Access structured data from the report

Each report type (Full-scope Underwriting Report, Roof-only Underwriting Report, etc.) may have different data fields available in the summary, depending on your account configuration and the service type.

# Get available reports for project

GET /project/{projectId}/report

Returns a list of reports available to download.

# Request argument projectId required

The project ID previously returned when creating the project.

# Example response

{
    "project": [
        {
            "id": 12345,
            "report": [
                {
                    "id": "aJAgK76i2zXT9sZ_BxVEw-cDX2Ku98Kv", // report id
                    "type": "Full-scope Underwriting Report" // report type
                }
            ]
        }
    ]
}

# Empty response (no report available)

{
    "project": [
        {
            "id": 12345,
            "report": []
        }
    ]
}

# Available report types

Report Name Sample
Roof-only Underwriting Report Sample Report
Full-scope Underwriting Report Sample Report
Inspection Closeout Report Sample Report

# Get report file

GET /report/{reportId}/file

If the report is available, will return a 307 Temporary Redirect response, which redirects to a location to download the report.

The default Content-Type will be application/pdf. Currently we only supported .pdf format.

# Request parameter compressed optional

Using compressed=true to get the compressed report. If there is a compressed report, return the expected response, otherwise return HTTP 404 Not Found response.

# Example response

307 Temporary Redirect
Content-Type: application/pdf
Location: https://api.bees360.io/v1/report/12345/file/roof_only_underwriting_report_xxxxxx.pdf
...

If the report file is unavailable, returns HTTP 404 Not Found response.

# Get report url

GET /report/{reportId}/url

If the report is available, the URL of the report will be returned.

Note: This URL is not permanently valid and should not be saved.

# Example response

{
    "url": "https://sample.cloudfront.net/73e06a619abfd940e98a311252ab7997.pdf?Expires=1699516800&Signature=xxxxx&Key-Pair-Id=K1MUJ2LPJURISX"
}

# Get report summary

GET /report/{reportId}/summary

The attributes listed below represent all possible data fields available in Bees360 reports. The actual attributes returned in your report summary will vary based on your specific client account and service type. Only data fields included in your customized report template will appear in the response. If you would like to add new fields to your custom template, please contact your account manager.

# Attribute project.id Number

Specifies the project ID to which this report belongs to.

# Attribute project.serviceName String

Specifies the project's service name.

# Attribute project.insuredName String

Specifies the name of the insured involved in this report.

# Attribute project.inspectionTime Number

Specifies the inspection time for the report using the number of seconds since UNIX Epoch Time.

# Attribute project.completionTime Number

Specifies the completion time for the report using the number of seconds since UNIX Epoch Time.

# Attribute project.policyNumber String

Specifies the policy number related to this project

# Attribute project.supplementalServices List

Specifies the supplemental services to subscribe. possible values include: [ "RC Report", "Sinkhole", "Wildfire" ].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute project.isRenewal Boolean Nullable

Specifies whether the policy is new or renewal.

# Attribute project.address.streetAddress String

The street address part of the address of the project.

# Attribute project.address.city String

The city part of the address of the project.

# Attribute project.address.state String

The state part of the address of the project.

# Attribute project.address.zipcode Number

The zipcode part of the address of the project.

# Attribute project.address.country String

The country part of the address of the project.

# Attribute project.address.lat Number

The latitude of the address of the project.

# Attribute project.address.lng Number

The longitude of the address of the project.

# Attribute yearBuilt Number

The built year as a four-digit integer.

# Attribute lotSize Number

The lot size in acres.

# Attribute livingArea Number

The total living area in Sq.Ft..

# Attribute risk.overallCondition String

Overall risk condition, possible values include [ "Excellent", "Good", "Average", "Fair", "Poor", "Closeout" ].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute risk.areaEconomy String

Status of area economy, possible values include ["Stable","Improving","Declining"].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute risk.neighborhood String

Type of neighborhood, possible values include ["Urban","Suburban","Rural","Remote","Commercial","Commercial & Residential"].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute risk.gatedCommunity Boolean

Whether the property is located in a gated community.

# Attribute risk.locatedOnPavedRoad Boolean

Whether the property locates on paved road.

# Attribute risk.isolatedDwelling Boolean

Whether the property is an isolated dwelling.

# Attribute risk.seasonalDwelling Boolean

Whether the property is a seasonal dwelling.

# Attribute risk.businessOperation String

A string representing the type of business operation of the property, possible values include ["None observed","Farming","Gardening","Professional Services"].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute risk.vacant Boolean

Whether the property is vacant.

# Attribute risk.rental Boolean

If the property is being rented (has tenants).

# Attribute risk.forSale Boolean Nullable

If the property is currently for sale.

# Attribute risk.inaccessible Boolean Nullable

The Score of hazard counting from report.

# Attribute risk.hazardScore Double Nullable

If the property is inaccessible for inspection.

# Attribute risk.hasCrops Boolean Nullable

Whether the property has crops.

# Attribute risk.hasHorses Boolean Nullable

Whether the property has horses.

# Attribute risk.waterBody.type String Nullable

Type of water body, possible values include [ "None observed", "Lake", "River", "Creek", "Ocean", "Pond", "Bay", "Bayou", "Gully" ].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute risk.waterBody.distance String Nullable

Distance to the water body, possible values include [ "less than 500 ft", "500 ft ~ 1000 ft", "1000 ft ~ 2000 ft", "2000 ft ~ 1 mile", "greater than 1 mile" ].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute bldg.overallCondition String

Building overall condition, possible values include [ "Excellent", "Good", "Average", "Fair", "Poor" ].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute bldg.construction String

Construction material, possible values include ["Frame","Concrete Block","Steel Frame","Brick/Stone/Masonry Veneer","Fire Resistive","Pre-engineered"].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute bldg.constructionOverWater String

Building partially or completed constructed over water.

# Attribute bldg.dwellingType String

Dwelling type, possible values include ["Single Family Detached","Single Family Attached","Duplex","Triplex","Town Home","Row Home","Multi Family Home","2 Family Home","3 Family Home","4 Family Home","Mobile Home","Condominium","Condominium Detached"].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute bldg.garage String

The type of garage, such as ["Attached", "Detached", "Built-in", "Carport", "None"].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute bldg.hvac String

The type of HVAC, such as ["Central", "Window Unit", "Split Unit", "Baseboard heating", "Gas forced air heating"].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute bldg.numStories Number

The number of stories of the main dwelling.

# Attribute bldg.windProtections List

List of any wind protections discovered, such as ["None observed","Impact resistant door","High impact glass","Roof/shingles securing","High-profile garage door","Siding protection","Insulating Concrete Forms (ICFs)"]. If none observed, the field will be absent or has null value.

# Attribute bldg.hurricaneStraps Boolean

Whether hurricane straps was discovered.

# Attribute bldg.foundation String

The type of foundation, such as ["Concrete Slab","Slab on Grade","Crawl Space - Open","Crawl Space - Closed","Pier & Beam","Elevated Pier","Basement"].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute bldg.manufacturedOrMobileHome String

Whether the building is manufactured or a mobile home.

# Attribute bldg.designatedHistoricHome Boolean

If building is Designated Historic Home.

# Attribute bldg.exteriorDamage Boolean

If the property has noticeable exisiting exterior damage.

# Attribute bldg.hasFoundationCracks Boolean Nullable

If foundation damage discovered.

# Attribute bldg.hasFence Boolean Nullable

If fence damage discovered.

# Attribute bldg.underConstruction Boolean Nullable

If the property is under construction.

# Attribute bldg.underRenovation Boolean Nullable

If the property is under renovation.

# Attribute bldg.isDeveloperSpeculation Boolean Nullable

Whether the property is a developer speculation model house.

# Attribute bldg.architecturalStyle String Nullable

The architectural style of the building, such as ["BiLevel", "TriLevel", "Bungalow", "Condo", "Single-Wide", "Multi-Wide", "Multi Wide Starter Home", "Single Wide Starter Home", "Cape Cod", "Colonial", "Ranch", "Raised Ranch", "Townhouse - End Unit", "Townhouse - Interior Unit", "Victorian", "Contemporary"]
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute bldg.garageCapacity Number Nullable

The number of vehicles that can be parked in the garage.

# Attribute bldg.hasSidewalkHazard Boolean Nullable

If there is a sidewalk hazard.

# Attribute bldg.hasImproperRailsSpacing Boolean Nullable

If handrails or balusters are improperly spaced.

# Attribute bldg.hasRottingDecking Boolean Nullable

If roof decking or structural timber is rotting.

# Attribute bldg.hasUnconventionalConstruction Boolean Nullable

If the property features unconventional construction (such as A-frame homes, Geodesic homes, In Ground or True Log Built structures).

# Attribute bldg.hasCloggedGutters Boolean Nullable

If there are gutters clogged with debris.

# Attribute bldg.hasNonPermanentFoundation Boolean Nullable

If the foundation is not permanent (mostly for manufactured homes, modular homes).

# Attribute bldg.hasImproperGutterDischarge Boolean Nullable

If there is an improper gutter discharge (e.g., discharging towards the foundation).

# Attribute roof.estAge String

Estimated roof age, possible values include ["less than 1 year", "1 ~ 5 years", "5 - 10 years"].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute roof.estLife String

Estimated roof remaining life, possible values include ["less than 1 year", "1 ~ 5 years", "5 - 10 years"].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute roof.overallCondition String

Overall roof condition, possible values include [ "Excellent", "Good", "Average", "Fair", "Poor" ].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute roof.geometry Object

An object presenting roof geometry and its corresponding percentage. Possible properties include [ "Flat", "Gable", "Hip" ]. The value of each property presents its corresponding percentage.

# Attribute roof.comments List

List of comments to the roof.

# Attribute roof.material Object

A Object that records the roof material and its corresponding percentage. Possible roof material properties include ["CompositeShingles","BuildupRoofNoGravel","ClayConcreteTiles","LightMetalPanels","SinglePlyMembrane","SinglePlyMembraneBallasted","Slate","StandingSeamMetalRoof","WoodenShingles","Metal","ModifiedBitumen"].

# Attribute roof.coveringMaterial List

List of dominant covering material, including ["Asphalt","Modified Bitumen","Aluminum","Built-Up","Clay Tile","Concrete Tile","Slate","Copper","Steel","Metal","Standing Seam Metal","Solar Tiles","Rubber","Wood","Other","Unknown"].

# Attribute roof.hasSolarPanel Boolean

Whether any solar panels present on roof.

# Attribute roof.hasCurlingShingles Boolean

If roof has curling shingles.

# Attribute roof.hasGranularLoss Boolean

If roof has granular loss.

# Attribute roof.hasMissingDamagedShingles Boolean

If roof has missing or damaged shingles.

# Attribute roof.hasPatchedAreas Boolean

If roof has been repaired with patches.

# Attribute roof.hasTarp Boolean

If roof has a tarp.

# Attribute roof.hasRoofDebris Boolean Nullable

If debris discovered on roof.

# Attribute roof.comparison List

List of comparisons, in which each item describes a different direction to the roof. Each comparison is an object that contains the following property:

Field Type Description Example
direction String Specifying the direction of the roof slope in this comparison, possible values include ["Front", "Right", "Rear", "Left"]. 💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice. "Front"
change String Describing changes on the roof slope in this comparison, possible values include ["No changes was noted.", "Slightly damage was noted on the slope.", "Moderately damage was noted on the slope.", "Significant damage was noted on the slope.", "Roof is completely replaced.", "Solar panels were noted on the slope."] 💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.. "No changes was noted."
comment String A text comment constructed by direction and change. "Front Slope: No changes was noted."
image List List of images of the current inspection and historical inspections. It contains at least 2 images, standing for the current inspection and the last inspection. Each image is an object that contains at least an id property that represents the image's unique identifier. [{ "id": "3f1d8a93----0404----4419----b42d----72e25ef5cde8" }]

# Attribute roof.chimneyCount Number Nullable

The number of Chimneys.

# Attribute roof.hasMultiLayer Boolean Nullable

If the roof material has more than one layer.

# Attribute roof.hasHoles Boolean Nullable

If there is evidence of holes in the roof structure.

# Attribute roof.hasMissingDamagedMetalRoof Boolean Nullable

If the metal roof covering is damaged or missing.

# Attribute exterior.overallCondition String

Whether the overall condition of exterior is satisfactory.

# Attribute exterior.siding Object

Siding material and its corresponding percentage. The object's properties are the name of the siding material, and the values represents its percentage. Possible values for siding materials include ["BrickVeneer","Wood","HardiePlank","Stucco","ConcreteBlock","WoodShake","Aluminum","Vinyl","Metal","Log","Asbestos","StoneVeneer","VinylShake","HardiePanel","HardieShingle"].

# Attribute exterior.hasShutters Boolean

Whether any shutters discovered.

# Attribute exterior.hasPorch Boolean

Whether property has porch.

# Attribute exterior.hasStairsWithoutHandRails Boolean

If stairs are present without hand rails.

# Attribute exterior.hasYardDebris Boolean

If yard has excessive yard debris/trash.

# Attribute exterior.hasDiscardedVehicles Boolean

If yard has unregistered vehicles on premises.

# Attribute exterior.hasTreeLimbs Boolean

If there are trees or tree limbs touching or overhanging home.

# Attribute exterior.hasPoolWithoutFence Boolean

If pool present does it have a 4 ft fence with self locking gate?

# Attribute exterior.hasSidingDamage Boolean Nullable

If siding damage discovered.

# Attribute exterior.hasWallCracks Boolean Nullable

If wall cracks discovered.

# Attribute exterior.hasPealingPaint Boolean Nullable

If peeling paint on siding discovered.

# Attribute exterior.hasWindowDamage Boolean Nullable

If window screen damage discovered.

# Attribute exterior.hasWaterDamage Boolean Nullable

If water damage on exterior discovered.

# Attribute exterior.hasChimneyDamage Boolean Nullable

If chimney damage discovered.

# Attribute exterior.hasMildewOrMoss Boolean Nullable

If algae/moss discovered on roof.

# Attribute exterior.hasPoolCage Boolean Nullable

If swimming pool fence/cage discovered.

# Attribute exterior.hasDivingBoardOrSlide Boolean Nullable

If swimming pool diving board discovered.

# Attribute exterior.numDogPresent Number

# of dogs.

# Attribute exterior.hasDogPresent Boolean

If there is a dog present.

# Attribute exterior.petType List

Pet type with breed, such as ["Dog - Labrador Retriever","Dog - German Shepherd","Dog - Golden Retriever","Dog - Beagle","Dog - Bulldog","Dog - Yorkshire Terrier","Dog - Boxer","Dog - Poodle","Dog - Rottweiler","Dog - Dachshunds","Cats","Birds"].

# Attribute exterior.pet Object

Provides the count of pet dog, pet cat, etc. Possible properties include ["dog", "cat", "horse", "other", etc].

# Attribute exterior.hasDogSign Boolean Nullable

If dog sign presented on the property.

# Attribute exterior.hasPestActivity Boolean Nullable

If pest activity discovered.

# Attribute exterior.hasTrampoline Boolean Nullable

If trampoline discovered.

# Attribute exterior.hasWatercraft Boolean Nullable

If watercraft discovered.

# Attribute exterior.hasPlaySwingSet Boolean Nullable

If there is a play/swing set in the exterior area.

# Attribute exterior.hasTreeHouse Boolean Nullable

If there is a tree house in the exterior area.

# Attribute exterior.hasBasketballHoop Boolean Nullable

If there is a basketball hoop in the exterior area.

# Attribute exterior.hasATV Boolean Nullable

If there is an ATV (all-terrain vehicle) in the exterior area.

# Attribute exterior.hasSkateboardOrBikeRamp Boolean Nullable

If there is a skateboard or bike ramp in the exterior area.

# Attribute exterior.hasDirtBike Boolean Nullable

If there is a dirt bike in the exterior area.

# Attribute exterior.hasPropaneOrFuelTank Boolean Nullable

If there is a propane or fuel tank in the exterior area.

# Attribute exterior.hasSwimmingPool Boolean Nullable

If there is a swimming pool in the exterior area.

# Attribute exterior.hasAwning Boolean Nullable

If there is an awning in the exterior area.

# Attribute exterior.comments List

List of text comments to exterior.

# Attribute exterior.comparison List

List of comparisons, in which each item describes a different direction to the elevation. Each comparison is an object that contains the following property.

Field Type Description Example
direction String Specifying the direction of the elevation in this comparison, possible values include ["Front", "Right", "Rear", "Left"]. 💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice. "Front"
change String Describing changes on the elevation in this comparison, possible values include ["No changes was noted.", "Slightly damage was noted on the {TARGET}.", "Moderately damage was noted on the {TARGET}.", "Significant damage was noted on the {TARGET}.", "Roof is completely replaced.", "Solar panels were noted on the {TARGET}."]. The variable {TARGET} could be ["siding", "door", "window", "foundation", "soffit]. 💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice. "Slightly damage was noted on the siding."
comment String A text comment constructed by direction attribute and change attribute. "Front Elevation: Slightly damage was noted on the siding."
image List List of images of the current inspection and historical inspections. It contains at least 2 images, standing for the current inspection and the last inspection. Each image is an object that contains at least an id property that represents the image's unique identifier. [{ "id": "3f1d8a93----0404----4419----b42d----72e25ef5cde8" }]

# Attribute exterior.isEIFS Boolean Nullable

Whether the Exterior Insulating and Finishing System (EIFS) construction was done prior to 2000.

# Attribute exterior.hasPoolSelfLatchingGate Boolean Nullable

Indicates if the swimming pool has a self-latching gate present.

# Attribute exterior.poolCount Number Nullable

The number of swimming pools.

# Attribute exterior.pool List Nullable

List of swimming pools.

# Attribute exterior.pool.type String Nullable

The type of swimming pool, such as ["In-ground, Attached Pool", "In-ground, Detached Pool", "Above Ground, Attached Pool", "Above Ground, Detached Pool"].

# Attribute exterior.pool.size String Nullable

The size of swimming pool, such as ["Small", "Medium", "Large"].

# Attribute exterior.pool.hasCage Boolean Nullable

If swimming pool cage discovered.

# Attribute exterior.pool.cageSize String Nullable

The size of pool cage, such as ["Small", "Medium", "Large"].

# Attribute exterior.hasAdjacentStructureRisk Boolean Nullable

If an adjacent structure presents additional risk.

# Attribute exterior.hasHighAboveGroundPoolWithFixedLadder Boolean Nullable

If there is an above-ground pool that is 4 feet or higher and has an immovable ladder.

# Attribute exterior.hasUnfencedPond Boolean Nullable

If there is an unfenced pond.

# Attribute exterior.hasPoolWithoutSelfLatchingGate Boolean Nullable

If a pool fence or enclosure is missing a self-latching gate.

# Attribute exterior.hasCompromisedMasonry Boolean Nullable

If there is a masonry structure compromised or damaged.

# Attribute exterior.hasUnsafeTreeCondition Boolean Nullable

If there is an unsafe tree condition present, such as unhealthy trees, trees leaning towards structures, or roots too close to the foundation.

# Attribute exterior.hasIneligibleSidingMaterial Boolean Nullable

If there is ineligible siding material present, such as synthetic stucco or EIFS.

# Attribute exterior.hasDoorDamage Boolean Nullable

If there is a door with damage (e.g., damaged, missing or boarded).

# Attribute interior.overallCondition String

Conditional of overall interior, possible values include ["Excellent", "Good", "Average", "Fair", "Poor"]
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute interior.hasVisibleLeaks Boolean

If active or inactive leaks are visible.

# Attribute interior.hasExistingDamage Boolean

If there is existing interior damage is present.

# Attribute interior.plumbing.noShutoffValve Boolean

If there are any plumbing fixtures without shut off valves.

# Attribute interior.plumbing.hasOldWaterHeater Boolean

If the water heater is older than 15 years.

# Attribute interior.plumbing.hasPoorWaterHeaterCondition Boolean

If the water heater is rusting or in poor condition, has exposed wires or no TPR Valve.

# Attribute interior.plumbing.hasGalvanizedPipes Boolean

Indicates if there is evidence that property has galvanized steel pipes based on visual inspection. Galvanized steel pipes may be prone to flow restrictions due to internal corrosion build up over time.

# Attribute interior.plumbing.isUpdated Boolean Nullable

Whether the plumbing was updated.

# Attribute interior.plumbing.yearUpdated Number Nullable

The year in which the plumbing was updated.

# Attribute interior.plumbing.systemUpdateStatus String

Indicates the age and update status of the plumbing system in the property. Possible values are:

  • Original - The plumbing system is original and has not been updated.
  • Partially Updated - Parts of the plumbing system have been updated or replaced.
  • Fully Updated - The entire plumbing system has been completely replaced with a new system.
  • Unknown - The age and update status of the plumbing system could not be determined.
    💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute interior.plumbing.hasIneligiblePlumbing Boolean

Indicates if there are any ineligible plumbing components or materials present, such as galvanized plumbing, polybutylene plumbing, etc.

# Attribute interior.electric.hasIneligiblePanel Boolean

Ineligible panel, Split bus, fuse boxes, Stablok, Federal Pacific, GTE-Sylvania, Challenger or Zinsco.

# Attribute interior.electric.panelBrand String

Brand of the main electrical panel inspected. This indicates the manufacturer of the panel. Common brands include Square D, General Electric, Siemens, etc.

# Attribute interior.electric.isUpdated Boolean Nullable

Whether the wiring/electrical was updated.

# Attribute interior.electric.yearUpdated Number Nullable

The year in which the wiring/electrical was updated.

# Attribute interior.electric.systemUpdateStatus String

Indicates the age and update status of the electric system in the property. Possible values are:

  • Original - The electric system is original and has not been updated.
  • Partially Updated - Parts of the electric system have been updated or replaced.
  • Fully Updated - The entire electric system has been completely replaced with a new system.
  • Unknown - The age and update status of the electric system could not be determined.
    💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute interior.floorplan Object

Provides details on the interior floor plan, including the number of each type of room and whether damage is present in each room. It contains two objects - "room" and "hasDamage"."room" provides the count of bedrooms, bathrooms, closets, etc."hasDamage" indicates if damage is present in each type of room. Possible room types are bedroom, bathroom, closet, foyer, living room, family room, dining room, breakfast room, kitchen, office/study, laundry room, attic, and garage.

# Attribute interior.floorplan.room Object

Provides the count of bedrooms, bathrooms, closets, etc. Possible properties include ["bedroom", "bathroom", "closet", etc].

# Attribute interior.floorplan.hasDamage Object

If floor damage discovered. It indicates if damage is present in each type of room. Possible properties include ["bedroom", "bathroom", "closet", "foyer", "livingRoom", "familyRoom", "diningRoom", "breakfastRoom", "kitchen", "officeOrStudyRoom", "laundryRoom", "attic", "garage", etc].

# Attribute interior.waterHeater.serialNumber String

Specifies the serial number of the water heater inside the property..

# Attribute interior.waterHeater.age String

Specifies the age of the water heater inside the property.

# Attribute interior.burglarAlarm.hasCentralBurglarAlarm Boolean Nullable

Whether the property has central station burglar alarm.

# Attribute interior.fireAlarm.hasCentralFireAlarm Boolean Nullable

Whether the property has central station fire alarm.

# Attribute interior.heatingCooling.hasSpaceHeater Boolean Nullable

Whether the property has space heater.

# Attribute interior.heatingCooling.hasWoodStove Boolean Nullable

Whether the property has wood stove.

# Attribute interior.heatingCooling.isUpdated Boolean Nullable

Whether the HVAC was updated.

# Attribute interior.heatingCooling.yearUpdated Number Nullable

The year in which the HVAC was updated.

# Attribute interior.heatingCooling.systemUpdateStatus String

Indicates the age and update status of the heating and cooling system in the property. Possible values are:

  • Original - The heating and cooling system is original and has not been updated.
  • Partially Updated - Parts of the heating and cooling system have been updated or replaced.
  • Fully Updated - The entire heating and cooling system has been completely replaced with a new system.
  • Unknown - The age and update status of the heating and cooling system could not be determined.
    💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute interior.appliances List

List of appilances, in which each item describes a appiliance in house. Each appliance is an object that contains the following property.

Field Type Description Example
productType String Representing the type of appliance (e.g., Air Conditioner, Clothes Dryer, Dishwasher, Furnace/Air Handler, Range / Stove / Oven, Refrigerator, Washing Machine) Air Conditioner
subProductType String Representing a more specific classification for some product type like 'Air Conditioner'. (e.g., Air Conditioner, Heat Pump) Air Conditioner
brand String Representing the brand name of appliance. ACIQ
modelNumber String Representing the model number of appliance. B1HA03
serialNumber String Representing the serial number of appliance. NLLM11
manufacturedYear Number Representing the manufactured year of appliance. 2024
manufacturedMonth Number Representing the manufactured month of appliance. 1
age Number Representing the computed age of appliance. It can be a decimal value. 2.5
remainingLife Number Representing the remaining life of appliance, based on its age and expected life in years. It can be a decimal value. 5.5
failureRiskScore Number Representing the estimated risk score of appliance failure. The higher the score, the more likely the appliance is to fail. It can be a decimal value. 1
failureRiskScoreIfRecallFixed Number Representing the estimated risk score of appliance failure if any existing recalls associated with the appliance are successfully fixed. It can be a decimal value. 2.5
recallData List Representing the infromation about any recalls associated with the appliance. It is an object list, which includes values 'recallNumber', 'hazard', 'cause', 'solution', 'dateRecalled', 'dateStartedBeingSold', 'dateStoppedBeingSold', and all fields in the object are of string type. [{"fix": "Consumers should stop using the air conditioner immediately.", "dueTo": "Injury", "hazard": "The engine posing a hazard.", "recallUrl": "https://recalls", "dateRecalled": "2014-01-15", "recallNumber": "375", "customerRecallStatus": "FIXED", "dateStartedBeingSold": "2013-01-30", "dateStoppedBeingSold": "2013-12-29"}]
classActionLawsuit List Representing the infromation about any class action lawsuit associated with the appliance. It is an object list, which includes values 'caseName', 'caseNumber', 'caseCountry', 'classActionDescription', 'classActionUrl', and all fields in the object are of string type. [{"caseName": "York", "caseNumber": "0110", "caseCountry": "US", "caseDistrict": "U.S.", "claimDeadline": "2017-12-20", "classActionUrl": "https://classactions", "classActionDescription": "The Plaintiffs claim that manufactures including air handlers and packaged HVAC units."}]

# Attribute interior.comments List

List of text comments to interior.

# Attribute community.numResidentialUnits Number Nullable

The number of residential units in the community.

# Attribute community.numBldg Number Nullable

The number of buildings in the community.

# Attribute community.hasBalcony Boolean Nullable

If there is a balcony in the community.

# Attribute community.petsAllowed Boolean Nullable

If pets are allowed in the community.

# Attribute community.hasTennisCourt Boolean Nullable

If there is a tennis court in the community.

# Attribute community.hasPlayground Boolean Nullable

If there is a playground in the community.

# Attribute community.hasBasketballCourt Boolean Nullable

If there is a basketball court in the community.

# Attribute addlStructures List

List of additional structures on the property, such as ["Storage Shed","Barn","Garden","Horse Stable","Gazebo","Guest House","Pergola","Boat Dock"].

# Attribute hazards List

List of text comments of hazards discovered.

# Attribute recommendations List

List of hazard-related recommendations. This section includes observed hazards and their corresponding recommendations, such as building hazards, garage/outbuilding hazards, and other property-related risks. Each recommendation contains a text string describing the recommendation, and an image array containing one or more related images. Each image object includes at least an id representing its unique identifier.

# Attribute factors List

Consolidated list of observed factors influencing the assessment. This section combines roof comments, exterior comments, and hazard recommendations into a unified list. Each factor includes:

  • text: a description of the issue or observation,

  • name: a canonical name (enum) identifying the type of factor — use this field to filter or locate specific hazards. While existing names remain stable, new names may be added in the future without prior notice,

  • direction (optional): the location or orientation of the issue, if applicable,

  • image: an image object containing at least an id for the associated image.

📝 Note: The name field serves as a consistent key for identifying specific types of factors across reports. The set of possible names may expand over time as new factor types are introduced.

factor name explanations

# Attribute fireProtection.code Number Nullable

Specifies the fire protection code for the area.

# Attribute fireProtection.nearestFireStation Object

Specifies location details for the nearest fire station.

Field Type Description Example
title String The title of the nearest fire station. "Fire And Rescue Station"
type String The type of the nearest fire station "Full Time"
distance String The distance to the nearest fire station "0.92 miles"

# Attribute fireProtection.nearestFireHydrant Object

Specifies location details for the nearest fire hydrant.

Field Type Description Example
distance String The distance to the nearest fire hydrant. "500 ~ 1000 ft."

# Attribute closeoutReasons List

The reasons why this project was closed. Possible Values include ["Inspection was denied by the insured.", "Pilot was denied on location.", "Insured stated he/she cancelled the policy, and declined the inspection.", "Cancellation is confirmed.", "Unable to reach insured after multiple attempts. Inspection is closed out.", "The insured said this policy is canceled. Inspection is closed out.", "Inspection was denied by the insured who was unaware of this insurance policy.", "Inspection was denied by the insured, considering it unnecessary.", "Inspection was denied by the insured, stating it was previously completed by someone else.", "Inspection was denied by the insured without providing a specific reason."].
💡This is a dynamic list of string values. New values may be introduced, and existing values may be deprecated or modified without prior notice.

# Attribute history List

List of the property inspection history. Each history is an object with a dateInspected property, a policyNumber property and an image property.dateInspected is a String specifies the date inspected of the histroy inspection in YYYY-MM-DD format.policyNumber is a String specifies the policy number related to this project, and image is a list of images related to the history inspection. Each image is an object that contains at least an id property that represents the image's unique identifier.

# Attribute hover Object

The root object containing all HOVER-related data. HOVER is a technology that creates 3D models of properties from photos.

# Attribute hover.hoverTla List

Contains Total Living Area (TLA) measurements and related data from the HOVER assessment.

# Attribute hover.hoverTla.livingAreas Object

Contains information about the living spaces within the property, organized by floors and other structural elements.

# Attribute hover.hoverTla.livingAreas.floors Object

Contains detailed information about each floor of the property, including measurements and a collection of floor entities.

# Attribute hover.hoverTla.livingAreas.floors.entities List

List of objects representing individual floors or levels of the property, each with its own measurements and identifiers.

Field Type Description Example
area Number The measured area of a specific floor in square feet. Represents the living space on that particular floor. 1217
identifier String A unique string identifier for the floor, typically indicating its position in the building. "1st_floor"
label String An optional descriptive name for the floor. Can be null if no custom label has been assigned. "Main Floor"
measured Boolean A boolean value indicating whether the floor area has been physically measured (true) or estimated (false). true
floor Number A numeric value representing the floor number, with 1 typically being the ground floor or first floor. 1

# Attribute hover.hoverTla.livingAreas.floors.totalArea Number

The sum of all floor areas in square feet, representing the total living area of the property.

# Attribute hover.hoverTla.attachedStructures Object

Contains information about structures attached to the main building, such as garages, decks, and porches.

# Attribute hover.hoverTla.attachedStructures.attachedGarages Object

Contains information about attached garages, including measurements and details.

# Attribute hover.hoverTla.attachedStructures.attachedGarages.entities List

List of objects representing individual attached garages, each with its own measurements and identifiers.

Field Type Description Example
area Number The measured area of a specific garage in square feet. 395
identifier String A unique string identifier for the garage. "garage_attached"
label String An optional descriptive name for the garage. Can be null if no custom label has been assigned. null
measured Boolean A boolean value indicating whether the garage area has been physically measured (true) or estimated (false). true
cars Number An optional value indicating the number of cars the garage can accommodate. Can be null. null

# Attribute hover.hoverTla.attachedStructures.attachedGarages.totalArea Number

The sum of all attached garage areas in square feet.

# Attribute hover.hoverTla.attachedStructures.decks Object

Contains information about decks attached to the property.

# Attribute hover.hoverTla.attachedStructures.decks.entities List

List of objects representing individual decks, each with its own measurements and identifiers.

Field Type Description Example
area Number The measured area of a specific deck in square feet. 152
identifier String A unique string identifier for the deck. "deck"
label String An optional descriptive name for the deck. Can be null if no custom label has been assigned. null
measured Boolean A boolean value indicating whether the deck area has been physically measured (true) or estimated (false). true

# Attribute hover.hoverTla.attachedStructures.openPorches Object

Contains information about open porches attached to the property.

# Attribute hover.hoverTla.attachedStructures.openPorches.entities List

List of objects representing individual open porches, each with its own measurements and identifiers.

Field Type Description Example
area Number The measured area of a specific open porch in square feet. 218
identifier String A unique string identifier for the open porch. "open_porch"
label String An optional descriptive name for the open porch. Can be null if no custom label has been assigned. null
measured Boolean A boolean value indicating whether the porch area has been physically measured (true) or estimated (false). true

# Attribute hover.hoverTla.attachedStructures.openPorches.totalArea Number

The sum of all open porch areas in square feet.

# Example response

{
    "report": [
        {
            "id": "aJAgK76i2zXT9sZ_BxVEw-cDX2Ku98Kv",
            "type": "Full-scope Underwriting Report",
            "project": {
                "id": 12345,
                "inspectionNumber": "12345678",
                "serviceName": "Exterior",
                "insuredName": "Jane Doe",
                "inspectionTime": 1597609827,
                "completionTime": 1597629371,
                "policyNumber": "BEES20221225",
                "supplementalServices": [
                    "RC Report",
                    "Sinkhole"
                ],
                "address": {
                    "streetAddress": "37 Washington St.",
                    "city": "Jersey City",
                    "state": "NJ",
                    "zipcode": "07302",
                    "country": "US",
                    "lat": 37.4222804,
                    "lng": -122.0843428
                },
                "isRenewal": false
            },
            "summary": {
                "yearBuilt": 1945,
                "livingArea": 1560.0,
                "lotSize": 0.27,
                "risk": {
                    "overallCondition": "Good",
                    "areaEconomy": "Stable",
                    "neighborhood": "Suburban",
                    "gatedCommunity": false,
                    "locatedOnPavedRoad": false,
                    "isolatedDwelling": false,
                    "seasonalDwelling": false,
                    "businessOperation": "Farming",
                    "vacant": false,
                    "rental": true,
                    "forSale": false,
                    "inaccessible": false,
                    "waterBody": {
                        "type": "Lake",
                        "distance": "less than 500 ft"
                    }
                },
                "bldg": {
                    "overallCondition": "Good",
                    "dwellingType": "Single Family Detached",
                    "construction": "Frame",
                    "constructionOverWater": true,
                    "garage": "Attached",
                    "hvac": "Central",
                    "numStories": 2,
                    "windProtections": [
                        "None observed"
                    ],
                    "hurricaneStraps": false,
                    "foundation": "Basement",
                    "hasFoundationCracks": false,
                    "manufacturedOrMobileHome": "Manufactured",
                    "designatedHistoricHome": false,
                    "exteriorDamage": true,
                    "underRenovation": false,
                    "isDeveloperSpeculation": true,
                    "underConstruction": false,
                    "hasFence": false,
                    "architecturalStyle": "TriLevel",
                    "garageCapacity": 2
                },
                "roof": {
                    "overallCondition": "Good",
                    "estAge": "less than 1 year",
                    "estLife": "5 ~ 10 years",
                    "geometry": {
                        "Flat": 50,
                        "Gable": 20,
                        "Hip": 30
                    },
                    "coveringMaterial": [
                        "Asphalt"
                    ],
                    "hasSolarPanel": false,
                    "hasCurlingShingles": false,
                    "hasGranularLoss": false,
                    "hasMissingDamagedShingles": false,
                    "hasPatchedAreas": false,
                    "hasTarp": false,
                    "hasRoofDebris": false,
                    "material": {
                        "CompositeShingles": 100,
                        "BuildupRoofNoGravel": 0,
                        "ClayConcreteTiles": 0,
                        "LightMetalPanels": 0,
                        "SinglePlyMembrane": 0,
                        "SinglePlyMembraneBallasted": 0,
                        "Slate": 0,
                        "StandingSeamMetalRoof": 0,
                        "WoodenShingles": 0
                    },
                    "comments": [
                        "Front Slope: Missing shingles.",
                        "Left Slope: Missing shingles."
                    ],
                    "comparison": [
                        {
                            "comment": "Front Slope: No changes was noted.",
                            "direction": "Front",
                            "change": "No changes was noted.",
                            "image": [
                                {
                                    "id": "3f1d8a93-0404-4419-b42d-72e25ef5cde8"
                                }
                            ]
                        },
                        {
                            "comment": "Right Slope: Slightly damage was noted on the slope.",
                            "direction": "Right",
                            "change": "Slightly damage was noted on the slope.",
                            "image": [
                                {
                                    "id": "23468a12-7354-34m4-3cd2-36e65er5cdw2"
                                }
                            ]
                        },
                        {
                            "comment": "Rear Slope: Moderately damage was noted on the slope.",
                            "direction": "Rear",
                            "change": "Moderately damage was noted on the slope.",
                            "image": [
                                {
                                    "id": "27318r12-7354-34b0-0cd2-06e61er5cew2"
                                }
                            ]
                        },
                        {
                            "comment": "Left Slope: Significant damage was noted on the slope.",
                            "direction": "Left",
                            "change": "Significant damage was noted on the slope.",
                            "image": [
                                {
                                    "id": "80128a62-7245-14m4-3ct2-86u65er1caw3"
                                }
                            ]
                        }
                    ],
                    "chimneyCount": 1
                },
                "exterior": {
                    "overallCondition": "Good",
                    "siding": {
                        "Hardiplank": 100
                    },
                    "hasChimneyDamage": false,
                    "hasSidingDamage": false,
                    "hasPealingPaint": false,
                    "hasMildewOrMoss": false,
                    "hasWindowDamage": false,
                    "hasWallCracks": false,
                    "hasWaterDamage": false,
                    "hasShutters": false,
                    "hasPorch": true,
                    "hasStairsWithoutHandRails": false,
                    "hasYardDebris": false,
                    "hasDiscardedVehicles": false,
                    "hasTreeLimbs": false,
                    "hasPoolWithoutFence": false,
                    "hasDivingBoardOrSlide": false,
                    "hasPoolCage": false,
                    "numDogPresent": 2,
                    "hasDogPresent": false,
                    "petType": [
                        "Dog - Labrador Retriever",
                        "Dog - German Shepherd",
                        "Cat"
                    ],
                    "pet": {
                        "dog": 2,
                        "cat": 1,
                        "horse": 0,
                        "other": 0
                    },
                    "hasDogSign": false,
                    "hasPestActivity": false,
                    "hasTrampoline": false,
                    "hasPlaySwingSet": false,
                    "hasTreeHouse": false,
                    "hasBasketballHoop": false,
                    "hasATV": false,
                    "hasSkateboardOrBikeRamp": false,
                    "hasDirtBike": false,
                    "hasWatercraft": false,
                    "hasPropaneOrFuelTank": false,
                    "hasSwimmingPool": false,
                    "hasAwning": false,
                    "comments": [
                        "Left Elevation: Broken window glass."
                    ],
                    "comparison": [
                        {
                            "comment": "Front Elevation: No changes was noted.",
                            "direction": "Front",
                            "change": "No changes was noted.",
                            "image": [
                                {
                                    "id": "3f1d8a93-0404-4419-b42d-72e25ef5cde8"
                                }
                            ]
                        },
                        {
                            "comment": "Right Elevation: Slightly damage was noted on the siding.",
                            "direction": "Right",
                            "change": "Slightly damage was noted on the siding.",
                            "image": [
                                {
                                    "id": "23468a12-7354-34m4-3cd2-36e65er5cdw2"
                                }
                            ]
                        },
                        {
                            "comment": "Rear Elevation: Moderately damage was noted on the siding.",
                            "direction": "Rear",
                            "change": "Moderately damage was noted on the siding.",
                            "image": [
                                {
                                    "id": "27318r12-7354-34b0-0cd2-06e61er5cew2"
                                }
                            ]
                        },
                        {
                            "comment": "Left Elevation: Significant damage was noted on the siding.",
                            "direction": "Left",
                            "change": "Significant damage was noted on the siding.",
                            "image": [
                                {
                                    "id": "80128a62-7245-14m4-3ct2-86u65er1caw3"
                                }
                            ]
                        }
                    ],
                    "isEIFS": false,
                    "hasPoolSelfLatchingGate": true,
                    "poolCount": 1,
                    "pool": [
                        {
                            "type": "In-ground, Detached Pool",
                            "size": "Medium",
                            "hasCage": true,
                            "cageSize": "Medium"
                        }
                    ]
                },
                "interior": {
                    "overallCondition": "Good",
                    "hasVisibleLeaks": false,
                    "hasExistingDamage": false,
                    "comments": [
                        "The interior appears to be under renovation."
                    ],
                    "plumbing": {
                        "noShutoffValve": false,
                        "hasOldWaterHeater": false,
                        "hasPoorWaterHeaterCondition": false,
                        "hasGalvanizedPipes": true,
                        "isUpdated": true,
                        "yearUpdated": 1986,
                        "systemUpdateStatus": "Original",
                        "hasIneligiblePlumbing": true
                    },
                    "electric": {
                        "hasIneligiblePanel": false,
                        "panelBrand": "Square D",
                        "isUpdated": true,
                        "yearUpdated": 1992,
                        "systemUpdateStatus": "Fully Updated"
                    },
                    "waterHeater": {
                        "serialNumber": "",
                        "age": "12 years"
                    },
                    "burglarAlarm": {
                        "hasCentralBurglarAlarm": false
                    },
                    "fireAlarm": {
                        "hasCentralFireAlarm": true
                    },
                    "heatingCooling": {
                        "hasSpaceHeater": true,
                        "hasWoodStove": false,
                        "isUpdated": true,
                        "yearUpdated": 1996,
                        "systemUpdateStatus": "Original"
                    },
                    "floorplan": {
                        "room": {
                            "bedroom": 1,
                            "bathroom": 1,
                            "closet": 1
                        },
                        "hasDamage": {
                            "bedroom": false,
                            "bathroom": false,
                            "closet": false,
                            "foyer": false,
                            "livingRoom": false,
                            "familyRoom": false,
                            "diningRoom": false,
                            "breakfastRoom": false,
                            "kitchen": false,
                            "officeOrStudyRoom": false,
                            "laundryRoom": false,
                            "attic": false,
                            "garage": false
                        }
                    },
                    "appliances": [
                        {
                            "productType": "Air Conditioner",
                            "brand": "York",
                            "modelNumber": "B1HA03",
                            "serialNumber": "NLLM11",
                            "manufacturedYear": 2014,
                            "manufacturedMonth": 1,
                            "age": 10.75,
                            "remainingLife": 8.25,
                            "failureRiskScore": 3.7,
                            "recall_data": [
                                {
                                    "fix": "Consumers should stop using the air conditioner immediately.",
                                    "dueTo": "Injury",
                                    "hazard": "The engine posing a hazard.",
                                    "recallUrl": "https://recalls",
                                    "dateRecalled": "2014-01-15",
                                    "recallNumber": "375",
                                    "customerRecallStatus": "FIXED",
                                    "dateStartedBeingSold": "2013-01-30",
                                    "dateStoppedBeingSold": "2013-12-29"
                                }
                            ],
                            "classActionLawsuit": [
                                {
                                    "caseName": "York",
                                    "caseNumber": "0110",
                                    "caseCountry": "US",
                                    "caseDistrict": "U.S.",
                                    "claimDeadline": "2017-12-20",
                                    "classActionUrl": "https://classactions",
                                    "classActionDescription": "The Plaintiffs claim that manufactures including air handlers and packaged HVAC units."
                                }
                            ]
                        },
                    ]
                },
                "community": {
                    "numBldg": 13,
                    "numResidentialUnits": 126,
                    "hasBalcony": true,
                    "petsAllowed": false,
                    "hasTennisCourt": true,
                    "hasPlayground": false,
                    "hasBasketballCourt": true
                },
                "fireProtection": {
                    "code": 2,
                    "nearestFireStation": {
                        "title": "Fire And Rescue Station",
                        "type": "Full Time",
                        "distance": "0.92 miles"
                    },
                    "nearestFireHydrant": {
                        "distance": "500 ~ 1000 ft."
                    }
                },
                "closeoutReasons": [
                    "Inspection was denied by the insured."
                ],
                "addlStructures": [
                    "Barn"
                ],
                "hazards": [
                    "Fireplace on exterior of front slope was noted.",
                    "The property is located about 237 ft. from the Laurel Lake.",
                    "2 dogs was spoted."
                ],
                "recommendations": [
                    {
                        "text": "Removal of Diving Board/Slides",
                        "image": [
                            {
                                "id": "3f1d8a93-0404-4419-b42d-72e25ef5cde8"
                            },
                            {
                                "id": "4e90cae0-7c29-4e7e-befa-f8a1d930ed4d"
                            }
                        ]
                    }
                ],
                "factors": [
                    {
                        "text": "Fireplace on exterior of front slope was noted.",
                        "name": "FIREPLACE ON EXTERIOR",
                        "direction": "front",
                        "image": [
                            {
                                "id": "3f1d8a93-0404-4419-b42d-72e25ef5cde8"
                            },
                            {
                                "id": "4e90cae0-7c29-4e7e-befa-f8a1d930ed4d"
                            }
                        ]
                    },
                    {
                        "text": "Missing shingles.",
                        "name": "MISSING_SHINGLES",
                        "direction": null,
                        "image": [
                            {
                                "id": "3f1d8a93-0404-4419-b42d-72e25ef5cde8"
                            },
                            {
                                "id": "4e90cae0-7c29-4e7e-befa-f8a1d930ed4d"
                            }
                        ]
                    }
                ],
                "history": [
                    {
                        "dateInspected": "2022-12-25",
                        "policyNumber": "BEES20221225",
                        "image": [
                            {
                                "id": "3f1d8a93-0404-4419-b42d-72e25ef5cde8"
                            }
                        ]
                    }
                ],
                "hover": {
                    "hoverTla": [
                        {
                            "livingAreas": {
                                "floors": {
                                    "entities": [
                                        {
                                            "area": 1217,
                                            "identifier": "1st_floor",
                                            "label": null,
                                            "measured": true,
                                            "floor": 1
                                        },
                                        {
                                            "area": 918,
                                            "identifier": "2nd_floor",
                                            "label": null,
                                            "measured": true,
                                            "floor": 2
                                        }
                                    ],
                                    "totalArea": 2135
                                }
                            },
                            "attachedStructures": {
                                "attachedGarages": {
                                    "entities": [
                                        {
                                            "area": 395,
                                            "identifier": "garage_attached",
                                            "label": null,
                                            "measured": true,
                                            "cars": null
                                        }
                                    ],
                                    "totalArea": 395
                                },
                                "decks": {
                                    "entities": [
                                        {
                                            "area": 152,
                                            "identifier": "deck",
                                            "label": null,
                                            "measured": true
                                        }
                                    ],
                                    "totalArea": 152
                                },
                                "openPorches": {
                                    "entities": [
                                        {
                                            "area": 218,
                                            "identifier": "open_porch",
                                            "label": null,
                                            "measured": true
                                        }
                                    ],
                                    "totalArea": 218
                                }
                            }
                        }
                    ]
                }
            }
        }
    ]
}

# How to get report from a project

To get the report of a project, you can follow these steps:

  1. Use the Search projects endpoint to find the project by its inspectionNumber or policyNumber. Make sure to check that the project's status is Returned to Client, indicating that the report is ready for retrieval.
  2. Once you have confirmed that the project is ready, use the Get project's available reports endpoint to retrieve the report associated with the project.
  3. Download the report file using the Get report file endpoint.

# Image API

The Image API provides access to project images. The typical workflow involves:

  1. Get project images - First, retrieve the list of available images for a project, which includes image IDs.
  2. Get image file - Use the image ID from step 1 to download the actual image file

Each image includes metadata such as source (Drone, Mobile, Annotated), type (Closeup, Others), and direction (Front, Rear, Right, Left) to help you understand the image content.

# Get project images

GET /project/{projectId}/image

Returns a list of images URLs and their descriptions.

# Request argument projectId (required)

The project ID previously returned when creating the project.

# Example response

{
    "project": [
        {
            "id": 12345,
            "image": [
                {
                    "id": "4d0d5299-053a-40d0-82cd-da65a59df63d",
                    "source": "Drone",
                    "type": "Closeup",
                    "direction": "Front"
                },
                {
                    "id": "6d70013a-7aa3-4d62-a87f-b9ec724a4052",
                    "source": "Mobile",
                    "type": "Closeup",
                    "direction": "Rear"
                },
                {
                    "id": "11bcb277-b03c-4d62-880b-e0bbcbc67272",
                    "source": "Annotated",
                    "type": "Others",
                    "direction": "Right"
                }
            ]
        }
    ]
}

# Get image file

GET /image/{imageId}/file

Get image by image Id.

# Request Argument imageId required

The ID of the specified image. This can be found either from Project API or Report API.

If image with the specified imageId is found, the server may directly return the image binary data or redirect the request to another location to access the image.

# Example Response

307 Temporary Redirect
Content-Location: http://example.com/xxxxxx.jpg
...

When the requested image does not exist, accessing the redirected URL will respond with 404 Not Found.

# Use Case: Retrieve Completed Reports and Update Status

To ensure you never miss a delivered report and help our system accurately track progress, please follow these three steps in order:

# Step1: Check Status First — Confirm the Report Is Ready

API to Call: Search projects

What to Look For: Wait until the project's status field returns Returned to Client.

Why This Matters:
Projects go through multiple internal processing stages. Only when the status is Returned to Client can you be certain the report is fully generated and safe to download.
⚠️ Skipping this step may result in empty, incomplete, or missing files.

# Step2: Download Next — Retrieve the Report

For more details, please go to Report API

Prerequisite: Only call this endpoint if Step 1 confirmed the status is "returned to client".

# Step3 Update status — Mark project as "Client Received"

API to Call: Update project status

Why This Matters: This is your official "delivery confirmation" to the Bees360 system.
If you skip this:

  1. The system assumes you haven't received the report
  2. May trigger repeated notifications or alerts
  3. Could delay settlements or block downstream processes (e.g., archiving, invoicing)

# Automated Testing Support

Due to limited features in the sandbox environment, we currently only provide fully automated testing. Custom report generation on demand is not supported at this time.

To facilitate automated testing in the staging environment, projects created with a string prefixed with "report_provided" as their inspectionNumber will undergo automatic processing within 5 minutes. For instance, consider the example "report_provided_202201010002". This means that any project created in the staging environment using a string prefixed with "report_provided" as its inspectionNumber will have its status changed to Returned to Client within 5 minutes. Once the status is updated to Returned to Client, you will be able to access its reports and images.

Similarly, projects created with a string prefixed with "closeout_report" as their inspectionNumber in the staging environment, such as "closeout_report_202301010001", will be closed within 5 minutes. Afterward, you can access a closeout report for the underwriting project.

The sample report and images will be static between different projects, regardless of the project's information.

# Appendix

# Project Duplication Rules

<span id="project-duplication-rules">

The following are rules to determine a duplicate project. If a request is rejected due to a duplicate project already exists, it will be receive a response with HTTP status 409 Conflict.

When determining a duplicate project, only projects within the following scope will be considered:

  1. Projects created within 30 days.
  2. Projects created with the same processed-by and insured-by parameters.

We determine a duplicate project using the following rules:

  1. If a request's inspection number is empty, it will be considered as a duplicate if there are projects with the same policy number, effective date and address.
  2. If a request's inspection number is not empty, it will be considered as a duplicate if there are projects with the same inspection number and address.

# Enum values with descriptions of the factor name in report summary

<span id="factor-name-in-report-summary">

Factor Description
Exterior Comments
HVAC HVAC unit was noted in Good condition.
SIDING DAMAGE Damage was noted to the siding.
ROTTED SIDING Rotted siding was noted.
LOOSE/MISSING SIDING Loose or missing siding was noted.
PLANT GROWING ON SIDING Plant was noted growing on the siding.
MILDEW/MOSS Mildew was noted on the siding.
PEELING PAINT - SIDING Peeling paint was noted on the siding.
PEELING PAINT - EAVES/SOFFITS Peeling paint was noted on the eaves and/or soffits.
DAMAGE - EAVES/SOFFITS Damage to the eaves and/or soffits was noted.
LOOSE/DAMAGE GUTTER Loose, missing, or damaged gutters was noted.
LOOSE/DAMAGE DOWNSPOUT Loose, missing, or damaged downspouts was noted.
BROKEN WINDOW GLASS Broken window glass was noted.
WINDOW FRAME DAMAGE Damage to the window frame(s) was noted.
WINDOW SCREEN DAMAGE Damage to the window screen was noted.
TREE/BRANCH - SIDING Tree branches are contacting the siding.
TREE/BRANCH - ROOF Tree branches are contacting the roof covering.
BUSH/BRUSH - SIDING Bushes/Brush is contacting the siding.
TALL GRASS/WEED/BRUSH Tall grass/weeds/brush was noted in the yard.
DRIVEWAY/WALKWAY CRACKS Cracks in the driveway and/or sidewalk was noted.
SIDING CRACKS Crack(s) on the siding was noted.
SECURITY BARS ON WINDOWS/DOORS Security Bars were noted over the window(s).
SECURITY BARS ON WINDOWS/DOORS Security Bars were noted over the doorway.
PATIO/PORCH DAMAGE The patio cover or porch is showing damage.
FOUNDATION DAMAGE Possible foundation issues were noted including cracks or unlevel areas.
WATER DAMAGE The water mark was noted on the elevation.
UNDER CONSTRUCTION The property is under construction.
UNDER RENOVATION Exterior appears to be under renovation.
Roof Comments
GRANULAR LOSS Granular loss was noted.
ALGAE/MOSS Algae/Moss was noted on roof.
DEBRIS ON ROOF Debris was noted on roof.
MISSING/DAMAGE SHINGLES Loose, damaged, or missing shingles were noted.
MISSING/DAMAGE TILES Loose, damaged, or missing tiles were noted.
CURLING/CUPPING SHINGLES Roof appears to show signs of aging such as cupping or curling.
TREE/BRANCH - ROOF Roof shingle(s) appears to show damage from tree branches.
TREE/BRANCH - ROOF Tree branches are contacting the roof covering.
STORM DAMAGE Possible storm damage on roof was noted.
HAIL IMPACT Possible hail or impact damage was noted.
VENT DAMAGE Possible damage to vents was noted.
PIPE JACK DAMAGE Possible damage to pipe jacks was noted.
CHIMNEY DAMAGE Damage was noted to the chimney.
SKYLIGHT DAMAGE Possible damage to skylights was noted.
RIDGE VENT DAMAGE Possible damage to ridge vents was noted.
FLASHING DAMAGE Possible damage to roof flashing was noted.
SAGGING DECK Roof deck is sagging on Front slope(s).
TARP Roof is tarped on Front slope(s).
PATCHED AREA Roof appears to have been repaired and/or patched.
INSTALLATION ANOMALIES Roof appears to have some installation anomalies on Front slope(s).
MULTIPLE LAYERS Multiple layers were noted.
Other Hazards
SWIMMING POOL A swimming pool was noted at the Front of the dwelling. It is recommended that self-closing door to access swimming pool should be installed.
POOL PUMP/HEATER Pool pump and/or pool heater were noted in Good condition.
POOL FENCE/CAGE A swimming pool with screened enclosure was noted at the Front of the dwelling. It is recommended that self-closing door to access swimming pool should be installed.
POOL DIVING BOARD Diving board was noted around the swimming pool area. It is extreme hazard, and recommended to have it removed.
POOL SLIDE Slide was noted around the swimming pool area. It is extreme hazard, and recommended to have it removed.
POOL WATER CONDITION Pool water appears to be cloudy and in Good condition. It is recommended to consult with professional pool service as soon as possible.
PLAY/SWING SET A play/swing set was noted on the property. It is extreme hazard, and recommended to be removed.
BASKETBALL HOOP A basketball hoop was noted on the property. It is recommended to inspect goal sturdiness.
PET TYPE Dog(s) is noted during the inspection. A dog sign should be displayed.
PET TYPE Cat(s) is noted during the inspection.
DOG SIGN Dog sign was noted.
PEST ACTIVITY Professional pest control service should be contracted.
PROPANE/FUEL TANK Propane tank(s) was noted.
DEBRIS IN YARD Debris was noted in the yard.
WATERCRAFT Watercraft was noted.
ATV ATV was noted.
Building Hazards
MISSING RAILINGS Missing railing(s) was noted on elevated decks and/or stairs. It is recommended that all railings should be properly installed on elevated decks and/or stairs.
MISSING STEPS Missing step(s) was noted at the time of inspection. It is recommended to contact professional contractors to repair the steps as soon as possible.
HURRICANE STRAPS Hurricane straps were noted in the attic of the dwelling.
BOARDED WINDOWS/DOORS Boarded windows/doors were noted on Front elevation.
SHUTTERS OVER WINDOWS/DOORS Shutters over windows/doors were noted on Front elevation.
TREE/BRANCH - YARD Tree/Brush/Bushes were noted on Unknown Front Right Rear Left elevation. It is recommended to obtain professional service to trim/clean it.
SECURITY BARS ON WINDOWS/DOORS Security bars were noted over windows/doors on Front elevation.
OVERGROWN VEGETATION Overgrown vegetation was noted on Front elevation. It is recommended to remove/clean the overgrown vegetation.
ABANDONED VEHICLES Abandoned vehicles were noted on the property. It is recommended to have it removed.
CHIMNEY THROUGH ROOF Chimney through roof on the Front slope was noted. It is recommended to conduct interior chimney sweep.
FIREPLACE ON EXTERIOR Fireplace on exterior of Front slope was noted. It is recommended to conduct interior chimney sweep.
GATED COMMUNITY The risk is located inside a gated community. EMS should have access to entry.
WATERFRONT The risk is a waterfront property. Adjacent waterbody was noted.
Garage/Outbuilding Overview
GARAGE TYPE Attached Garage was noted in Good Condition.
GARAGE TYPE Carport was noted in Good Condition.
GARAGE DAMAGE Damage to garage was noted at the time of inspection. It is recommended to contact garage service contractor to repair the garage as soon as possible.
AWNINGS OVER WINDOWS/DOORS Awning(s) over window and/or door was noted in Good Condition.
DAMAGE - AWNINGS OVER WINDOWS/DOORS Damage to awning(s) was noted at the time of inspection. It is recommended to contact professional contractor to repair the awning(s) as soon as possible.
OUTBUILDING A storage shed was noted in Good Condition. It is recommended to contact a professional contractor to repair the structure as soon as possible.
FENCE The fence is noted to be in Good condition.
FENCE DAMAGE Damaged fence pickets were noted. It is recommended to contact fence service contractor to repair the fence as soon as possible.

# Frequently Asked Questions (FAQ)

# Authentication & Credentials

Q: How do I resolve authentication issues?
A: Contact Bees360 to ensure:

  • Your user account is properly created (your email will be your username)
  • You receive the password via the invitation email ("Welcome to Bees360")
  • You receive client_id and a client_secret from Bees360 development team
  • You're using the correct credentials for your environment (staging credentials won't work in production)

Q: Why am I getting a 401 "Bad credentials" error when trying to access the API?
A: This error commonly occurs when only client credentials are used without the required user credentials. For this API implementation, both sets of credentials are required due to the password grant type authorization. Please verify you have included:

  • clientId: your_client_id
  • clientSecret: your_client_secret
  • authorizedGrantTypes: ["password", "refresh_token"]

The password grant type specifically requires:

  • Client credentials (clientId/clientSecret) for HTTP Basic Authentication
  • User credentials (username/password) in the request body

Q: Why are we getting failures when hitting the test endpoint?
A: Staging and production environments require separate credentials. Contact the API provider to have a staging account created for you.

# Project Status & Workflow

Q: What is the proper workflow to fetch a completed report?
A: The intended workflow is:

  • Wait until the project status becomes "returned to client"
  • Retrieve the report
  • Update the status to "client received" using the corresponding API endpoint

Q: Why is updating the status to "client received" important?
A: This status update:

  • Prevents repeated searches for projects where information has already been retrieved
  • Ensures accurate tracking and progression of the project workflow

# Testing & Sandbox Usage

Q: Can I generate a report for a project I created, so I can test the report retrieval process?
A: Bees OpenAPI currently only supports report generation via Automated Testing Support. You must add a specific prefix to the inspectionNumber field when creating the project. Please refer to the Automated Testing Support section for more details. We only provide one pre-configured complete test report. If you have specific testing requirements, please contact the Bees dev team.

Q: Can I create projects in sandbox with specific statuses (e.g., "image uploaded") for testing?
A: Bees OpenAPI does not currently support creating projects with predefined or custom statuses. For specific testing requirements, please contact the Bees development team.

# Portal Display & Account Configuration

Q: Why does my name appear as the creator of inspection projects in the portal?
A: To avoid displaying any individual's personal name as the "Creator" of API-generated projects, we strongly recommend:

  • Create a dedicated system user account in your Bees360 platform, using a generic, role-based email address such as:
  • Set a display name for this account that reflects its purpose — for example:
    • YOUR COMPANY API
    • YOUR COMPANY Integration
  • Use this account's credentials (username + password) when calling our OpenAPI — especially for /oauth/token and project creation endpoints.