Quick start
Your first call in about 5 minutes.
1. Make a key
Sign in, open My account, Settings, Connect your software. Type what the key is for (for example "Housecall Pro"). Leave Let it make changes on for full access, or turn it off for a read-only key. Tap Make a key and copy it right away. It starts with lmk_ and is shown once.
2. List your leads
curl -s "https://zqawbbylldymdfzineqq.supabase.co/functions/v1/pro-api/v1/leads?limit=5" \
-H "Authorization: Bearer lmk_your_key_here"{
"leads": [
{
"id": "6b1c2f0e-1d7a-4c55-9a51-0f3c2a9d8e11",
"service": "Water heater installation",
"zip": "98391",
"details": "40 gallon gas heater leaking at the base. Garage. Prefer mornings.",
"status": "delivered",
"accepted": false,
"lead_type": "direct",
"contact": null,
"received_at": "2026-10-22T16:04:11.201+00:00"
}
],
"has_more": false,
"next_cursor": null,
"next_since": "2026-10-22T16:10:00.000Z"
}(Shortened. See the lead object for every field.)
3. Accept it, then update it
curl -s -X POST https://zqawbbylldymdfzineqq.supabase.co/functions/v1/pro-api/v1/leads/6b1c2f0e-1d7a-4c55-9a51-0f3c2a9d8e11/accept \
-H "Authorization: Bearer lmk_your_key_here"
curl -s -X PATCH https://zqawbbylldymdfzineqq.supabase.co/functions/v1/pro-api/v1/leads/6b1c2f0e-1d7a-4c55-9a51-0f3c2a9d8e11 \
-H "Authorization: Bearer lmk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"status":"appointment","external_ids":{"housecallpro":"lead_123"}}'Accepting charges the lead price exactly like the Accept button in the app. The response is the full lead, now with the customer's contact details.
4. Message the customer
curl -s -X POST https://zqawbbylldymdfzineqq.supabase.co/functions/v1/pro-api/v1/leads/6b1c2f0e-1d7a-4c55-9a51-0f3c2a9d8e11/messages \
-H "Authorization: Bearer lmk_your_key_here" -H "Content-Type: application/json" \
-H "Idempotency-Key: 7d1e0c2a-msg-1" \
-d '{"body":"Hi Pat, I can come Tuesday at 9. Does that work?"}'5. Get updates pushed to you
In the same Settings card, paste your webhook address (https). Copy the signing secret it shows once, then tap Send a test event. See Webhooks.
6. Stay in step
Poll GET /v1/leads?since=<next_since from your last call> every 5 to 15 minutes, even with webhooks. See Polling.