/api/v1/benchmarks endpoint exposes a statistical summary of key pricing and financing metrics aggregated across the Home Service Data catalog. For every supported metric you receive a full distribution: average, median, 25th and 75th percentiles, minimum, maximum, standard deviation, and sample size. Responses can be narrowed with metric-specific filters such as manufacturer, payment_type, term_months, or financier, letting your quoting tool or CRM surface hyper-relevant market context rather than broad averages. Access to each metric is governed by the dataset scope associated with your API key.
Endpoint
Authentication
All requests must include a valid API key in thex-api-key header. Each metric maps to a specific dataset scope; your key must have the corresponding dataset enabled.
Your secret API key. Generate or rotate keys from the dashboard under Settings → API Keys.
Query Parameters
The metric key to compute benchmarks for. Must be one of the registered keys listed in the table below. An error is returned if this parameter is missing or if the key is not recognized.
| Key | Label | Unit | Dataset Scope |
|---|---|---|---|
dealer_fee | Dealer fee | percent | financing |
inverter_base_cost | Inverter cost | currency | hardware |
inverter_price_per_watt | Inverter $/watt add | currency | hardware |
interest_rate | Rate | percent | financing |
Metric-Specific Filter Parameters
The following optional filters are accepted depending on whichmetric you request. Unrecognized filter keys for a given metric are silently ignored.
dealer_fee filters
Restrict results to a single payment type. Accepted values:
loan, lease, ppa, cash.Restrict results to a specific loan term, expressed as an integer number of months (e.g.
120, 180, 240).Restrict results to a specific lender by its internal key, e.g.
"goodleap" or "sunlight".inverter_base_cost filters
Restrict benchmark to a single inverter brand, e.g.
"Enphase" or "SolarEdge".When
true, includes archived (discontinued) inverter products in the calculation. Defaults to excluding archived records if omitted.inverter_price_per_watt filters
Restrict the per-watt benchmark to inverters from a specific manufacturer.
interest_rate filters
Restrict results to a single payment type. Accepted values:
loan, lease, ppa, cash.Restrict results to a specific loan term in months.
Response Fields
The metric key that was queried, echoed back in the response for verification, e.g.
"dealer_fee".The human-readable display name for the metric as defined in the benchmark registry, e.g.
"Dealer fee".Formatting hint for the statistical values. One of
"percent", "currency", or "number". Use this field to render values correctly in your UI (e.g. prefix $ for currency, append % for percent).An object containing the filter key-value pairs that were applied to the computation, or
null if no filters were provided. Only filters recognized by the metric are included.Mean (arithmetic average) of all matching records.
null if no data is available for the filter combination.50th-percentile value. More robust than the mean in the presence of outliers.
Lowest observed value across all matching records.
Highest observed value across all matching records.
Population standard deviation, indicating spread around the mean. A higher value signals greater variability in the dataset.
25th percentile (first quartile). 25% of records fall at or below this value.
75th percentile (third quartile). 75% of records fall at or below this value. The interquartile range (
p75 − p25) is a useful spread metric that excludes extreme outliers.Number of records included in the computation after all filters were applied. A value of
0 means no matching data was found; all statistical fields will be null.All statistical computations are performed against the filtered dataset at query time. Results reflect the current state of the catalog and are not cached.
Example Requests
Response Example
The following shows a full response formetric=dealer_fee filtered to payment_type=loan and term_months=240:
Dataset Access by Metric
Each metric requires a specific dataset scope to be enabled on your API key. Requesting a metric without the corresponding access returns a403 Forbidden response.
| Metric | Required Dataset |
|---|---|
dealer_fee | financing |
inverter_base_cost | hardware |
inverter_price_per_watt | hardware |
interest_rate | financing |
Error Responses
| HTTP Status | Cause |
|---|---|
400 Bad Request | metric parameter is missing, or the supplied key is not a recognized benchmark metric. The error message lists all valid metric keys. |
401 Unauthorized | Missing or invalid x-api-key header. |
403 Forbidden | Your API key does not have access to the dataset required by the requested metric. |
500 Internal Server Error | Unexpected server-side error — contact support if the issue persists. |