Communications Campaigns
Update Rule
PATCH
/
campaigns
/
{campaign_id}
/
rules
/
{rule_id}
cURL
curl --request PATCH \
--url https://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id} \
--header 'Content-Type: application/json' \
--header 'private-secret-key: <api-key>' \
--header 'public-api-key: <api-key>' \
--data '
{
"values": [
"DECLINED",
"REJECTED"
],
"conditional": "ONE_OF"
}
'import requests
url = "https://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id}"
payload = {
"values": ["DECLINED", "REJECTED"],
"conditional": "ONE_OF"
}
headers = {
"public-api-key": "<api-key>",
"private-secret-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'public-api-key': '<api-key>',
'private-secret-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({values: ['DECLINED', 'REJECTED'], conditional: 'ONE_OF'})
};
fetch('https://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_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-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id}",
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([
'values' => [
'DECLINED',
'REJECTED'
],
'conditional' => 'ONE_OF'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"private-secret-key: <api-key>",
"public-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://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id}"
payload := strings.NewReader("{\n \"values\": [\n \"DECLINED\",\n \"REJECTED\"\n ],\n \"conditional\": \"ONE_OF\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("public-api-key", "<api-key>")
req.Header.Add("private-secret-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://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id}")
.header("public-api-key", "<api-key>")
.header("private-secret-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"values\": [\n \"DECLINED\",\n \"REJECTED\"\n ],\n \"conditional\": \"ONE_OF\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["public-api-key"] = '<api-key>'
request["private-secret-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"values\": [\n \"DECLINED\",\n \"REJECTED\"\n ],\n \"conditional\": \"ONE_OF\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"rule_type": "PAYMENT_STATUS",
"values": [
"DECLINED"
],
"conditional": "EQUAL",
"metadata_key": null,
"status": "ACTIVE",
"created_at": "2025-07-01T12:05:00Z",
"updated_at": "2025-07-01T12:05:00Z"
}
}Updates a rule’s type, values, conditional, or metadata key.
Visit the conditional operators reference for more information on how to use them.
See the create rules endpoint for more examples.
Path Parameters
The campaign identifier (UUID).
The rule identifier (UUID).
Body
application/json
New rule type (see Rule Types Reference)
New values array. Not required for UNIQUE_BY_USER.
New comparison operator. Not required for USER_COMMS_PER_DAY or UNIQUE_BY_USER. See Conditional Operators Reference.
New metadata key. Required when rule_type is METADATA. The metadata field name to evaluate.
Response
200 - application/json
Was this page helpful?
⌘I
cURL
curl --request PATCH \
--url https://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id} \
--header 'Content-Type: application/json' \
--header 'private-secret-key: <api-key>' \
--header 'public-api-key: <api-key>' \
--data '
{
"values": [
"DECLINED",
"REJECTED"
],
"conditional": "ONE_OF"
}
'import requests
url = "https://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id}"
payload = {
"values": ["DECLINED", "REJECTED"],
"conditional": "ONE_OF"
}
headers = {
"public-api-key": "<api-key>",
"private-secret-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'public-api-key': '<api-key>',
'private-secret-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({values: ['DECLINED', 'REJECTED'], conditional: 'ONE_OF'})
};
fetch('https://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_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-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id}",
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([
'values' => [
'DECLINED',
'REJECTED'
],
'conditional' => 'ONE_OF'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"private-secret-key: <api-key>",
"public-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://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id}"
payload := strings.NewReader("{\n \"values\": [\n \"DECLINED\",\n \"REJECTED\"\n ],\n \"conditional\": \"ONE_OF\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("public-api-key", "<api-key>")
req.Header.Add("private-secret-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://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id}")
.header("public-api-key", "<api-key>")
.header("private-secret-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"values\": [\n \"DECLINED\",\n \"REJECTED\"\n ],\n \"conditional\": \"ONE_OF\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.y.uno/v1/campaigns/{campaign_id}/rules/{rule_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["public-api-key"] = '<api-key>'
request["private-secret-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"values\": [\n \"DECLINED\",\n \"REJECTED\"\n ],\n \"conditional\": \"ONE_OF\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"rule_type": "PAYMENT_STATUS",
"values": [
"DECLINED"
],
"conditional": "EQUAL",
"metadata_key": null,
"status": "ACTIVE",
"created_at": "2025-07-01T12:05:00Z",
"updated_at": "2025-07-01T12:05:00Z"
}
}