Edit a single project
curl -X PUT 'https://api.growthbook.io/api/v1/projects/abc123' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"My Subsidiary"}'import requests
url = "https://api.growthbook.io/api/v1/projects/{id}"
payload = {
"name": "<string>",
"owner": "<string>",
"description": "<string>",
"publicId": "<string>",
"settings": {
"statsEngine": "<string>",
"confidenceLevel": 123,
"pValueThreshold": 123
},
"restrictAccess": True,
"allowTargeting": 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>',
owner: '<string>',
description: '<string>',
publicId: '<string>',
settings: {statsEngine: '<string>', confidenceLevel: 123, pValueThreshold: 123},
restrictAccess: true,
allowTargeting: true
})
};
fetch('https://api.growthbook.io/api/v1/projects/{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/projects/{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>',
'owner' => '<string>',
'description' => '<string>',
'publicId' => '<string>',
'settings' => [
'statsEngine' => '<string>',
'confidenceLevel' => 123,
'pValueThreshold' => 123
],
'restrictAccess' => true,
'allowTargeting' => 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/projects/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"owner\": \"<string>\",\n \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": true,\n \"allowTargeting\": 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/projects/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"owner\": \"<string>\",\n \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": true,\n \"allowTargeting\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.growthbook.io/api/v1/projects/{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 \"owner\": \"<string>\",\n \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": true,\n \"allowTargeting\": true\n}"
response = http.request(request)
puts response.read_body{
"project": {
"id": "<string>",
"name": "<string>",
"dateCreated": "2023-11-07T05:31:56Z",
"dateUpdated": "2023-11-07T05:31:56Z",
"owner": "<string>",
"description": "<string>",
"publicId": "<string>",
"restrictAccess": true,
"allowTargeting": true,
"ownerEmail": "<string>",
"settings": {
"statsEngine": "<string>",
"confidenceLevel": 123,
"pValueThreshold": 123
}
}
}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
Project name.
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.
Project description.
10000URL-safe slug (lowercase letters, numbers, dashes).
Project stats settings that, when set, override the organization settings.
Show child attributes
Show child attributes
When true, only members with an explicit role on this Project (directly or via a team) can access it. Members with the manageTeam permission retain access. Requires a Pro or Enterprise plan.
Whether Feature Flags owned by other Projects may add this Project to their Targeting Projects. Defaults to true. Turning it off blocks new targeting (and All Projects); existing targeting is kept.
Response
Resource updated
Show child attributes
Show child attributes
Was this page helpful?
curl -X PUT 'https://api.growthbook.io/api/v1/projects/abc123' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"My Subsidiary"}'import requests
url = "https://api.growthbook.io/api/v1/projects/{id}"
payload = {
"name": "<string>",
"owner": "<string>",
"description": "<string>",
"publicId": "<string>",
"settings": {
"statsEngine": "<string>",
"confidenceLevel": 123,
"pValueThreshold": 123
},
"restrictAccess": True,
"allowTargeting": 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>',
owner: '<string>',
description: '<string>',
publicId: '<string>',
settings: {statsEngine: '<string>', confidenceLevel: 123, pValueThreshold: 123},
restrictAccess: true,
allowTargeting: true
})
};
fetch('https://api.growthbook.io/api/v1/projects/{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/projects/{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>',
'owner' => '<string>',
'description' => '<string>',
'publicId' => '<string>',
'settings' => [
'statsEngine' => '<string>',
'confidenceLevel' => 123,
'pValueThreshold' => 123
],
'restrictAccess' => true,
'allowTargeting' => 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/projects/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"owner\": \"<string>\",\n \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": true,\n \"allowTargeting\": 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/projects/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"owner\": \"<string>\",\n \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": true,\n \"allowTargeting\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.growthbook.io/api/v1/projects/{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 \"owner\": \"<string>\",\n \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": true,\n \"allowTargeting\": true\n}"
response = http.request(request)
puts response.read_body{
"project": {
"id": "<string>",
"name": "<string>",
"dateCreated": "2023-11-07T05:31:56Z",
"dateUpdated": "2023-11-07T05:31:56Z",
"owner": "<string>",
"description": "<string>",
"publicId": "<string>",
"restrictAccess": true,
"allowTargeting": true,
"ownerEmail": "<string>",
"settings": {
"statsEngine": "<string>",
"confidenceLevel": 123,
"pValueThreshold": 123
}
}
}
