/api/v1/quote-context endpoint is the primary entry point for building home-service quotes. Rather than stitching together five or six separate API calls, you send one GET request and receive finance options, equipment records, incentive eligibility, climate context, labor adders, permit requirements, and utility territory resolution in a single response. Every response also includes a coverage object that summarizes how many quote-safe records were returned and surfaces any data gaps or unresolved requirements so your quoting tool can decide whether it has enough information to present a price.
Request
Authentication
All requests must include your API key in thex-api-key header. This endpoint requires a production access tier.
Query Parameters
Trade & Geography
The home-service vertical to scope the response. Defaults to
solar when omitted.Allowed values: solar, hvac, roofing, plumbing, electrical.Two-letter U.S. state code (e.g.
GA, CA, TX). Used to filter finance products, incentives, permits, and climate records to the given state. Must be exactly two uppercase letters; otherwise a 400 is returned.County name (e.g.
Fulton, Los Angeles). The County suffix is stripped automatically before matching. Used alongside state for climate, permit, and finance-eligibility filtering.Five-digit FIPS code for the county (e.g.
13121). Alternative to county when you have a FIPS code available. Used for climate context lookups.City name. Used to filter permit records when
state or county is also provided.Full postal address (street, city, state, ZIP). Maximum 300 characters. When provided, the API resolves utility territory for the address and includes the result in
context.utility_territory_resolution. The raw address is never stored — only the resolution result is retained. Triggering utility territory resolution consumes from a separate rate-limit budget; see the note below.Finance Filters
Filter finance products to a specific lender by slug (e.g.
goodleap, mosaic). The value is slugified before matching.Filter finance products by payment type (e.g.
loan, lease, ppa).Filter finance products by loan term in months. Must be a valid integer.
Maximum number of finance records to return. Minimum
1, maximum 100.Equipment Filters
Filter the equipment catalog to a specific category.Allowed values:
module, inverter, roofing, hvac, product.Filter equipment records by manufacturer name.
Filter equipment records by SKU.
HVAC equipment ID. When provided, the API fetches equipment-specific incentive context and uses the equipment’s
measure_key to scope incentive and finance-eligibility lookups (unless measure is also explicitly supplied).Maximum number of equipment records to return. Minimum
1, maximum 100.Context Filters
Utility name for incentive lookup (e.g.
Georgia Power). Used to scope incentive records to a specific utility provider.Measure key for incentive and finance-eligibility filtering (e.g.
air_source_heat_pump, rooftop_solar). When omitted and equipment_id is provided, the measure is inferred from the equipment record. For trade=hvac with no equipment_id, defaults to air_source_heat_pump.Maximum number of records to return per context category (climate, incentives, labor adders, permits, finance eligibility). Minimum
1, maximum 50. Also caps utility territory matches at 10.The
address field is used only for utility territory resolution during the current request. It is never persisted, logged, or associated with your API key. The inputs.address_redacted field in the response is a boolean that confirms whether an address was supplied — the address itself is not echoed back.Response
Top-level
data envelope containing the full quote context bundle.