Update Contact
curl --request PATCH \
--url https://api.example.com/v1/contacts/:id \
--header 'Content-Type: application/json' \
--data '
{
"full_name": "<string>",
"email": "<string>",
"phone": "<string>",
"job_title": "<string>",
"company_name": "<string>",
"linkedin_url": "<string>",
"notes": "<string>"
}
'import requests
url = "https://api.example.com/v1/contacts/:id"
payload = {
"full_name": "<string>",
"email": "<string>",
"phone": "<string>",
"job_title": "<string>",
"company_name": "<string>",
"linkedin_url": "<string>",
"notes": "<string>"
}
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({
full_name: '<string>',
email: '<string>',
phone: '<string>',
job_title: '<string>',
company_name: '<string>',
linkedin_url: '<string>',
notes: '<string>'
})
};
fetch('https://api.example.com/v1/contacts/: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.example.com/v1/contacts/: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([
'full_name' => '<string>',
'email' => '<string>',
'phone' => '<string>',
'job_title' => '<string>',
'company_name' => '<string>',
'linkedin_url' => '<string>',
'notes' => '<string>'
]),
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.example.com/v1/contacts/:id"
payload := strings.NewReader("{\n \"full_name\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"notes\": \"<string>\"\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.example.com/v1/contacts/:id")
.header("Content-Type", "application/json")
.body("{\n \"full_name\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/contacts/: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 \"full_name\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"full_name": "<string>",
"updated_date": "<string>"
}
}Contacts
Update Contact
Update an existing contact’s information
PATCH
/
v1
/
contacts
/
:id
Update Contact
curl --request PATCH \
--url https://api.example.com/v1/contacts/:id \
--header 'Content-Type: application/json' \
--data '
{
"full_name": "<string>",
"email": "<string>",
"phone": "<string>",
"job_title": "<string>",
"company_name": "<string>",
"linkedin_url": "<string>",
"notes": "<string>"
}
'import requests
url = "https://api.example.com/v1/contacts/:id"
payload = {
"full_name": "<string>",
"email": "<string>",
"phone": "<string>",
"job_title": "<string>",
"company_name": "<string>",
"linkedin_url": "<string>",
"notes": "<string>"
}
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({
full_name: '<string>',
email: '<string>',
phone: '<string>',
job_title: '<string>',
company_name: '<string>',
linkedin_url: '<string>',
notes: '<string>'
})
};
fetch('https://api.example.com/v1/contacts/: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.example.com/v1/contacts/: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([
'full_name' => '<string>',
'email' => '<string>',
'phone' => '<string>',
'job_title' => '<string>',
'company_name' => '<string>',
'linkedin_url' => '<string>',
'notes' => '<string>'
]),
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.example.com/v1/contacts/:id"
payload := strings.NewReader("{\n \"full_name\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"notes\": \"<string>\"\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.example.com/v1/contacts/:id")
.header("Content-Type", "application/json")
.body("{\n \"full_name\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/contacts/: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 \"full_name\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"job_title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"full_name": "<string>",
"updated_date": "<string>"
}
}Request
Path Parameters
string
required
Contact UUID
Headers
Authorization: Bearer wbk_your_api_key_here
Content-Type: application/json
Body Parameters
Only include fields you want to update. Omitted fields will remain unchanged.
string
Contact’s full name
string
Email address
string
Phone number with country code
string
Job title or position
string
Company name
string
LinkedIn profile URL
string
Additional notes (appends to existing notes)
Response
object
curl -X PATCH \
https://data.leadlex.com/functions/v1/api-gateway/v1/contacts/123e4567-e89b-12d3-a456-426614174000 \
-H "Authorization: Bearer wbk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"job_title": "Chief Legal Officer",
"notes": "Promoted to CLO in Q1 2026"
}'
import requests
API_KEY = "wbk_your_api_key_here"
BASE_URL = "https://data.leadlex.com/functions/v1/api-gateway"
CONTACT_ID = "123e4567-e89b-12d3-a456-426614174000"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
updates = {
"job_title": "Chief Legal Officer",
"notes": "Promoted to CLO in Q1 2026"
}
response = requests.patch(
f"{BASE_URL}/v1/contacts/{CONTACT_ID}",
headers=headers,
json=updates
)
contact = response.json()["data"]
print(f"Updated contact: {contact['job_title']}")
const CONTACT_ID = '123e4567-e89b-12d3-a456-426614174000';
const response = await fetch(
`https://data.leadlex.com/functions/v1/api-gateway/v1/contacts/${CONTACT_ID}`,
{
method: 'PATCH',
headers: {
'Authorization': 'Bearer wbk_your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
job_title: 'Chief Legal Officer',
notes: 'Promoted to CLO in Q1 2026'
})
}
);
const { data } = await response.json();
console.log(`Updated: ${data.job_title}`);
Example Response
{
"data": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"full_name": "Jane Doe",
"email": "jane@example.com",
"job_title": "Chief Legal Officer",
"company_name": "Acme Legal",
"notes": "Met at conference. Interested in legal automation tools.\nPromoted to CLO in Q1 2026",
"updated_date": "2026-02-24T15:00:00Z"
}
}
Partial Updates
You can update a single field without affecting others:# Update only the phone number
curl -X PATCH \
https://data.leadlex.com/functions/v1/api-gateway/v1/contacts/123e4567 \
-H "Authorization: Bearer wbk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"phone": "+1-555-9999"}'
Errors
| Status | Code | Description |
|---|---|---|
| 400 | validation_error | Invalid field format |
| 401 | invalid_key | Invalid API key |
| 403 | insufficient_permissions | Missing write permission |
| 404 | not_found | Contact not found |
| 429 | rate_limited | Rate limit exceeded |
Example Validation Error
{
"error": {
"code": "validation_error",
"message": "Invalid request parameters",
"details": {
"fields": {
"email": "Invalid email format"
}
}
}
}