Overview
Create leads, attach files, move them through your workflow and read them back — from your own systems.
The eva crm public API lets your website, forms, lead providers and internal tools talk to your CRM directly. It is a JSON API over HTTPS, authenticated with an API key issued in the CRM.
Base URLs
| Environment | Base URL | Use it for |
|---|---|---|
| Production | https://api.evacrm.co.uk | Your live CRM data |
| Sandbox | https://sandbox-public-api.evacrm.co.uk | Building and testing an integration against sandbox data |
Every endpoint lives under /v1. Keys are environment-specific: a sandbox key does not work in
production, and the other way round.
Quick start
-
Ask a CRM administrator for an API key. It is shown once, at creation, and starts with
sk_. -
Confirm it works:
curl https://api.evacrm.co.uk/v1/whoami \ -H "Authorization: Bearer sk_..." -
See what a lead can carry, with the valid values for every dropdown field:
curl https://api.evacrm.co.uk/v1/leads/fields \ -H "Authorization: Bearer sk_..." -
Create one:
curl https://api.evacrm.co.uk/v1/leads \ -H "Authorization: Bearer sk_..." \ -H "Content-Type: application/json" \ -d '{ "reference": "web-form-8812", "firstName": "Jane", "lastName": "Smith", "email": "jane@example.com", "mobile": "07700 900123", "postcode": "SW1A 1AA", "leadType": "Windows", "message": "Please call after 5pm", "test": true }'test: truekeeps trial submissions out of reporting. Drop it when you go live.
What you can do
Create leads
POST /v1/leads — idempotent on your reference, with the old webhook's fields still accepted.
Update leads
PATCH /v1/leads/{id} — change only the fields you send.
Read leads
GET /v1/leads — filter, page and sync safely with cursors.
Field reference
GET /v1/leads/fields — every field, its limits and its valid values.
Attachments
Photos and PDFs on a lead, visible in the CRM like any staff upload.
Stages
See a lead's workflow and move it, with the same rules the CRM applies.
Contracts
Read the sale a lead became, move it through its workflow, attach files.
Invoices & payments
See the ledger, raise invoices, record payments and match them.
Supplier invoices
Add supplier invoices in bulk, update them, and mark them exported, which locks them.
Appointments
Read the diary and book appointments on leads and contracts, with the CRM's own checks.
Availability
Free slots for a person, a role, or whoever can take an appointment type.
Users
Who a lead can be assigned to, and their roles.
Ground rules
- Read Authentication first. Keys are secrets and must stay server-side.
- Conventions covers ids, dates, errors, idempotency and retries. Everything on this site assumes them.
- The changelog records every change you could notice. Nothing is removed or renamed; things are added and, rarely, deprecated.
Reading these docs with an AI assistant
Every page here is also plain Markdown, so you can hand the reference to Claude, ChatGPT, Cursor or your own tooling instead of scraping HTML:
- /llms.txt is an index of every page with a one-line summary and a link to its Markdown version.
- /llms-full.txt is the whole reference in one file. Paste it into a conversation or add it to an assistant's context.
- Any page as Markdown: append
.mdto its URL, for example/docs/leads/create.md, or request the normal URL with the headerAccept: text/markdown.
The Copy Markdown and Open buttons at the top of each page do the same for a single page.