curl --request GET \
--url https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
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 => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}")
.header("Authorization", "Basic <encoded-value>")
.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::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
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": [
{
"status": "404",
"code": "not_found",
"detail": "No Rule matches the given query."
}
]
}Retrieve a shipping rule
Retrieve a single shipping rule, including its conditions and actions, by its unique ID.
curl --request GET \
--url https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
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 => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://panel.sendcloud.sc/api/v3/shipping-rules/rules/{rule_id}")
.header("Authorization", "Basic <encoded-value>")
.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::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
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": [
{
"status": "404",
"code": "not_found",
"detail": "No Rule matches the given query."
}
]
}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
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