POST
/
v1
/
projects
cURL
curl -X POST 'https://api.growthbook.io/api/v1/projects' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"My Project","description":"Super cool project"}'import requests
url = "https://api.growthbook.io/api/v1/projects"
payload = {
"name": "<string>",
"description": "<string>",
"publicId": "<string>",
"settings": {
"statsEngine": "<string>",
"confidenceLevel": 123,
"pValueThreshold": 123
},
"restrictAccess": 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>',
description: '<string>',
publicId: '<string>',
settings: {statsEngine: '<string>', confidenceLevel: 123, pValueThreshold: 123},
restrictAccess: true
})
};
fetch('https://api.growthbook.io/api/v1/projects', 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",
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>',
'description' => '<string>',
'publicId' => '<string>',
'settings' => [
'statsEngine' => '<string>',
'confidenceLevel' => 123,
'pValueThreshold' => 123
],
'restrictAccess' => 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"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": 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/projects")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.growthbook.io/api/v1/projects")
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 \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": 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",
"description": "<string>",
"publicId": "<string>",
"restrictAccess": true,
"settings": {
"statsEngine": "<string>",
"confidenceLevel": 123,
"pValueThreshold": 123
}
}
}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"
Body
application/json
Maximum string length:
10000URL-safe slug (lowercase letters, numbers, dashes). Auto-generated from name if not provided.
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.
Response
200 - application/json
Resource created
Show child attributes
Show child attributes
Was this page helpful?
⌘I
cURL
curl -X POST 'https://api.growthbook.io/api/v1/projects' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"My Project","description":"Super cool project"}'import requests
url = "https://api.growthbook.io/api/v1/projects"
payload = {
"name": "<string>",
"description": "<string>",
"publicId": "<string>",
"settings": {
"statsEngine": "<string>",
"confidenceLevel": 123,
"pValueThreshold": 123
},
"restrictAccess": 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>',
description: '<string>',
publicId: '<string>',
settings: {statsEngine: '<string>', confidenceLevel: 123, pValueThreshold: 123},
restrictAccess: true
})
};
fetch('https://api.growthbook.io/api/v1/projects', 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",
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>',
'description' => '<string>',
'publicId' => '<string>',
'settings' => [
'statsEngine' => '<string>',
'confidenceLevel' => 123,
'pValueThreshold' => 123
],
'restrictAccess' => 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"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": 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/projects")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.growthbook.io/api/v1/projects")
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 \"description\": \"<string>\",\n \"publicId\": \"<string>\",\n \"settings\": {\n \"statsEngine\": \"<string>\",\n \"confidenceLevel\": 123,\n \"pValueThreshold\": 123\n },\n \"restrictAccess\": 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",
"description": "<string>",
"publicId": "<string>",
"restrictAccess": true,
"settings": {
"statsEngine": "<string>",
"confidenceLevel": 123,
"pValueThreshold": 123
}
}
}
