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.