curl --request PATCH \
--url https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"is_active": false
}
'import requests
url = "https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}"
payload = { "is_active": False }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({is_active: false})
};
fetch('https://panel.sendcloud.sc/api/v3/shipping-rules/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://panel.sendcloud.sc/api/v3/shipping-rules/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([
'is_active' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}"
payload := strings.NewReader("{\n \"is_active\": false\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"is_active\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"is_active\": false\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"name": "Insure high-value parcels",
"is_active": true,
"is_invalid": false,
"order": 1,
"updated_at": "2026-06-26T10:15:00Z",
"criteria": {
"is_and": true,
"conditions": [
{
"property": "total_order_value",
"operator": "greater_than",
"compare_to": "100"
}
]
},
"actions": [
{
"identifier": "set_insurance",
"value": "500"
}
]
}{
"errors": [
{
"id": "<string>",
"links": {
"about": "<string>"
},
"status": "<string>",
"code": "unknown_field",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>",
"parameter": "<string>",
"header": "<string>"
},
"meta": {}
}
]
}{
"errors": [
{
"id": "<string>",
"links": {
"about": "<string>"
},
"status": "<string>",
"code": "unknown_field",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>",
"parameter": "<string>",
"header": "<string>"
},
"meta": {}
}
]
}Update a shipping rule
Update the name, status, conditions, or actions of an existing shipping rule.
curl --request PATCH \
--url https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"is_active": false
}
'import requests
url = "https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}"
payload = { "is_active": False }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({is_active: false})
};
fetch('https://panel.sendcloud.sc/api/v3/shipping-rules/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://panel.sendcloud.sc/api/v3/shipping-rules/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([
'is_active' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}"
payload := strings.NewReader("{\n \"is_active\": false\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"is_active\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"is_active\": false\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"name": "Insure high-value parcels",
"is_active": true,
"is_invalid": false,
"order": 1,
"updated_at": "2026-06-26T10:15:00Z",
"criteria": {
"is_and": true,
"conditions": [
{
"property": "total_order_value",
"operator": "greater_than",
"compare_to": "100"
}
]
},
"actions": [
{
"identifier": "set_insurance",
"value": "500"
}
]
}{
"errors": [
{
"id": "<string>",
"links": {
"about": "<string>"
},
"status": "<string>",
"code": "unknown_field",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>",
"parameter": "<string>",
"header": "<string>"
},
"meta": {}
}
]
}{
"errors": [
{
"id": "<string>",
"links": {
"about": "<string>"
},
"status": "<string>",
"code": "unknown_field",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>",
"parameter": "<string>",
"header": "<string>"
},
"meta": {}
}
]
}Authorizations
Basic Authentication using API key and secrets is currently the main authentication mechanism.
Path Parameters
The unique id of the shipping rule.
x >= 11
Body
Payload to update a shipping rule. Omit any field to leave it unchanged.
New name for the rule; omit to leave unchanged.
100New active flag; omit to leave unchanged.
Replacement criteria block; omit to keep the existing criteria.
Show child attributes
Show child attributes
Replacement actions list; omit to keep the existing actions.
Show child attributes
Show child attributes
Response
OK
A shipping rule including its conditions and actions.
ID of the rule.
1
Name of the rule.
"Insure high-value parcels"
Whether the rule is currently evaluating shipments.
true
True when the rule cannot be evaluated (e.g. references an unavailable property or action).
false
Position in the organization's evaluation order; lower values are evaluated first.
1
Timestamp of the last update to the rule.
"2026-06-26T10:15:00Z"
Criteria that determine when this rule fires.
Show child attributes
Show child attributes
Actions executed when the rule fires.
Show child attributes
Show child attributes