Update a user Record
curl --request PATCH \
--url https://api.attio.com/v2/objects/users/records/{record_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"values": {
"user_id": "123",
"primary_email_address": "person@company.com",
"person": {
"target_object": "people",
"target_record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
},
"workspace": [
{
"target_object": "workspaces",
"target_record_id": "72ef5feaf-4919-4208-b332-1339ab8ba040"
}
]
}
}
}
'import requests
url = "https://api.attio.com/v2/objects/users/records/{record_id}"
payload = { "data": { "values": {
"user_id": "123",
"primary_email_address": "person@company.com",
"person": {
"target_object": "people",
"target_record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
},
"workspace": [
{
"target_object": "workspaces",
"target_record_id": "72ef5feaf-4919-4208-b332-1339ab8ba040"
}
]
} } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
data: {
values: {
user_id: '123',
primary_email_address: 'person@company.com',
person: {
target_object: 'people',
target_record_id: '891dcbfc-9141-415d-9b2a-2238a6cc012d'
},
workspace: [
{
target_object: 'workspaces',
target_record_id: '72ef5feaf-4919-4208-b332-1339ab8ba040'
}
]
}
}
})
};
fetch('https://api.attio.com/v2/objects/users/records/{record_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.attio.com/v2/objects/users/records/{record_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([
'data' => [
'values' => [
'user_id' => '123',
'primary_email_address' => 'person@company.com',
'person' => [
'target_object' => 'people',
'target_record_id' => '891dcbfc-9141-415d-9b2a-2238a6cc012d'
],
'workspace' => [
[
'target_object' => 'workspaces',
'target_record_id' => '72ef5feaf-4919-4208-b332-1339ab8ba040'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.attio.com/v2/objects/users/records/{record_id}"
payload := strings.NewReader("{\n \"data\": {\n \"values\": {\n \"user_id\": \"123\",\n \"primary_email_address\": \"person@company.com\",\n \"person\": {\n \"target_object\": \"people\",\n \"target_record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n },\n \"workspace\": [\n {\n \"target_object\": \"workspaces\",\n \"target_record_id\": \"72ef5feaf-4919-4208-b332-1339ab8ba040\"\n }\n ]\n }\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.attio.com/v2/objects/users/records/{record_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"values\": {\n \"user_id\": \"123\",\n \"primary_email_address\": \"person@company.com\",\n \"person\": {\n \"target_object\": \"people\",\n \"target_record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n },\n \"workspace\": [\n {\n \"target_object\": \"workspaces\",\n \"target_record_id\": \"72ef5feaf-4919-4208-b332-1339ab8ba040\"\n }\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/objects/users/records/{record_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"values\": {\n \"user_id\": \"123\",\n \"primary_email_address\": \"person@company.com\",\n \"person\": {\n \"target_object\": \"people\",\n \"target_record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n },\n \"workspace\": [\n {\n \"target_object\": \"workspaces\",\n \"target_record_id\": \"72ef5feaf-4919-4208-b332-1339ab8ba040\"\n }\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": {
"workspace_id": "14beef7a-99f7-4534-a87e-70b564330a4c",
"object_id": "97052eb9-e65e-443f-a297-f2d9a4a7f795",
"record_id": "bf071e1f-6035-429d-b874-d83ea64ea13b"
},
"created_at": "2022-11-21T13:22:49.061281000Z",
"web_url": "https://app.attio.com/salarya/person/bf071e1f-6035-429d-b874-d83ea64ea13b",
"values": {
"person": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"target_object": "people",
"target_record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d",
"attribute_type": "record-reference"
}
],
"primary_email_address": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"original_email_address": "person@company.com",
"email_address": "person@company.com",
"email_domain": "company.com",
"email_root_domain": "company.com",
"email_local_specifier": "person",
"attribute_type": "email-address"
}
],
"user_id": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"value": "123",
"attribute_type": "text"
}
],
"workspace": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"target_object": "workspaces",
"target_record_id": "72ef5feaf-4919-4208-b332-1339ab8ba040",
"attribute_type": "record-reference"
}
]
}
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "missing_value",
"message": "Required value for attribute with ID \"41252299-f8c7-4b5e-99c9-4ff8321d2f96\" was not provided."
}{
"status_code": 403,
"type": "auth_error",
"code": "unauthorized",
"message": "You do not have the necessary permissions to update this record."
}{
"status_code": 404,
"type": "invalid_request_error",
"code": "not_found",
"message": "Object with slug/ID \"people\" not found."
}{
"status_code": 409,
"type": "invalid_request_error",
"code": "concurrent_write_conflict",
"message": "The record was modified by another request while this write was being validated. Please try again."
}Users
Update a user Record
Use this endpoint to update user records by record_id. If the update payload includes multiselect attributes, the values supplied will be created and prepended to the list of values that already exist (if any). Use the Upsert user endpoint to overwrite or remove multiselect attribute values.
Required scopes: record_permission:read-write, object_configuration:read.
Supported token levels: workspace, user.
PATCH
/
v2
/
objects
/
users
/
records
/
{record_id}
Update a user Record
curl --request PATCH \
--url https://api.attio.com/v2/objects/users/records/{record_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"values": {
"user_id": "123",
"primary_email_address": "person@company.com",
"person": {
"target_object": "people",
"target_record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
},
"workspace": [
{
"target_object": "workspaces",
"target_record_id": "72ef5feaf-4919-4208-b332-1339ab8ba040"
}
]
}
}
}
'import requests
url = "https://api.attio.com/v2/objects/users/records/{record_id}"
payload = { "data": { "values": {
"user_id": "123",
"primary_email_address": "person@company.com",
"person": {
"target_object": "people",
"target_record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
},
"workspace": [
{
"target_object": "workspaces",
"target_record_id": "72ef5feaf-4919-4208-b332-1339ab8ba040"
}
]
} } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
data: {
values: {
user_id: '123',
primary_email_address: 'person@company.com',
person: {
target_object: 'people',
target_record_id: '891dcbfc-9141-415d-9b2a-2238a6cc012d'
},
workspace: [
{
target_object: 'workspaces',
target_record_id: '72ef5feaf-4919-4208-b332-1339ab8ba040'
}
]
}
}
})
};
fetch('https://api.attio.com/v2/objects/users/records/{record_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.attio.com/v2/objects/users/records/{record_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([
'data' => [
'values' => [
'user_id' => '123',
'primary_email_address' => 'person@company.com',
'person' => [
'target_object' => 'people',
'target_record_id' => '891dcbfc-9141-415d-9b2a-2238a6cc012d'
],
'workspace' => [
[
'target_object' => 'workspaces',
'target_record_id' => '72ef5feaf-4919-4208-b332-1339ab8ba040'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.attio.com/v2/objects/users/records/{record_id}"
payload := strings.NewReader("{\n \"data\": {\n \"values\": {\n \"user_id\": \"123\",\n \"primary_email_address\": \"person@company.com\",\n \"person\": {\n \"target_object\": \"people\",\n \"target_record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n },\n \"workspace\": [\n {\n \"target_object\": \"workspaces\",\n \"target_record_id\": \"72ef5feaf-4919-4208-b332-1339ab8ba040\"\n }\n ]\n }\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.attio.com/v2/objects/users/records/{record_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"values\": {\n \"user_id\": \"123\",\n \"primary_email_address\": \"person@company.com\",\n \"person\": {\n \"target_object\": \"people\",\n \"target_record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n },\n \"workspace\": [\n {\n \"target_object\": \"workspaces\",\n \"target_record_id\": \"72ef5feaf-4919-4208-b332-1339ab8ba040\"\n }\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/objects/users/records/{record_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"values\": {\n \"user_id\": \"123\",\n \"primary_email_address\": \"person@company.com\",\n \"person\": {\n \"target_object\": \"people\",\n \"target_record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n },\n \"workspace\": [\n {\n \"target_object\": \"workspaces\",\n \"target_record_id\": \"72ef5feaf-4919-4208-b332-1339ab8ba040\"\n }\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": {
"workspace_id": "14beef7a-99f7-4534-a87e-70b564330a4c",
"object_id": "97052eb9-e65e-443f-a297-f2d9a4a7f795",
"record_id": "bf071e1f-6035-429d-b874-d83ea64ea13b"
},
"created_at": "2022-11-21T13:22:49.061281000Z",
"web_url": "https://app.attio.com/salarya/person/bf071e1f-6035-429d-b874-d83ea64ea13b",
"values": {
"person": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"target_object": "people",
"target_record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d",
"attribute_type": "record-reference"
}
],
"primary_email_address": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"original_email_address": "person@company.com",
"email_address": "person@company.com",
"email_domain": "company.com",
"email_root_domain": "company.com",
"email_local_specifier": "person",
"attribute_type": "email-address"
}
],
"user_id": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"value": "123",
"attribute_type": "text"
}
],
"workspace": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"target_object": "workspaces",
"target_record_id": "72ef5feaf-4919-4208-b332-1339ab8ba040",
"attribute_type": "record-reference"
}
]
}
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "missing_value",
"message": "Required value for attribute with ID \"41252299-f8c7-4b5e-99c9-4ff8321d2f96\" was not provided."
}{
"status_code": 403,
"type": "auth_error",
"code": "unauthorized",
"message": "You do not have the necessary permissions to update this record."
}{
"status_code": 404,
"type": "invalid_request_error",
"code": "not_found",
"message": "Object with slug/ID \"people\" not found."
}{
"status_code": 409,
"type": "invalid_request_error",
"code": "concurrent_write_conflict",
"message": "The record was modified by another request while this write was being validated. Please try again."
}Authorizations
This API uses OAuth 2.0 with the authorization code grant flow.
FlowAuthorization Code
- Authorization URL
- https://app.attio.com/authorize
- Token URL
- https://app.attio.com/oauth/token
Scopes2
record_permission:read-write
View, and optionally write, records.
object_configuration:read
View, and optionally write, the configuration and attributes of objects.
Path Parameters
A UUID of the user record to update.
Example:
"5e3fb280-007b-495a-a530-9354bde01de1"
Body
application/json
Show child attributes
Show child attributes
Response
Success
Success
Show child attributes
Show child attributes
Was this page helpful?