Update a Contact
curl --request PATCH \
--url https://api.monaco.com/v1/contacts/{contact_id} \
--header 'Content-Type: application/json' \
--data '
{
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@acme.com",
"title": "VP of Engineering",
"phone_number": "+1-555-123-4567",
"linkedin_url": "https://linkedin.com/in/janesmith",
"location": "San Francisco, CA",
"notes": "Met at SaaStr 2025",
"do_not_contact": true,
"tags": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://api.monaco.com/v1/contacts/{contact_id}"
payload = {
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@acme.com",
"title": "VP of Engineering",
"phone_number": "+1-555-123-4567",
"linkedin_url": "https://linkedin.com/in/janesmith",
"location": "San Francisco, CA",
"notes": "Met at SaaStr 2025",
"do_not_contact": True,
"tags": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
first_name: 'Jane',
last_name: 'Smith',
email: 'jane@acme.com',
title: 'VP of Engineering',
phone_number: '+1-555-123-4567',
linkedin_url: 'https://linkedin.com/in/janesmith',
location: 'San Francisco, CA',
notes: 'Met at SaaStr 2025',
do_not_contact: true,
tags: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']
})
};
fetch('https://api.monaco.com/v1/contacts/{contact_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.monaco.com/v1/contacts/{contact_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'first_name' => 'Jane',
'last_name' => 'Smith',
'email' => 'jane@acme.com',
'title' => 'VP of Engineering',
'phone_number' => '+1-555-123-4567',
'linkedin_url' => 'https://linkedin.com/in/janesmith',
'location' => 'San Francisco, CA',
'notes' => 'Met at SaaStr 2025',
'do_not_contact' => true,
'tags' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.monaco.com/v1/contacts/{contact_id}"
payload := strings.NewReader("{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"email\": \"jane@acme.com\",\n \"title\": \"VP of Engineering\",\n \"phone_number\": \"+1-555-123-4567\",\n \"linkedin_url\": \"https://linkedin.com/in/janesmith\",\n \"location\": \"San Francisco, CA\",\n \"notes\": \"Met at SaaStr 2025\",\n \"do_not_contact\": true,\n \"tags\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.monaco.com/v1/contacts/{contact_id}")
.header("Content-Type", "application/json")
.body("{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"email\": \"jane@acme.com\",\n \"title\": \"VP of Engineering\",\n \"phone_number\": \"+1-555-123-4567\",\n \"linkedin_url\": \"https://linkedin.com/in/janesmith\",\n \"location\": \"San Francisco, CA\",\n \"notes\": \"Met at SaaStr 2025\",\n \"do_not_contact\": true,\n \"tags\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.monaco.com/v1/contacts/{contact_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"email\": \"jane@acme.com\",\n \"title\": \"VP of Engineering\",\n \"phone_number\": \"+1-555-123-4567\",\n \"linkedin_url\": \"https://linkedin.com/in/janesmith\",\n \"location\": \"San Francisco, CA\",\n \"notes\": \"Met at SaaStr 2025\",\n \"do_not_contact\": true,\n \"tags\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "con_abc123",
"account_id": "acc_def456",
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@acme.com",
"title": "VP of Engineering",
"phone_number": "+1-555-123-4567",
"linkedin_url": "https://linkedin.com/in/janesmith",
"location": "San Francisco, CA",
"source": "api",
"do_not_contact": false,
"notes": "Met at SaaStr 2025",
"scoring": {
"heat_score": "Hot"
},
"tags": [
"Decision Maker"
],
"created_at": "2025-06-15T10:30:00Z",
"updated_at": "2026-04-21T12:00:00Z",
"custom_field_1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d": "economic_buyer"
},
"meta": {
"timestamp": "2026-04-21T12:00:00Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Contacts
Update a Contact
Updates an existing contact by its contact_id. Any tags list provided replaces the existing tags on the contact.
PATCH
/
v1
/
contacts
/
{contact_id}
Update a Contact
curl --request PATCH \
--url https://api.monaco.com/v1/contacts/{contact_id} \
--header 'Content-Type: application/json' \
--data '
{
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@acme.com",
"title": "VP of Engineering",
"phone_number": "+1-555-123-4567",
"linkedin_url": "https://linkedin.com/in/janesmith",
"location": "San Francisco, CA",
"notes": "Met at SaaStr 2025",
"do_not_contact": true,
"tags": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://api.monaco.com/v1/contacts/{contact_id}"
payload = {
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@acme.com",
"title": "VP of Engineering",
"phone_number": "+1-555-123-4567",
"linkedin_url": "https://linkedin.com/in/janesmith",
"location": "San Francisco, CA",
"notes": "Met at SaaStr 2025",
"do_not_contact": True,
"tags": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
first_name: 'Jane',
last_name: 'Smith',
email: 'jane@acme.com',
title: 'VP of Engineering',
phone_number: '+1-555-123-4567',
linkedin_url: 'https://linkedin.com/in/janesmith',
location: 'San Francisco, CA',
notes: 'Met at SaaStr 2025',
do_not_contact: true,
tags: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']
})
};
fetch('https://api.monaco.com/v1/contacts/{contact_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.monaco.com/v1/contacts/{contact_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'first_name' => 'Jane',
'last_name' => 'Smith',
'email' => 'jane@acme.com',
'title' => 'VP of Engineering',
'phone_number' => '+1-555-123-4567',
'linkedin_url' => 'https://linkedin.com/in/janesmith',
'location' => 'San Francisco, CA',
'notes' => 'Met at SaaStr 2025',
'do_not_contact' => true,
'tags' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.monaco.com/v1/contacts/{contact_id}"
payload := strings.NewReader("{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"email\": \"jane@acme.com\",\n \"title\": \"VP of Engineering\",\n \"phone_number\": \"+1-555-123-4567\",\n \"linkedin_url\": \"https://linkedin.com/in/janesmith\",\n \"location\": \"San Francisco, CA\",\n \"notes\": \"Met at SaaStr 2025\",\n \"do_not_contact\": true,\n \"tags\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.monaco.com/v1/contacts/{contact_id}")
.header("Content-Type", "application/json")
.body("{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"email\": \"jane@acme.com\",\n \"title\": \"VP of Engineering\",\n \"phone_number\": \"+1-555-123-4567\",\n \"linkedin_url\": \"https://linkedin.com/in/janesmith\",\n \"location\": \"San Francisco, CA\",\n \"notes\": \"Met at SaaStr 2025\",\n \"do_not_contact\": true,\n \"tags\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.monaco.com/v1/contacts/{contact_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"email\": \"jane@acme.com\",\n \"title\": \"VP of Engineering\",\n \"phone_number\": \"+1-555-123-4567\",\n \"linkedin_url\": \"https://linkedin.com/in/janesmith\",\n \"location\": \"San Francisco, CA\",\n \"notes\": \"Met at SaaStr 2025\",\n \"do_not_contact\": true,\n \"tags\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "con_abc123",
"account_id": "acc_def456",
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@acme.com",
"title": "VP of Engineering",
"phone_number": "+1-555-123-4567",
"linkedin_url": "https://linkedin.com/in/janesmith",
"location": "San Francisco, CA",
"source": "api",
"do_not_contact": false,
"notes": "Met at SaaStr 2025",
"scoring": {
"heat_score": "Hot"
},
"tags": [
"Decision Maker"
],
"created_at": "2025-06-15T10:30:00Z",
"updated_at": "2026-04-21T12:00:00Z",
"custom_field_1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d": "economic_buyer"
},
"meta": {
"timestamp": "2026-04-21T12:00:00Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Path Parameters
Body
application/json
Request body for updating a contact via PATCH.
First name of the contact
Example:
"Jane"
Last name of the contact
Example:
"Smith"
Email address of the contact
Example:
"jane@acme.com"
Job title of the contact
Example:
"VP of Engineering"
Phone number of the contact
Example:
"+1-555-123-4567"
LinkedIn profile URL
Example:
"https://linkedin.com/in/janesmith"
Location of the contact
Example:
"San Francisco, CA"
Notes about the contact
Example:
"Met at SaaStr 2025"
Whether the contact has opted out of outreach
Tags for the contact
⌘I