curl --request POST \
--url https://app.smartsend.io/api/v2/team/{team}/rates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"currency": "<string>",
"parties": {
"receiver": {
"address": {
"address_lines": [
"<string>"
],
"postal_code": "<string>",
"city": "<string>",
"country": "<string>",
"administrative_area": "<string>"
}
}
},
"parcels": [
{
"gross_weight": 1,
"length": 1,
"width": 1,
"height": 1,
"items": [
{
"quantity": 1,
"net_weight": 1,
"tariff_code": "<string>",
"country_of_origin": "<string>",
"dangerous_goods": [
{
"un_number": "<string>",
"class": "<string>",
"un_packing_group": "<string>",
"net_weight": 1,
"quantity": 1,
"environmentally_hazardous": true
}
]
}
]
}
]
}
'import requests
url = "https://app.smartsend.io/api/v2/team/{team}/rates"
payload = {
"currency": "<string>",
"parties": { "receiver": { "address": {
"address_lines": ["<string>"],
"postal_code": "<string>",
"city": "<string>",
"country": "<string>",
"administrative_area": "<string>"
} } },
"parcels": [
{
"gross_weight": 1,
"length": 1,
"width": 1,
"height": 1,
"items": [
{
"quantity": 1,
"net_weight": 1,
"tariff_code": "<string>",
"country_of_origin": "<string>",
"dangerous_goods": [
{
"un_number": "<string>",
"class": "<string>",
"un_packing_group": "<string>",
"net_weight": 1,
"quantity": 1,
"environmentally_hazardous": True
}
]
}
]
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
currency: '<string>',
parties: {
receiver: {
address: {
address_lines: ['<string>'],
postal_code: '<string>',
city: '<string>',
country: '<string>',
administrative_area: '<string>'
}
}
},
parcels: [
{
gross_weight: 1,
length: 1,
width: 1,
height: 1,
items: [
{
quantity: 1,
net_weight: 1,
tariff_code: '<string>',
country_of_origin: '<string>',
dangerous_goods: [
{
un_number: '<string>',
class: '<string>',
un_packing_group: '<string>',
net_weight: 1,
quantity: 1,
environmentally_hazardous: true
}
]
}
]
}
]
})
};
fetch('https://app.smartsend.io/api/v2/team/{team}/rates', 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://app.smartsend.io/api/v2/team/{team}/rates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'currency' => '<string>',
'parties' => [
'receiver' => [
'address' => [
'address_lines' => [
'<string>'
],
'postal_code' => '<string>',
'city' => '<string>',
'country' => '<string>',
'administrative_area' => '<string>'
]
]
],
'parcels' => [
[
'gross_weight' => 1,
'length' => 1,
'width' => 1,
'height' => 1,
'items' => [
[
'quantity' => 1,
'net_weight' => 1,
'tariff_code' => '<string>',
'country_of_origin' => '<string>',
'dangerous_goods' => [
[
'un_number' => '<string>',
'class' => '<string>',
'un_packing_group' => '<string>',
'net_weight' => 1,
'quantity' => 1,
'environmentally_hazardous' => true
]
]
]
]
]
]
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.smartsend.io/api/v2/team/{team}/rates"
payload := strings.NewReader("{\n \"currency\": \"<string>\",\n \"parties\": {\n \"receiver\": {\n \"address\": {\n \"address_lines\": [\n \"<string>\"\n ],\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"administrative_area\": \"<string>\"\n }\n }\n },\n \"parcels\": [\n {\n \"gross_weight\": 1,\n \"length\": 1,\n \"width\": 1,\n \"height\": 1,\n \"items\": [\n {\n \"quantity\": 1,\n \"net_weight\": 1,\n \"tariff_code\": \"<string>\",\n \"country_of_origin\": \"<string>\",\n \"dangerous_goods\": [\n {\n \"un_number\": \"<string>\",\n \"class\": \"<string>\",\n \"un_packing_group\": \"<string>\",\n \"net_weight\": 1,\n \"quantity\": 1,\n \"environmentally_hazardous\": true\n }\n ]\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://app.smartsend.io/api/v2/team/{team}/rates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"currency\": \"<string>\",\n \"parties\": {\n \"receiver\": {\n \"address\": {\n \"address_lines\": [\n \"<string>\"\n ],\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"administrative_area\": \"<string>\"\n }\n }\n },\n \"parcels\": [\n {\n \"gross_weight\": 1,\n \"length\": 1,\n \"width\": 1,\n \"height\": 1,\n \"items\": [\n {\n \"quantity\": 1,\n \"net_weight\": 1,\n \"tariff_code\": \"<string>\",\n \"country_of_origin\": \"<string>\",\n \"dangerous_goods\": [\n {\n \"un_number\": \"<string>\",\n \"class\": \"<string>\",\n \"un_packing_group\": \"<string>\",\n \"net_weight\": 1,\n \"quantity\": 1,\n \"environmentally_hazardous\": true\n }\n ]\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.smartsend.io/api/v2/team/{team}/rates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"currency\": \"<string>\",\n \"parties\": {\n \"receiver\": {\n \"address\": {\n \"address_lines\": [\n \"<string>\"\n ],\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"administrative_area\": \"<string>\"\n }\n }\n },\n \"parcels\": [\n {\n \"gross_weight\": 1,\n \"length\": 1,\n \"width\": 1,\n \"height\": 1,\n \"items\": [\n {\n \"quantity\": 1,\n \"net_weight\": 1,\n \"tariff_code\": \"<string>\",\n \"country_of_origin\": \"<string>\",\n \"dangerous_goods\": [\n {\n \"un_number\": \"<string>\",\n \"class\": \"<string>\",\n \"un_packing_group\": \"<string>\",\n \"net_weight\": 1,\n \"quantity\": 1,\n \"environmentally_hazardous\": true\n }\n ]\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"available": true,
"delivery": {
"carrier_code": "<string>",
"carrier_name": "<string>",
"carrier_logo_url": "<string>",
"carrier_icon_url": "<string>",
"service_code": "<string>",
"service_name": "<string>",
"is_pickup": true,
"is_return": true,
"addons": [
{
"code": "<string>",
"name": "<string>"
}
]
},
"cost_price": {
"amount": 123
},
"delivery_window": {
"earliest": "2023-11-07T05:31:56Z",
"latest": "2023-11-07T05:31:56Z"
},
"cutoff": "2023-11-07T05:31:56Z",
"addons": [
{
"code": "<string>",
"name": "<string>",
"cost_price": {
"amount": 123
}
}
]
}
]
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Get shipping rates
Returns available shipping rates for a specific shipment, including estimated delivery windows and cost prices. Only shows rates available for the authenticated team based on their carrier accounts. Cost prices may be null when unknown. Sender address is automatically taken from the authenticated team’s settings.
curl --request POST \
--url https://app.smartsend.io/api/v2/team/{team}/rates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"currency": "<string>",
"parties": {
"receiver": {
"address": {
"address_lines": [
"<string>"
],
"postal_code": "<string>",
"city": "<string>",
"country": "<string>",
"administrative_area": "<string>"
}
}
},
"parcels": [
{
"gross_weight": 1,
"length": 1,
"width": 1,
"height": 1,
"items": [
{
"quantity": 1,
"net_weight": 1,
"tariff_code": "<string>",
"country_of_origin": "<string>",
"dangerous_goods": [
{
"un_number": "<string>",
"class": "<string>",
"un_packing_group": "<string>",
"net_weight": 1,
"quantity": 1,
"environmentally_hazardous": true
}
]
}
]
}
]
}
'import requests
url = "https://app.smartsend.io/api/v2/team/{team}/rates"
payload = {
"currency": "<string>",
"parties": { "receiver": { "address": {
"address_lines": ["<string>"],
"postal_code": "<string>",
"city": "<string>",
"country": "<string>",
"administrative_area": "<string>"
} } },
"parcels": [
{
"gross_weight": 1,
"length": 1,
"width": 1,
"height": 1,
"items": [
{
"quantity": 1,
"net_weight": 1,
"tariff_code": "<string>",
"country_of_origin": "<string>",
"dangerous_goods": [
{
"un_number": "<string>",
"class": "<string>",
"un_packing_group": "<string>",
"net_weight": 1,
"quantity": 1,
"environmentally_hazardous": True
}
]
}
]
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
currency: '<string>',
parties: {
receiver: {
address: {
address_lines: ['<string>'],
postal_code: '<string>',
city: '<string>',
country: '<string>',
administrative_area: '<string>'
}
}
},
parcels: [
{
gross_weight: 1,
length: 1,
width: 1,
height: 1,
items: [
{
quantity: 1,
net_weight: 1,
tariff_code: '<string>',
country_of_origin: '<string>',
dangerous_goods: [
{
un_number: '<string>',
class: '<string>',
un_packing_group: '<string>',
net_weight: 1,
quantity: 1,
environmentally_hazardous: true
}
]
}
]
}
]
})
};
fetch('https://app.smartsend.io/api/v2/team/{team}/rates', 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://app.smartsend.io/api/v2/team/{team}/rates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'currency' => '<string>',
'parties' => [
'receiver' => [
'address' => [
'address_lines' => [
'<string>'
],
'postal_code' => '<string>',
'city' => '<string>',
'country' => '<string>',
'administrative_area' => '<string>'
]
]
],
'parcels' => [
[
'gross_weight' => 1,
'length' => 1,
'width' => 1,
'height' => 1,
'items' => [
[
'quantity' => 1,
'net_weight' => 1,
'tariff_code' => '<string>',
'country_of_origin' => '<string>',
'dangerous_goods' => [
[
'un_number' => '<string>',
'class' => '<string>',
'un_packing_group' => '<string>',
'net_weight' => 1,
'quantity' => 1,
'environmentally_hazardous' => true
]
]
]
]
]
]
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.smartsend.io/api/v2/team/{team}/rates"
payload := strings.NewReader("{\n \"currency\": \"<string>\",\n \"parties\": {\n \"receiver\": {\n \"address\": {\n \"address_lines\": [\n \"<string>\"\n ],\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"administrative_area\": \"<string>\"\n }\n }\n },\n \"parcels\": [\n {\n \"gross_weight\": 1,\n \"length\": 1,\n \"width\": 1,\n \"height\": 1,\n \"items\": [\n {\n \"quantity\": 1,\n \"net_weight\": 1,\n \"tariff_code\": \"<string>\",\n \"country_of_origin\": \"<string>\",\n \"dangerous_goods\": [\n {\n \"un_number\": \"<string>\",\n \"class\": \"<string>\",\n \"un_packing_group\": \"<string>\",\n \"net_weight\": 1,\n \"quantity\": 1,\n \"environmentally_hazardous\": true\n }\n ]\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://app.smartsend.io/api/v2/team/{team}/rates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"currency\": \"<string>\",\n \"parties\": {\n \"receiver\": {\n \"address\": {\n \"address_lines\": [\n \"<string>\"\n ],\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"administrative_area\": \"<string>\"\n }\n }\n },\n \"parcels\": [\n {\n \"gross_weight\": 1,\n \"length\": 1,\n \"width\": 1,\n \"height\": 1,\n \"items\": [\n {\n \"quantity\": 1,\n \"net_weight\": 1,\n \"tariff_code\": \"<string>\",\n \"country_of_origin\": \"<string>\",\n \"dangerous_goods\": [\n {\n \"un_number\": \"<string>\",\n \"class\": \"<string>\",\n \"un_packing_group\": \"<string>\",\n \"net_weight\": 1,\n \"quantity\": 1,\n \"environmentally_hazardous\": true\n }\n ]\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.smartsend.io/api/v2/team/{team}/rates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"currency\": \"<string>\",\n \"parties\": {\n \"receiver\": {\n \"address\": {\n \"address_lines\": [\n \"<string>\"\n ],\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"administrative_area\": \"<string>\"\n }\n }\n },\n \"parcels\": [\n {\n \"gross_weight\": 1,\n \"length\": 1,\n \"width\": 1,\n \"height\": 1,\n \"items\": [\n {\n \"quantity\": 1,\n \"net_weight\": 1,\n \"tariff_code\": \"<string>\",\n \"country_of_origin\": \"<string>\",\n \"dangerous_goods\": [\n {\n \"un_number\": \"<string>\",\n \"class\": \"<string>\",\n \"un_packing_group\": \"<string>\",\n \"net_weight\": 1,\n \"quantity\": 1,\n \"environmentally_hazardous\": true\n }\n ]\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"available": true,
"delivery": {
"carrier_code": "<string>",
"carrier_name": "<string>",
"carrier_logo_url": "<string>",
"carrier_icon_url": "<string>",
"service_code": "<string>",
"service_name": "<string>",
"is_pickup": true,
"is_return": true,
"addons": [
{
"code": "<string>",
"name": "<string>"
}
]
},
"cost_price": {
"amount": 123
},
"delivery_window": {
"earliest": "2023-11-07T05:31:56Z",
"latest": "2023-11-07T05:31:56Z"
},
"cutoff": "2023-11-07T05:31:56Z",
"addons": [
{
"code": "<string>",
"name": "<string>",
"cost_price": {
"amount": 123
}
}
]
}
]
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Preferred language(s) for translatable content using BCP 47 language tags. Supports quality values (q-factors) for priority ordering. The API negotiates the best available language based on this header, the team's configured language, and available translations. If omitted, the team's default language is used.
"da-DK, da;q=0.9, en;q=0.8"
Any value passed in this request will be returned in the same header. This can be used to correlate requests between client and server.
1 - 128^[A-Za-z0-9._-]{1,128}$Optional key that makes a write request idempotent so it can be safely retried. Reusing the key with an identical payload within 24 hours returns the original response without re-executing the operation (with an Idempotency-Replayed: true response header); reusing it with a different payload returns 422, and retrying while the original is still processing returns 409 with a Retry-After header. Use a client-generated, case-sensitive string of 16–128 characters (letters, digits, ., _, -). Deriving it deterministically from the request — for example the order ID combined with a hash of the payload — lets retries reuse the same key without storing it. See https://docs.smartsend.io/api-reference/idempotency.
16 - 128^[A-Za-z0-9._-]{16,128}$Path Parameters
Team identifier. All resources are scoped to this team.
1"ad9546c1-393e-49a5-9a72-5cc146c9bec5"
Query Parameters
Only include rates from these carriers (e.g., postnord, gls)
Filter by return services (true) or outbound services (false)
Body
Response
Rates retrieved successfully
Show child attributes
Show child attributes
Was this page helpful?