Get Inbound Shipment Label Quote
curl --request POST \
--url https://api.beachdepository.com/v1/labels/rates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fboAccountId": "<string>",
"fromAddress": {},
"fromAddressId": "<string>",
"insuredValueDollars": 123,
"weightLb": 123,
"weightOz": 123,
"predefinedPackage": "<string>",
"packageLength": 123,
"packageWidth": 123,
"packageHeight": 123
}
'import requests
url = "https://api.beachdepository.com/v1/labels/rates"
payload = {
"fboAccountId": "<string>",
"fromAddress": {},
"fromAddressId": "<string>",
"insuredValueDollars": 123,
"weightLb": 123,
"weightOz": 123,
"predefinedPackage": "<string>",
"packageLength": 123,
"packageWidth": 123,
"packageHeight": 123
}
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({
fboAccountId: '<string>',
fromAddress: {},
fromAddressId: '<string>',
insuredValueDollars: 123,
weightLb: 123,
weightOz: 123,
predefinedPackage: '<string>',
packageLength: 123,
packageWidth: 123,
packageHeight: 123
})
};
fetch('https://api.beachdepository.com/v1/labels/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://api.beachdepository.com/v1/labels/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([
'fboAccountId' => '<string>',
'fromAddress' => [
],
'fromAddressId' => '<string>',
'insuredValueDollars' => 123,
'weightLb' => 123,
'weightOz' => 123,
'predefinedPackage' => '<string>',
'packageLength' => 123,
'packageWidth' => 123,
'packageHeight' => 123
]),
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.beachdepository.com/v1/labels/rates"
payload := strings.NewReader("{\n \"fboAccountId\": \"<string>\",\n \"fromAddress\": {},\n \"fromAddressId\": \"<string>\",\n \"insuredValueDollars\": 123,\n \"weightLb\": 123,\n \"weightOz\": 123,\n \"predefinedPackage\": \"<string>\",\n \"packageLength\": 123,\n \"packageWidth\": 123,\n \"packageHeight\": 123\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.beachdepository.com/v1/labels/rates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fboAccountId\": \"<string>\",\n \"fromAddress\": {},\n \"fromAddressId\": \"<string>\",\n \"insuredValueDollars\": 123,\n \"weightLb\": 123,\n \"weightOz\": 123,\n \"predefinedPackage\": \"<string>\",\n \"packageLength\": 123,\n \"packageWidth\": 123,\n \"packageHeight\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.beachdepository.com/v1/labels/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 \"fboAccountId\": \"<string>\",\n \"fromAddress\": {},\n \"fromAddressId\": \"<string>\",\n \"insuredValueDollars\": 123,\n \"weightLb\": 123,\n \"weightOz\": 123,\n \"predefinedPackage\": \"<string>\",\n \"packageLength\": 123,\n \"packageWidth\": 123,\n \"packageHeight\": 123\n}"
response = http.request(request)
puts response.read_bodyInbound Shipments
Get Inbound Shipment Label Quote
Quote shipping label rates for an inbound shipment
POST
/
labels
/
rates
Get Inbound Shipment Label Quote
curl --request POST \
--url https://api.beachdepository.com/v1/labels/rates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fboAccountId": "<string>",
"fromAddress": {},
"fromAddressId": "<string>",
"insuredValueDollars": 123,
"weightLb": 123,
"weightOz": 123,
"predefinedPackage": "<string>",
"packageLength": 123,
"packageWidth": 123,
"packageHeight": 123
}
'import requests
url = "https://api.beachdepository.com/v1/labels/rates"
payload = {
"fboAccountId": "<string>",
"fromAddress": {},
"fromAddressId": "<string>",
"insuredValueDollars": 123,
"weightLb": 123,
"weightOz": 123,
"predefinedPackage": "<string>",
"packageLength": 123,
"packageWidth": 123,
"packageHeight": 123
}
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({
fboAccountId: '<string>',
fromAddress: {},
fromAddressId: '<string>',
insuredValueDollars: 123,
weightLb: 123,
weightOz: 123,
predefinedPackage: '<string>',
packageLength: 123,
packageWidth: 123,
packageHeight: 123
})
};
fetch('https://api.beachdepository.com/v1/labels/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://api.beachdepository.com/v1/labels/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([
'fboAccountId' => '<string>',
'fromAddress' => [
],
'fromAddressId' => '<string>',
'insuredValueDollars' => 123,
'weightLb' => 123,
'weightOz' => 123,
'predefinedPackage' => '<string>',
'packageLength' => 123,
'packageWidth' => 123,
'packageHeight' => 123
]),
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.beachdepository.com/v1/labels/rates"
payload := strings.NewReader("{\n \"fboAccountId\": \"<string>\",\n \"fromAddress\": {},\n \"fromAddressId\": \"<string>\",\n \"insuredValueDollars\": 123,\n \"weightLb\": 123,\n \"weightOz\": 123,\n \"predefinedPackage\": \"<string>\",\n \"packageLength\": 123,\n \"packageWidth\": 123,\n \"packageHeight\": 123\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.beachdepository.com/v1/labels/rates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fboAccountId\": \"<string>\",\n \"fromAddress\": {},\n \"fromAddressId\": \"<string>\",\n \"insuredValueDollars\": 123,\n \"weightLb\": 123,\n \"weightOz\": 123,\n \"predefinedPackage\": \"<string>\",\n \"packageLength\": 123,\n \"packageWidth\": 123,\n \"packageHeight\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.beachdepository.com/v1/labels/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 \"fboAccountId\": \"<string>\",\n \"fromAddress\": {},\n \"fromAddressId\": \"<string>\",\n \"insuredValueDollars\": 123,\n \"weightLb\": 123,\n \"weightOz\": 123,\n \"predefinedPackage\": \"<string>\",\n \"packageLength\": 123,\n \"packageWidth\": 123,\n \"packageHeight\": 123\n}"
response = http.request(request)
puts response.read_bodyQuotes shipping rates for a package being shipped into the vault on behalf of an FBO account. Labels are not purchased here — pass the chosen rate’s
id as rateId to Create Inbound Shipment to buy the label along with the shipment.
Permission: inbound_shipments:create
Request body
string
required
ID of the FBO account the shipment is for. Used to resolve the vault’s intake address and, if
fromAddressId is used, to look up the stored address.object
The ship-from address (the customer’s address). Provide this or
fromAddressId, not both.
Required: street1, city, state, zip, country. Optional: street2, name, company,
phone, email.string
ID of a saved address on the FBO account to ship from (see List FBO Account
Addresses). Only
return and alternate addresses
are valid. Provide this or fromAddress, not both.integer
required
Declared value to insure, in whole dollars. Capped at 100,000.
integer
Package weight, whole pounds. Defaults to 2.
integer
Package weight, additional whole ounces. Defaults to 0.
string
A FedEx box preset. One of
FedExEnvelope, FedExPak, FedExTube, FedExBox, FedExSmallBox,
FedExMediumBox, FedExLargeBox, FedExExtraLargeBox. Omit to use custom dimensions instead.number
Custom package length in inches. Ignored if
predefinedPackage is set.number
Custom package width in inches. Ignored if
predefinedPackage is set.number
Custom package height in inches. Ignored if
predefinedPackage is set.Response
Returns the qualified rates. Pass a rate’sid as rateId to Create Inbound Shipment to buy that label along with the shipment. Quoted rates stay purchasable for 15 minutes.
{
"data": {
"rates": [
{
"id": "rate_abc123",
"shipmentId": "ship_abc123",
"carrier": "FedEx",
"service": "FedEx Ground",
"serviceCode": "FEDEX_GROUND",
"rate": "41.68",
"itemCost": 31.55,
"insuranceFee": 8.13,
"cabrellaFee": 2.0,
"itemTotal": 33.55,
"grandTotal": 41.68,
"currency": "USD",
"deliveryDays": 3,
"deliveryDate": "07/24/2026",
"hasInsurance": true,
"isCheapest": true,
"isFastest": false,
"message": null,
"retailCost": 55.0,
"retailSavedPercent": "24%"
}
],
"allRatesCount": 3,
"filteredOutCount": 2,
"coverageLimited": false,
"validatedFromAddress": {
"street1": "123 Main St",
"city": "Dallas",
"state": "TX",
"zip": "75001",
"country": "US"
}
}
}
cabrellaFee is the insurance fee in dollars, included in grandTotal. rate is a string. The
other money fields on a rate are numbers in dollars. *Cents fields elsewhere in the API are
decimal strings.filteredOutCount is the number of returned carrier rates that were excluded for not being FedEx
or not carrying full insurance coverage. coverageLimited is true when rates were excluded
because the shipment’s insured value exceeds the maximum insurable amount for a single shipment —
split high-value items into separate shipments and request rates again.