Changelog
Every change you could notice, dated. Nothing is removed or renamed.
Changes are additive. An endpoint or field, once published, is never removed or renamed; at most it is marked deprecated with a replacement named, and keeps working.
2026-09-02 — initial release
GET /v1/whoamiPOST /v1/leads, replacing thewebhooks.evacrm.co.ukintake. Its nine fields (id,name,email,phone,postcode,message,smsMarketing,emailMarketing) are accepted unchanged and marked deprecated in favour of explicit ones.PATCH /v1/leads/{id}to change any subset of a lead's fields, withIf-Unmodified-Since.GET /v1/leads/{id}, andGET /v1/leadswith cursor pagination andstatus, date,reference,source,code,testandassignedTofilters, plusstage,workflowanddaysInStageto find leads stuck in a stage — a stage name matches every workflow that has it. Each lead carriesdaysInStage.GET /v1/leads/workflowsandGET /v1/contracts/workflows: every workflow with its stages, the names and ids those filters take.GET /v1/leads/fieldsandGET /v1/leads/fields/{field}.POST,GETandDELETEon/v1/leads/{id}/attachments, withdocumentTypeto file a batch, andGET /v1/leads/attachments/categoriesto list what's available.GET /v1/leads/{id}/stagesandPUT /v1/leads/{id}/stage.GET /v1/leads/{id}/notesandGET /v1/leads/{id}/tasks, and the same under/v1/contracts/{id}: what staff wrote and what the CRM raised, paged, withauto,internalandpinnedfilters on notes andstatusand due-date filters on tasks.GET /v1/usersandassignedToon lead creation, with each user'srolesand arolefilter, andGET /v1/users/roles.- Supplier invoices:
GET /v1/suppliers,GET /v1/supplier-invoices,GET /v1/supplier-invoices/{id},GET /v1/supplier-invoices/types, bulkPOST /v1/supplier-invoices,PATCH /v1/supplier-invoices/{id},DELETE /v1/supplier-invoices/{id}, andPOST /v1/supplier-invoices/{id}/exportandPOST /v1/supplier-invoices/{id}/unexport— an exported invoice is read-only until unmarked. - Appointments:
GET /v1/appointmentswith window, type, status, user, role, team and record filters,GET /v1/appointments/{id},GET /v1/appointments/typesandPOST /v1/appointmentswith the CRM's duplicate and clash checks. GET /v1/appointments/availability: free slots by person, role or appointment type.- Contracts:
GET /v1/contractswith the same filters as leads,stage,workflowanddaysInStageincluded,GET /v1/contracts/{id}, stages and attachments as for leads. - Invoices:
GET /v1/invoices/types,GET /v1/contracts/{id}/invoices,GET /v1/invoices/{id},POST /v1/invoices/{id}/raise,POST /v1/invoices/{id}/unraise,DELETE /v1/invoices/{id}andGET /v1/invoices/{id}/pdffor a download link.POST /v1/contracts/{id}/invoicesis reserved for creating invoices and answers 501 until then. - Payments:
GET /v1/contracts/{id}/payments,POST /v1/contracts/{id}/payments,GET /v1/payments/{id},POST /v1/payments/{id}/allocations. - Dates are read and shown in your organisation's timezone, with
X-Timezoneto override per request. See dates and timezones.
Known limitations
- Keys have no scopes; every key can use every endpoint.
- No rate limit is enforced yet. Design for 60 requests per minute per key.
- Deleting files uploaded by staff is not available.