curl --request PUT \
--url https://api.qonversion.io/v4/segments/{segment_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Premium Users Updated",
"conditions": [
{
"metric": "environment",
"comparator": "eq",
"value": "prod",
"negate": false
}
]
}
'import requests
url = "https://api.qonversion.io/v4/segments/{segment_id}"
payload = {
"name": "Premium Users Updated",
"conditions": [
{
"metric": "environment",
"comparator": "eq",
"value": "prod",
"negate": False
}
]
}
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: 'Premium Users Updated',
conditions: [{metric: 'environment', comparator: 'eq', value: 'prod', negate: false}]
})
};
fetch('https://api.qonversion.io/v4/segments/{segment_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.qonversion.io/v4/segments/{segment_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' => 'Premium Users Updated',
'conditions' => [
[
'metric' => 'environment',
'comparator' => 'eq',
'value' => 'prod',
'negate' => false
]
]
]),
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;
}require 'uri'
require 'net/http'
url = URI("https://api.qonversion.io/v4/segments/{segment_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\": \"Premium Users Updated\",\n \"conditions\": [\n {\n \"metric\": \"environment\",\n \"comparator\": \"eq\",\n \"value\": \"prod\",\n \"negate\": false\n }\n ]\n}"
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.qonversion.io/v4/segments/{segment_id}"
payload := strings.NewReader("{\n \"name\": \"Premium Users Updated\",\n \"conditions\": [\n {\n \"metric\": \"environment\",\n \"comparator\": \"eq\",\n \"value\": \"prod\",\n \"negate\": false\n }\n ]\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.qonversion.io/v4/segments/{segment_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Premium Users Updated\",\n \"conditions\": [\n {\n \"metric\": \"environment\",\n \"comparator\": \"eq\",\n \"value\": \"prod\",\n \"negate\": false\n }\n ]\n}")
.asString();{
"object": "segment",
"id": "premium-users",
"url": "/v4/segments/premium-users",
"name": "Premium Users",
"is_system": true,
"conditions": [
{
"metric": "environment",
"comparator": "eq",
"value": "prod",
"negate": false
}
],
"created_at": "2025-09-15T12:30:00Z",
"updated_at": "2025-11-03T10:26:40Z"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}Update a segment (full replace)
Replaces all fields of a segment. All fields are required.
curl --request PUT \
--url https://api.qonversion.io/v4/segments/{segment_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Premium Users Updated",
"conditions": [
{
"metric": "environment",
"comparator": "eq",
"value": "prod",
"negate": false
}
]
}
'import requests
url = "https://api.qonversion.io/v4/segments/{segment_id}"
payload = {
"name": "Premium Users Updated",
"conditions": [
{
"metric": "environment",
"comparator": "eq",
"value": "prod",
"negate": False
}
]
}
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: 'Premium Users Updated',
conditions: [{metric: 'environment', comparator: 'eq', value: 'prod', negate: false}]
})
};
fetch('https://api.qonversion.io/v4/segments/{segment_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.qonversion.io/v4/segments/{segment_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' => 'Premium Users Updated',
'conditions' => [
[
'metric' => 'environment',
'comparator' => 'eq',
'value' => 'prod',
'negate' => false
]
]
]),
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;
}require 'uri'
require 'net/http'
url = URI("https://api.qonversion.io/v4/segments/{segment_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\": \"Premium Users Updated\",\n \"conditions\": [\n {\n \"metric\": \"environment\",\n \"comparator\": \"eq\",\n \"value\": \"prod\",\n \"negate\": false\n }\n ]\n}"
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.qonversion.io/v4/segments/{segment_id}"
payload := strings.NewReader("{\n \"name\": \"Premium Users Updated\",\n \"conditions\": [\n {\n \"metric\": \"environment\",\n \"comparator\": \"eq\",\n \"value\": \"prod\",\n \"negate\": false\n }\n ]\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.qonversion.io/v4/segments/{segment_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Premium Users Updated\",\n \"conditions\": [\n {\n \"metric\": \"environment\",\n \"comparator\": \"eq\",\n \"value\": \"prod\",\n \"negate\": false\n }\n ]\n}")
.asString();{
"object": "segment",
"id": "premium-users",
"url": "/v4/segments/premium-users",
"name": "Premium Users",
"is_system": true,
"conditions": [
{
"metric": "environment",
"comparator": "eq",
"value": "prod",
"negate": false
}
],
"created_at": "2025-09-15T12:30:00Z",
"updated_at": "2025-11-03T10:26:40Z"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}Authorizations
Bearer authentication using the project Secret Key (prefixed with sk_, or test_sk_ for sandbox). All v4 public endpoints require the Secret Key — see Authentication. Never expose the Secret Key in client-side code.
Path Parameters
Segment identifier.
Body
Segment name (max 256 characters).
"Premium Users Updated"
Targeting rules. PUT is a full replace: pass the complete set you want to keep, or an empty array to clear all conditions. Omit the field to leave existing conditions untouched.
Show child attributes
Show child attributes
Response
Updated segment
"segment"
Segment identifier.
"premium-users"
Canonical API path.
"/v4/segments/premium-users"
Display name.
"Premium Users"
Whether this is a predefined system segment (read-only).
Targeting rules. Every rule must match for a user to fall into the segment (logical AND). Omit on update to leave existing conditions untouched; pass an empty array to clear.
Show child attributes
Show child attributes
ISO 8601 creation timestamp.
"2025-09-15T12:30:00Z"
ISO 8601 last update timestamp.
"2025-11-03T10:26:40Z"