Skip to main content
The /api/v1/hardware/inverters endpoint returns a paginated list of solar inverter products joined with inverter-specific cost adjustment data. Each record includes the manufacturer SKU, a base cost, and four adjustment fields that quoting engines use to compute the final installed price: a flat price_adjustment, a per-watt multiplier, a per-panel increment, and a labor adder. Records also carry an is_archived flag so integrations can decide whether to surface discontinued products to end users.

Endpoint

GET https://homeservicedata.com/api/v1/hardware/inverters

Authentication

All requests must include a valid API key in the x-api-key header. Access to inverter data requires the hardware dataset to be enabled on your account.
x-api-key
string
required
Your secret API key. Generate or rotate keys from the dashboard under Settings → API Keys.
Never expose your API key in client-side code or public repositories. All requests should originate from your server.

Query Parameters

page
integer
Page number to return. Defaults to 1. Must be a positive integer.
per_page
integer
Number of records per page. Defaults to 25. Maximum is 100.
code
string
Partial SKU match. Case-insensitive substring search against the sku field. For example, IQ8 returns all SKUs containing that string.
manufacturer
string
Filter by manufacturer name. Case-insensitive substring match. For example, Enphase returns all Enphase products.
is_default
boolean
Filter records by their default-product flag. Pass true to return only the preferred inverter in each product family, or false to exclude defaults. Omit this parameter to return all records regardless of flag.
The is_default filter is applied after the database join rather than in the initial query. Very large result sets filtered down by is_default will still consume the full per-page database read; prefer combining it with manufacturer when possible.

Response Fields

A successful 200 response returns an data array of inverter record objects and a meta pagination envelope.

Pagination (meta)

meta
object

Inverter Record (data[])

id
string
Internal UUID for this inverter product. Stable across updates to other fields.
manufacturer
string
Brand name of the inverter manufacturer, e.g. "Enphase", "SolarEdge", or "SMA".
sku
string
The manufacturer’s product SKU or model code, e.g. "IQ8A-72-2-US". Results are returned sorted by sku ascending.
base_cost
number
Wholesale base cost of the inverter in USD. This is the starting point before any per-watt, per-panel, or labor adjustments are applied.
is_archived
boolean
When true, the product has been discontinued or hidden from active quoting. Archived records are included in responses by default; filter them out in your integration if required.
external_id
integer | null
An optional numeric identifier used to cross-reference this inverter in external systems. null when no mapping exists.
is_default
boolean
Indicates whether this inverter is the preferred or default selection within its product family. Useful for pre-populating quote forms.
price_adjustment
number
Flat dollar adjustment added to base_cost to arrive at the quoted inverter price. Can be positive (markup) or negative (discount).
price_adjustment_per_watt
number
Additional cost in USD per watt of system capacity. Multiply by the system’s wattage and add to the base total. Defaults to 0 if no per-watt adjustment applies.
price_adjustment_per_panel
number
Additional cost in USD per panel in the array. Multiply by panel count and add to the base total. Defaults to 0.
labor_adjustment
number
Dollar amount added to labor cost for this inverter type, typically to account for installation complexity differences between microinverter and string inverter designs. Defaults to 0.
To compute the full estimated inverter cost for a quote, apply: base_cost + price_adjustment + (price_adjustment_per_watt × system_watts) + (price_adjustment_per_panel × panel_count) + labor_adjustment.

Example Requests & Responses

curl https://homeservicedata.com/api/v1/hardware/inverters \
  -H "x-api-key: YOUR_API_KEY"

Response Example

{
  "success": true,
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "manufacturer": "Enphase",
      "sku": "IQ8A-72-2-US",
      "base_cost": 148.50,
      "is_archived": false,
      "external_id": 10042,
      "is_default": true,
      "price_adjustment": 0.00,
      "price_adjustment_per_watt": 0.0250,
      "price_adjustment_per_panel": 5.00,
      "labor_adjustment": 12.00
    },
    {
      "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "manufacturer": "SolarEdge",
      "sku": "SE7600H-US",
      "base_cost": 1020.00,
      "is_archived": false,
      "external_id": 10091,
      "is_default": false,
      "price_adjustment": 50.00,
      "price_adjustment_per_watt": 0.0000,
      "price_adjustment_per_panel": 0.00,
      "labor_adjustment": 0.00
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 84,
    "total_pages": 4
  }
}

Error Responses

HTTP StatusCause
400 Bad RequestMalformed query parameter value (e.g. non-numeric page).
401 UnauthorizedMissing or invalid x-api-key header.
403 ForbiddenYour API key does not have access to the hardware dataset.
500 Internal Server ErrorUnexpected server-side error — contact support if persistent.