Set an account flag state
curl --request PUT \
--url 'https://api.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey=' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey="
payload = {}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey=', 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.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey=",
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([
]),
CURLOPT_HTTPHEADER => [
"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.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey="
payload := strings.NewReader("{}")
req, _ := http.NewRequest("PUT", url, payload)
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.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey=")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"appId": 123,
"flagName": "<string>",
"flagState": "ABSENT",
"portalId": 123
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Portal Flag States
Set an account flag state
Specify an account-level flag state for a specific HubSpot account.
PUT
/
feature-flags
/
2026-09
/
{appId}
/
flags
/
{flagName}
/
portals
/
{portalId}
Set an account flag state
curl --request PUT \
--url 'https://api.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey=' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey="
payload = {}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey=', 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.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey=",
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([
]),
CURLOPT_HTTPHEADER => [
"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.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey="
payload := strings.NewReader("{}")
req, _ := http.NewRequest("PUT", url, payload)
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.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey=")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId}?hapikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"appId": 123,
"flagName": "<string>",
"flagState": "ABSENT",
"portalId": 123
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Supported products
Supported products
Required Scopes
Required Scopes
Authorizations
Path Parameters
The unique identifier of the application associated with the feature flag.
The name of the feature flag to update.
The unique identifier of the portal where the feature flag state is being updated.
Body
application/json
The state that the given flag should be in for this portal
Available options:
ABSENT, OFF, ON Last modified on September 9, 2026
Was this page helpful?