# eva crm Public API > JSON API over HTTPS for creating and reading leads, contracts, invoices and payments in eva crm, authenticated with an API key issued in the CRM. Base URLs: production https://api.evacrm.co.uk, sandbox https://sandbox-public-api.evacrm.co.uk. Every endpoint lives under /v1. Keys are environment-specific. Each link below is the Markdown version of a page. Any docs page is also served as Markdown by appending .md to its URL, or by requesting it with the header Accept: text/markdown. The whole reference in one file: https://sandbox-api-docs.evacrm.co.uk/llms-full.txt ## Guides - [Overview](https://sandbox-api-docs.evacrm.co.uk/docs.md): Create leads, attach files, move them through your workflow and read them back — from your own systems. - [Authentication](https://sandbox-api-docs.evacrm.co.uk/docs/authentication.md): API keys, how to send them, and how to keep them safe. - [Conventions](https://sandbox-api-docs.evacrm.co.uk/docs/conventions.md): Ids, dates, option values, errors, idempotency and retries — the rules every endpoint follows. ## Endpoints - Leads - [Create a lead](https://sandbox-api-docs.evacrm.co.uk/docs/leads/create.md): POST /v1/leads — one call creates the customer, contact and lead, idempotently. - [Update a lead](https://sandbox-api-docs.evacrm.co.uk/docs/leads/update.md): PATCH /v1/leads/{id} — change only the fields you send. - [List leads](https://sandbox-api-docs.evacrm.co.uk/docs/leads/list.md): GET /v1/leads — filter, page and keep a mirror in sync. - [Field reference](https://sandbox-api-docs.evacrm.co.uk/docs/leads/fields.md): GET /v1/leads/fields — every field POST accepts, with limits and valid values, generated from the validator itself. - [Attachments](https://sandbox-api-docs.evacrm.co.uk/docs/leads/attachments.md): Photos and PDFs on a lead, stored and displayed exactly like a staff upload in the CRM. - [Notes and tasks](https://sandbox-api-docs.evacrm.co.uk/docs/leads/notes-and-tasks.md): Read the notes written against a lead and the tasks raised on it, as staff see them in the CRM. - [Stages](https://sandbox-api-docs.evacrm.co.uk/docs/leads/stages.md): See where a lead is in its workflow, and move it with the same rules the CRM applies. - [Contracts](https://sandbox-api-docs.evacrm.co.uk/docs/contracts.md): Read contracts, follow them through their workflow, and attach files — the same way as leads. - [Invoices](https://sandbox-api-docs.evacrm.co.uk/docs/invoices.md): See a contract's invoices, payments, credit notes and refunds, and raise new invoices. - [Payments](https://sandbox-api-docs.evacrm.co.uk/docs/payments.md): Record a payment against a contract and match it to invoices by number or id. - [Supplier invoices](https://sandbox-api-docs.evacrm.co.uk/docs/supplier-invoices.md): Add supplier invoices in bulk the way the CRM's grid does, read and update them, and mark them exported — which locks them until unmarked. - Appointments - [Read the diary](https://sandbox-api-docs.evacrm.co.uk/docs/appointments/read.md): Appointment types, and the diary filtered by window, type, status, staff, role, team or record. - [Book an appointment](https://sandbox-api-docs.evacrm.co.uk/docs/appointments/book.md): POST /v1/appointments — book on a lead, a contract or nothing, with the CRM's duplicate and clash checks. - [Availability](https://sandbox-api-docs.evacrm.co.uk/docs/appointments/availability.md): Free slots for a person, a role, or whoever can take an appointment type, from the same diary and working hours the CRM uses. - [Users](https://sandbox-api-docs.evacrm.co.uk/docs/users.md): The staff a lead can be assigned to, and how assignment works. - [Changelog](https://sandbox-api-docs.evacrm.co.uk/docs/changelog.md): Every change you could notice, dated. Nothing is removed or renamed. ## Optional - [Full reference](https://sandbox-api-docs.evacrm.co.uk/llms-full.txt): every page above in one Markdown file