Push fresh 9amLeads opportunities into your own systems automatically - via CRM webhooks or the authenticated leads API.
All endpoints use the same account you sign up with. Authenticate with a bearer token issued at login. Every request should send your token in the Authorization header.
// Request { "email": "you@yourbusiness.co.uk", "password": "your-password" } // Response { "token": "eyJhbGciOiJIUzI1NiIs...", "customer": { ... } }
// Use the token on every request
Authorization: Bearer <your-token>
Content-Type: application/json
{ "status": "contacted" }{ "note": "Called on Tuesday, quotes this week" }{ "leadId": "..." , "reason": "wrong address" }Set a webhook URL and every fresh opportunity is POSTed to your endpoint automatically at 9am delivery. Works with Zapier, HubSpot, Salesforce, Pipedrive, Make and any system that accepts webhooks.
{ "crm_webhook_url": "https://your-endpoint.com/hook" }// Every opportunity delivered to your webhook looks like this:
{
"lead_type": "moving",
"property_address": "12 Example Road, London, SW1A 1AA",
"postcode": "SW1A 1AA",
"contact": { "name": "...", "phone": "...", "email": "..." },
"property_type": "Terraced",
"bedrooms": 3,
"score": 92,
"source_link": "https://...",
"freshness_hours": 18,
"delivered_at": "2026-08-27T09:00:00.000Z"
}
Fields vary by lead type - moving leads include property details, probate leads include executor and estate fields, tenders include CPV codes and value. The lead type is always included so you can route accordingly.
| Topic | Guidance |
|---|---|
| Retry behaviour | Webhooks are sent once per delivery. If your endpoint is briefly unavailable, fetch /api/leads/today to reconcile anything missed. |
| Idempotency | Every lead has a stable ID. Deduplicate by lead ID if you receive a webhook and later fetch the same lead. |
| Timing | Webhooks fire at the same time as your 9am email delivery. Expect the request within a few minutes of 9:00 UK time. |
| Testing | Use POST /api/crm/test to send a test payload before going live. |
| Rate limits | Standard limits apply to the leads API. The webhook is one POST per delivery per customer. |
Our team can help you set up HubSpot, Zapier or a custom webhook. Just ask.