curl --request POST \
--url https://api.smartsend.io/beta/teams/{teamUuid}/booking-batches/{batch}/start \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.smartsend.io/beta/teams/{teamUuid}/booking-batches/{batch}/start"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.smartsend.io/beta/teams/{teamUuid}/booking-batches/{batch}/start', 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/beta/teams/{teamUuid}/booking-batches/{batch}/start",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/beta/teams/{teamUuid}/booking-batches/{batch}/start"
req, _ := http.NewRequest("POST", 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.post("https://api.smartsend.io/beta/teams/{teamUuid}/booking-batches/{batch}/start")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartsend.io/beta/teams/{teamUuid}/booking-batches/{batch}/start")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"uuid": "55555555-5555-4555-8555-555555555555",
"state": "processing",
"identifier": "batch-db-42",
"reference": "MORNING-2026-09-16",
"total_count": 10,
"pending_count": 6,
"processing_count": 1,
"booked_count": 2,
"failed_count": 1,
"cancelled_count": 0,
"completed_count": 3,
"progress": 30,
"created_at": "2026-09-16T10:00:00Z",
"updated_at": "2026-09-16T10:00:12Z",
"started_at": "2026-09-16T10:00:02Z",
"finished_at": null
}
}Start a booking batch
Starts booking the shipments in a batch, one at a time.
curl --request POST \
--url https://api.smartsend.io/beta/teams/{teamUuid}/booking-batches/{batch}/start \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.smartsend.io/beta/teams/{teamUuid}/booking-batches/{batch}/start"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.smartsend.io/beta/teams/{teamUuid}/booking-batches/{batch}/start', 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/beta/teams/{teamUuid}/booking-batches/{batch}/start",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/beta/teams/{teamUuid}/booking-batches/{batch}/start"
req, _ := http.NewRequest("POST", 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.post("https://api.smartsend.io/beta/teams/{teamUuid}/booking-batches/{batch}/start")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartsend.io/beta/teams/{teamUuid}/booking-batches/{batch}/start")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"uuid": "55555555-5555-4555-8555-555555555555",
"state": "processing",
"identifier": "batch-db-42",
"reference": "MORNING-2026-09-16",
"total_count": 10,
"pending_count": 6,
"processing_count": 1,
"booked_count": 2,
"failed_count": 1,
"cancelled_count": 0,
"completed_count": 3,
"progress": 30,
"created_at": "2026-09-16T10:00:00Z",
"updated_at": "2026-09-16T10:00:12Z",
"started_at": "2026-09-16T10:00:02Z",
"finished_at": null
}
}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}$Optional, case-sensitive key for one intended action. Scope: team, HTTP method and canonical path. Completed actions are remembered in cache for 24 hours; cache loss, eviction or expiry may allow the action to execute again. Same key and payload reuses the stored outcome without repeating side effects; the resource representation is current. Changed payload: 422 with an Idempotency-Key entry in errors. Concurrent duplicate: 409 with Retry-After and Location when known. Without a key there is no deduplication. Use GET at Location after 202.
16 - 128^[A-Za-z0-9]{16,128}$Path Parameters
Team uuid. All resources are scoped to this team.
UUID of the batch in this team.
Response
Batch dispatch durably accepted and membership locked. Shipments are booked one at a time in insertion order, continuing after individual failures. Repeating start on a queued, processing or completed batch returns its current result without redispatch.
Batch progress for one-at-a-time booking. total_count = pending_count + processing_count + completed_count. Post-booking cancellation/printing/tracking do not rewrite booking outcomes. Late booking corrections may adjust outcome counts without reopening a terminal batch.
Show child attributes
Show child attributes
Was this page helpful?