API Docs

HVAC-Buddy exposes a small set of public, same-origin proxy endpoints under /api/equipment/*. These routes call the upstream Equipment service and return JSON responses.

Base URL

https://<your-domain>

All endpoints below are relative to the site origin (same origin as the UI). You don’t need to call the upstream equipment service directly.

Endpoints

GET /api/equipment/browse

Browse equipment records with optional filters.

/api/equipment/browse?type=heat_pump&manufacturer=carrier&limit=25

Query params (optional): manufacturer, type, refrigerant, tonnage, limit, cursor

GET /api/equipment/search

Full-text-ish search across equipment with optional filters.

/api/equipment/search?q=25hpb6&type=heat_pump&limit=25

Query params: q (required), plus optional filters.

GET /api/equipment/lookup

Model lookup (fuzzy). Good for scanning a model number and getting likely matches.

/api/equipment/lookup?model=25hpb6

GET /api/equipment/{id}

Fetch a single equipment record by id.

/api/equipment/12345

GET /api/equipment/manufacturers

List manufacturers (slugs and display names).

/api/equipment/manufacturers

GET /api/equipment/refrigerants

List canonical refrigerants (and counts), optionally filtered by equipment type / manufacturer / tonnage.

/api/equipment/refrigerants?type=heat_pump

Query params (optional): manufacturer, type, tonnage

GET /api/equipment/tonnages

List exact tonnage values (and counts), optionally filtered by equipment type / manufacturer / refrigerant.

/api/equipment/tonnages?type=heat_pump

Query params (optional): manufacturer, type, refrigerant

Response shape

The proxy returns JSON. Most endpoints use a standard envelope (success or error) and include a request id for debugging.

// Example error envelope { "ok": false, "error": { "code": "INTERNAL", "message": "Equipment service unavailable" }, "meta": { "requestId": "...", "ts": "2026-02-22T20:20:52.865Z" } }

Try it

The easiest way to validate the API is from the Equipment UI:

  • Go to Equipment
  • Filter by type (e.g. heat_pump) and watch Network calls to /api/equipment/*