curl --request GET \
--url https://{globale_api_domain}/api/shipments/{trackingNumber}import requests
url = "https://{globale_api_domain}/api/shipments/{trackingNumber}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://{globale_api_domain}/api/shipments/{trackingNumber}', 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://{globale_api_domain}/api/shipments/{trackingNumber}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://{globale_api_domain}/api/shipments/{trackingNumber}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{globale_api_domain}/api/shipments/{trackingNumber}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{globale_api_domain}/api/shipments/{trackingNumber}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"shipment": {
"trackingNumber": "GK414731769016968912",
"weightUnit": "kg",
"totalWeight": 0.9,
"parcels": [
{
"parcelTrackingNumber": "GK414731769016968912",
"orderId": "GE794624680TS",
"parcelWeight": 0.9,
"products": [
{
"productCode": "W5588R-BLK-XS",
"productName": "Cotton Rib Support Tank",
"originCountryCode": "TR",
"quantity": 2,
"productNetWeight": 0.18,
"productWeight": 0.22,
"exportHsCode": "61091000",
"importHsCode": "61091000",
"discountedPriceForCustomsInClearanceCurrency": 42.5
},
{
"productCode": "W6007R-NVY-M",
"productName": "7/8 High-Waist Airlift Legging",
"originCountryCode": "VN",
"quantity": 1,
"productNetWeight": 0.3,
"productWeight": 0.34,
"exportHsCode": "61046200",
"importHsCode": "61046200",
"discountedPriceForCustomsInClearanceCurrency": 84
}
]
}
]
},
"exportDeclaration": {
"dispatchCountryCode": "NL",
"destinationCountryCode": "GB",
"currencyCode": "GBP",
"incoterm": "DDP",
"exporter": {
"name": "Global-e NL B.V.",
"eoriNumber": "NL859146492",
"vatRegistrationNumber": "NL859146492B01",
"address1": "Krijn Taconiskade 430",
"city": "Amsterdam",
"postalCode": "1087 HW",
"countryCode": "NL"
},
"commercialInvoice": {
"number": "1650338",
"date": "2026-07-27",
"totalValue": 169
}
}
}Get shipment information (Merchant to Global-e)
Retrieve the product, weight, classification and customs-value data Global-e holds for a shipment, plus its export-declaration header, so you can prepare a customs export declaration.
curl --request GET \
--url https://{globale_api_domain}/api/shipments/{trackingNumber}import requests
url = "https://{globale_api_domain}/api/shipments/{trackingNumber}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://{globale_api_domain}/api/shipments/{trackingNumber}', 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://{globale_api_domain}/api/shipments/{trackingNumber}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://{globale_api_domain}/api/shipments/{trackingNumber}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{globale_api_domain}/api/shipments/{trackingNumber}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{globale_api_domain}/api/shipments/{trackingNumber}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"shipment": {
"trackingNumber": "GK414731769016968912",
"weightUnit": "kg",
"totalWeight": 0.9,
"parcels": [
{
"parcelTrackingNumber": "GK414731769016968912",
"orderId": "GE794624680TS",
"parcelWeight": 0.9,
"products": [
{
"productCode": "W5588R-BLK-XS",
"productName": "Cotton Rib Support Tank",
"originCountryCode": "TR",
"quantity": 2,
"productNetWeight": 0.18,
"productWeight": 0.22,
"exportHsCode": "61091000",
"importHsCode": "61091000",
"discountedPriceForCustomsInClearanceCurrency": 42.5
},
{
"productCode": "W6007R-NVY-M",
"productName": "7/8 High-Waist Airlift Legging",
"originCountryCode": "VN",
"quantity": 1,
"productNetWeight": 0.3,
"productWeight": 0.34,
"exportHsCode": "61046200",
"importHsCode": "61046200",
"discountedPriceForCustomsInClearanceCurrency": 84
}
]
}
]
},
"exportDeclaration": {
"dispatchCountryCode": "NL",
"destinationCountryCode": "GB",
"currencyCode": "GBP",
"incoterm": "DDP",
"exporter": {
"name": "Global-e NL B.V.",
"eoriNumber": "NL859146492",
"vatRegistrationNumber": "NL859146492B01",
"address1": "Krijn Taconiskade 430",
"city": "Amsterdam",
"postalCode": "1087 HW",
"countryCode": "NL"
},
"commercialInvoice": {
"number": "1650338",
"date": "2026-07-27",
"totalValue": 169
}
}
}403 Forbidden.- Get shipping documents — obtain the label and tracking number
- Submit bonded information — report bonded vs free-circulation status per product (when bonded reporting is required)
- Get shipment information — retrieve product, pricing and declaration header data (when you need the data Global-e holds)
- Create the export document — your side, not a Global-e API
- Upload shipment documents — upload the document and its reference to Global-e (when a document must be attached)
- Dispatch orders — End of Day
Cache-Control: no-store. Do not cache or store it beyond the immediate purpose of preparing the declaration.409 with no exportDeclaration section. This is a permanent gap rather than a not-yet-ready state, so contact Global-e instead of retrying.Path Parameters
Tracking number identifying the shipment. This is the parcel's carrier tracking number when it has one, and otherwise the order's tracking number. Global-e returns the shipment only if it belongs to your merchant account.
1 - 50Response
The shipment was found and all the data the declaration requires is available.
The shipment, with its weights and its parcels.
Show child attributes
Show child attributes
The export-declaration header. Together with each product's HS codes and customs value, this is what you need to prepare the declaration. The declaration is in a single currency, so no exchange rate is returned.
Show child attributes
Show child attributes

