curl --request GET \
--url https://api.zinc.com/orders/export \
--header 'Authorization: <api-key>'import requests
url = "https://api.zinc.com/orders/export"
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/orders/export', 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/orders/export",
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/orders/export"
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/orders/export")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zinc.com/orders/export")
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<string>{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Export Orders
Download your orders as a CSV, using the same filters as the list endpoint.
curl --request GET \
--url https://api.zinc.com/orders/export \
--header 'Authorization: <api-key>'import requests
url = "https://api.zinc.com/orders/export"
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/orders/export', 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/orders/export",
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/orders/export"
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/orders/export")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zinc.com/orders/export")
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<string>{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}text/csv with
Content-Disposition: attachment; filename="zinc-orders.csv", not JSON.
limit/offset. The export always covers the whole filtered set,
paged internally, so a large account gets every matching order in one file.Columns
| Column | Meaning |
|---|---|
order_id | Order UUID. |
created_at | Order creation timestamp. |
status | Current order status. |
retailer | Retailer the order was placed with. |
item_count | Number of products on the order. |
product_urls | Product URLs, space-separated. |
max_price_cents | The order’s max_price, in cents. |
total_cents | Amount actually charged by the retailer, in cents. |
tracking_numbers / carriers | Tracking numbers and their carriers. |
estimated_delivery | Latest carrier estimate, when known. |
return_status | open or closed when a return exists. |
error_type / error | Failure code and message for failed orders. |
merchant_order_ids | The retailer’s own order number(s) — see Merchant Order IDs. |
po_number | The order’s purchase-order number, when set. |
created_by | Email of the teammate who placed the order; empty on single-user accounts. |
user_email — a
case-insensitive substring match on the address in created_by. See
Filtering by teammate.zn_test_ key (or X-Test-Mode) this exports the sandbox orders.Authorizations
Zinc API key (Bearer zn_...)
Headers
Query Parameters
Filter by order ID (partial match)
Partial match on order ID OR tracking number
Filter by order status
Filter by the retailer's own order number (exact match)
200Shipping recipient's name (case-insensitive partial match)
200Filter to orders having at least one tracking number with this status
Only orders with (true) or without (false) tracking
open or closed return requests; omit for no filter
Only orders created at/after this instant (inclusive)
Only orders created before this instant (exclusive)
Top-level metadata key to match; send with metadata_value
200Exact value metadata_key must equal; send with metadata_key
500Filter to orders placed by one org teammate, matched as a case-insensitive substring of their email. Only ever narrows within the caller's organization; a solo user can only match their own address.
320Response
CSV file of the filtered orders.
The response is of type string.

