---
title: "Quote Create"
method: POST
path: "/v1/agency/draft_quote"
tags: ["Draft Quote"]
---

# Quote Create

`POST /v1/agency/draft_quote`

Create a new quote from scratch by providing

  - **Policy Type** — See [DP1 vs DP3](https://www.steadily.com/blog/dp1-vs-dp3-insurance-policies) and [Policy
Types](https://www.steadily.com/agent-hub/policy-types) for details.
  - **Primary Insured** — Name, date of birth, and email
  - **Policy Details** — Occupancy status
  - **Property Addresses** — One or more addresses to cover

  You can omit coverages from your create request and we'll configure everything to available defaults.
  Since our coverage options often vary by state, territory and even by other coverages you have selected, use the options returned in the quote response as the source-of-truth for which coverages are available.
  If the coverage option you selected is not available, the response will automatically match against the nearest value (default) or return an error if `exact` `coverage_matching` is requested.

## Query parameters

- `coverage_matching` 'exact' | 'nearest'
- `quote_id` string, nullable
- `offer_id` string, nullable
- `policy_id` string, nullable

## Request body

- QuoteCreateRequest
  - `quote_id` string — Optional - Existing quote ID to clone for rewrites.
  - `quote` QuoteRequest — Base quote structure shared by both requests and responses.
    - `policy_type` 'DP1' | 'DP2' | 'DP3', required — An enumeration.
    - `insurance_structure` 'COI_MASTER_MGA' | 'STANDARD_MGA' | 'XMGA' | 'ARCHIVED' — An enumeration.
    - `primary_insured` Policyholder, required
      - `first_name` string, nullable
      - `last_name` string, nullable
      - `suffix` string, nullable — Name suffix such as Jr or II
      - `company_name` string, nullable
      - `date_of_birth` string, date, nullable
      - `phone_number` string, nullable
      - `email` string, email, nullable — email is marked as nullable, but API callers must always supply a valid email. Missing email will result in a runtime error.
      - `mailing_address` RalphieModelsAddressAddress — Postal address information for a property
        - `street_address` string, required
        - `city` string, required
        - `state` string, required
        - `zip_code` string, required
      - `previous_address` RalphieModelsAddressAddress — Postal address information for a property
        - `street_address` string, required
        - `city` string, required
        - `state` string, required
        - `zip_code` string, required
      - `is_military_member` 'yes' | 'no' — An enumeration.
      - `company_types` CompanyTypes — Note: these values are intentionally not mutually exclusive. They work like tags with tag values.
        - `contracting` 'yes' | 'no' — An enumeration.
        - `operations_beyond_rental_property_ownership_and_maintenance` 'yes' | 'no' — An enumeration.
    - `additional_named_insured` AdditionalNamedInsured[], nullable
      - `type` 'person' | 'company' | 'trust_or_estate', required — An enumeration.
      - `name` string, required
      - `address` RalphieModelsAddressAddress, required — Postal address information for a property
        - `street_address` string, required
        - `city` string, required
        - `state` string, required
        - `zip_code` string, required
    - `effective_date` string, date — Effective date in YYYY-MM-DD format. Defaults to today.
    - `effective_date_timezone` string, nullable
    - `policy_details` PolicyDetails, required
      - `insurance_score_estimate` 999 | 725 | 865 — An enumeration.
      - `is_paperless` 'yes' | 'no' — An enumeration.
      - `occupancy` 'owner_and_tenant' | 'rental' | 'seasonal' | 'vacant' | 'fix_and_flip' | 'landlord_primary_home', required — An enumeration.
      - `similar_insurance_declined` 'yes' | 'no' — An enumeration.
      - `self_reported_claims` SelfReportedClaims[], nullable
        - `date_of_loss` string, date, nullable — Approximate date of the loss
        - `loss_reason` 'weather' | 'fire' | 'water_appliance' | 'water' | 'theft' | 'earthquake' | 'liability' | 'medical' | 'other' — An enumeration.
        - `loss_amount_dollars` integer, nullable
        - `caused_by_catastrophe` 'yes' | 'no' — An enumeration.
      - `unique_tracking_id` string, nullable — Unique ID to track origin of policy
      - `wind_coverage_excluded` 'yes' | 'no' — An enumeration.
      - `ca_dic` 'yes' | 'no' — An enumeration.
    - `previous_policy_id` string, nullable
    - `renewal_policy_id` string, nullable
    - `renewal_quote_id` string, nullable
    - `renewal_status` 'draft' | 'quoted' | 'bound' | 'invalidated' — An enumeration.
    - `renewal_start_date` string, date, nullable
    - `renewal_end_date` string, date, nullable
    - `properties` PropertyRequest[]
      - `property_id` string, nullable
      - `address` PropertyAddress, required — Postal address information for a property
        - `street_address` string, required
        - `city` string, required
        - `state` string, required
        - `zip_code` string, required
        - `county` string, nullable
        - `county_fips` string, nullable
        - `lat` number, nullable
        - `lng` number, nullable
      - `property_coverages` union[]
        - union
          - AdditionalLivingCostsAndFairRentalValueCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'additional_living_costs_and_fair_rental_value', required
            - `config` union[], required
              - …
          - AllOtherPerilsDeductibleCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'all_other_perils_deductible', required
            - `config` union[], required
              - …
          - BedBugInfestationCostReimbursementCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'bed_bug_infestation_cost_reimbursement', required
            - `config` SelectedValueRequest[], required
              - …
          - HOAFinesCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'hoa_fines', required
            - `config` SelectedValueRequest[], required
              - …
          - DwellingCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'dwelling', required
            - `config` union[], required
              - …
          - LimitedHiddenWaterCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'limited_hidden_water', required
            - `config` union[], required
              - …
          - LimitedRenovationCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'limited_renovation', required
            - `config` SelectedValueRequest[], required
              - …
          - LimitedTheftCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'limited_theft', required
            - `config` union[], required
              - …
          - LossAssessmentCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'loss_assessment', required
            - `config` union[], required
              - …
          - MineSubsidenceCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'mine_subsidence', required
            - `config` SelectedValueRequest[], required
              - …
          - MineSubsidenceDwellingCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'mine_subsidence_dwelling', required
            - `config` union[], required
              - …
          - MineSubsidencePrivateStructuresCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'mine_subsidence_private_structures', required
            - `config` union[], required
              - …
          - MineSubsidenceAdditionalLivingCostsAndFairRentalValueCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'mine_subsidence_additional_living_costs_and_fair_rental_value', required
            - `config` union[], required
              - …
          - MoldAndFungusDamageSubLimitCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'mold_and_fungus_damage_sublimit', required
            - `config` union[], required
              - …
          - OrdinanceOrLawCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'ordinance_or_law', required
            - `config` union[], required
              - …
          - PersonalInjuryLiabilityCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'personal_injury_liability', required
            - `config` SelectedValueRequest[], required
              - …
          - PersonalPropertyCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'personal_property', required
            - `config` union[], required
              - …
          - PrivateStructuresCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'private_structures', required
            - `config` union[], required
              - …
          - SinkholeLossDwellingCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'sinkhole_loss_dwelling', required
            - `config` SelectedValueRequest[], required
              - …
          - SinkholeLossPersonalPropertyCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'sinkhole_loss_personal_property', required
            - `config` SelectedValueRequest[], required
              - …
          - SolarPanelCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'solar_panel', required
            - `config` SelectedValueRequest[], required
              - …
          - EquipmentBreakdownCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'equipment_breakdown', required
            - `config` SelectedValueRequest[], required
              - …
          - ServiceLineCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'service_line', required
            - `config` SelectedValueRequest[], required
              - …
            - `parent_coverage` string
          - SquattersAndEvictionExpenseCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'squatters_and_eviction_expense', required
            - `config` union[], required
              - …
          - TheftCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'theft', required
            - `config` union[], required
              - …
          - VandalismOrMaliciousMischiefCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'vandalism_or_malicious_mischief', required
            - `config` union[], required
              - …
          - WaterBackUpAndSumpOverflowOrDischargeCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'water_back_up_and_sump_overflow_or_discharge', required
            - `config` union[], required
              - …
          - WaterDamageExclusionCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'water_damage_exclusion', required
            - `config` SelectedValueRequest[], required
              - …
          - WaterDamageLimitationCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'water_damage_limitation', required
            - `config` union[], required
              - …
          - WaterDamagePerilsCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'water_damage_perils', required
            - `config` SelectedValueRequest[], required
              - …
          - WindAndHailDeductibleCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'wind_and_hail_deductible', required
            - `config` union[], required
              - …
          - WindstormOrHailExclusionCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'windstorm_or_hail_exclusion', required
            - `config` union[], required
              - …
          - AnnualPremiumIncreaseCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'annual_premium_increase', required
            - `config` SelectedValueRequest[], required
              - …
          - GeneralLiabilityCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'general_liability', required
            - `config` union[], required
              - …
          - LiabilityExclusionAnimalCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'liability_exclusion_animal', required
            - `config` SelectedValueRequest[], required
              - …
          - RoofSurfacingExclusionCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'roof_surfacing_exclusion', required
            - `config` SelectedValueRequest[], required
              - …
          - RoofSurfacingCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'roof_surfacing', required
            - `config` union[], required
              - …
          - TrampolineOrReboundingDeviceCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'trampoline_or_rebounding_device', required
            - `config` union[], required
              - …
          - CosmeticDamageCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'cosmetic_damage', required
            - `config` union[], required
              - …
          - TerrorismCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'terrorism', required
            - `config` union[], required
              - …
          - OffPremisesLiabilityExtensionRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'offpremises_liability_extension', required
            - `config` union[], required
              - …
          - DogBiteCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'dog_bite', required
            - `config` union[], required
              - …
          - HotTubLiabilityExclusionCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'hot_tub_liability_exclusion', required
            - `config` union[], required
              - …
          - SwimmingPoolExclusionCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'swimming_pool_exclusion', required
            - `config` union[], required
              - …
          - PrivateStructuresRoofExclusionCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'private_structures_roof_exclusion', required
            - `config` union[], required
              - …
          - ExtendedReplacementCostCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'extended_replacement_cost', required
            - `config` union[], required
              - …
            - `parent_coverage` string
          - OutdoorApplianceExclusionCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'outdoor_appliance_exclusion', required
            - `config` SelectedValueRequest[], required
              - …
          - FireLightningExplosionSmokeExclusionCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
            - `name` 'fire_lightning_explosion_smoke_exclusion', required
            - `config` union[], required
              - …
      - `property_manager` PropertyManager
        - `type` 'person' | 'company', required — An enumeration.
        - `is_additional_insured` 'yes' | 'no' — An enumeration.
        - `name` string, required
        - `address` RalphieModelsAddressAddress, required — Postal address information for a property
          - `street_address` string, required
          - `city` string, required
          - `state` string, required
          - `zip_code` string, required
        - `is_active_manager` 'yes' | 'no' — An enumeration.
      - `property_details` QuotePropertyDetailsRequest — Descriptive field values for a property. Looked up from Steadily's data sources and can be overridden through the API. Fields are specified as optional to allow partially setting just relevant fields.
        - `year_built` integer, nullable — Year Originally Built
        - `stories` number, nullable
        - `total_sq_feet` number, nullable — Building Size (Total Square Feet)
        - `property_type` 'single_family' | 'townhouse_or_rowhouse' | 'duplex' | 'triplex' | 'quadplex' | 'apartment_building' | 'manufactured_or_mobile_home' | 'other' | 'condominium_unit' | 'barndominium_unit' — An enumeration.
        - `confirmed_property_style` 'barndominium_unit' | 'condominium_unit' — An enumeration.
        - `construction_type` 'frame' | 'brick_veneer' | 'brick_or_masonry_or_stone' | 'concrete' | 'log' | 'adobe_or_stucco' | 'asbestos' | 'other' | 'adobe_or_stucco_v2' | 'brick_solid' | 'cedar_siding' | 'cement_fiber_siding' | 'concrete_decorative' | 'concrete_exposed' | 'concrete_stucco' | 'log_v2' | 'metal_siding' | 'pre_engineered_metal' | 'vinyl_siding' — An enumeration.
        - `roof_type` 'asbestos' | 'concrete_or_slate' | 'rubber_or_tar_and_gravel_or_rolled_roof' | 'metal_excluding_tin_or_aluminum' | 'asphalt_shingles' | 'tile' | 'tin_or_aluminum' | 'wood' | 'other' | 'architectural_shingle' | 'three_tab_shingle' | 'wood_shingle_shake' | 'impact_resistant_shingle' | 'clay' | 'concrete' | 'cement_fiber' | 'tile_shake' | 'standing_seam' | 'corrugated_galvanized' | 'painted_rib' | 'copper_shingle' | 'built_up_with_gravel' | 'built_up_without_gravel' | 'membrane' | 'sprayed_polyurethane_foam' | 'slate' | 'synthetic_composite' | 'solar_shingle' — An enumeration.
        - `heating_sources` HeatingSource[], nullable — Heating Sources
        - `has_barred_windows_over_50_percent` string, nullable
        - `days_uninsured` integer, nullable
        - `central_station` 'yes' | 'no' — An enumeration.
        - `wrought_iron_bars` 'yes' | 'no' — An enumeration.
        - `rental_duration` 'long_term' | 'short_term' — An enumeration.
        - `renovation_status` 'under_construction' | 'under_renovation' | 'not_under_renovation' — An enumeration.
        - `pool_trampoline_hot_tub` 'yes' | 'no' — An enumeration.
        - `intermittent_rental` 'yes' | 'no' — An enumeration.
        - `building_quality` 'economy' | 'standard' | 'above_average' | 'custom' | 'premium' — An enumeration.
        - `building_condition` 'excellent' | 'average' | 'fair' — An enumeration.
        - `internal_data` object, nullable — Extra data about the property used internally by Steadily
        - `builder_name` string, nullable — The name of the company that built this property. We currently recognize the following builders: * adams homes * american homes 4 rent * ashton woods homes * beazer homes * betenbough homes * bloomfield homes * brookfield residential properties * castlerock communities * caviness and cates communities * cbh homes * century communities * chesmar homes * clayton properties group * d.r. horton * david weekley homes * drb group * dream finders homes * drees homes * dsld homes * eastwood homes * edge homes * epcon communities * first texas homes * fischer homes * gehan homes * gl homes * great southern homes * green brick partners * hayden homes * highland homes * historymaker homes * holiday builders * hovnanian enterprises * ivory homes * kb home * kolter homes * landsea homes * legend homes * lennar corp. * lgi homes * long lake * m.d.c. holdings * m/i homes * maronda homes * mattamy homes * meritage homes * minto communities * neal communities of southwest florida * nvr * perry homes * pultegroup * rausch coleman homes * shea homes * smith douglas homes * stanley martin homes * stylecraft builders * taylor morrison * the challenger group * the villages of lake sumter * toll brothers * tri pointe homes * true homes * view homes * woodside homes
        - `electrical_hvac_plumbing_renovated` 'yes' | 'no' — An enumeration.
        - `fire_protection_class` string, nullable — Fire Protection Class
        - `address_info_s3_url` string, nullable — Additional address info stored in S3
        - `wind_coverage_exclusion_zone` 'yes' | 'no' — An enumeration.
        - `ca_dic_zone` string, nullable — Which exclusion zone this DIC (Difference in Condition) property falls in, if any.
        - `foundation_type` string, nullable — Foundation Type
        - `garages` PymodelsIpodPydanticV1StandardMgaPropertyDetailsGarage[], nullable — Garages
          - `size` string, required — E. g. 1, 1.5, or 3
        - `average_wall_height_feet` number, nullable — Average wall height in feet
        - `bathroom_details` PymodelsIpodPydanticV1StandardMgaPropertyDetailsBathroom[], nullable — Bathroom details
          - `type` string, required — e. g. Half, Full
        - `bedrooms` number, nullable — Number of bedrooms
        - `fireplaces` integer, nullable — Number of fireplaces
        - `foundation_shape` 'square_rectangle' | 'l_shape' | 't_u_z_shape' | 'h_or_custom_shape' | 'irregular_complex' — An enumeration.
        - `building_quality_details` PymodelsIpodPydanticV1StandardMgaPropertyDetailsBuildingQualityDetails
          - `cabinets_and_countertops` 'economy' | 'standard' | 'above_average' | 'custom' | 'premium', required — An enumeration.
          - `exterior_features_and_finishes` 'economy' | 'standard' | 'above_average' | 'custom' | 'premium', required — An enumeration.
          - `home_quality_grade` 'economy' | 'standard' | 'above_average' | 'custom' | 'premium', required — An enumeration.
          - `interior_features_and_finishes` 'economy' | 'standard' | 'above_average' | 'custom' | 'premium', required — An enumeration.
      - `property_acknowledgements` PropertyAcknowledgements
        - `steadily_roof_condition_exclusion_user_agrees_to_all_terms` 'yes' | 'no' — An enumeration.
      - `additional_insured` AdditionalInsured[]
        - `type` 'person' | 'company' | 'mortgagee' | 'non_institutional_lender' | 'trust_or_estate' | 'homeowner_association', required — An enumeration.
        - `name` string, required
        - `loan_number` string, nullable — Loan contract number. Comma separated values if there are multiple loan numbers.
        - `address` RalphieModelsAddressAddress, required — Postal address information for a property
          - `street_address` string, required
          - `city` string, required
          - `state` string, required
          - `zip_code` string, required
        - `email` string, email, nullable — Email of the additional insured
      - `duplicate_address_policies` DuplicateAddressPolicies
        - `deferral_reason` string — If set causes deferral of duplicate address lookup until cleared
        - `lookup_status` 'unknown' | 'started' | 'skipped' | 'failed' | 'succeeded' — An enumeration.
        - `policies` object
    - `policy_coverages` union[]
      - union
        - MedicalPaymentsCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
          - `name` 'medical_payments', required
          - `config` union[], required
            - union
              - …
        - PersonalLiabilityCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
          - `name` 'personal_liability', required
          - `config` union[], required
            - union
              - …
        - PremisesLiabilityCoverageRequest — Coverage request can specify just the list of coverages that need to change. Anything unspecified is unmodified. Coverages are de-selected rather than removed. To de-select an optional coverage, set the "Selected" configuration to "no".
          - `name` 'premises_liability', required
          - `config` union[], required
            - union
              - …
    - `payment` QuotePaymentRequest
      - `schedule` 'full' | 'full_escrow' | 'mortgagee_billed' | 'semi_annual' | 'quarterly' | 'monthly' | 'monthly_eft', required — | Payment Schedule | Description | | ---------------- | ------------------------------------- | | full | Client pays in full (5% discount) | | monthly | Monthly via credit card | | monthly_eft | Monthly via ACH | | mortgagee_billed | Mortgagee billed (Max 1 lender total) | | full_escrow | Deprecated |
      - `payment_schedule_discount` 'yes' | 'no' — An enumeration.
    - `underwriting` QuoteUnderwritingRequest
      - `answer` 'yes' | 'no' — An enumeration.

## Response `200`

Successful Response

- QuoteResponse — Base response structure, shared by DraftQuote, QuoteOffer, etc.
  - `policy_type` 'DP1' | 'DP2' | 'DP3', required — An enumeration.
  - `insurance_structure` 'COI_MASTER_MGA' | 'STANDARD_MGA' | 'XMGA' | 'ARCHIVED' — An enumeration.
  - `primary_insured` Policyholder, required
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `suffix` string, nullable — Name suffix such as Jr or II
    - `company_name` string, nullable
    - `date_of_birth` string, date, nullable
    - `phone_number` string, nullable
    - `email` string, email, nullable — email is marked as nullable, but API callers must always supply a valid email. Missing email will result in a runtime error.
    - `mailing_address` RalphieModelsAddressAddress — Postal address information for a property
      - `street_address` string, required
      - `city` string, required
      - `state` string, required
      - `zip_code` string, required
    - `previous_address` RalphieModelsAddressAddress — Postal address information for a property
      - `street_address` string, required
      - `city` string, required
      - `state` string, required
      - `zip_code` string, required
    - `is_military_member` 'yes' | 'no' — An enumeration.
    - `company_types` CompanyTypes — Note: these values are intentionally not mutually exclusive. They work like tags with tag values.
      - `contracting` 'yes' | 'no' — An enumeration.
      - `operations_beyond_rental_property_ownership_and_maintenance` 'yes' | 'no' — An enumeration.
  - `additional_named_insured` AdditionalNamedInsured[], nullable
    - `type` 'person' | 'company' | 'trust_or_estate', required — An enumeration.
    - `name` string, required
    - `address` RalphieModelsAddressAddress, required — Postal address information for a property
      - `street_address` string, required
      - `city` string, required
      - `state` string, required
      - `zip_code` string, required
  - `effective_date` string, date — Effective date in YYYY-MM-DD format. Defaults to today.
  - `effective_date_timezone` string, nullable
  - `policy_details` PolicyDetails
    - `insurance_score_estimate` 999 | 725 | 865 — An enumeration.
    - `is_paperless` 'yes' | 'no' — An enumeration.
    - `occupancy` 'owner_and_tenant' | 'rental' | 'seasonal' | 'vacant' | 'fix_and_flip' | 'landlord_primary_home', required — An enumeration.
    - `similar_insurance_declined` 'yes' | 'no' — An enumeration.
    - `self_reported_claims` SelfReportedClaims[], nullable
      - `date_of_loss` string, date, nullable — Approximate date of the loss
      - `loss_reason` 'weather' | 'fire' | 'water_appliance' | 'water' | 'theft' | 'earthquake' | 'liability' | 'medical' | 'other' — An enumeration.
      - `loss_amount_dollars` integer, nullable
      - `caused_by_catastrophe` 'yes' | 'no' — An enumeration.
    - `unique_tracking_id` string, nullable — Unique ID to track origin of policy
    - `wind_coverage_excluded` 'yes' | 'no' — An enumeration.
    - `ca_dic` 'yes' | 'no' — An enumeration.
  - `updated_at` string, date-time, nullable
  - `previous_policy_id` string, nullable
  - `renewal_policy_id` string, nullable
  - `renewal_quote_id` string, nullable
  - `renewal_status` 'draft' | 'quoted' | 'bound' | 'invalidated' — An enumeration.
  - `renewal_start_date` string, date, nullable
  - `renewal_end_date` string, date, nullable
  - `properties` PropertyResponse[], required
    - `property_id` string, required
    - `address` PropertyAddress, required — Postal address information for a property
      - `street_address` string, required
      - `city` string, required
      - `state` string, required
      - `zip_code` string, required
      - `county` string, nullable
      - `county_fips` string, nullable
      - `lat` number, nullable
      - `lng` number, nullable
    - `property_coverages` CoverageResponse[], required
      - `name` string, required
      - `parent_coverage` string
      - `config` CoverageValueResponse[]
        - `type` 'limit' | 'sublimit' | 'deductible' | 'limit_deductible' | 'loss_valuation_option' | 'selection_factor' | 'selected' | 'excluded' | 'exclusion_description' | 'exclusion_risk_type' | 'custom', required — An enumeration.
        - `value` union, required
          - string
          - string[]
        - `label` string, required
        - `default` string, nullable
        - `options` string[], nullable
        - `options_additional_allowed` 'yes' | 'no' — An enumeration.
        - `min` integer, nullable
        - `max` integer, nullable
        - `editable` 'yes' | 'no', required — An enumeration.
        - `bumped_from_value` string, nullable
        - `bumped_description` string, nullable
      - `label` string
    - `property_manager` PropertyManager
      - `type` 'person' | 'company', required — An enumeration.
      - `is_additional_insured` 'yes' | 'no' — An enumeration.
      - `name` string, required
      - `address` RalphieModelsAddressAddress, required — Postal address information for a property
        - `street_address` string, required
        - `city` string, required
        - `state` string, required
        - `zip_code` string, required
      - `is_active_manager` 'yes' | 'no' — An enumeration.
    - `property_details` QuotePropertyDetails — Descriptive field values for a property. Looked up from Steadily's data sources and can be overridden through the API. Fields are specified as optional to allow partially setting just relevant fields.
      - `year_built` integer, nullable — Year Originally Built
      - `stories` number, nullable
      - `total_sq_feet` number, nullable — Building Size (Total Square Feet)
      - `property_type` 'single_family' | 'townhouse_or_rowhouse' | 'duplex' | 'triplex' | 'quadplex' | 'apartment_building' | 'manufactured_or_mobile_home' | 'other' | 'condominium_unit' | 'barndominium_unit' — An enumeration.
      - `confirmed_property_style` 'barndominium_unit' | 'condominium_unit' — An enumeration.
      - `construction_type` 'frame' | 'brick_veneer' | 'brick_or_masonry_or_stone' | 'concrete' | 'log' | 'adobe_or_stucco' | 'asbestos' | 'other' | 'adobe_or_stucco_v2' | 'brick_solid' | 'cedar_siding' | 'cement_fiber_siding' | 'concrete_decorative' | 'concrete_exposed' | 'concrete_stucco' | 'log_v2' | 'metal_siding' | 'pre_engineered_metal' | 'vinyl_siding' — An enumeration.
      - `roof_type` 'asbestos' | 'concrete_or_slate' | 'rubber_or_tar_and_gravel_or_rolled_roof' | 'metal_excluding_tin_or_aluminum' | 'asphalt_shingles' | 'tile' | 'tin_or_aluminum' | 'wood' | 'other' | 'architectural_shingle' | 'three_tab_shingle' | 'wood_shingle_shake' | 'impact_resistant_shingle' | 'clay' | 'concrete' | 'cement_fiber' | 'tile_shake' | 'standing_seam' | 'corrugated_galvanized' | 'painted_rib' | 'copper_shingle' | 'built_up_with_gravel' | 'built_up_without_gravel' | 'membrane' | 'sprayed_polyurethane_foam' | 'slate' | 'synthetic_composite' | 'solar_shingle' — An enumeration.
      - `heating_sources` HeatingSource[], nullable — Heating Sources
      - `has_barred_windows_over_50_percent` string, nullable
      - `days_uninsured` integer, nullable
      - `central_station` 'yes' | 'no' — An enumeration.
      - `wrought_iron_bars` 'yes' | 'no' — An enumeration.
      - `rental_duration` 'long_term' | 'short_term' — An enumeration.
      - `renovation_status` 'under_construction' | 'under_renovation' | 'not_under_renovation' — An enumeration.
      - `pool_trampoline_hot_tub` 'yes' | 'no' — An enumeration.
      - `intermittent_rental` 'yes' | 'no' — An enumeration.
      - `building_quality` 'economy' | 'standard' | 'above_average' | 'custom' | 'premium' — An enumeration.
      - `building_condition` 'excellent' | 'average' | 'fair' — An enumeration.
      - `internal_data` object, nullable — Extra data about the property used internally by Steadily
      - `builder_name` string, nullable — The name of the company that built this property. We currently recognize the following builders: * adams homes * american homes 4 rent * ashton woods homes * beazer homes * betenbough homes * bloomfield homes * brookfield residential properties * castlerock communities * caviness and cates communities * cbh homes * century communities * chesmar homes * clayton properties group * d.r. horton * david weekley homes * drb group * dream finders homes * drees homes * dsld homes * eastwood homes * edge homes * epcon communities * first texas homes * fischer homes * gehan homes * gl homes * great southern homes * green brick partners * hayden homes * highland homes * historymaker homes * holiday builders * hovnanian enterprises * ivory homes * kb home * kolter homes * landsea homes * legend homes * lennar corp. * lgi homes * long lake * m.d.c. holdings * m/i homes * maronda homes * mattamy homes * meritage homes * minto communities * neal communities of southwest florida * nvr * perry homes * pultegroup * rausch coleman homes * shea homes * smith douglas homes * stanley martin homes * stylecraft builders * taylor morrison * the challenger group * the villages of lake sumter * toll brothers * tri pointe homes * true homes * view homes * woodside homes
      - `electrical_hvac_plumbing_renovated` 'yes' | 'no' — An enumeration.
      - `fire_protection_class` string, nullable — Fire Protection Class
      - `address_info_s3_url` string, nullable — Additional address info stored in S3
      - `wind_coverage_exclusion_zone` 'yes' | 'no' — An enumeration.
      - `ca_dic_zone` string, nullable — Which exclusion zone this DIC (Difference in Condition) property falls in, if any.
      - `foundation_type` string, nullable — Foundation Type
      - `garages` PymodelsIpodPydanticV1StandardMgaPropertyDetailsGarage[], nullable — Garages
        - `size` string, required — E. g. 1, 1.5, or 3
      - `average_wall_height_feet` number, nullable — Average wall height in feet
      - `bathroom_details` PymodelsIpodPydanticV1StandardMgaPropertyDetailsBathroom[], nullable — Bathroom details
        - `type` string, required — e. g. Half, Full
      - `bedrooms` number, nullable — Number of bedrooms
      - `fireplaces` integer, nullable — Number of fireplaces
      - `foundation_shape` 'square_rectangle' | 'l_shape' | 't_u_z_shape' | 'h_or_custom_shape' | 'irregular_complex' — An enumeration.
      - `building_quality_details` PymodelsIpodPydanticV1StandardMgaPropertyDetailsBuildingQualityDetails
        - `cabinets_and_countertops` 'economy' | 'standard' | 'above_average' | 'custom' | 'premium', required — An enumeration.
        - `exterior_features_and_finishes` 'economy' | 'standard' | 'above_average' | 'custom' | 'premium', required — An enumeration.
        - `home_quality_grade` 'economy' | 'standard' | 'above_average' | 'custom' | 'premium', required — An enumeration.
        - `interior_features_and_finishes` 'economy' | 'standard' | 'above_average' | 'custom' | 'premium', required — An enumeration.
    - `property_acknowledgements` PropertyAcknowledgementsResponse
      - `steadily_roof_condition_exclusion_user_agrees_to_all_terms` 'yes' | 'no' — An enumeration.
      - `claims_automations` object[], nullable — Claims-driven coverage decisions applied to this property, present once applied
    - `additional_insured` AdditionalInsured[]
      - `type` 'person' | 'company' | 'mortgagee' | 'non_institutional_lender' | 'trust_or_estate' | 'homeowner_association', required — An enumeration.
      - `name` string, required
      - `loan_number` string, nullable — Loan contract number. Comma separated values if there are multiple loan numbers.
      - `address` RalphieModelsAddressAddress, required — Postal address information for a property
        - `street_address` string, required
        - `city` string, required
        - `state` string, required
        - `zip_code` string, required
      - `email` string, email, nullable — Email of the additional insured
    - `replacement_cost_estimate` integer, required — Replacement cost estimate (Buildings only)
    - `user_replacement_cost` UserReplacementCost
      - `purchase_price` integer, required
      - `renovation_cost` integer, required
    - `moratoriums` MatchedMoratorium[] — List of moratoriums affecting this property. A moratorium indicates that we may be unable to issue a policy for this quote.
      - `moratorium_id` string, required
    - `duplicate_address_policies` DuplicateAddressPolicies
      - `deferral_reason` string — If set causes deferral of duplicate address lookup until cleared
      - `lookup_status` 'unknown' | 'started' | 'skipped' | 'failed' | 'succeeded' — An enumeration.
      - `policies` object
  - `policy_coverages` CoverageResponse[], required — Policy level coverages.
    - `name` string, required
    - `parent_coverage` string
    - `config` CoverageValueResponse[]
      - `type` 'limit' | 'sublimit' | 'deductible' | 'limit_deductible' | 'loss_valuation_option' | 'selection_factor' | 'selected' | 'excluded' | 'exclusion_description' | 'exclusion_risk_type' | 'custom', required — An enumeration.
      - `value` union, required
        - string
        - string[]
      - `label` string, required
      - `default` string, nullable
      - `options` string[], nullable
      - `options_additional_allowed` 'yes' | 'no' — An enumeration.
      - `min` integer, nullable
      - `max` integer, nullable
      - `editable` 'yes' | 'no', required — An enumeration.
      - `bumped_from_value` string, nullable
      - `bumped_description` string, nullable
    - `label` string
  - `payment` QuotePaymentResponse
    - `schedule` 'full' | 'full_escrow' | 'mortgagee_billed' | 'semi_annual' | 'quarterly' | 'monthly' | 'monthly_eft', required — | Payment Schedule | Description | | ---------------- | ------------------------------------- | | full | Client pays in full (5% discount) | | monthly | Monthly via credit card | | monthly_eft | Monthly via ACH | | mortgagee_billed | Mortgagee billed (Max 1 lender total) | | full_escrow | Deprecated |
    - `payment_schedule_discount` 'yes' | 'no', required — An enumeration.
  - `underwriting` QuoteUnderwritingResponse
    - `attestation` union
      - IpodUnderwritingAttestation
        - `answer` 'yes' | 'no'
        - `statement` IpodUnderwritingStatementContent
          - `content` string
          - `items` IpodUnderwritingStatementContent[]
        - `notice` IpodUnderwritingStatementContent
          - `content` string
          - `items` IpodUnderwritingStatementContent[]
      - union[]
        - union
          - AttestationStatement
            - `content` string, nullable
            - `items` AttestationStatement[], nullable
          - string
    - `answer` 'yes' | 'no' — An enumeration.
    - `application_questions` QuoteUnderwritingApplicationQuestions
      - `disclaimer` string, nullable
      - `questions_prefix` string, nullable
      - `questions` UwAppQuestion[], nullable
        - `name` string, required
        - `prefix` string, nullable
        - `text` string[], required
        - `answer` string, nullable
  - `signing_requirements` SigningRequirements — Signing steps the agent must complete during the quote flow.
    - `requires_diligent_effort_affidavit` boolean
    - `requires_esignature_consent` boolean
  - `agent_ui_url` string, nullable — Direct link to Agent UI, which can be used to complete quote.
  - `errors` ApiValidationError[], nullable
    - `loc` string[] — The path to the field that caused the error
    - `msg` string, required
    - `type` string, required
    - `retryable` boolean, nullable
    - `request_id` string, nullable
    - `error_id` string, nullable — Internal error tracing ID
    - `ctx` object, nullable — Error specific context
  - `carrier` string, required
  - `public_policy_id` string, nullable, required
  - `quote_id` string, required
  - `public_quote_id` string, required
  - `status` 'draft' | 'quoted' | 'declined' | 'bound' | 'issued', required — An enumeration.
  - `insurance_score_messages` object[], nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/steadily/apis/steadily-partner-api.md) · [All operations](https://skmtc.net/steadily/apis/steadily-partner-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/steadily/steadily-partner-api/versions/ac329ca07dbb/schema)
