Export Orders Csv
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>"
}
]
}Orders
Export Orders
Download your orders as a CSV, using the same filters as the list endpoint.
GET
/
orders
/
export
Export Orders Csv
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>"
}
]
}Stream the orders you can see as a CSV file. This is the download behind the
dashboard’s Orders table, and it takes the same filters as
List Orders — so an export contains
exactly the rows you were looking at.
The response is
text/csv with
Content-Disposition: attachment; filename="zinc-orders.csv", not JSON.
There is no
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. |
Under a
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)
Maximum string length:
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
Maximum string length:
200Exact value metadata_key must equal; send with metadata_key
Maximum string length:
500Response
CSV file of the filtered orders.
The response is of type string.

