Book an LTL shipment
curl --request POST \
--url https://api.shippeek.dev/book \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"rateId": "<string>",
"schedulePickup": false,
"shareShipmentEmails": [
"jsmith@example.com"
],
"bolNum": "<string>",
"originCompany": "<string>",
"originAddress": "<string>",
"originAddress2": "<string>",
"originContactName": "<string>",
"originContactPhone": "<string>",
"originContactEmail": "jsmith@example.com",
"originReferenceNumber": "<string>",
"originInstructions": "<string>",
"originDockHoursOpen": "<string>",
"originDockHoursClose": "<string>",
"destCompany": "<string>",
"destAddress": "<string>",
"destAddress2": "<string>",
"destContactName": "<string>",
"destContactPhone": "<string>",
"destContactEmail": "jsmith@example.com",
"destReferenceNumber": "<string>",
"destInstructions": "<string>",
"destDockHoursOpen": "<string>",
"destDockHoursClose": "<string>",
"emergencyName": "<string>",
"emergencyPhone": "<string>"
}
'import requests
url = "https://api.shippeek.dev/book"
payload = {
"id": "<string>",
"rateId": "<string>",
"schedulePickup": False,
"shareShipmentEmails": ["jsmith@example.com"],
"bolNum": "<string>",
"originCompany": "<string>",
"originAddress": "<string>",
"originAddress2": "<string>",
"originContactName": "<string>",
"originContactPhone": "<string>",
"originContactEmail": "jsmith@example.com",
"originReferenceNumber": "<string>",
"originInstructions": "<string>",
"originDockHoursOpen": "<string>",
"originDockHoursClose": "<string>",
"destCompany": "<string>",
"destAddress": "<string>",
"destAddress2": "<string>",
"destContactName": "<string>",
"destContactPhone": "<string>",
"destContactEmail": "jsmith@example.com",
"destReferenceNumber": "<string>",
"destInstructions": "<string>",
"destDockHoursOpen": "<string>",
"destDockHoursClose": "<string>",
"emergencyName": "<string>",
"emergencyPhone": "<string>"
}
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({
id: '<string>',
rateId: '<string>',
schedulePickup: false,
shareShipmentEmails: ['jsmith@example.com'],
bolNum: '<string>',
originCompany: '<string>',
originAddress: '<string>',
originAddress2: '<string>',
originContactName: '<string>',
originContactPhone: '<string>',
originContactEmail: 'jsmith@example.com',
originReferenceNumber: '<string>',
originInstructions: '<string>',
originDockHoursOpen: '<string>',
originDockHoursClose: '<string>',
destCompany: '<string>',
destAddress: '<string>',
destAddress2: '<string>',
destContactName: '<string>',
destContactPhone: '<string>',
destContactEmail: 'jsmith@example.com',
destReferenceNumber: '<string>',
destInstructions: '<string>',
destDockHoursOpen: '<string>',
destDockHoursClose: '<string>',
emergencyName: '<string>',
emergencyPhone: '<string>'
})
};
fetch('https://api.shippeek.dev/book', 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.shippeek.dev/book",
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([
'id' => '<string>',
'rateId' => '<string>',
'schedulePickup' => false,
'shareShipmentEmails' => [
'jsmith@example.com'
],
'bolNum' => '<string>',
'originCompany' => '<string>',
'originAddress' => '<string>',
'originAddress2' => '<string>',
'originContactName' => '<string>',
'originContactPhone' => '<string>',
'originContactEmail' => 'jsmith@example.com',
'originReferenceNumber' => '<string>',
'originInstructions' => '<string>',
'originDockHoursOpen' => '<string>',
'originDockHoursClose' => '<string>',
'destCompany' => '<string>',
'destAddress' => '<string>',
'destAddress2' => '<string>',
'destContactName' => '<string>',
'destContactPhone' => '<string>',
'destContactEmail' => 'jsmith@example.com',
'destReferenceNumber' => '<string>',
'destInstructions' => '<string>',
'destDockHoursOpen' => '<string>',
'destDockHoursClose' => '<string>',
'emergencyName' => '<string>',
'emergencyPhone' => '<string>'
]),
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.shippeek.dev/book"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"rateId\": \"<string>\",\n \"schedulePickup\": false,\n \"shareShipmentEmails\": [\n \"jsmith@example.com\"\n ],\n \"bolNum\": \"<string>\",\n \"originCompany\": \"<string>\",\n \"originAddress\": \"<string>\",\n \"originAddress2\": \"<string>\",\n \"originContactName\": \"<string>\",\n \"originContactPhone\": \"<string>\",\n \"originContactEmail\": \"jsmith@example.com\",\n \"originReferenceNumber\": \"<string>\",\n \"originInstructions\": \"<string>\",\n \"originDockHoursOpen\": \"<string>\",\n \"originDockHoursClose\": \"<string>\",\n \"destCompany\": \"<string>\",\n \"destAddress\": \"<string>\",\n \"destAddress2\": \"<string>\",\n \"destContactName\": \"<string>\",\n \"destContactPhone\": \"<string>\",\n \"destContactEmail\": \"jsmith@example.com\",\n \"destReferenceNumber\": \"<string>\",\n \"destInstructions\": \"<string>\",\n \"destDockHoursOpen\": \"<string>\",\n \"destDockHoursClose\": \"<string>\",\n \"emergencyName\": \"<string>\",\n \"emergencyPhone\": \"<string>\"\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.shippeek.dev/book")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"rateId\": \"<string>\",\n \"schedulePickup\": false,\n \"shareShipmentEmails\": [\n \"jsmith@example.com\"\n ],\n \"bolNum\": \"<string>\",\n \"originCompany\": \"<string>\",\n \"originAddress\": \"<string>\",\n \"originAddress2\": \"<string>\",\n \"originContactName\": \"<string>\",\n \"originContactPhone\": \"<string>\",\n \"originContactEmail\": \"jsmith@example.com\",\n \"originReferenceNumber\": \"<string>\",\n \"originInstructions\": \"<string>\",\n \"originDockHoursOpen\": \"<string>\",\n \"originDockHoursClose\": \"<string>\",\n \"destCompany\": \"<string>\",\n \"destAddress\": \"<string>\",\n \"destAddress2\": \"<string>\",\n \"destContactName\": \"<string>\",\n \"destContactPhone\": \"<string>\",\n \"destContactEmail\": \"jsmith@example.com\",\n \"destReferenceNumber\": \"<string>\",\n \"destInstructions\": \"<string>\",\n \"destDockHoursOpen\": \"<string>\",\n \"destDockHoursClose\": \"<string>\",\n \"emergencyName\": \"<string>\",\n \"emergencyPhone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.shippeek.dev/book")
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 \"id\": \"<string>\",\n \"rateId\": \"<string>\",\n \"schedulePickup\": false,\n \"shareShipmentEmails\": [\n \"jsmith@example.com\"\n ],\n \"bolNum\": \"<string>\",\n \"originCompany\": \"<string>\",\n \"originAddress\": \"<string>\",\n \"originAddress2\": \"<string>\",\n \"originContactName\": \"<string>\",\n \"originContactPhone\": \"<string>\",\n \"originContactEmail\": \"jsmith@example.com\",\n \"originReferenceNumber\": \"<string>\",\n \"originInstructions\": \"<string>\",\n \"originDockHoursOpen\": \"<string>\",\n \"originDockHoursClose\": \"<string>\",\n \"destCompany\": \"<string>\",\n \"destAddress\": \"<string>\",\n \"destAddress2\": \"<string>\",\n \"destContactName\": \"<string>\",\n \"destContactPhone\": \"<string>\",\n \"destContactEmail\": \"jsmith@example.com\",\n \"destReferenceNumber\": \"<string>\",\n \"destInstructions\": \"<string>\",\n \"destDockHoursOpen\": \"<string>\",\n \"destDockHoursClose\": \"<string>\",\n \"emergencyName\": \"<string>\",\n \"emergencyPhone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"createdDate": "2023-11-07T05:31:56Z",
"status": "<string>",
"dispatch": {
"carrierId": "<string>",
"carrier": "<string>",
"carrierCode": "<string>",
"schedulePickup": true,
"bolStatus": "<string>",
"pickupNum": "<string>",
"proNum": "<string>",
"items": [
{
"itemId": "<string>",
"index": 123,
"trackingNum": "<string>"
}
]
}
}Booking
Book an LTL shipment
Book a shipment using a rate ID from a previous rate request. Returns a BOL, PRO number, and optionally schedules a pickup with the carrier.
POST
/
book
Book an LTL shipment
curl --request POST \
--url https://api.shippeek.dev/book \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"rateId": "<string>",
"schedulePickup": false,
"shareShipmentEmails": [
"jsmith@example.com"
],
"bolNum": "<string>",
"originCompany": "<string>",
"originAddress": "<string>",
"originAddress2": "<string>",
"originContactName": "<string>",
"originContactPhone": "<string>",
"originContactEmail": "jsmith@example.com",
"originReferenceNumber": "<string>",
"originInstructions": "<string>",
"originDockHoursOpen": "<string>",
"originDockHoursClose": "<string>",
"destCompany": "<string>",
"destAddress": "<string>",
"destAddress2": "<string>",
"destContactName": "<string>",
"destContactPhone": "<string>",
"destContactEmail": "jsmith@example.com",
"destReferenceNumber": "<string>",
"destInstructions": "<string>",
"destDockHoursOpen": "<string>",
"destDockHoursClose": "<string>",
"emergencyName": "<string>",
"emergencyPhone": "<string>"
}
'import requests
url = "https://api.shippeek.dev/book"
payload = {
"id": "<string>",
"rateId": "<string>",
"schedulePickup": False,
"shareShipmentEmails": ["jsmith@example.com"],
"bolNum": "<string>",
"originCompany": "<string>",
"originAddress": "<string>",
"originAddress2": "<string>",
"originContactName": "<string>",
"originContactPhone": "<string>",
"originContactEmail": "jsmith@example.com",
"originReferenceNumber": "<string>",
"originInstructions": "<string>",
"originDockHoursOpen": "<string>",
"originDockHoursClose": "<string>",
"destCompany": "<string>",
"destAddress": "<string>",
"destAddress2": "<string>",
"destContactName": "<string>",
"destContactPhone": "<string>",
"destContactEmail": "jsmith@example.com",
"destReferenceNumber": "<string>",
"destInstructions": "<string>",
"destDockHoursOpen": "<string>",
"destDockHoursClose": "<string>",
"emergencyName": "<string>",
"emergencyPhone": "<string>"
}
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({
id: '<string>',
rateId: '<string>',
schedulePickup: false,
shareShipmentEmails: ['jsmith@example.com'],
bolNum: '<string>',
originCompany: '<string>',
originAddress: '<string>',
originAddress2: '<string>',
originContactName: '<string>',
originContactPhone: '<string>',
originContactEmail: 'jsmith@example.com',
originReferenceNumber: '<string>',
originInstructions: '<string>',
originDockHoursOpen: '<string>',
originDockHoursClose: '<string>',
destCompany: '<string>',
destAddress: '<string>',
destAddress2: '<string>',
destContactName: '<string>',
destContactPhone: '<string>',
destContactEmail: 'jsmith@example.com',
destReferenceNumber: '<string>',
destInstructions: '<string>',
destDockHoursOpen: '<string>',
destDockHoursClose: '<string>',
emergencyName: '<string>',
emergencyPhone: '<string>'
})
};
fetch('https://api.shippeek.dev/book', 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.shippeek.dev/book",
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([
'id' => '<string>',
'rateId' => '<string>',
'schedulePickup' => false,
'shareShipmentEmails' => [
'jsmith@example.com'
],
'bolNum' => '<string>',
'originCompany' => '<string>',
'originAddress' => '<string>',
'originAddress2' => '<string>',
'originContactName' => '<string>',
'originContactPhone' => '<string>',
'originContactEmail' => 'jsmith@example.com',
'originReferenceNumber' => '<string>',
'originInstructions' => '<string>',
'originDockHoursOpen' => '<string>',
'originDockHoursClose' => '<string>',
'destCompany' => '<string>',
'destAddress' => '<string>',
'destAddress2' => '<string>',
'destContactName' => '<string>',
'destContactPhone' => '<string>',
'destContactEmail' => 'jsmith@example.com',
'destReferenceNumber' => '<string>',
'destInstructions' => '<string>',
'destDockHoursOpen' => '<string>',
'destDockHoursClose' => '<string>',
'emergencyName' => '<string>',
'emergencyPhone' => '<string>'
]),
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.shippeek.dev/book"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"rateId\": \"<string>\",\n \"schedulePickup\": false,\n \"shareShipmentEmails\": [\n \"jsmith@example.com\"\n ],\n \"bolNum\": \"<string>\",\n \"originCompany\": \"<string>\",\n \"originAddress\": \"<string>\",\n \"originAddress2\": \"<string>\",\n \"originContactName\": \"<string>\",\n \"originContactPhone\": \"<string>\",\n \"originContactEmail\": \"jsmith@example.com\",\n \"originReferenceNumber\": \"<string>\",\n \"originInstructions\": \"<string>\",\n \"originDockHoursOpen\": \"<string>\",\n \"originDockHoursClose\": \"<string>\",\n \"destCompany\": \"<string>\",\n \"destAddress\": \"<string>\",\n \"destAddress2\": \"<string>\",\n \"destContactName\": \"<string>\",\n \"destContactPhone\": \"<string>\",\n \"destContactEmail\": \"jsmith@example.com\",\n \"destReferenceNumber\": \"<string>\",\n \"destInstructions\": \"<string>\",\n \"destDockHoursOpen\": \"<string>\",\n \"destDockHoursClose\": \"<string>\",\n \"emergencyName\": \"<string>\",\n \"emergencyPhone\": \"<string>\"\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.shippeek.dev/book")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"rateId\": \"<string>\",\n \"schedulePickup\": false,\n \"shareShipmentEmails\": [\n \"jsmith@example.com\"\n ],\n \"bolNum\": \"<string>\",\n \"originCompany\": \"<string>\",\n \"originAddress\": \"<string>\",\n \"originAddress2\": \"<string>\",\n \"originContactName\": \"<string>\",\n \"originContactPhone\": \"<string>\",\n \"originContactEmail\": \"jsmith@example.com\",\n \"originReferenceNumber\": \"<string>\",\n \"originInstructions\": \"<string>\",\n \"originDockHoursOpen\": \"<string>\",\n \"originDockHoursClose\": \"<string>\",\n \"destCompany\": \"<string>\",\n \"destAddress\": \"<string>\",\n \"destAddress2\": \"<string>\",\n \"destContactName\": \"<string>\",\n \"destContactPhone\": \"<string>\",\n \"destContactEmail\": \"jsmith@example.com\",\n \"destReferenceNumber\": \"<string>\",\n \"destInstructions\": \"<string>\",\n \"destDockHoursOpen\": \"<string>\",\n \"destDockHoursClose\": \"<string>\",\n \"emergencyName\": \"<string>\",\n \"emergencyPhone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.shippeek.dev/book")
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 \"id\": \"<string>\",\n \"rateId\": \"<string>\",\n \"schedulePickup\": false,\n \"shareShipmentEmails\": [\n \"jsmith@example.com\"\n ],\n \"bolNum\": \"<string>\",\n \"originCompany\": \"<string>\",\n \"originAddress\": \"<string>\",\n \"originAddress2\": \"<string>\",\n \"originContactName\": \"<string>\",\n \"originContactPhone\": \"<string>\",\n \"originContactEmail\": \"jsmith@example.com\",\n \"originReferenceNumber\": \"<string>\",\n \"originInstructions\": \"<string>\",\n \"originDockHoursOpen\": \"<string>\",\n \"originDockHoursClose\": \"<string>\",\n \"destCompany\": \"<string>\",\n \"destAddress\": \"<string>\",\n \"destAddress2\": \"<string>\",\n \"destContactName\": \"<string>\",\n \"destContactPhone\": \"<string>\",\n \"destContactEmail\": \"jsmith@example.com\",\n \"destReferenceNumber\": \"<string>\",\n \"destInstructions\": \"<string>\",\n \"destDockHoursOpen\": \"<string>\",\n \"destDockHoursClose\": \"<string>\",\n \"emergencyName\": \"<string>\",\n \"emergencyPhone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"createdDate": "2023-11-07T05:31:56Z",
"status": "<string>",
"dispatch": {
"carrierId": "<string>",
"carrier": "<string>",
"carrierCode": "<string>",
"schedulePickup": true,
"bolStatus": "<string>",
"pickupNum": "<string>",
"proNum": "<string>",
"items": [
{
"itemId": "<string>",
"index": 123,
"trackingNum": "<string>"
}
]
}
}Authorizations
Your ShipPeek API token in the format client_id.client_secret.
Query Parameters
Label size for the shipment
Available options:
2.25x4, 3x4, 3x5, 3.5x5, 4x1, 4x2, 4x3.3, 4x6, 4x8, 5.5x8.5, 8.5x11 Number of labels per handling unit
Available options:
1, 2, 4 Body
application/json
Quote ID from the rate response
Rate ID of the selected rate
Whether to schedule a carrier pickup
Email addresses to share shipment details with
Custom BOL number. Auto-generated if not provided.
Reference number (e.g. order number)
Dock open time (e.g. 9:00 AM)
Dock close time (e.g. 5:00 PM)
Reference number (e.g. PO number)
Required for hazardous shipments
Required for hazardous shipments
⌘I