curl --request GET \
--url https://api.smartsend.io/v2/teams/{teamUuid}/shipments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.smartsend.io/v2/teams/{teamUuid}/shipments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.smartsend.io/v2/teams/{teamUuid}/shipments', 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}/shipments",
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: Bearer <token>"
],
]);
$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://api.smartsend.io/v2/teams/{teamUuid}/shipments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.smartsend.io/v2/teams/{teamUuid}/shipments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartsend.io/v2/teams/{teamUuid}/shipments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"uuid": "22222222-2222-4222-8222-222222222222",
"state": "booked",
"invoice_number": "INV-1042",
"reference": "ORDER-1042",
"identifier": "shop-order-1042",
"uri": "https://shop.example.com/admin/orders/1042",
"delivery": {
"carrier": {
"code": "postnord",
"name": "PostNord",
"logo_url": "https://assets.example.com/carriers/postnord/logo.svg",
"icon_url": "https://assets.example.com/carriers/postnord/icon.svg"
},
"last_mile_carrier": {
"code": "postnord",
"name": "PostNord",
"logo_url": "https://assets.example.com/carriers/postnord/logo.svg",
"icon_url": "https://assets.example.com/carriers/postnord/icon.svg"
},
"service_code": "postnord_agent",
"service_name": "Service point",
"is_pickup": true,
"is_return": false,
"addons": [
{
"code": "SIGNATURE",
"name": "Signature"
}
],
"pickup_point": {
"uuid": "99999999-9999-4999-8999-999999999999",
"code": "12345",
"name": "Example Parcel Shop",
"address": {
"address_lines": [
"Eksempelvej 20"
],
"postal_code": "8000",
"city": "Aarhus C",
"country": "DK",
"administrative_area": "82"
}
},
"delivery_window": {
"earliest": "2026-09-17T08:00:00Z",
"latest": "2026-09-17T16:00:00Z"
},
"incoterm": "DAP"
},
"parties": {
"merchant": {
"reference": "SHOP-DK",
"identifier": "shop-1",
"uri": "https://shop.example.com",
"address": {
"address_lines": [
"Eksempelgade 1"
],
"postal_code": "2100",
"city": "Copenhagen",
"country": "DK",
"administrative_area": "84"
},
"contact": {
"name_lines": [
"Example Shop"
],
"company": "Example Shop ApS",
"email": "shop@example.com",
"phone": "+4587654321"
},
"identifiers": {
"vat": "DK12345678",
"eori": "DK12345678",
"gb_eori": "GB123456789000",
"tax_id": "12345678",
"voec": "2000123"
}
},
"customer": {
"reference": "CUSTOMER-2048",
"identifier": "customer-2048",
"uri": "https://shop.example.com/admin/customers/2048",
"address": {
"address_lines": [
"Eksempelvej 10"
],
"postal_code": "8000",
"city": "Aarhus C",
"country": "DK",
"administrative_area": "82"
},
"contact": {
"name_lines": [
"Example Customer"
],
"company": "Example Design ApS",
"email": "customer@example.com",
"phone": "+4512345678"
},
"identifiers": {
"vat": "DK87654321",
"eori": "DK87654321",
"gb_eori": "GB987654321000",
"tax_id": "87654321",
"voec": "2000456"
}
}
},
"parcels": [
{
"uuid": "33333333-3333-4333-8333-333333333333",
"reference": "ORDER-1042-1",
"identifier": "shop-parcel-1",
"freetext": "Gift wrapped; keep dry.",
"gross_weight": {
"value": 1500,
"unit": "g"
},
"length": {
"value": 30,
"unit": "cm"
},
"width": {
"value": 20,
"unit": "cm"
},
"height": {
"value": 15,
"unit": "cm"
},
"total_net_amount": {
"value": 20000,
"currency": "DKK"
},
"tax_amount": {
"value": 5000,
"currency": "DKK"
},
"duty_amount": {
"value": 0,
"currency": "DKK"
},
"items": [
{
"reference": "TSHIRT-BLUE-M",
"identifier": "order-line-9001",
"uri": "https://shop.example.com/products/blue-t-shirt",
"image_url": "https://shop.example.com/images/blue-t-shirt.jpg",
"sku": "TSHIRT-BLUE-M",
"location": "A1-04",
"name": "Blue cotton T-shirt, size M",
"description": "Two blue cotton T-shirts",
"tariff_code": "610910",
"country_of_origin": "DK",
"quantity": 2,
"total_net_amount": {
"value": 20000,
"currency": "DKK"
},
"tax_amount": {
"value": 5000,
"currency": "DKK"
},
"duty_amount": {
"value": 0,
"currency": "DKK"
},
"net_weight": {
"value": 1000,
"unit": "g"
},
"cost_amount": {
"value": 10000,
"currency": "DKK"
},
"dangerous_goods": null
}
],
"tracking_number": "00340434161094015749",
"tracking_url": "https://track.smartsend.io/example"
}
],
"total_net_amount": {
"value": 20000,
"currency": "DKK"
},
"tax_amount": {
"value": 5000,
"currency": "DKK"
},
"duty_amount": {
"value": 0,
"currency": "DKK"
},
"shipping_net_amount": {
"value": 3920,
"currency": "DKK"
},
"shipping_tax_amount": {
"value": 980,
"currency": "DKK"
},
"content_type": "commercial_goods",
"documents": [
{
"uuid": "44444444-4444-4444-8444-444444444444",
"print_status": "queued",
"name": "Shipping label",
"filename": "ORDER-1042-label.pdf",
"types": [
"label"
],
"format": "pdf",
"mime_type": "application/pdf",
"size_bytes": 18342,
"width": {
"value": 210,
"unit": "mm"
},
"height": {
"value": 297,
"unit": "mm"
},
"page_count": 1,
"url": "https://downloads.example.com/documents/label.pdf",
"url_expires_at": "2026-09-16T10:15:02Z",
"description": "Print and attach the label.",
"created_at": "2026-09-16T10:00:02Z",
"updated_at": "2026-09-16T10:00:02Z"
}
],
"qr_codes": [
{
"url": "https://downloads.example.com/codes/ORDER-1042.png",
"url_expires_at": "2026-09-16T10:15:02Z"
}
],
"drop_off_codes": [
"PB-12345678"
],
"created_at": "2026-09-16T10:00:00Z",
"updated_at": "2026-09-16T10:00:02Z",
"booked_at": "2026-09-16T10:00:02Z",
"cancelled_at": null,
"voided_at": null
}
],
"links": {
"first": null,
"last": null,
"prev": "https://api.smartsend.io/v2/teams/00000000-0000-4000-8000-000000000001/shipments?updated_since=2026-09-16T10%3A00%3A00Z&updated_until=2026-09-16T10%3A01%3A00Z&sort=updated_at&per_page=1&cursor=eyJ1cGRhdGVkX2F0IjoiMjAyNi0wOS0xNlQxMDowMDowMloiLCJ1dWlkIjoiMjIyMjIyMjItMjIyMi00MjIyLTgyMjItMjIyMjIyMjIyMjIyIiwiX3BvaW50c1RvTmV4dEl0ZW1zIjpmYWxzZX0",
"next": "https://api.smartsend.io/v2/teams/00000000-0000-4000-8000-000000000001/shipments?updated_since=2026-09-16T10%3A00%3A00Z&updated_until=2026-09-16T10%3A01%3A00Z&sort=updated_at&per_page=1&cursor=eyJ1cGRhdGVkX2F0IjoiMjAyNi0wOS0xNlQxMDowMDowMloiLCJ1dWlkIjoiMjIyMjIyMjItMjIyMi00MjIyLTgyMjItMjIyMjIyMjIyMjIyIiwiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ"
},
"meta": {
"path": "https://api.smartsend.io/v2/teams/00000000-0000-4000-8000-000000000001/shipments",
"per_page": 1,
"next_cursor": "eyJ1cGRhdGVkX2F0IjoiMjAyNi0wOS0xNlQxMDowMDowMloiLCJ1dWlkIjoiMjIyMjIyMjItMjIyMi00MjIyLTgyMjItMjIyMjIyMjIyMjIyIiwiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ",
"prev_cursor": "eyJ1cGRhdGVkX2F0IjoiMjAyNi0wOS0xNlQxMDowMDowMloiLCJ1dWlkIjoiMjIyMjIyMjItMjIyMi00MjIyLTgyMjItMjIyMjIyMjIyMjIyIiwiX3BvaW50c1RvTmV4dEl0ZW1zIjpmYWxzZX0",
"sync_until": "2026-09-16T10:01:00Z"
}
}{
"message": "Unauthenticated."
}{
"message": "This action is unauthorized."
}{
"message": "The requested resource was not found."
}{
"message": "The given data was invalid.",
"errors": {
"field_name": [
"This field is required."
]
}
}{
"message": "Too Many Attempts."
}{
"message": "Server Error"
}{
"message": "Service Unavailable"
}List shipments
Lists shipments with filters and cursor pagination for browsing or synchronisation.
curl --request GET \
--url https://api.smartsend.io/v2/teams/{teamUuid}/shipments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.smartsend.io/v2/teams/{teamUuid}/shipments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.smartsend.io/v2/teams/{teamUuid}/shipments', 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}/shipments",
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: Bearer <token>"
],
]);
$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://api.smartsend.io/v2/teams/{teamUuid}/shipments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.smartsend.io/v2/teams/{teamUuid}/shipments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartsend.io/v2/teams/{teamUuid}/shipments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"uuid": "22222222-2222-4222-8222-222222222222",
"state": "booked",
"invoice_number": "INV-1042",
"reference": "ORDER-1042",
"identifier": "shop-order-1042",
"uri": "https://shop.example.com/admin/orders/1042",
"delivery": {
"carrier": {
"code": "postnord",
"name": "PostNord",
"logo_url": "https://assets.example.com/carriers/postnord/logo.svg",
"icon_url": "https://assets.example.com/carriers/postnord/icon.svg"
},
"last_mile_carrier": {
"code": "postnord",
"name": "PostNord",
"logo_url": "https://assets.example.com/carriers/postnord/logo.svg",
"icon_url": "https://assets.example.com/carriers/postnord/icon.svg"
},
"service_code": "postnord_agent",
"service_name": "Service point",
"is_pickup": true,
"is_return": false,
"addons": [
{
"code": "SIGNATURE",
"name": "Signature"
}
],
"pickup_point": {
"uuid": "99999999-9999-4999-8999-999999999999",
"code": "12345",
"name": "Example Parcel Shop",
"address": {
"address_lines": [
"Eksempelvej 20"
],
"postal_code": "8000",
"city": "Aarhus C",
"country": "DK",
"administrative_area": "82"
}
},
"delivery_window": {
"earliest": "2026-09-17T08:00:00Z",
"latest": "2026-09-17T16:00:00Z"
},
"incoterm": "DAP"
},
"parties": {
"merchant": {
"reference": "SHOP-DK",
"identifier": "shop-1",
"uri": "https://shop.example.com",
"address": {
"address_lines": [
"Eksempelgade 1"
],
"postal_code": "2100",
"city": "Copenhagen",
"country": "DK",
"administrative_area": "84"
},
"contact": {
"name_lines": [
"Example Shop"
],
"company": "Example Shop ApS",
"email": "shop@example.com",
"phone": "+4587654321"
},
"identifiers": {
"vat": "DK12345678",
"eori": "DK12345678",
"gb_eori": "GB123456789000",
"tax_id": "12345678",
"voec": "2000123"
}
},
"customer": {
"reference": "CUSTOMER-2048",
"identifier": "customer-2048",
"uri": "https://shop.example.com/admin/customers/2048",
"address": {
"address_lines": [
"Eksempelvej 10"
],
"postal_code": "8000",
"city": "Aarhus C",
"country": "DK",
"administrative_area": "82"
},
"contact": {
"name_lines": [
"Example Customer"
],
"company": "Example Design ApS",
"email": "customer@example.com",
"phone": "+4512345678"
},
"identifiers": {
"vat": "DK87654321",
"eori": "DK87654321",
"gb_eori": "GB987654321000",
"tax_id": "87654321",
"voec": "2000456"
}
}
},
"parcels": [
{
"uuid": "33333333-3333-4333-8333-333333333333",
"reference": "ORDER-1042-1",
"identifier": "shop-parcel-1",
"freetext": "Gift wrapped; keep dry.",
"gross_weight": {
"value": 1500,
"unit": "g"
},
"length": {
"value": 30,
"unit": "cm"
},
"width": {
"value": 20,
"unit": "cm"
},
"height": {
"value": 15,
"unit": "cm"
},
"total_net_amount": {
"value": 20000,
"currency": "DKK"
},
"tax_amount": {
"value": 5000,
"currency": "DKK"
},
"duty_amount": {
"value": 0,
"currency": "DKK"
},
"items": [
{
"reference": "TSHIRT-BLUE-M",
"identifier": "order-line-9001",
"uri": "https://shop.example.com/products/blue-t-shirt",
"image_url": "https://shop.example.com/images/blue-t-shirt.jpg",
"sku": "TSHIRT-BLUE-M",
"location": "A1-04",
"name": "Blue cotton T-shirt, size M",
"description": "Two blue cotton T-shirts",
"tariff_code": "610910",
"country_of_origin": "DK",
"quantity": 2,
"total_net_amount": {
"value": 20000,
"currency": "DKK"
},
"tax_amount": {
"value": 5000,
"currency": "DKK"
},
"duty_amount": {
"value": 0,
"currency": "DKK"
},
"net_weight": {
"value": 1000,
"unit": "g"
},
"cost_amount": {
"value": 10000,
"currency": "DKK"
},
"dangerous_goods": null
}
],
"tracking_number": "00340434161094015749",
"tracking_url": "https://track.smartsend.io/example"
}
],
"total_net_amount": {
"value": 20000,
"currency": "DKK"
},
"tax_amount": {
"value": 5000,
"currency": "DKK"
},
"duty_amount": {
"value": 0,
"currency": "DKK"
},
"shipping_net_amount": {
"value": 3920,
"currency": "DKK"
},
"shipping_tax_amount": {
"value": 980,
"currency": "DKK"
},
"content_type": "commercial_goods",
"documents": [
{
"uuid": "44444444-4444-4444-8444-444444444444",
"print_status": "queued",
"name": "Shipping label",
"filename": "ORDER-1042-label.pdf",
"types": [
"label"
],
"format": "pdf",
"mime_type": "application/pdf",
"size_bytes": 18342,
"width": {
"value": 210,
"unit": "mm"
},
"height": {
"value": 297,
"unit": "mm"
},
"page_count": 1,
"url": "https://downloads.example.com/documents/label.pdf",
"url_expires_at": "2026-09-16T10:15:02Z",
"description": "Print and attach the label.",
"created_at": "2026-09-16T10:00:02Z",
"updated_at": "2026-09-16T10:00:02Z"
}
],
"qr_codes": [
{
"url": "https://downloads.example.com/codes/ORDER-1042.png",
"url_expires_at": "2026-09-16T10:15:02Z"
}
],
"drop_off_codes": [
"PB-12345678"
],
"created_at": "2026-09-16T10:00:00Z",
"updated_at": "2026-09-16T10:00:02Z",
"booked_at": "2026-09-16T10:00:02Z",
"cancelled_at": null,
"voided_at": null
}
],
"links": {
"first": null,
"last": null,
"prev": "https://api.smartsend.io/v2/teams/00000000-0000-4000-8000-000000000001/shipments?updated_since=2026-09-16T10%3A00%3A00Z&updated_until=2026-09-16T10%3A01%3A00Z&sort=updated_at&per_page=1&cursor=eyJ1cGRhdGVkX2F0IjoiMjAyNi0wOS0xNlQxMDowMDowMloiLCJ1dWlkIjoiMjIyMjIyMjItMjIyMi00MjIyLTgyMjItMjIyMjIyMjIyMjIyIiwiX3BvaW50c1RvTmV4dEl0ZW1zIjpmYWxzZX0",
"next": "https://api.smartsend.io/v2/teams/00000000-0000-4000-8000-000000000001/shipments?updated_since=2026-09-16T10%3A00%3A00Z&updated_until=2026-09-16T10%3A01%3A00Z&sort=updated_at&per_page=1&cursor=eyJ1cGRhdGVkX2F0IjoiMjAyNi0wOS0xNlQxMDowMDowMloiLCJ1dWlkIjoiMjIyMjIyMjItMjIyMi00MjIyLTgyMjItMjIyMjIyMjIyMjIyIiwiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ"
},
"meta": {
"path": "https://api.smartsend.io/v2/teams/00000000-0000-4000-8000-000000000001/shipments",
"per_page": 1,
"next_cursor": "eyJ1cGRhdGVkX2F0IjoiMjAyNi0wOS0xNlQxMDowMDowMloiLCJ1dWlkIjoiMjIyMjIyMjItMjIyMi00MjIyLTgyMjItMjIyMjIyMjIyMjIyIiwiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ",
"prev_cursor": "eyJ1cGRhdGVkX2F0IjoiMjAyNi0wOS0xNlQxMDowMDowMloiLCJ1dWlkIjoiMjIyMjIyMjItMjIyMi00MjIyLTgyMjItMjIyMjIyMjIyMjIyIiwiX3BvaW50c1RvTmV4dEl0ZW1zIjpmYWxzZX0",
"sync_until": "2026-09-16T10:01:00Z"
}
}{
"message": "Unauthenticated."
}{
"message": "This action is unauthorized."
}{
"message": "The requested resource was not found."
}{
"message": "The given data was invalid.",
"errors": {
"field_name": [
"This field is required."
]
}
}{
"message": "Too Many Attempts."
}{
"message": "Server Error"
}{
"message": "Service Unavailable"
}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"
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
Filter by carrier code.
Filter by composite service code.
Exact parcel tracking number.
Filter by current shipment state. Avoid mutable state filters during complete synchronisation. Booking state:
pending: Accepted in an open batch.queued: Waiting to start booking.booking: The carrier/document/code workflow is running.booked: The carrier has accepted the booking and all required documents/codes are ready.failed: The workflow failed or reached its final deadline.cancelling: Cancellation is running.cancelled: Cancelled internally without confirmed carrier cancellation; also used for unstarted batch members stopped before booking.voided: Cancelled internally and confirmed cancelled by the carrier.
A rare late success may change failed to booked or cancelled to voided. Delivery status belongs to tracking.
pending, queued, booking, booked, failed, cancelling, cancelled, voided Exact private shipment reference. Multiple shipments may match.
Exact public shipment reference. Multiple shipments may match.
Members of the specified batch.
Inclusive lower creation boundary.
Inclusive upper creation boundary.
Inclusive lower lifecycle-update boundary. Uses updated_at ordering.
Inclusive fixed upper boundary. On the first sync page the server assigns this when omitted and returns meta.sync_until; every next link retains it.
Default -created_at, or updated_at when update filters are supplied. Update filters require updated_at sorting. Internal unique ID is the non-null tie-breaker.
-created_at, created_at, updated_at Opaque cursor returned by this endpoint. Omit it for the first page. Keep all filters, sort order and per_page unchanged within a page sequence. For tracking polls, use the documented resume_cursor once next is null.
1Maximum number of resources per page.
1 <= x <= 1000Response
Current shipments.
Show child attributes
Show child attributes
Navigation links for a cursor-paginated collection. Follow next or prev with GET; returned URLs preserve the selected filters, sort order, page size and sync boundary where applicable.
Show child attributes
Show child attributes
Cursor pagination metadata with the additional sync_until boundary for shipment synchronisation.
Show child attributes
Show child attributes
Was this page helpful?