# Save lead contacts

> Add people to a lead or update the ones already saved, such as the founder from an intro call. A name alone is enough.

Canonical: https://revnu.com/docs/lead-contacts-save
Last updated: 2026-11-05

```bash
curl -X POST -H "Authorization: Bearer $REVNU_API_TOKEN" \
  -H "content-type: application/json" \
  -d '{"contacts":[{"name":"Akin Aydogan","email":"akin@micro-agi.com","title":"Operations"},{"name":"Rado"}]}' \
  https://revnu.com/api/v1/leads/sn7…/contacts
```

## Body

`{ "contacts": [ { "name"?, "email"?, "linkedinUrl"?, "title"?, "isPrimary"? } ] }`: 1 to 20 people, each with a name, email or LinkedIn profile URL, text fields at most 300 characters. Any other field is a `400`.

A person is matched to a saved contact by email, then LinkedIn profile, then name (including a contact saved with an email), and the fields you send update that contact. Anyone else is added. Someone saved with only a name can't be emailed or messaged by Revnu until an email or LinkedIn profile is added.

The lead's main contact changes only for the person marked `isPrimary` (at most one per call). When a lead's only contact so far is the one shown on the lead, that person stays the main contact as others are added.

## Response

`200 { "lead", "contacts" }`. `lead` holds `id`, `domain`, `companyName`, `status` and `contactCount`; `contacts` lists only the people you sent, each with `id`, `name`, `email`, `linkedinUrl`, `title`, `isPrimary` and `result` (`added` or `updated`). Nobody is removed. A name that matches two saved contacts is a `409` asking for their email. `404` for an unknown or another account's lead.

## Frequently asked questions

### Which scope does this need?

`leads:write`. A token without it gets `403` with `requiredScope` in the body.
