Update an activity
curl --request PATCH \
--url https://api.attio.com/v2/activities/{activity} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"api_slug": "site_visits",
"singular_noun": "Site visit",
"plural_noun": "Site visits"
}
}
'import requests
url = "https://api.attio.com/v2/activities/{activity}"
payload = { "data": {
"api_slug": "site_visits",
"singular_noun": "Site visit",
"plural_noun": "Site visits"
} }
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: {
api_slug: 'site_visits',
singular_noun: 'Site visit',
plural_noun: 'Site visits'
}
})
};
fetch('https://api.attio.com/v2/activities/{activity}', 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/activities/{activity}",
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' => [
'api_slug' => 'site_visits',
'singular_noun' => 'Site visit',
'plural_noun' => 'Site visits'
]
]),
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/activities/{activity}"
payload := strings.NewReader("{\n \"data\": {\n \"api_slug\": \"site_visits\",\n \"singular_noun\": \"Site visit\",\n \"plural_noun\": \"Site visits\"\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/activities/{activity}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"api_slug\": \"site_visits\",\n \"singular_noun\": \"Site visit\",\n \"plural_noun\": \"Site visits\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/activities/{activity}")
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 \"api_slug\": \"site_visits\",\n \"singular_noun\": \"Site visit\",\n \"plural_noun\": \"Site visits\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": {
"workspace_id": "14beef7a-99f7-4534-a87e-70b564330a4c",
"activity_id": "97052eb9-e65e-443f-a297-f2d9a4a7f795"
},
"api_slug": "phone_calls",
"singular_noun": "Phone call",
"plural_noun": "Phone calls",
"extends": [
{
"schema_id": "b1d6a29e-6f6f-4a0a-9b0e-59f0a3e3f7a1",
"schema_slug": "calls"
}
],
"is_system_activity": true,
"created_at": "2022-11-21T13:22:49.061281000Z"
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "validation_type",
"message": "You passed an empty payload. Please ensure you are updating at least one property in your request."
}{
"status_code": 403,
"type": "auth_error",
"code": "unauthorized",
"message": "You do not have the necessary permissions to update this activity."
}{
"status_code": 404,
"type": "invalid_request_error",
"code": "not_found",
"message": "Activity with slug/ID \"phone_calls\" not found."
}{
"status_code": 409,
"type": "invalid_request_error",
"code": "slug_conflict",
"message": "Failed to update activity. Please ensure your api_slug is unique."
}Activities
Update an activity
Updates a single activity by its activity_id or slug. The schema an activity extends is fixed after creation, so extends cannot be changed.
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: activity_configuration:read-write.
Supported token levels: workspace, user.
PATCH
/
v2
/
activities
/
{activity}
Update an activity
curl --request PATCH \
--url https://api.attio.com/v2/activities/{activity} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"api_slug": "site_visits",
"singular_noun": "Site visit",
"plural_noun": "Site visits"
}
}
'import requests
url = "https://api.attio.com/v2/activities/{activity}"
payload = { "data": {
"api_slug": "site_visits",
"singular_noun": "Site visit",
"plural_noun": "Site visits"
} }
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: {
api_slug: 'site_visits',
singular_noun: 'Site visit',
plural_noun: 'Site visits'
}
})
};
fetch('https://api.attio.com/v2/activities/{activity}', 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/activities/{activity}",
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' => [
'api_slug' => 'site_visits',
'singular_noun' => 'Site visit',
'plural_noun' => 'Site visits'
]
]),
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/activities/{activity}"
payload := strings.NewReader("{\n \"data\": {\n \"api_slug\": \"site_visits\",\n \"singular_noun\": \"Site visit\",\n \"plural_noun\": \"Site visits\"\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/activities/{activity}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"api_slug\": \"site_visits\",\n \"singular_noun\": \"Site visit\",\n \"plural_noun\": \"Site visits\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/activities/{activity}")
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 \"api_slug\": \"site_visits\",\n \"singular_noun\": \"Site visit\",\n \"plural_noun\": \"Site visits\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": {
"workspace_id": "14beef7a-99f7-4534-a87e-70b564330a4c",
"activity_id": "97052eb9-e65e-443f-a297-f2d9a4a7f795"
},
"api_slug": "phone_calls",
"singular_noun": "Phone call",
"plural_noun": "Phone calls",
"extends": [
{
"schema_id": "b1d6a29e-6f6f-4a0a-9b0e-59f0a3e3f7a1",
"schema_slug": "calls"
}
],
"is_system_activity": true,
"created_at": "2022-11-21T13:22:49.061281000Z"
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "validation_type",
"message": "You passed an empty payload. Please ensure you are updating at least one property in your request."
}{
"status_code": 403,
"type": "auth_error",
"code": "unauthorized",
"message": "You do not have the necessary permissions to update this activity."
}{
"status_code": 404,
"type": "invalid_request_error",
"code": "not_found",
"message": "Activity with slug/ID \"phone_calls\" not found."
}{
"status_code": 409,
"type": "invalid_request_error",
"code": "slug_conflict",
"message": "Failed to update activity. Please ensure your api_slug is unique."
}Authorizations
This API uses OAuth 2.0 with the authorization code grant flow.
Path Parameters
A UUID or slug to identify the activity.
Example:
"phone_calls"
Body
application/json
Show child attributes
Show child attributes
Response
Success
Success
Show child attributes
Show child attributes
Was this page helpful?