curl --request POST \
--url https://api.smartsend.io/v2/teams/{teamUuid}/delivery-options \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"currency": "DKK",
"weight_unit": "g",
"dimension_unit": "cm",
"parties": {
"customer": {
"address": {
"address_lines": [
"Eksempelvej 10"
],
"postal_code": "8000",
"city": "Aarhus C",
"country": "DK"
},
"contact": {
"name_lines": [
"Example Customer"
],
"email": "customer@example.com",
"phone": "+4512345678"
}
}
},
"parcels": [
{
"identifier": "shop-parcel-1",
"reference": "ORDER-1042-1",
"gross_weight": 1500,
"length": 30,
"width": 20,
"height": 15
}
]
}
'import requests
url = "https://api.smartsend.io/v2/teams/{teamUuid}/delivery-options"
payload = {
"currency": "DKK",
"weight_unit": "g",
"dimension_unit": "cm",
"parties": { "customer": {
"address": {
"address_lines": ["Eksempelvej 10"],
"postal_code": "8000",
"city": "Aarhus C",
"country": "DK"
},
"contact": {
"name_lines": ["Example Customer"],
"email": "customer@example.com",
"phone": "+4512345678"
}
} },
"parcels": [
{
"identifier": "shop-parcel-1",
"reference": "ORDER-1042-1",
"gross_weight": 1500,
"length": 30,
"width": 20,
"height": 15
}
]
}
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: 'DKK',
weight_unit: 'g',
dimension_unit: 'cm',
parties: {
customer: {
address: {
address_lines: ['Eksempelvej 10'],
postal_code: '8000',
city: 'Aarhus C',
country: 'DK'
},
contact: {
name_lines: ['Example Customer'],
email: 'customer@example.com',
phone: '+4512345678'
}
}
},
parcels: [
{
identifier: 'shop-parcel-1',
reference: 'ORDER-1042-1',
gross_weight: 1500,
length: 30,
width: 20,
height: 15
}
]
})
};
fetch('https://api.smartsend.io/v2/teams/{teamUuid}/delivery-options', 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.smartsend.io/v2/teams/{teamUuid}/delivery-options",
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' => 'DKK',
'weight_unit' => 'g',
'dimension_unit' => 'cm',
'parties' => [
'customer' => [
'address' => [
'address_lines' => [
'Eksempelvej 10'
],
'postal_code' => '8000',
'city' => 'Aarhus C',
'country' => 'DK'
],
'contact' => [
'name_lines' => [
'Example Customer'
],
'email' => 'customer@example.com',
'phone' => '+4512345678'
]
]
],
'parcels' => [
[
'identifier' => 'shop-parcel-1',
'reference' => 'ORDER-1042-1',
'gross_weight' => 1500,
'length' => 30,
'width' => 20,
'height' => 15
]
]
]),
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://api.smartsend.io/v2/teams/{teamUuid}/delivery-options"
payload := strings.NewReader("{\n \"currency\": \"DKK\",\n \"weight_unit\": \"g\",\n \"dimension_unit\": \"cm\",\n \"parties\": {\n \"customer\": {\n \"address\": {\n \"address_lines\": [\n \"Eksempelvej 10\"\n ],\n \"postal_code\": \"8000\",\n \"city\": \"Aarhus C\",\n \"country\": \"DK\"\n },\n \"contact\": {\n \"name_lines\": [\n \"Example Customer\"\n ],\n \"email\": \"customer@example.com\",\n \"phone\": \"+4512345678\"\n }\n }\n },\n \"parcels\": [\n {\n \"identifier\": \"shop-parcel-1\",\n \"reference\": \"ORDER-1042-1\",\n \"gross_weight\": 1500,\n \"length\": 30,\n \"width\": 20,\n \"height\": 15\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://api.smartsend.io/v2/teams/{teamUuid}/delivery-options")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"currency\": \"DKK\",\n \"weight_unit\": \"g\",\n \"dimension_unit\": \"cm\",\n \"parties\": {\n \"customer\": {\n \"address\": {\n \"address_lines\": [\n \"Eksempelvej 10\"\n ],\n \"postal_code\": \"8000\",\n \"city\": \"Aarhus C\",\n \"country\": \"DK\"\n },\n \"contact\": {\n \"name_lines\": [\n \"Example Customer\"\n ],\n \"email\": \"customer@example.com\",\n \"phone\": \"+4512345678\"\n }\n }\n },\n \"parcels\": [\n {\n \"identifier\": \"shop-parcel-1\",\n \"reference\": \"ORDER-1042-1\",\n \"gross_weight\": 1500,\n \"length\": 30,\n \"width\": 20,\n \"height\": 15\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartsend.io/v2/teams/{teamUuid}/delivery-options")
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\": \"DKK\",\n \"weight_unit\": \"g\",\n \"dimension_unit\": \"cm\",\n \"parties\": {\n \"customer\": {\n \"address\": {\n \"address_lines\": [\n \"Eksempelvej 10\"\n ],\n \"postal_code\": \"8000\",\n \"city\": \"Aarhus C\",\n \"country\": \"DK\"\n },\n \"contact\": {\n \"name_lines\": [\n \"Example Customer\"\n ],\n \"email\": \"customer@example.com\",\n \"phone\": \"+4512345678\"\n }\n }\n },\n \"parcels\": [\n {\n \"identifier\": \"shop-parcel-1\",\n \"reference\": \"ORDER-1042-1\",\n \"gross_weight\": 1500,\n \"length\": 30,\n \"width\": 20,\n \"height\": 15\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyGet delivery options
Find team-available delivery options from shipment parties, parcels and content without booking or live carrier API calls. Request fields and units match ShipmentInput; currency, weight_unit and dimension_unit are required and never taken from team defaults. Copy booking_selection into the booking delivery field and complete applicable choices. Unknown cost/window is null, not zero or a guarantee. Omitted is_return means outbound; merchant defaults are resolved for that direction.
curl --request POST \
--url https://api.smartsend.io/v2/teams/{teamUuid}/delivery-options \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"currency": "DKK",
"weight_unit": "g",
"dimension_unit": "cm",
"parties": {
"customer": {
"address": {
"address_lines": [
"Eksempelvej 10"
],
"postal_code": "8000",
"city": "Aarhus C",
"country": "DK"
},
"contact": {
"name_lines": [
"Example Customer"
],
"email": "customer@example.com",
"phone": "+4512345678"
}
}
},
"parcels": [
{
"identifier": "shop-parcel-1",
"reference": "ORDER-1042-1",
"gross_weight": 1500,
"length": 30,
"width": 20,
"height": 15
}
]
}
'import requests
url = "https://api.smartsend.io/v2/teams/{teamUuid}/delivery-options"
payload = {
"currency": "DKK",
"weight_unit": "g",
"dimension_unit": "cm",
"parties": { "customer": {
"address": {
"address_lines": ["Eksempelvej 10"],
"postal_code": "8000",
"city": "Aarhus C",
"country": "DK"
},
"contact": {
"name_lines": ["Example Customer"],
"email": "customer@example.com",
"phone": "+4512345678"
}
} },
"parcels": [
{
"identifier": "shop-parcel-1",
"reference": "ORDER-1042-1",
"gross_weight": 1500,
"length": 30,
"width": 20,
"height": 15
}
]
}
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: 'DKK',
weight_unit: 'g',
dimension_unit: 'cm',
parties: {
customer: {
address: {
address_lines: ['Eksempelvej 10'],
postal_code: '8000',
city: 'Aarhus C',
country: 'DK'
},
contact: {
name_lines: ['Example Customer'],
email: 'customer@example.com',
phone: '+4512345678'
}
}
},
parcels: [
{
identifier: 'shop-parcel-1',
reference: 'ORDER-1042-1',
gross_weight: 1500,
length: 30,
width: 20,
height: 15
}
]
})
};
fetch('https://api.smartsend.io/v2/teams/{teamUuid}/delivery-options', 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.smartsend.io/v2/teams/{teamUuid}/delivery-options",
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' => 'DKK',
'weight_unit' => 'g',
'dimension_unit' => 'cm',
'parties' => [
'customer' => [
'address' => [
'address_lines' => [
'Eksempelvej 10'
],
'postal_code' => '8000',
'city' => 'Aarhus C',
'country' => 'DK'
],
'contact' => [
'name_lines' => [
'Example Customer'
],
'email' => 'customer@example.com',
'phone' => '+4512345678'
]
]
],
'parcels' => [
[
'identifier' => 'shop-parcel-1',
'reference' => 'ORDER-1042-1',
'gross_weight' => 1500,
'length' => 30,
'width' => 20,
'height' => 15
]
]
]),
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://api.smartsend.io/v2/teams/{teamUuid}/delivery-options"
payload := strings.NewReader("{\n \"currency\": \"DKK\",\n \"weight_unit\": \"g\",\n \"dimension_unit\": \"cm\",\n \"parties\": {\n \"customer\": {\n \"address\": {\n \"address_lines\": [\n \"Eksempelvej 10\"\n ],\n \"postal_code\": \"8000\",\n \"city\": \"Aarhus C\",\n \"country\": \"DK\"\n },\n \"contact\": {\n \"name_lines\": [\n \"Example Customer\"\n ],\n \"email\": \"customer@example.com\",\n \"phone\": \"+4512345678\"\n }\n }\n },\n \"parcels\": [\n {\n \"identifier\": \"shop-parcel-1\",\n \"reference\": \"ORDER-1042-1\",\n \"gross_weight\": 1500,\n \"length\": 30,\n \"width\": 20,\n \"height\": 15\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://api.smartsend.io/v2/teams/{teamUuid}/delivery-options")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"currency\": \"DKK\",\n \"weight_unit\": \"g\",\n \"dimension_unit\": \"cm\",\n \"parties\": {\n \"customer\": {\n \"address\": {\n \"address_lines\": [\n \"Eksempelvej 10\"\n ],\n \"postal_code\": \"8000\",\n \"city\": \"Aarhus C\",\n \"country\": \"DK\"\n },\n \"contact\": {\n \"name_lines\": [\n \"Example Customer\"\n ],\n \"email\": \"customer@example.com\",\n \"phone\": \"+4512345678\"\n }\n }\n },\n \"parcels\": [\n {\n \"identifier\": \"shop-parcel-1\",\n \"reference\": \"ORDER-1042-1\",\n \"gross_weight\": 1500,\n \"length\": 30,\n \"width\": 20,\n \"height\": 15\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartsend.io/v2/teams/{teamUuid}/delivery-options")
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\": \"DKK\",\n \"weight_unit\": \"g\",\n \"dimension_unit\": \"cm\",\n \"parties\": {\n \"customer\": {\n \"address\": {\n \"address_lines\": [\n \"Eksempelvej 10\"\n ],\n \"postal_code\": \"8000\",\n \"city\": \"Aarhus C\",\n \"country\": \"DK\"\n },\n \"contact\": {\n \"name_lines\": [\n \"Example Customer\"\n ],\n \"email\": \"customer@example.com\",\n \"phone\": \"+4512345678\"\n }\n }\n },\n \"parcels\": [\n {\n \"identifier\": \"shop-parcel-1\",\n \"reference\": \"ORDER-1042-1\",\n \"gross_weight\": 1500,\n \"length\": 30,\n \"width\": 20,\n \"height\": 15\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
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"
Optional client-supplied request identifier. When provided and matching the validation pattern, the value is echoed back in the Request-ID response header. Otherwise the server generates one. Use this to correlate requests between client and server when reporting issues.
1 - 64^[A-Za-z0-9._-]{1,64}$Path Parameters
Team uuid. All resources are scoped to this team.
Query Parameters
Only include rates from these carriers (e.g., postnord, gls)
Filter by return services (true) or outbound services (false). When omitted, return services are excluded by default.
Body
Use the same party, parcel and measurement structures as booking. currency, weight_unit and dimension_unit must be supplied explicitly; missing or null values return 422 without fallback to team defaults. Does not create a shipment or reserve carrier capacity.
Required ISO 4217 currency code for all submitted shipment, parcel and item amounts. Amounts use currency minor units. No fallback to team defaults.
3^[A-Z]{3}$"EUR"
Required common unit for all submitted parcel and item weights. No per-value overrides or fallback to team defaults.
g, kg, lb, oz "g"
Required common unit for all submitted parcel and item dimensions. No per-value overrides or fallback to team defaults.
mm, cm, m, in "cm"
Omit merchant to use the appropriate team address. Pickup points belong to delivery.
Show child attributes
Show child attributes
Parcels in stable input order.
1Show child attributes
Show child attributes
Type of contents in the shipment
commercial_goods, returned_goods, gift, commercial_sample, documents, other Total goods value in minor units (cents) excluding tax
15920
Total goods tax in minor units (cents)
3980
Total goods duty in minor units (cents)
5572
Shipping cost in minor units (cents) excluding tax
3920
Shipping tax in minor units (cents)
980
Response
Delivery options retrieved successfully
Show child attributes
Show child attributes
Was this page helpful?