Partially update a single saved group
curl -X POST 'https://api.growthbook.io/api/v1/saved-groups/abc123' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"values":["userId-123","userId-345"]}'import requests
url = "https://api.growthbook.io/api/v1/saved-groups/{id}"
payload = {
"name": "<string>",
"condition": "<string>",
"values": ["<string>"],
"owner": "<string>",
"projects": ["<string>"],
"bypassApproval": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
condition: '<string>',
values: ['<string>'],
owner: '<string>',
projects: ['<string>'],
bypassApproval: true
})
};
fetch('https://api.growthbook.io/api/v1/saved-groups/{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.growthbook.io/api/v1/saved-groups/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'condition' => '<string>',
'values' => [
'<string>'
],
'owner' => '<string>',
'projects' => [
'<string>'
],
'bypassApproval' => true
]),
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.growthbook.io/api/v1/saved-groups/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"condition\": \"<string>\",\n \"values\": [\n \"<string>\"\n ],\n \"owner\": \"<string>\",\n \"projects\": [\n \"<string>\"\n ],\n \"bypassApproval\": true\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.growthbook.io/api/v1/saved-groups/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"condition\": \"<string>\",\n \"values\": [\n \"<string>\"\n ],\n \"owner\": \"<string>\",\n \"projects\": [\n \"<string>\"\n ],\n \"bypassApproval\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.growthbook.io/api/v1/saved-groups/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"condition\": \"<string>\",\n \"values\": [\n \"<string>\"\n ],\n \"owner\": \"<string>\",\n \"projects\": [\n \"<string>\"\n ],\n \"bypassApproval\": true\n}"
response = http.request(request)
puts response.read_body{
"savedGroup": {
"id": "<string>",
"dateCreated": "2023-11-07T05:31:56Z",
"dateUpdated": "2023-11-07T05:31:56Z",
"name": "<string>",
"owner": "<string>",
"ownerEmail": "<string>",
"condition": "<string>",
"attributeKey": "<string>",
"values": [
"<string>"
],
"description": "<string>",
"projects": [
"<string>"
],
"archived": true,
"useEmptyListGroup": true
}
}Authorizations
If using Bearer auth, pass the Secret Key as the token:
curl https://api.growthbook.io/api/v1/features -H "Authorization: Bearer secret_abc123DEF456"
Path Parameters
The id of the requested resource
Body
The display name of the Saved Group
When type = 'condition', this is the JSON-encoded condition for the group
When type = 'list', this is the list of values for the attribute key
The userId or email address of the owner. If an email address is provided, it will be used to look up the userId of the matching organization member. If an ID is provided, it will be validated as existing in the organization.
Set to true to skip the approval flow when the org requires approvals on saved groups. Requires the bypassApprovalChecks permission on the saved group's existing projects. When the org does not require approvals, this flag has no effect.
Response
Resource created
Show child attributes
Show child attributes
Was this page helpful?
curl -X POST 'https://api.growthbook.io/api/v1/saved-groups/abc123' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"values":["userId-123","userId-345"]}'import requests
url = "https://api.growthbook.io/api/v1/saved-groups/{id}"
payload = {
"name": "<string>",
"condition": "<string>",
"values": ["<string>"],
"owner": "<string>",
"projects": ["<string>"],
"bypassApproval": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
condition: '<string>',
values: ['<string>'],
owner: '<string>',
projects: ['<string>'],
bypassApproval: true
})
};
fetch('https://api.growthbook.io/api/v1/saved-groups/{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.growthbook.io/api/v1/saved-groups/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'condition' => '<string>',
'values' => [
'<string>'
],
'owner' => '<string>',
'projects' => [
'<string>'
],
'bypassApproval' => true
]),
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.growthbook.io/api/v1/saved-groups/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"condition\": \"<string>\",\n \"values\": [\n \"<string>\"\n ],\n \"owner\": \"<string>\",\n \"projects\": [\n \"<string>\"\n ],\n \"bypassApproval\": true\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.growthbook.io/api/v1/saved-groups/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"condition\": \"<string>\",\n \"values\": [\n \"<string>\"\n ],\n \"owner\": \"<string>\",\n \"projects\": [\n \"<string>\"\n ],\n \"bypassApproval\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.growthbook.io/api/v1/saved-groups/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"condition\": \"<string>\",\n \"values\": [\n \"<string>\"\n ],\n \"owner\": \"<string>\",\n \"projects\": [\n \"<string>\"\n ],\n \"bypassApproval\": true\n}"
response = http.request(request)
puts response.read_body{
"savedGroup": {
"id": "<string>",
"dateCreated": "2023-11-07T05:31:56Z",
"dateUpdated": "2023-11-07T05:31:56Z",
"name": "<string>",
"owner": "<string>",
"ownerEmail": "<string>",
"condition": "<string>",
"attributeKey": "<string>",
"values": [
"<string>"
],
"description": "<string>",
"projects": [
"<string>"
],
"archived": true,
"useEmptyListGroup": true
}
}
