On this page
Log in with HailMate, and writing money
Apps can connect by signing in rather than asking for a key, and the API can now create invoices, estimates and door knocks. Everything is additive: nothing was renamed or removed.
Added- Log in with HailMate — the OAuth 2.0 authorization-code flow, with an hour-long access token and a token endpoint that refreshes it. See Authentication.
- Create, change and delete draft invoices, totalled by the same calculator as the app, and mark one sent or void it.
- Create an estimate from one of your templates — smart fields filled in from the job — or as your standard proposal, and change its price.
- Log a door knock by address or coordinates, and change its result.
API v2
The API can now change and delete what it creates, reaches payments, notes, photos, door knocks and hail history, and webhooks cover 30 events with filters — delivered in a second or two. Everything is additive: no field was renamed or removed, and the path is still
/v1.Added- Update and delete jobs, contacts and tasks with
PATCHandDELETE. Moving a job with{"stage": "Claim Approved"}runs your stage automations and firesjob.stage_changed, exactly as dragging the card does. Deleted jobs and contacts go to Recently Deleted for 30 days. - New endpoints: payments (list, get and record), notes, photos and files (upload as a multipart file or from a URL), canvassing pins, pipelines and hail and wind history at an address. A job’s own notes, files, photos, tasks, estimates, invoices and payments, and every job a contact is on.
- 30 webhook events, up from 8: updated, assigned, completed and deleted; estimates created, sent, viewed and declined; invoices created, sent, overdue and voided; payments received and refunded; notes; photos and files; door knocks and knock results. The catalogue.
- Webhook filters (“only when a job enters Claim Approved”),
"*"for every event including future ones, andeventsfor several events at one URL. - Faster, calmer deliveries. Webhooks now arrive in a second or two, where they could take up to a minute. Quick edits to one record arrive as one
*.updateddelivery listingchanged_fields. - Idempotency keys on every
POST,PATCHandDELETE, remembered for 24 hours. X-Request-IdandX-RateLimit-Limit/-Remaining/-Reseton every response, and arequest_idin every error.- Read-only keys, for reporting tools that should never change anything.
- In Settings: rotate a webhook’s secret with a 24-hour overlap, Send test, Resend, a delivery log, and a log of every request a key made, kept for 14 days.
updated_since,created_afterandcreated_beforeon every list, and new list filters such aspipeline_id,assigned_toandcontact_idon jobs.- Money on every job —
total_job_value,amount_received,balance_due— andpackage_totalson estimates.
Changed- Task and appointment times are wall-clock. A
due_datesent with an offset keeps its digits and drops the offset —2026-10-02T15:00:00-05:00is 3:00 PM on the crew’s calendar. Before, an offset could shift the appointment by hours. - A job search with no criteria returns an empty list. It used to return the newest job, which is how a blank search step wrote to the wrong job.
- An estimate’s
totalnow honours a stated package price and standalone packages, matching the PDF the homeowner sees.
Fixedassigned_tomust be someone on your own team.- An unknown stage is a
400namingstage, instead of a job that landed in no column. - A malformed date, enum value or cursor is a
400rather than a500. - A webhook switched off after repeated failures now tells the workspace’s owners and admins.
GET /userslists only your own team.
- Update and delete jobs, contacts and tasks with
API v1 launched
The first public release of the HailMate API and webhooks, on every paid plan.
Added- API keys, made by owners and admins in Settings → Integrations → API & Webhooks. A key belongs to one workspace.
- Read jobs, contacts, tasks and appointments, estimates, invoices, and storm lists with their properties. Search jobs by address, number or name, and contacts by email, phone or name — phone numbers matched however they were typed.
- Create contacts, jobs, tasks, appointments and notes.
- Stages, users and the event catalogue, for building dropdowns.
- Webhooks for 8 events —
job.created,job.stage_changed,contact.created,task.created,appointment.created,estimate.signed,invoice.paidandstorm_list.ready— signed with HMAC-SHA256 and retried, plus sample payloads fromGET /webhooks/samples/{event}. - Cursor pagination,
updated_since, and a limit of 120 requests a minute per key.
Keep reading
OverviewKeys, your first request, pagination, idempotency, limits and errors.API referenceEvery endpoint and every object, with cURL, Node.js and Python.WebhooksThirty events, filters, signed deliveries and retries.Zapier, Make & n8nConnect HailMate to thousands of apps today with built-in webhook and HTTP steps.