List Cases
curl --request GET \
--url https://api.zinc.com/cases \
--header 'Authorization: <api-key>'import requests
url = "https://api.zinc.com/cases"
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/cases', 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/cases",
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/cases"
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/cases")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zinc.com/cases")
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{
"cases": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"order_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reason": "not_received",
"status": "open",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"return_request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"credited_amount": 0,
"opened_by_name": "<string>",
"closed_at": "2023-11-07T05:31:56Z"
}
],
"total": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Cases
List Cases
List your team’s Zinc support cases, filtered by status, reason or order.
GET
/
cases
List Cases
curl --request GET \
--url https://api.zinc.com/cases \
--header 'Authorization: <api-key>'import requests
url = "https://api.zinc.com/cases"
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/cases', 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/cases",
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/cases"
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/cases")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zinc.com/cases")
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{
"cases": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"order_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reason": "not_received",
"status": "open",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"return_request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"credited_amount": 0,
"opened_by_name": "<string>",
"closed_at": "2023-11-07T05:31:56Z"
}
],
"total": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}List the support cases on your team’s orders, most recently active first. A case counts as active whenever someone posts on it or its status changes.
Filter with
To find the open case on an order, filter by
status, reason and order_id, or pass search to match part of an order ID or case ID. Page through results with limit (up to 500) and offset. total is the number of cases that match the filters, across all pages.
Each entry is a case summary without its messages. Fetch the thread with Get Case.
Case Statuses
A case’s status says whose move it is.| Status | Meaning |
|---|---|
open | Waiting on Zinc support |
waiting_on_customer | Zinc replied and is waiting on you |
on_hold | Waiting on the retailer or carrier |
closed | Resolved, by Zinc or by you with Close Case |
closed isn’t final. Replying on a closed case inside the order’s case window reopens it. See Post Case Message.order_id and look for the entry whose status isn’t closed. There’s at most one.Authorizations
Zinc API key (Bearer zn_...)
Headers
Query Parameters
Required range:
1 <= x <= 500Required range:
x >= 0Whose move it is on a support case.
Only closed is terminal, and not even that for long: a customer reply
inside the open window reopens a closed case rather than starting a new one.
Available options:
open, waiting_on_customer, on_hold, closed What a support case is about. Routing and reporting only — no reason triggers automation.
Available options:
not_received, missing_item, late, damaged_or_wrong_item, cancellation, address_change, return, billing, other Partial match on order ID or case ID
Maximum string length:
64
