Welcome to the ForVue Partner Program
This guide contains everything you need to integrate with the ForVue predictive maintenance platform. Follow the steps in order — you'll be connected and testing within 30 minutes.
Fill these in before sending to your integration team:
| API Key | ______________________________ |
| Base URL | https://platform.investwisecap.com/api/v1/ |
| Webhook Secret (HMAC) | ______________________________ |
| Daily Rate Limit | 1,000 requests/day |
| API Reference | https://platform.investwisecap.com/api-reference.html |
Pass your API key in the X-Api-Key header on every request:
curl https://platform.investwisecap.com/api/v1/properties \ -H "X-Api-Key: YOUR_API_KEY"
If authentication fails, you'll receive:
{ "error": "Invalid or inactive API key." }
Add ?sandbox=true to any GET request to work with demo data only. No production data is exposed.
curl https://platform.investwisecap.com/api/v1/properties?sandbox=true \ -H "X-Api-Key: YOUR_API_KEY"
⚠ Remove ?sandbox=true when you are ready to go live.
The most common integration — pull risk scores for all components in a portfolio:
curl https://platform.investwisecap.com/api/v1/components \ -H "X-Api-Key: YOUR_API_KEY"
Response (shape verified against live API, July 9, 2026):
{
"components": [
{
"component_id": "C_17762...",
"component_name": "wh_gas_anode",
"appliance_type": "water_heater_gas",
"appliance_brand": "Rheem",
"unit": "U_...",
"property_id": "P_...",
"property_name": "Oakwood Apartments",
"risk_score": 0.847,
"risk_tier": "CRITICAL",
"proactive_cost": 220,
"reactive_cost": 1800,
"last_scored": "2026-07-09T20:07:06.109Z"
}
]
}
📌 Response-shape change effective July 9, 2026: NUMERIC, DECIMAL, BIGINT, and INT8 fields now return as JSON numbers, not strings. See the API Reference §13.4.1 changelog.
Send properties, appliances, and service events to build a portfolio:
// Create a property curl -X POST https://platform.investwisecap.com/api/v1/properties \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Oakwood Apartments", "address": "123 Main St", "city": "Dallas", "state": "TX", "zip": "75201", "unit_count": 24 }' // Add an appliance curl -X POST https://platform.investwisecap.com/api/v1/appliances \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "property_id": "P_...", "type_id": "hvac_central", "brand": "Carrier", "model": "24ACC636", "install_year": 2018 }' // Log a service event (bulk endpoint; send one or many) curl -X POST https://platform.investwisecap.com/api/v1/service-events/bulk \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "events": [ { "appliance_id": "A_...", "event_type": "Preventive Maintenance", "date": "2026-07-09", "technician": "ABC HVAC", "parts_cost": 45, "labor_cost": 150, "condition_after": "good", "notes": "Replaced capacitor, cleaned coils" } ] }'
For lenders and insurance carriers — pull property condition scores and replacement cost values:
// Condition score (bank underwriting) curl https://platform.investwisecap.com/api/v1/property/P_.../condition-score \ -H "X-Api-Key: YOUR_API_KEY" // Replacement cost value (insurance coverage) curl https://platform.investwisecap.com/api/v1/property/P_.../rcv \ -H "X-Api-Key: YOUR_API_KEY" // Push insurance claims for Bayesian risk adjustment curl -X POST https://platform.investwisecap.com/api/v1/property/P_.../claims \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "claim_type": "water_damage", "date_of_loss": "2026-03-15", "amount": 12500 }'
Receive real-time alerts when components cross CRITICAL or WARNING thresholds.
What ForVue sends to your webhook URL:
POST https://your-server.com/your-webhook-endpoint
Headers:
Content-Type: application/json
X-Webhook-Signature: HMAC-SHA256 signature
Body:
{
"event": "component.critical",
"timestamp": "2026-04-28T14:30:00Z",
"data": {
"component_id": "C_...",
"appliance_id": "A_...",
"property_id": "P_...",
"component_name": "Anode Rod",
"risk_score": 0.84,
"risk_tier": "CRITICAL",
"projected_failure_year": 2027,
"reactive_cost": 1800,
"proactive_cost": 220
}
}
How to verify the signature:
const crypto = require('crypto');
const signature = req.headers['x-webhook-signature'];
const expected = crypto
.createHmac('sha256', YOUR_WEBHOOK_SECRET)
.update(JSON.stringify(req.body))
.digest('hex');
if (signature !== expected) {
return res.status(401).send('Invalid signature');
}
// Signature valid — process the event
Return HTTP 200 to acknowledge. ForVue retries at 0s, 5s, and 30s if no 200 received.
The authoritative endpoint catalog — 33 endpoints across read, write, OAuth, and public-utility operations — lives in the API Reference. Do not rely on this Integration Guide for a complete route list; the API Reference is generated in sync with the deployed platform and is the source of truth.
Where to find the full route table
| API Reference (HTML) | https://platform.investwisecap.com/api-reference.html |
| OpenAPI Spec (JSON) | GET https://platform.investwisecap.com/api/v1/openapi.json |
| Auth Methods Endpoint | GET https://platform.investwisecap.com/api/v1/auth/methods — returns both authentication options in JSON |
Categories covered in the full reference: properties, appliances, components, service events, alerts, events (change stream), portfolio rollup, property summary and full report, forecasts (30/60/90 day), condition scoring, NSPIRE alignment, replacement cost value, reserves, compliance, insurance claims (import and impact), data-plate photos, IoT meter events (three variants), and OAuth 2.0 token exchange. Every endpoint documents parameters, request bodies where applicable, response shapes, rate-limit behavior, and error codes.
Authentication options:
X-Api-Key header) — simple, no expiry. Used in the examples above.POST /oauth/token → Authorization: Bearer <token>) — preferred for production. Bearer tokens expire in 1 hour. See API Reference §2.2 for the full flow.Three independent limits are enforced. Your integration should handle all three.
| Daily Limit (per partner) | 1,000 requests/day (adjustable per partner) |
| Per-IP Transport Limit | 120 requests/minute per source IP address |
| Per-User Transport Limit | 60 requests/minute per authenticated user or partner |
| Reset Time (daily) | Midnight UTC |
| Response Headers (daily) | X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset |
| Over Daily Limit | HTTP 429, body: {"error":"Daily rate limit exceeded (1000 calls/day). Resets at midnight UTC."} |
| Over Per-IP Limit | HTTP 429, body: {"error":"Too many requests. Please slow down."} |
| Over Per-User Limit | HTTP 429, body: {"error":"Rate limit exceeded. Maximum 60 requests per minute."} |
Requests that trip a transport-layer limit do not count against your daily quota. See API Reference §3 for the complete rate-limiting reference.
| type_id | Name | Components |
|---|---|---|
| hvac_central | HVAC Central Split | 8 |
| hvac_heat_pump | Heat Pump | 7 |
| hvac_mini_split | Mini-Split / Ductless | 6 |
| water_heater_gas | Water Heater (Gas) | 6 |
| water_heater_electric | Water Heater (Electric) | 7 |
| water_heater_tankless | Water Heater (Tankless) | 6 |
| refrigerator | Refrigerator | 8 |
| washer | Clothes Washer | 6 |
| dryer_electric | Dryer (Electric) | 6 |
| dryer_gas | Dryer (Gas) | 7 |
| dishwasher | Dishwasher | 6 |
| range_gas | Range/Oven (Gas) | 6 |
| range_electric | Range/Oven (Electric) | 6 |
| electrical_panel | Electrical Panel | 5 |
| boiler | Boiler | 6 |
| roof | Roof | 6 |
| pool_equipment | Pool/Spa Equipment | 6 |
| elevator | Elevator | 5 |
| fire_suppression | Fire Suppression | 5 |
29 types total, 164 components. Full list in API reference.
| Integration Support | wise@investwisecap.com |
| API Status | GET /health — no auth required |
| OpenAPI Spec | https://platform.investwisecap.com/api/v1/openapi.json |
| Response Time SLA | < 500ms for read endpoints |
Competitive Use Restriction
Per Section 12 of the ForVue Terms of Service, API partners agree to a 2-year competitive-use covenant. Data obtained through the API may not be used to build, train, or improve a competing predictive maintenance product. See Terms of Service v3.0 for full details.