Voice-powered customer intake, emergency detection, and smart scheduling for plumbing companies
View the complete MVP1 requirements checklist with implementation status for all features.
View Checklist →Twilio voice call handling with OpenAI Realtime API integration for natural AI conversations.
View Endpoints →Plumber coordination via SMS: CONFIRM, BUSY, AVAILABLE, CLOSED, STATUS, HELP.
View Endpoints →AM/PM appointment windows with availability management and blocked dates.
View Endpoints →Automatic detection of gas leaks, flooding, burst pipes with safety scripts.
View Details →| Method | Endpoint | Description | Auth | Test |
|---|---|---|---|---|
| GET | /health | Health check | Public | |
| POST | /api/v1/auth/register | Register new account | Public | |
| POST | /api/v1/auth/login | Login | Public | |
| GET | /api/v1/auth/me | Get current user | JWT | |
| GET | /api/v1/calls | List calls | JWT | |
| GET | /api/v1/calls/stats | Call statistics | JWT | |
| GET | /api/v1/appointments | List appointments | JWT | |
| GET | /api/v1/account | Get account | JWT | |
| GET | /api/v1/account/dashboard | Dashboard summary | JWT | |
| POST | /webhook/voice | Twilio voice webhook | Twilio Sig | - |
| WS | /webhook/voice/stream | Media stream (WebSocket) | Twilio | - |
| POST | /webhook/sms | Twilio SMS webhook | Twilio Sig | - |
Test the health endpoint:
GET /health
Register a new account:
POST /api/v1/auth/register
Content-Type: application/json
{
"email": "demo@example.com",
"password": "password123",
"name": "Demo User",
"companyName": "Demo Plumbing Co"
}
Login to get JWT token:
POST /api/v1/auth/login
Content-Type: application/json
{
"email": "demo@example.com",
"password": "password123"
}