curl -X GET https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc \
-H "Authorization: Bearer your-access-token"
import requests
url = "https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc"
headers = {
"Authorization": "Bearer your-access-token"
}
response = requests.get(url, headers=headers)
zip_data = response.json()
print(f"Status: {zip_data['data']['status']}")
const response = await fetch('https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc', {
method: 'GET',
headers: {
'Authorization': 'Bearer your-access-token'
}
});
const zipData = await response.json();
console.log(`Status: ${zipData.data.status}`);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer your-access-token'
]);
$response = curl_exec($ch);
$zipData = json_decode($response, true);
echo "Status: " . $zipData['data']['status'] . "\n";
curl_close($ch);
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer your-access-token")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result map[string]interface{}
json.Unmarshal(body, &result)
zipData := result["data"].(map[string]interface{})
fmt.Printf("Status: %s\n", zipData["status"])
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import org.json.JSONObject;
public class GetZip {
public static void main(String[] args) throws Exception {
String url = "https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer your-access-token")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
JSONObject zipData = new JSONObject(response.body())
.getJSONObject("data");
System.out.println("Status: " + zipData.getString("status"));
}
}
require 'net/http'
require 'json'
uri = URI('https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.path, {
'Authorization' => 'Bearer your-access-token'
})
response = http.request(request)
zip_data = JSON.parse(response.body)
puts "Status: #{zip_data['data']['status']}"
{
"data": {
"uuid": "clx7g2m4p0000xyz123abc",
"status": "succeeded",
"metadata": {
"user_id": "user_123",
"order_id": "order_456"
}
}
}
API Reference
Get Zip
Retrieve the status of a zip job
GET
/
api
/
v1
/
zips
/
:id
curl -X GET https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc \
-H "Authorization: Bearer your-access-token"
import requests
url = "https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc"
headers = {
"Authorization": "Bearer your-access-token"
}
response = requests.get(url, headers=headers)
zip_data = response.json()
print(f"Status: {zip_data['data']['status']}")
const response = await fetch('https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc', {
method: 'GET',
headers: {
'Authorization': 'Bearer your-access-token'
}
});
const zipData = await response.json();
console.log(`Status: ${zipData.data.status}`);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer your-access-token'
]);
$response = curl_exec($ch);
$zipData = json_decode($response, true);
echo "Status: " . $zipData['data']['status'] . "\n";
curl_close($ch);
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer your-access-token")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result map[string]interface{}
json.Unmarshal(body, &result)
zipData := result["data"].(map[string]interface{})
fmt.Printf("Status: %s\n", zipData["status"])
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import org.json.JSONObject;
public class GetZip {
public static void main(String[] args) throws Exception {
String url = "https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer your-access-token")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
JSONObject zipData = new JSONObject(response.body())
.getJSONObject("data");
System.out.println("Status: " + zipData.getString("status"));
}
}
require 'net/http'
require 'json'
uri = URI('https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.path, {
'Authorization' => 'Bearer your-access-token'
})
response = http.request(request)
zip_data = JSON.parse(response.body)
puts "Status: #{zip_data['data']['status']}"
{
"data": {
"uuid": "clx7g2m4p0000xyz123abc",
"status": "succeeded",
"metadata": {
"user_id": "user_123",
"order_id": "order_456"
}
}
}
Overview
Retrieve the current status of a zip creation job by its UUID. Use theuuid value returned from the POST /api/v1/zips endpoint.
Endpoint
GET /api/v1/zips/:id
Authentication
Requires a valid access token in theAuthorization header:
Authorization: Bearer YOUR_ACCESS_TOKEN
Path Parameters
The UUID of the zip job returned when you created it (e.g.,
clx7g2m4p0000xyz123abc).This is the uuid value from the POST /api/v1/zips response.curl -X GET https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc \
-H "Authorization: Bearer your-access-token"
import requests
url = "https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc"
headers = {
"Authorization": "Bearer your-access-token"
}
response = requests.get(url, headers=headers)
zip_data = response.json()
print(f"Status: {zip_data['data']['status']}")
const response = await fetch('https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc', {
method: 'GET',
headers: {
'Authorization': 'Bearer your-access-token'
}
});
const zipData = await response.json();
console.log(`Status: ${zipData.data.status}`);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer your-access-token'
]);
$response = curl_exec($ch);
$zipData = json_decode($response, true);
echo "Status: " . $zipData['data']['status'] . "\n";
curl_close($ch);
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer your-access-token")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result map[string]interface{}
json.Unmarshal(body, &result)
zipData := result["data"].(map[string]interface{})
fmt.Printf("Status: %s\n", zipData["status"])
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import org.json.JSONObject;
public class GetZip {
public static void main(String[] args) throws Exception {
String url = "https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer your-access-token")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
JSONObject zipData = new JSONObject(response.body())
.getJSONObject("data");
System.out.println("Status: " + zipData.getString("status"));
}
}
require 'net/http'
require 'json'
uri = URI('https://api.zipkit.io/v1/zips/clx7g2m4p0000xyz123abc')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.path, {
'Authorization' => 'Bearer your-access-token'
})
response = http.request(request)
zip_data = JSON.parse(response.body)
puts "Status: #{zip_data['data']['status']}"
{
"data": {
"uuid": "clx7g2m4p0000xyz123abc",
"status": "succeeded",
"metadata": {
"user_id": "user_123",
"order_id": "order_456"
}
}
}
The response data object containing zip information.
Unique identifier (UUID) for this zip job.
Current status of the zip job.Possible values:
none- Job created, not yet started processingprocessing- Currently downloading files and creating zipsucceeded- zip successfully created and uploaded to your bucketfailed- Job failed during processing
The custom metadata object that was provided when the zip was created. Returns an empty object
{} if no metadata was provided.Error Responses
All errors follow a consistent JSON format:{
"error": {
"type": "error_type",
"code": "error_code",
"message": "Human-readable description",
"param": null
}
}
401 Unauthorized
Returned when authentication fails.Missing Authorization Header
{
"error": {
"type": "authentication_error",
"code": "authentication_required",
"message": "No API key provided. Include your API key in the Authorization header using Bearer auth.",
"param": null
}
}
Invalid API Key
{
"error": {
"type": "authentication_error",
"code": "invalid_api_key",
"message": "Invalid API key provided.",
"param": null
}
}
404 Not Found
Returned when the zip ID doesn’t exist or doesn’t belong to your project.Notes
Webhooks recommended: Instead of polling this endpoint, configure a webhook to receive automatic notifications when zips complete. See the Webhooks guide for details.
⌘I