curl --request PUT \
--url https://api.vomo.org/v1/groups/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Morning Crew",
"description": "A group for the morning crew to organize",
"member_moniker": "Member",
"subgroup_moniker": "Subgroup",
"created_by_user_id": "1",
"parent_id": "1",
"members": [
"1"
]
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Morning Crew',
description: 'A group for the morning crew to organize',
member_moniker: 'Member',
subgroup_moniker: 'Subgroup',
created_by_user_id: '1',
parent_id: '1',
members: ['1']
})
};
fetch('https://api.vomo.org/v1/groups/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.vomo.org/v1/groups/{id}"
payload = {
"name": "Morning Crew",
"description": "A group for the morning crew to organize",
"member_moniker": "Member",
"subgroup_moniker": "Subgroup",
"created_by_user_id": "1",
"parent_id": "1",
"members": ["1"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.vomo.org/v1/groups/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"Morning Crew\",\n \"description\": \"A group for the morning crew to organize\",\n \"member_moniker\": \"Member\",\n \"subgroup_moniker\": \"Subgroup\",\n \"created_by_user_id\": \"1\",\n \"parent_id\": \"1\",\n \"members\": [\n \"1\"\n ]\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vomo.org/v1/groups/{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([
'name' => 'Morning Crew',
'description' => 'A group for the morning crew to organize',
'member_moniker' => 'Member',
'subgroup_moniker' => 'Subgroup',
'created_by_user_id' => '1',
'parent_id' => '1',
'members' => [
'1'
]
]),
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;
}HttpResponse<String> response = Unirest.put("https://api.vomo.org/v1/groups/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Morning Crew\",\n \"description\": \"A group for the morning crew to organize\",\n \"member_moniker\": \"Member\",\n \"subgroup_moniker\": \"Subgroup\",\n \"created_by_user_id\": \"1\",\n \"parent_id\": \"1\",\n \"members\": [\n \"1\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vomo.org/v1/groups/{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 \"name\": \"Morning Crew\",\n \"description\": \"A group for the morning crew to organize\",\n \"member_moniker\": \"Member\",\n \"subgroup_moniker\": \"Subgroup\",\n \"created_by_user_id\": \"1\",\n \"parent_id\": \"1\",\n \"members\": [\n \"1\"\n ]\n}"
response = http.request(request)
puts response.read_bodyconst url = 'https://api.vomo.org/v1/groups/{id}';
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Morning Crew',
description: 'A group for the morning crew to organize',
member_moniker: 'Member',
subgroup_moniker: 'Subgroup',
created_by_user_id: '1',
parent_id: '1',
members: ['1']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"data": {
"id": 604,
"name": "Weekend Warriors — Updated",
"description": "Volunteers available on weekends for any project.",
"parent_id": null,
"has_subgroups": false,
"created_at": "2025-11-21T09:00:00+00:00",
"updated_at": "2025-11-22T11:00:00+00:00"
}
}{
"error": {
"code": 401,
"message": "Invalid API key"
}
}{
"message": "Group not found in your organization."
}{
"message": "The given data was invalid.",
"errors": {
"name": [
"The name field is required."
]
}
}{
"message": "Too Many Attempts."
}{
"message": "Server Error"
}Update a Group
Updates the properties of an existing group. You must supply at least the group name. Provide a parent_id to change the group’s parent. If a members array is supplied it REPLACES the group’s entire membership with exactly those user IDs (members omitted from the array are removed) — to adjust membership, send the full intended member list, or use the dedicated members endpoint.
curl --request PUT \
--url https://api.vomo.org/v1/groups/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Morning Crew",
"description": "A group for the morning crew to organize",
"member_moniker": "Member",
"subgroup_moniker": "Subgroup",
"created_by_user_id": "1",
"parent_id": "1",
"members": [
"1"
]
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Morning Crew',
description: 'A group for the morning crew to organize',
member_moniker: 'Member',
subgroup_moniker: 'Subgroup',
created_by_user_id: '1',
parent_id: '1',
members: ['1']
})
};
fetch('https://api.vomo.org/v1/groups/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.vomo.org/v1/groups/{id}"
payload = {
"name": "Morning Crew",
"description": "A group for the morning crew to organize",
"member_moniker": "Member",
"subgroup_moniker": "Subgroup",
"created_by_user_id": "1",
"parent_id": "1",
"members": ["1"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.vomo.org/v1/groups/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"Morning Crew\",\n \"description\": \"A group for the morning crew to organize\",\n \"member_moniker\": \"Member\",\n \"subgroup_moniker\": \"Subgroup\",\n \"created_by_user_id\": \"1\",\n \"parent_id\": \"1\",\n \"members\": [\n \"1\"\n ]\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vomo.org/v1/groups/{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([
'name' => 'Morning Crew',
'description' => 'A group for the morning crew to organize',
'member_moniker' => 'Member',
'subgroup_moniker' => 'Subgroup',
'created_by_user_id' => '1',
'parent_id' => '1',
'members' => [
'1'
]
]),
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;
}HttpResponse<String> response = Unirest.put("https://api.vomo.org/v1/groups/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Morning Crew\",\n \"description\": \"A group for the morning crew to organize\",\n \"member_moniker\": \"Member\",\n \"subgroup_moniker\": \"Subgroup\",\n \"created_by_user_id\": \"1\",\n \"parent_id\": \"1\",\n \"members\": [\n \"1\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vomo.org/v1/groups/{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 \"name\": \"Morning Crew\",\n \"description\": \"A group for the morning crew to organize\",\n \"member_moniker\": \"Member\",\n \"subgroup_moniker\": \"Subgroup\",\n \"created_by_user_id\": \"1\",\n \"parent_id\": \"1\",\n \"members\": [\n \"1\"\n ]\n}"
response = http.request(request)
puts response.read_bodyconst url = 'https://api.vomo.org/v1/groups/{id}';
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Morning Crew',
description: 'A group for the morning crew to organize',
member_moniker: 'Member',
subgroup_moniker: 'Subgroup',
created_by_user_id: '1',
parent_id: '1',
members: ['1']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"data": {
"id": 604,
"name": "Weekend Warriors — Updated",
"description": "Volunteers available on weekends for any project.",
"parent_id": null,
"has_subgroups": false,
"created_at": "2025-11-21T09:00:00+00:00",
"updated_at": "2025-11-22T11:00:00+00:00"
}
}{
"error": {
"code": 401,
"message": "Invalid API key"
}
}{
"message": "Group not found in your organization."
}{
"message": "The given data was invalid.",
"errors": {
"name": [
"The name field is required."
]
}
}{
"message": "Too Many Attempts."
}{
"message": "Server Error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
VOMO Group ID
Body
Group fields to update
Request body for creating or updating a group.
The name of the group
"Morning Crew"
A description for the group
"A group for the morning crew to organize"
A word describing a group member
"Member"
A word describing subgroups
"Subgroup"
Optional. If provided, must be an existing user who is a member of the organization.
"1"
The VOMO Group ID to set as the parent group of the newly created group
"1"
User IDs to set as the group's membership. On create (POST), these become the initial members. On update (PUT), this replaces the existing membership — any current member omitted from the array is removed from the group. Pass an empty array to clear all members.
Response
Returns the updated group record with all current field values.
List of Groups
Show child attributes
Show child attributes
Was this page helpful?