curl --request PATCH \
--url https://www.ruddr.io/api/workspace/pipeline-activities/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subject": "<string>",
"content": "<string>",
"date": "2023-12-25",
"duration": 123,
"typeId": "<string>",
"memberIds": [
"<string>"
],
"contactIds": [
"<string>"
],
"companyIds": [
"<string>"
],
"opportunityIds": [
"<string>"
]
}
'import requests
url = "https://www.ruddr.io/api/workspace/pipeline-activities/{id}"
payload = {
"subject": "<string>",
"content": "<string>",
"date": "2023-12-25",
"duration": 123,
"typeId": "<string>",
"memberIds": ["<string>"],
"contactIds": ["<string>"],
"companyIds": ["<string>"],
"opportunityIds": ["<string>"]
}
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({
subject: '<string>',
content: '<string>',
date: '2023-12-25',
duration: 123,
typeId: '<string>',
memberIds: ['<string>'],
contactIds: ['<string>'],
companyIds: ['<string>'],
opportunityIds: ['<string>']
})
};
fetch('https://www.ruddr.io/api/workspace/pipeline-activities/{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://www.ruddr.io/api/workspace/pipeline-activities/{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([
'subject' => '<string>',
'content' => '<string>',
'date' => '2023-12-25',
'duration' => 123,
'typeId' => '<string>',
'memberIds' => [
'<string>'
],
'contactIds' => [
'<string>'
],
'companyIds' => [
'<string>'
],
'opportunityIds' => [
'<string>'
]
]),
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://www.ruddr.io/api/workspace/pipeline-activities/{id}"
payload := strings.NewReader("{\n \"subject\": \"<string>\",\n \"content\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"duration\": 123,\n \"typeId\": \"<string>\",\n \"memberIds\": [\n \"<string>\"\n ],\n \"contactIds\": [\n \"<string>\"\n ],\n \"companyIds\": [\n \"<string>\"\n ],\n \"opportunityIds\": [\n \"<string>\"\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://www.ruddr.io/api/workspace/pipeline-activities/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subject\": \"<string>\",\n \"content\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"duration\": 123,\n \"typeId\": \"<string>\",\n \"memberIds\": [\n \"<string>\"\n ],\n \"contactIds\": [\n \"<string>\"\n ],\n \"companyIds\": [\n \"<string>\"\n ],\n \"opportunityIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/pipeline-activities/{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 \"subject\": \"<string>\",\n \"content\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"duration\": 123,\n \"typeId\": \"<string>\",\n \"memberIds\": [\n \"<string>\"\n ],\n \"contactIds\": [\n \"<string>\"\n ],\n \"companyIds\": [\n \"<string>\"\n ],\n \"opportunityIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "a3d7e1b2-5c94-4f68-b0a2-e8f1d3c76a49",
"subject": "Discovery call with client",
"content": "Discussed project requirements and timeline expectations.",
"direction": "outbound",
"date": "2025-09-15",
"duration": 30,
"createdAt": "2025-09-15T14:22:31.482Z",
"pipelineActivityType": {
"id": "9c3a7d1e-5b28-4f60-a4e2-d8f1b0c73a96",
"name": "Call"
},
"members": [
{
"id": "b4e8c2f1-7d35-4a90-81b3-f6a9d0e54c27",
"name": "Sarah Johnson"
}
],
"contacts": [
{
"id": "c5f9d3a2-8e46-4b01-92c4-a7b0e1f65d38",
"name": "John Smith"
}
],
"companies": [
{
"id": "d6a0e4b3-9f57-4c12-a3d5-b8c1f2a76e49",
"name": "Acme Corp"
}
],
"opportunities": [
{
"id": "e7b1f5c4-0a68-4d23-b4e6-c9d2a3b87f50",
"name": "Website Redesign"
}
]
}Update a pipeline activity
curl --request PATCH \
--url https://www.ruddr.io/api/workspace/pipeline-activities/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subject": "<string>",
"content": "<string>",
"date": "2023-12-25",
"duration": 123,
"typeId": "<string>",
"memberIds": [
"<string>"
],
"contactIds": [
"<string>"
],
"companyIds": [
"<string>"
],
"opportunityIds": [
"<string>"
]
}
'import requests
url = "https://www.ruddr.io/api/workspace/pipeline-activities/{id}"
payload = {
"subject": "<string>",
"content": "<string>",
"date": "2023-12-25",
"duration": 123,
"typeId": "<string>",
"memberIds": ["<string>"],
"contactIds": ["<string>"],
"companyIds": ["<string>"],
"opportunityIds": ["<string>"]
}
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({
subject: '<string>',
content: '<string>',
date: '2023-12-25',
duration: 123,
typeId: '<string>',
memberIds: ['<string>'],
contactIds: ['<string>'],
companyIds: ['<string>'],
opportunityIds: ['<string>']
})
};
fetch('https://www.ruddr.io/api/workspace/pipeline-activities/{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://www.ruddr.io/api/workspace/pipeline-activities/{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([
'subject' => '<string>',
'content' => '<string>',
'date' => '2023-12-25',
'duration' => 123,
'typeId' => '<string>',
'memberIds' => [
'<string>'
],
'contactIds' => [
'<string>'
],
'companyIds' => [
'<string>'
],
'opportunityIds' => [
'<string>'
]
]),
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://www.ruddr.io/api/workspace/pipeline-activities/{id}"
payload := strings.NewReader("{\n \"subject\": \"<string>\",\n \"content\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"duration\": 123,\n \"typeId\": \"<string>\",\n \"memberIds\": [\n \"<string>\"\n ],\n \"contactIds\": [\n \"<string>\"\n ],\n \"companyIds\": [\n \"<string>\"\n ],\n \"opportunityIds\": [\n \"<string>\"\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://www.ruddr.io/api/workspace/pipeline-activities/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subject\": \"<string>\",\n \"content\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"duration\": 123,\n \"typeId\": \"<string>\",\n \"memberIds\": [\n \"<string>\"\n ],\n \"contactIds\": [\n \"<string>\"\n ],\n \"companyIds\": [\n \"<string>\"\n ],\n \"opportunityIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/pipeline-activities/{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 \"subject\": \"<string>\",\n \"content\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"duration\": 123,\n \"typeId\": \"<string>\",\n \"memberIds\": [\n \"<string>\"\n ],\n \"contactIds\": [\n \"<string>\"\n ],\n \"companyIds\": [\n \"<string>\"\n ],\n \"opportunityIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "a3d7e1b2-5c94-4f68-b0a2-e8f1d3c76a49",
"subject": "Discovery call with client",
"content": "Discussed project requirements and timeline expectations.",
"direction": "outbound",
"date": "2025-09-15",
"duration": 30,
"createdAt": "2025-09-15T14:22:31.482Z",
"pipelineActivityType": {
"id": "9c3a7d1e-5b28-4f60-a4e2-d8f1b0c73a96",
"name": "Call"
},
"members": [
{
"id": "b4e8c2f1-7d35-4a90-81b3-f6a9d0e54c27",
"name": "Sarah Johnson"
}
],
"contacts": [
{
"id": "c5f9d3a2-8e46-4b01-92c4-a7b0e1f65d38",
"name": "John Smith"
}
],
"companies": [
{
"id": "d6a0e4b3-9f57-4c12-a3d5-b8c1f2a76e49",
"name": "Acme Corp"
}
],
"opportunities": [
{
"id": "e7b1f5c4-0a68-4d23-b4e6-c9d2a3b87f50",
"name": "Website Redesign"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The pipeline activity uuid.
Body
The subject of the pipeline activity. Max 255 characters.
The content or body of the pipeline activity. Max 5000 characters.
Whether the activity was initiated by your team (outbound) or by the other party (inbound).
inbound, outbound The date of the pipeline activity. Will be in the form YYYY-MM-DD.
The duration of the pipeline activity in minutes.
The uuid of the pipeline activity type.
When provided, replaces the set of members associated with this activity. Omit to leave members unchanged. Send an empty array to clear.
When provided, replaces the set of contacts associated with this activity. Omit to leave contacts unchanged. Send an empty array to clear.
When provided, replaces the set of companies associated with this activity. Omit to leave companies unchanged. Send an empty array to clear.
When provided, replaces the set of opportunities associated with this activity. Omit to leave opportunities unchanged. Send an empty array to clear.
Response
200
The unique identifier for the object.
The subject of the pipeline activity.
The content or body of the pipeline activity.
Whether the activity was initiated by your team (outbound) or by the other party (inbound).
inbound, outbound The date of the pipeline activity. Will be in the form YYYY-MM-DD.
The duration of the pipeline activity in minutes.
The timestamp when the object was created.
The pipeline activity type associated with this activity.
Show child attributes
Show child attributes
The members associated with this activity.
Show child attributes
Show child attributes
The contacts associated with this activity.
Show child attributes
Show child attributes
The companies associated with this activity.
Show child attributes
Show child attributes
The opportunities associated with this activity.
Show child attributes
Show child attributes