curl --request GET \
--url https://api.zinc.com/track/{order_id} \
--header 'Authorization: <api-key>'import requests
url = "https://api.zinc.com/track/{order_id}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.zinc.com/track/{order_id}', 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.zinc.com/track/{order_id}",
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: <api-key>"
],
]);
$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.zinc.com/track/{order_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
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.zinc.com/track/{order_id}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zinc.com/track/{order_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"order_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"current_status": "pending",
"destination": {
"address_line1": "<string>",
"address_line2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>"
},
"shipments": [
{
"carrier": "<string>",
"tracking_number": "<string>",
"status": "pending",
"estimated_delivery_date": "2023-12-25",
"checkpoints": [
{
"checkpoint_time": "2023-11-07T05:31:56Z",
"status": "pending",
"message": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"zip": "<string>",
"location": "<string>"
}
]
}
],
"items": [
{
"url": "<string>",
"quantity": 123,
"status": "pending",
"variant": [
"<unknown>"
]
}
],
"estimated_delivery_date": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Get Public Tracking
Retrieve the public, unauthenticated tracking view for an order by its UUID.
curl --request GET \
--url https://api.zinc.com/track/{order_id} \
--header 'Authorization: <api-key>'import requests
url = "https://api.zinc.com/track/{order_id}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.zinc.com/track/{order_id}', 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.zinc.com/track/{order_id}",
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: <api-key>"
],
]);
$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.zinc.com/track/{order_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
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.zinc.com/track/{order_id}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zinc.com/track/{order_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"order_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"current_status": "pending",
"destination": {
"address_line1": "<string>",
"address_line2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>"
},
"shipments": [
{
"carrier": "<string>",
"tracking_number": "<string>",
"status": "pending",
"estimated_delivery_date": "2023-12-25",
"checkpoints": [
{
"checkpoint_time": "2023-11-07T05:31:56Z",
"status": "pending",
"message": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"zip": "<string>",
"location": "<string>"
}
]
}
],
"items": [
{
"url": "<string>",
"quantity": 123,
"status": "pending",
"variant": [
"<unknown>"
]
}
],
"estimated_delivery_date": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Zinc API key (Bearer zn_...)
Path Parameters
Response
Successful Response
Public, unauthenticated tracking view for an order.
Keyed by the order's random UUID (used as an unguessable share token). Shows the status, destination, per-package carrier checkpoints, and the ordered items — everything except the recipient's name and phone.
pending, in_progress, order_placed, order_failed, cancelled, cancelled_by_retailer Where an order is headed, for the public tracking page.
Deliberately omits the recipient's name and phone number — everything else on the shipping address (street, city, state, ZIP, country) is shown.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Best-known order-level delivery estimate (destination-local calendar date); per-package estimates are on each shipment.

