curl --request PUT \
--url https://api.attio.com/v2/meetings/{meeting_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"linked_records": [
{
"object": "people",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
]
}
}
'import requests
url = "https://api.attio.com/v2/meetings/{meeting_id}"
payload = { "data": { "linked_records": [
{
"object": "people",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
] } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
data: {
linked_records: [{object: 'people', record_id: '891dcbfc-9141-415d-9b2a-2238a6cc012d'}]
}
})
};
fetch('https://api.attio.com/v2/meetings/{meeting_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/meetings/{meeting_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'linked_records' => [
[
'object' => 'people',
'record_id' => '891dcbfc-9141-415d-9b2a-2238a6cc012d'
]
]
]
]),
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/meetings/{meeting_id}"
payload := strings.NewReader("{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.attio.com/v2/meetings/{meeting_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/meetings/{meeting_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": {
"workspace_id": "14beef7a-99f7-4534-a87e-70b564330a4c",
"meeting_id": "cb59ab17-ad15-460c-a126-0715617c0853"
},
"title": "Onboarding Session",
"description": "Getting you up to speed with the platform and answering any questions you have.",
"is_all_day": false,
"start": {
"datetime": "2027-11-27T14:00:00.000-04:00",
"timezone": "America/New_York"
},
"end": {
"datetime": "2027-11-27T15:00:00.000-04:00",
"timezone": "America/New_York"
},
"participants": [
{
"status": "accepted",
"is_organizer": false,
"email_address": "person@company.com",
"name": "Simon Mitchell"
}
],
"linked_records": [
{
"object_slug": "people",
"object_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
],
"created_at": "2023-01-01T15:00:00.000000000Z",
"created_by_actor": {
"type": "workspace-member",
"id": "50cf242c-7fa3-4cad-87d0-75b1af71c57b"
}
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "value_not_found",
"message": "Could not find record for values passed to the linked_records field. Please ensure that all values you are trying to set have a corresponding record that already exists in Attio."
}{
"status_code": 404,
"type": "invalid_request_error",
"code": "not_found",
"message": "Meeting with ID \"cb59ab17-ad15-460c-a126-0715617c0853\" was not found."
}Update a meeting (overwrite linked records)
Replaces a meeting’s linked records with the records supplied. Any record which is currently linked and is not in the request is unlinked, including records which Attio linked automatically from the meeting’s participants. Passing an empty array unlinks every record. Use the PATCH endpoint to add linked records without removing the records which already exist.
No other meeting fields can be updated. Attio automatically links the meeting participants’ companies to the meeting; this behavior is asynchronous, so a company which is linked after this request completes is not removed by it.
This endpoint is in beta. We will aim to avoid breaking changes, but small updates may be made as we roll out to more users.
Required scopes: meeting:read-write, record_permission:read.
curl --request PUT \
--url https://api.attio.com/v2/meetings/{meeting_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"linked_records": [
{
"object": "people",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
]
}
}
'import requests
url = "https://api.attio.com/v2/meetings/{meeting_id}"
payload = { "data": { "linked_records": [
{
"object": "people",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
] } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
data: {
linked_records: [{object: 'people', record_id: '891dcbfc-9141-415d-9b2a-2238a6cc012d'}]
}
})
};
fetch('https://api.attio.com/v2/meetings/{meeting_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/meetings/{meeting_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'linked_records' => [
[
'object' => 'people',
'record_id' => '891dcbfc-9141-415d-9b2a-2238a6cc012d'
]
]
]
]),
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/meetings/{meeting_id}"
payload := strings.NewReader("{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.attio.com/v2/meetings/{meeting_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/meetings/{meeting_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": {
"workspace_id": "14beef7a-99f7-4534-a87e-70b564330a4c",
"meeting_id": "cb59ab17-ad15-460c-a126-0715617c0853"
},
"title": "Onboarding Session",
"description": "Getting you up to speed with the platform and answering any questions you have.",
"is_all_day": false,
"start": {
"datetime": "2027-11-27T14:00:00.000-04:00",
"timezone": "America/New_York"
},
"end": {
"datetime": "2027-11-27T15:00:00.000-04:00",
"timezone": "America/New_York"
},
"participants": [
{
"status": "accepted",
"is_organizer": false,
"email_address": "person@company.com",
"name": "Simon Mitchell"
}
],
"linked_records": [
{
"object_slug": "people",
"object_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
],
"created_at": "2023-01-01T15:00:00.000000000Z",
"created_by_actor": {
"type": "workspace-member",
"id": "50cf242c-7fa3-4cad-87d0-75b1af71c57b"
}
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "value_not_found",
"message": "Could not find record for values passed to the linked_records field. Please ensure that all values you are trying to set have a corresponding record that already exists in Attio."
}{
"status_code": 404,
"type": "invalid_request_error",
"code": "not_found",
"message": "Meeting with ID \"cb59ab17-ad15-460c-a126-0715617c0853\" was not found."
}Authorizations
This API uses OAuth 2.0 with the authorization code grant flow.
Path Parameters
A UUID which identifies the meeting to update.
"cb59ab17-ad15-460c-a126-0715617c0853"
Body
Show child attributes
Show child attributes
Response
Success
Success
Show child attributes
Show child attributes
Was this page helpful?