Add a Contact to an Organization Group
curl --request PUT \
--url https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId} \
--header 'Authorization: Bearer <token>'const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.put(url, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.put("https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyconst url = 'https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}';
const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"organizationGroupId": 8001,
"organizationGroupUrl": "https://api.virtuoussoftware.com/api/OrganizationGroup/8001",
"organizationId": 1,
"organizationName": "Riverside Hope Foundation",
"organizationGroupName": "Board of Directors",
"organizationGroupLocation": "Springfield, OR",
"organizationGroupDescription": "Members of the Riverside Hope Foundation board of directors.",
"contactId": 100234,
"contactName": "Marcus Castellano",
"contactUrl": "https://api.virtuoussoftware.com/api/Contact/100234"
}{
"message": "Authorization has been denied for this request."
}{
"message": "You do not have permission to perform this action."
}{
"message": "Rate limit exceeded. Try again later."
}Contacts and Individuals
Add a Contact to an Organization Group
Adds the contact to the organization group. The request body is empty — both identifiers come from the path.
PUT
/
api
/
OrganizationGroup
/
{organizationGroupId}
/
contacts
/
{contactId}
Add a Contact to an Organization Group
curl --request PUT \
--url https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId} \
--header 'Authorization: Bearer <token>'const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.put(url, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.put("https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyconst url = 'https://api.virtuoussoftware.com/api/OrganizationGroup/{organizationGroupId}/contacts/{contactId}';
const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"organizationGroupId": 8001,
"organizationGroupUrl": "https://api.virtuoussoftware.com/api/OrganizationGroup/8001",
"organizationId": 1,
"organizationName": "Riverside Hope Foundation",
"organizationGroupName": "Board of Directors",
"organizationGroupLocation": "Springfield, OR",
"organizationGroupDescription": "Members of the Riverside Hope Foundation board of directors.",
"contactId": 100234,
"contactName": "Marcus Castellano",
"contactUrl": "https://api.virtuoussoftware.com/api/Contact/100234"
}{
"message": "Authorization has been denied for this request."
}{
"message": "You do not have permission to perform this action."
}{
"message": "Rate limit exceeded. Try again later."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
(Required) The organization group identifier.
(Required) The contact identifier.
Response
OK
The identifier of the contact this record belongs to.
The display name of the related contact.
A link to the related contact.
Last modified on August 11, 2026
Was this page helpful?
⌘I