Update list of current Gate Rules settings
curl --request PATCH \
--url https://statsigapi.net/console/v1/gates/{id}/rules \
--header 'Content-Type: application/json' \
--header 'STATSIG-API-KEY: <api-key>' \
--data '
{
"rules": [
{
"name": "All Conditions",
"id": "38ttpCpzrQFTMKcqFKk02l:10.00:1",
"baseID": "38ttpCpzrQFTMKcqFKk02l",
"passPercentage": 10,
"conditions": [
{
"type": "user_id",
"operator": "any",
"targetValue": [
0
],
"field": "string",
"customID": "string"
}
],
"returnValue": {},
"returnValueJson5": {},
"environments": [
"string"
]
}
]
}
'import requests
url = "https://statsigapi.net/console/v1/gates/{id}/rules"
payload = { "rules": [
{
"name": "All Conditions",
"id": "38ttpCpzrQFTMKcqFKk02l:10.00:1",
"baseID": "38ttpCpzrQFTMKcqFKk02l",
"passPercentage": 10,
"conditions": [
{
"type": "user_id",
"operator": "any",
"targetValue": [0],
"field": "string",
"customID": "string"
}
],
"returnValue": {},
"returnValueJson5": {},
"environments": ["string"]
}
] }
headers = {
"STATSIG-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'STATSIG-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
rules: [
{
name: 'All Conditions',
id: '38ttpCpzrQFTMKcqFKk02l:10.00:1',
baseID: '38ttpCpzrQFTMKcqFKk02l',
passPercentage: 10,
conditions: [
{
type: 'user_id',
operator: 'any',
targetValue: [0],
field: 'string',
customID: 'string'
}
],
returnValue: {},
returnValueJson5: {},
environments: ['string']
}
]
})
};
fetch('https://statsigapi.net/console/v1/gates/{id}/rules', 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://statsigapi.net/console/v1/gates/{id}/rules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'rules' => [
[
'name' => 'All Conditions',
'id' => '38ttpCpzrQFTMKcqFKk02l:10.00:1',
'baseID' => '38ttpCpzrQFTMKcqFKk02l',
'passPercentage' => 10,
'conditions' => [
[
'type' => 'user_id',
'operator' => 'any',
'targetValue' => [
0
],
'field' => 'string',
'customID' => 'string'
]
],
'returnValue' => [
],
'returnValueJson5' => [
],
'environments' => [
'string'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"STATSIG-API-KEY: <api-key>"
],
]);
$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://statsigapi.net/console/v1/gates/{id}/rules"
payload := strings.NewReader("{\n \"rules\": [\n {\n \"name\": \"All Conditions\",\n \"id\": \"38ttpCpzrQFTMKcqFKk02l:10.00:1\",\n \"baseID\": \"38ttpCpzrQFTMKcqFKk02l\",\n \"passPercentage\": 10,\n \"conditions\": [\n {\n \"type\": \"user_id\",\n \"operator\": \"any\",\n \"targetValue\": [\n 0\n ],\n \"field\": \"string\",\n \"customID\": \"string\"\n }\n ],\n \"returnValue\": {},\n \"returnValueJson5\": {},\n \"environments\": [\n \"string\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("STATSIG-API-KEY", "<api-key>")
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.patch("https://statsigapi.net/console/v1/gates/{id}/rules")
.header("STATSIG-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"rules\": [\n {\n \"name\": \"All Conditions\",\n \"id\": \"38ttpCpzrQFTMKcqFKk02l:10.00:1\",\n \"baseID\": \"38ttpCpzrQFTMKcqFKk02l\",\n \"passPercentage\": 10,\n \"conditions\": [\n {\n \"type\": \"user_id\",\n \"operator\": \"any\",\n \"targetValue\": [\n 0\n ],\n \"field\": \"string\",\n \"customID\": \"string\"\n }\n ],\n \"returnValue\": {},\n \"returnValueJson5\": {},\n \"environments\": [\n \"string\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://statsigapi.net/console/v1/gates/{id}/rules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["STATSIG-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rules\": [\n {\n \"name\": \"All Conditions\",\n \"id\": \"38ttpCpzrQFTMKcqFKk02l:10.00:1\",\n \"baseID\": \"38ttpCpzrQFTMKcqFKk02l\",\n \"passPercentage\": 10,\n \"conditions\": [\n {\n \"type\": \"user_id\",\n \"operator\": \"any\",\n \"targetValue\": [\n 0\n ],\n \"field\": \"string\",\n \"customID\": \"string\"\n }\n ],\n \"returnValue\": {},\n \"returnValueJson5\": {},\n \"environments\": [\n \"string\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "Gate updated successfully.",
"data": {
"id": "a_gate",
"isEnabled": true,
"description": "helpful summary of what this gate does",
"status": "In Progress",
"lastModifierName": "CONSOLE API",
"lastModifierID": "1vaasdfLlkaujjajiuOSBP2",
"rules": [
{
"name": "All Conditions",
"id": "38ttpCpzrQFTMKcqFKk02l:10.00:1",
"baseID": "38ttpCpzrQFTMKcqFKk02l",
"passPercentage": 10,
"conditions": [
{
"type": "user_id",
"targetValue": [
"35sClJFs8l0y5uRQhDwUDo"
],
"operator": "any"
}
],
"environments": [
"staging"
]
}
],
"tags": [
"* Core"
]
}
}Gates
Update list of current Gate Rules settings
Update list of current Gate Rules settings. It does NOT replace, create or delete if you add more rules and remove rules in the rules object. Please get the current rules through GET and use that as the base object.
PATCH
/
console
/
v1
/
gates
/
{id}
/
rules
Update list of current Gate Rules settings
curl --request PATCH \
--url https://statsigapi.net/console/v1/gates/{id}/rules \
--header 'Content-Type: application/json' \
--header 'STATSIG-API-KEY: <api-key>' \
--data '
{
"rules": [
{
"name": "All Conditions",
"id": "38ttpCpzrQFTMKcqFKk02l:10.00:1",
"baseID": "38ttpCpzrQFTMKcqFKk02l",
"passPercentage": 10,
"conditions": [
{
"type": "user_id",
"operator": "any",
"targetValue": [
0
],
"field": "string",
"customID": "string"
}
],
"returnValue": {},
"returnValueJson5": {},
"environments": [
"string"
]
}
]
}
'import requests
url = "https://statsigapi.net/console/v1/gates/{id}/rules"
payload = { "rules": [
{
"name": "All Conditions",
"id": "38ttpCpzrQFTMKcqFKk02l:10.00:1",
"baseID": "38ttpCpzrQFTMKcqFKk02l",
"passPercentage": 10,
"conditions": [
{
"type": "user_id",
"operator": "any",
"targetValue": [0],
"field": "string",
"customID": "string"
}
],
"returnValue": {},
"returnValueJson5": {},
"environments": ["string"]
}
] }
headers = {
"STATSIG-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'STATSIG-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
rules: [
{
name: 'All Conditions',
id: '38ttpCpzrQFTMKcqFKk02l:10.00:1',
baseID: '38ttpCpzrQFTMKcqFKk02l',
passPercentage: 10,
conditions: [
{
type: 'user_id',
operator: 'any',
targetValue: [0],
field: 'string',
customID: 'string'
}
],
returnValue: {},
returnValueJson5: {},
environments: ['string']
}
]
})
};
fetch('https://statsigapi.net/console/v1/gates/{id}/rules', 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://statsigapi.net/console/v1/gates/{id}/rules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'rules' => [
[
'name' => 'All Conditions',
'id' => '38ttpCpzrQFTMKcqFKk02l:10.00:1',
'baseID' => '38ttpCpzrQFTMKcqFKk02l',
'passPercentage' => 10,
'conditions' => [
[
'type' => 'user_id',
'operator' => 'any',
'targetValue' => [
0
],
'field' => 'string',
'customID' => 'string'
]
],
'returnValue' => [
],
'returnValueJson5' => [
],
'environments' => [
'string'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"STATSIG-API-KEY: <api-key>"
],
]);
$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://statsigapi.net/console/v1/gates/{id}/rules"
payload := strings.NewReader("{\n \"rules\": [\n {\n \"name\": \"All Conditions\",\n \"id\": \"38ttpCpzrQFTMKcqFKk02l:10.00:1\",\n \"baseID\": \"38ttpCpzrQFTMKcqFKk02l\",\n \"passPercentage\": 10,\n \"conditions\": [\n {\n \"type\": \"user_id\",\n \"operator\": \"any\",\n \"targetValue\": [\n 0\n ],\n \"field\": \"string\",\n \"customID\": \"string\"\n }\n ],\n \"returnValue\": {},\n \"returnValueJson5\": {},\n \"environments\": [\n \"string\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("STATSIG-API-KEY", "<api-key>")
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.patch("https://statsigapi.net/console/v1/gates/{id}/rules")
.header("STATSIG-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"rules\": [\n {\n \"name\": \"All Conditions\",\n \"id\": \"38ttpCpzrQFTMKcqFKk02l:10.00:1\",\n \"baseID\": \"38ttpCpzrQFTMKcqFKk02l\",\n \"passPercentage\": 10,\n \"conditions\": [\n {\n \"type\": \"user_id\",\n \"operator\": \"any\",\n \"targetValue\": [\n 0\n ],\n \"field\": \"string\",\n \"customID\": \"string\"\n }\n ],\n \"returnValue\": {},\n \"returnValueJson5\": {},\n \"environments\": [\n \"string\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://statsigapi.net/console/v1/gates/{id}/rules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["STATSIG-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rules\": [\n {\n \"name\": \"All Conditions\",\n \"id\": \"38ttpCpzrQFTMKcqFKk02l:10.00:1\",\n \"baseID\": \"38ttpCpzrQFTMKcqFKk02l\",\n \"passPercentage\": 10,\n \"conditions\": [\n {\n \"type\": \"user_id\",\n \"operator\": \"any\",\n \"targetValue\": [\n 0\n ],\n \"field\": \"string\",\n \"customID\": \"string\"\n }\n ],\n \"returnValue\": {},\n \"returnValueJson5\": {},\n \"environments\": [\n \"string\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "Gate updated successfully.",
"data": {
"id": "a_gate",
"isEnabled": true,
"description": "helpful summary of what this gate does",
"status": "In Progress",
"lastModifierName": "CONSOLE API",
"lastModifierID": "1vaasdfLlkaujjajiuOSBP2",
"rules": [
{
"name": "All Conditions",
"id": "38ttpCpzrQFTMKcqFKk02l:10.00:1",
"baseID": "38ttpCpzrQFTMKcqFKk02l",
"passPercentage": 10,
"conditions": [
{
"type": "user_id",
"targetValue": [
"35sClJFs8l0y5uRQhDwUDo"
],
"operator": "any"
}
],
"environments": [
"staging"
]
}
],
"tags": [
"* Core"
]
}
}Authorizations
Headers
Optional header to respect review settings for mutation endpoints.
Path Parameters
id
Body
application/json
Show child attributes
Show child attributes
⌘I

