Join 200+ owners getting weekly growth tips. No spam, unsubscribe anytime.
Encryption in transit and at rest. Daily backups.
Manage clients, jobs, quotes, invoices, bookings, and reviews through a complete REST API with HMAC webhooks. Included on the SMB Developer plan.
7 resources, cursor pagination, JSON, ISO-8601. Built-in Swagger UI.
Real-time notifications signed with HMAC-SHA256. 6 retries with exponential backoff, auto-disable after 20 consecutive failures.
Scoped keys (read/write). Key rotation with 7-day grace period.
curl -s https://api.venturehelm.ca/api/v1/clients \ -H "Authorization: Bearer vh_live_your_key_here" | jq .
import requests
API_KEY = "vh_live_your_key_here"
BASE = "https://api.venturehelm.ca/api/v1"
# List jobs
jobs = requests.get(f"{BASE}/jobs",
headers={"Authorization": f"Bearer {API_KEY}"}).json()
for job in jobs["data"]:
print(f'{job["job_number"]}: {job["status"]}')const API_KEY = "vh_live_your_key_here";
const BASE = "https://api.venturehelm.ca/api/v1";
const res = await fetch(`${BASE}/invoices?status=paid`, {
headers: { Authorization: `Bearer ${API_KEY}` },
});
const { data, pagination } = await res.json();
console.log(`${data.length} invoices, has_more: ${pagination.has_more}`);Limits scale with your plan. All responses include X-RateLimit-* headers.
| Plan | Per hour | Per day |
|---|---|---|
| Lite ($19 CAD) | 100 | 1,000 |
| Essential ($49 CAD) | 1,000 | 20,000 |
| Business Suite ($99 CAD) | 10,000 | 200,000 |
| Growth ($149 CAD) | 100,000 | unlimited* |
* Subject to the fair-use policy described in the Terms of Service. Sustained overages may be subject to temporary throttling.
Every request includes an X-VH-Signature header (HMAC-SHA256) and X-VH-Timestamp for verification.
| Event | Description |
|---|---|
| booking.created | New booking created |
| job.completed | Job marked complete |
| invoice.paid | Invoice paid |
| review.received | New review received |
| quote.accepted | Quote accepted |
| customer.created | New customer added |
Create your account, generate an API key, and start calling the API in minutes.