Base URL
All API endpoints are served from a single base URL. The current stable version isv1.
Always use HTTPS. HTTP requests are not supported. Append endpoint paths directly to the base URL — for example,
https://homeservicedata.com/api/v1/search.Authentication
Every request must include your API key in thex-api-key request header. There are no bearer tokens or cookies — the header is the sole authentication mechanism.
Response Envelope
Every API response — whether successful or not — is wrapped in a standard three-field envelope.The payload returned by the endpoint.
null on error responses.A human-readable error message.
null on success responses. See Errors for the full list of error codes and messages.Pagination context on list endpoints,
null on error responses and on endpoints that do not paginate.Pagination
List endpoints acceptpage and per_page query parameters. The default is page=1 and per_page=25. The maximum per_page is 100.
page until page exceeds meta.total_pages.
Data Quality Signals
Every data row that can be used in a quote carries at least two readiness signals. These are not decorative — they drive which records are safe to surface to customers.quote_safe
true when the record has passed all validation checks and is approved for use in customer-facing quotes. Always filter on quote_safe=true in production quote flows.confidence
A three-tier signal —
high, medium, or low — indicating how closely the data matches a primary source. Higher confidence means fewer assumptions.last_verified_at
ISO 8601 timestamp of the most recent source verification. Stale records may still be
quote_safe but their confidence will reflect the age.source_url
The canonical URL of the original source document or data sheet, where available. Useful for audit trails and compliance review.
Supported Trades
The API is organized around trade verticals. Pass thetrade parameter to scope results to a single vertical.
| Trade | trade value |
|---|---|
| Solar | solar |
| HVAC | hvac |
| Roofing | roofing |
| Plumbing | plumbing |
| Electrical | electrical |
trade: "context" in their responses.
Versioning
The API uses URL-path versioning. The current version is v1. Breaking changes will be released under a new version prefix (/api/v2/…) with a documented migration period. Non-breaking additions — new fields, new optional parameters, new endpoint groups — may be added to v1 without a version bump.
Endpoint Groups
Finance
Dealer fee programs, interest rates, term structures, and lender integrations. Requires
finance_fees production access.Equipment / Hardware
The full equipment catalog: solar modules, inverters, HVAC systems, roofing products, and generic hardware. Paginated browsing with category, manufacturer, and SKU filters.
Context
Location-aware context data — utility territories, electricity rates, incentive programs, permit assumptions, climate zones, and labor adders. Feed address-level data into quotes.
Sync
Dataset snapshots for bulk integration. Pull versioned exports of any entitled dataset into your own data store for offline use.
Search
Unified full-text search across all dataset types — equipment, finance programs, incentives, utilities, permits, labor, and source documents — in a single request.
Benchmarks
Statistical aggregates (average, median, P25/P75, std dev) for pricing and performance metrics, filterable by trade, region, and time window.
Quote Context
A single composite endpoint that assembles all quote-ready context for a given address and trade: equipment options, finance programs, incentives, utility rates, and permit requirements — deduplicated and
quote_safe filtered.Response Timing Headers
Every response includes anX-HSD-Duration-Ms header reporting the server-side processing time in milliseconds, and a Server-Timing header with per-phase breakdowns (auth, database, access checks, search). These are useful for diagnosing latency in production integrations.
Further Reading
- Authentication — API key management, scopes, and rotation
- Error Codes — HTTP status codes, error messages, and retry strategy