Update a single metricGroup
PUT
/
v1
/
metric-groups
/
{id}
cURL
curl -X PUT 'https://api.growthbook.io/api/v1/metric-groups/{id}' \
-H 'Authorization: Bearer YOUR_API_KEY'import requests
url = "https://api.growthbook.io/api/v1/metric-groups/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"tags": ["<string>"],
"projects": ["<string>"],
"metrics": ["<string>"],
"datasource": "<string>",
"owner": "<string>",
"archived": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
tags: ['<string>'],
projects: ['<string>'],
metrics: ['<string>'],
datasource: '<string>',
owner: '<string>',
archived: true
})
};
fetch('https://api.growthbook.io/api/v1/metric-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/metric-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' => '<string>',
'description' => '<string>',
'tags' => [
'<string>'
],
'projects' => [
'<string>'
],
'metrics' => [
'<string>'
],
'datasource' => '<string>',
'owner' => '<string>',
'archived' => 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/metric-groups/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"projects\": [\n \"<string>\"\n ],\n \"metrics\": [\n \"<string>\"\n ],\n \"datasource\": \"<string>\",\n \"owner\": \"<string>\",\n \"archived\": true\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.growthbook.io/api/v1/metric-groups/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"projects\": [\n \"<string>\"\n ],\n \"metrics\": [\n \"<string>\"\n ],\n \"datasource\": \"<string>\",\n \"owner\": \"<string>\",\n \"archived\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.growthbook.io/api/v1/metric-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\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"projects\": [\n \"<string>\"\n ],\n \"metrics\": [\n \"<string>\"\n ],\n \"datasource\": \"<string>\",\n \"owner\": \"<string>\",\n \"archived\": true\n}"
response = http.request(request)
puts response.read_body{
"metricGroup": {
"id": "<string>",
"dateCreated": "2023-11-07T05:31:56Z",
"dateUpdated": "2023-11-07T05:31:56Z",
"owner": "<string>",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"projects": [
"<string>"
],
"metrics": [
"<string>"
],
"datasource": "<string>",
"archived": true,
"ownerEmail": "<string>"
}
}{
"confirmation": {
"id": "<string>",
"status": "pending",
"actions": [
{
"action": "feature.create",
"environments": [
"<string>"
]
}
],
"summary": "<string>",
"url": "<string>",
"expiresAt": "<string>",
"response": {
"status": 123,
"body": "<unknown>"
},
"note": "<string>"
},
"message": "<string>"
}Authorizations
bearerAuthbasicAuth
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
Body
application/json
Short display name. Put details in description.
Put context here, not in the name.
Maximum string length:
10000Tags for filtering and grouping. Use these instead of encoding groups in names.
Project IDs that can use this. An empty list means all Projects. Projects control access and availability, so don't use them as labels.
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.
Response
Resource updated
Show child attributes
Show child attributes
Was this page helpful?
⌘I
cURL
curl -X PUT 'https://api.growthbook.io/api/v1/metric-groups/{id}' \
-H 'Authorization: Bearer YOUR_API_KEY'import requests
url = "https://api.growthbook.io/api/v1/metric-groups/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"tags": ["<string>"],
"projects": ["<string>"],
"metrics": ["<string>"],
"datasource": "<string>",
"owner": "<string>",
"archived": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
tags: ['<string>'],
projects: ['<string>'],
metrics: ['<string>'],
datasource: '<string>',
owner: '<string>',
archived: true
})
};
fetch('https://api.growthbook.io/api/v1/metric-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/metric-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' => '<string>',
'description' => '<string>',
'tags' => [
'<string>'
],
'projects' => [
'<string>'
],
'metrics' => [
'<string>'
],
'datasource' => '<string>',
'owner' => '<string>',
'archived' => 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/metric-groups/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"projects\": [\n \"<string>\"\n ],\n \"metrics\": [\n \"<string>\"\n ],\n \"datasource\": \"<string>\",\n \"owner\": \"<string>\",\n \"archived\": true\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.growthbook.io/api/v1/metric-groups/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"projects\": [\n \"<string>\"\n ],\n \"metrics\": [\n \"<string>\"\n ],\n \"datasource\": \"<string>\",\n \"owner\": \"<string>\",\n \"archived\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.growthbook.io/api/v1/metric-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\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"projects\": [\n \"<string>\"\n ],\n \"metrics\": [\n \"<string>\"\n ],\n \"datasource\": \"<string>\",\n \"owner\": \"<string>\",\n \"archived\": true\n}"
response = http.request(request)
puts response.read_body{
"metricGroup": {
"id": "<string>",
"dateCreated": "2023-11-07T05:31:56Z",
"dateUpdated": "2023-11-07T05:31:56Z",
"owner": "<string>",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"projects": [
"<string>"
],
"metrics": [
"<string>"
],
"datasource": "<string>",
"archived": true,
"ownerEmail": "<string>"
}
}{
"confirmation": {
"id": "<string>",
"status": "pending",
"actions": [
{
"action": "feature.create",
"environments": [
"<string>"
]
}
],
"summary": "<string>",
"url": "<string>",
"expiresAt": "<string>",
"response": {
"status": 123,
"body": "<unknown>"
},
"note": "<string>"
},
"message": "<string>"
}
