# Sync clients and contacts with the API

> Keep clients and contacts in step with your CRM: pull changes with updated_since, look people up by email, create and update.

Use the API to keep Quoterium's clients and contacts in step with another system, such as your CRM.

## Clients and contacts in Quoterium

- A **client** is a company. It has no email address of its own: email addresses belong to its contacts.
- A **contact** is a person, usually at a client (`client_id`). A contact without a client is a private person, quoted directly.
- A contact needs a first name, last name and email address.
- One contact per client can be the main contact (`is_primary`): marking one clears the others.

## Pulling changes

Add `updated_since` to `GET /clients`, `GET /contacts` or `GET /quotes` to get only records changed since your last run, for example `?updated_since=2026-10-01T00:00:00Z`. Read every page (`page=1, 2, …`) until you have `meta.total` records. Archived records are listed separately with `archived=1`.

## Pushing changes

1. Look the person up first: `GET /contacts?email=ann@example.com` matches the address exactly, ignoring capitals.
2. If they aren't there, create the client if needed (`POST /clients`, then use its `id`) and then the contact (`POST /contacts` with `client_id`).
3. To change a record, send only the fields that change with `PUT` or `PATCH`, for example `PATCH /clients/12` with `{"phone": "020 7946 0000"}`.

Keep Quoterium's `id` for each record in your system, so later updates go to the right one. Records can't be deleted through the API: set `is_archived` to `true` instead. Archived clients and contacts stay on their quotes and can be restored in the app.

Fields, filters and examples are in the [API reference](https://app.quoterium.com/api/v1/docs). See also [Clients and contacts](https://quoterium.com/help/clients-and-contacts/clients-and-contacts).

Source: https://quoterium.com/help/api/sync-clients-and-contacts-with-the-api
