Skip to main content
PUT
/
v1
/
contacts
Upsert a Contact
curl --request PUT \
  --url https://api.example.com/v1/contacts/ \
  --header 'Content-Type: application/json' \
  --data '
{
  "email": "jane@acme.com",
  "linkedin_url": "https://linkedin.com/in/janesmith",
  "first_name": "Jane",
  "last_name": "Smith",
  "title": "VP of Engineering",
  "phone_number": "+1-555-123-4567",
  "location": "San Francisco, CA",
  "account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "domain": "acme.com",
  "do_not_contact": true,
  "tags": [
    "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  ]
}
'
{
  "data": {
    "id": "con_abc123",
    "account_id": "acc_def456",
    "first_name": "Jane",
    "last_name": "Smith",
    "email": "jane@acme.com",
    "title": "VP of Engineering",
    "do_not_contact": false,
    "tags": [
      "Decision Maker"
    ],
    "created_at": "2025-06-15T10:30:00Z",
    "custom_field_1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d": "economic_buyer"
  },
  "meta": {
    "timestamp": "2026-04-21T12:00:00Z"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.monaco.com/llms.txt

Use this file to discover all available pages before exploring further.

Body

application/json

Request body for creating a contact via POST or upserting via PUT.

Custom fields can be passed as additional keys prefixed with custom_field_.

email
string | null

Email address of the contact. Either email or linkedin_url is required.

Example:

"jane@acme.com"

linkedin_url
string | null

LinkedIn profile URL. Either email or linkedin_url is required.

Example:

"https://linkedin.com/in/janesmith"

first_name
string | null

First name of the contact

Example:

"Jane"

last_name
string | null

Last name of the contact

Example:

"Smith"

title
string | null

Job title of the contact

Example:

"VP of Engineering"

phone_number
string | null

Phone number of the contact

Example:

"+1-555-123-4567"

location
string | null

Location of the contact

Example:

"San Francisco, CA"

account_id
string<uuid> | null

ID of the account to associate the contact with

domain
string | null

Domain of the contact's company (used for account resolution)

Example:

"acme.com"

do_not_contact
boolean | null

Whether the contact has opted out of outreach

tags
string<uuid>[] | null

List of tag IDs to associate with the contact

Response

Successful Response

data
ContactResponse · object
required

Contact resource. Custom fields appear as additional keys prefixed with custom_field_.

meta
ResponseMeta · object