provenance block that tells you exactly how trustworthy the record is. This is the right endpoint for building product pickers, populating quote-line dropdowns, and syncing your local product database.
Endpoint
Authentication
Requires a validx-api-key header. The endpoint resolves the appropriate dataset key based on your trade and category filters, then checks your organization’s entitlement. A 403 is returned if your key lacks access to the resolved dataset.
Query Parameters
string
Filter by trade vertical. One of:
solar, hvac, roofing, plumbing, electrical. Omit to browse across all trades your key is entitled to.string
Filter by equipment category. One of:
module, inverter, roofing, hvac, product. When a category is specified, the response includes a richer, category-specific specs object (see Category Specs below).string
Case-insensitive substring filter on the manufacturer name. For example,
manufacturer=Goodman matches "Goodman Manufacturing" and "Goodman/Daikin".string
Case-insensitive substring filter on the SKU or model number. For example,
sku=GSX140 matches "Goodman GSX14024" and "GSX14036".integer
Page number to retrieve, 1-indexed. Default
1.integer
Number of records per page. Minimum
1, maximum 100, default 25. Results are ordered by manufacturer ascending, then sku ascending.Request Examples
TypeScript example
Response
Equipment Record Fields
string
Stable UUID for this equipment record. Use this to reference the record in quote line items and downstream systems.
string
The trade vertical:
solar, hvac, roofing, plumbing, or electrical.string
The equipment category:
module, inverter, roofing, hvac, or product.string
The manufacturer or brand name.
string
The manufacturer model number or SKU.
number
The catalog base cost in USD. This is the platform’s internal cost basis and may differ from observed market prices. Use
pricing.estimated_base_cost for quote calculations when available.boolean
true when the product has been discontinued or removed from active quoting. Archived records are excluded by default unless include_archived=true is passed. Archived records always have provenance.quote_safe: false.object | null
Embedded pricing intelligence derived from market price observations.
null when no pricing data has been collected for this record.object
Category-specific technical specifications. The shape of this object varies by
category — see Category-Specific Specs below. An empty object {} is returned for product category records or when no spec record exists.object
Data lineage and trust metadata for this record.
The quote_safe Flag on Equipment Records
For equipment catalog records,
quote_safe is derived directly from is_archived. Any active, non-archived record is quote_safe: true. If you need to enforce this in your UI without calling provenance.quote_safe, check is_archived === false.quote_safe as a filter parameter — the default behavior (excluding archived records) already ensures all returned records are quote-ready. If you are building a product management tool that needs to display discontinued items, pass include_archived=true and handle the is_archived flag in your UI.
Category-Specific Specs
When you filter bycategory, the specs object on each record contains the full set of fields for that category. Without a category filter, a summarized subset is returned.
module
rating_stc, rating_ptc, efficiency, voc, isc, vmp, imp, length_mm, width_mm, weight_kg, product_warranty_years, frame_color, backsheet_color, cell_quantity, temp_coeff_pmax, pan_file_urlinverter
external_id, labor_adjustment, price_adjustment, price_adjustment_per_watt, is_default, price_adjustment_per_panelroofing
material_type, warranty_years, wind_rating_mph, fire_class, impact_rating_class, exposure_inches, bundles_per_square, weight_per_square_lbs, algae_resistance_years, citation_urlhvac
seer2_rating, eer2_rating, hspf2_rating, tonnage, refrigerant_type, cooling_capacity_btu_h, compressor_staging, cold_climate, ahri_reference_number, energy_star_model_identifier, date_certified, source_url (full list includes heating capacities at 47°F/17°F/5°F, COP, and all AHRI certification fields)Errors
Related Endpoints
- Search — Find equipment by name or SKU without knowing the category upfront, alongside results from other dataset types.
- Quote Context (
/api/v1/quote-context) — Returns a pre-assembled, quote-ready bundle that includes recommended equipment options, finance programs, incentives, and utility rates for a specific address and trade. Use this instead of the catalog endpoint when building a quote flow that needs fully contextualized data. - Hardware Inverters (
/api/v1/hardware/inverters) — A legacy endpoint that returns solar inverter records in the originalInverterRecordshape. New integrations should prefer the catalog endpoint withcategory=inverter.