Create products, submit orders, track shipments, and manage your catalogue programmatically. Everything you need to integrate Tshirtgang into your own platform.
All endpoints accept JSON over HTTPS. Put your api_key inside the request body (not a header) and send every request as a POST with Content-Type: application/json. Generate / rotate your key in the seller control panel.
POST.application/json — UTF-8 only.api_key field inside the JSON body.{ "status": "success", ...endpoint-specific... }{ "response": { "failure": { "code": "3", "message": "Invalid Authorization key" } } }Drop our tshirtgang-api skill file into your Claude Code / Claude Desktop / Claude Agent SDK project and your LLM will know every endpoint, parameter, and common integration pattern documented on this page.
Submit one or more orders for fulfillment. Accepts existing `product_id`s or a new-product payload inline. Returns a shiplist ID that groups the orders for batch tracking.
| Field | Type | Description |
|---|---|---|
| api_key required | string | Your API key from /cp/api. |
| shipping.fullname required | string | Recipient's full name. |
| shipping.address1 required | string | Street address (must include house number). |
| shipping.address2 optional | string | Apartment / unit number (optional). |
| shipping.city required | string | City. |
| shipping.state required | string | State/province. 2-letter code for US/CA. |
| shipping.zip required | string | Postal/zip code. |
| shipping.country required | string | 2-letter country code (US, CA, GB, …). |
| shipping.phone optional | string | Recipient's phone — required by some carriers. |
| shipping.email optional | string | Recipient's email — used for shipping notifications if your store relay is enabled. |
| order required | array | Single order object OR an array of order objects for batch submission. |
| order[].product_id optional | integer | Existing product ID (from CreateProduct). Omit if supplying `order[].product.*` inline. |
| order[].product.title optional | string | If creating on the fly: product title. |
| order[].product.url optional | string | If creating on the fly: design image URL (HTTPS PNG). |
| order[].size required | string | Size code (S, M, L, XL, 2XL…). |
| order[].color required | string | Colour name. |
| order[].quantity required | integer | Quantity — at least 1. |
| order[].backprint optional | boolean | `true` if back-print artwork was supplied with the product. Default `false`. |
| order[].priority_shipping optional | boolean | Priority lane (costs more, ships in 1–2 business days). |
| order[].comments optional | string | Free-text note passed through to production. |
| order[].market_id1 optional | string | Your internal order ID — stored for reference and returned on CheckStatus. |
curl -X POST https://www.tshirtgang.com/api/v2/CreateOrder/ \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_KEY","shipping":{"fullname":"Jane Doe","address1":"123 Main St","city":"Toronto","state":"ON","zip":"M5V 2T6","country":"CA"},"order":[{"product_id":98765,"size":"M","color":"Black","quantity":1}]}'
<?php
$ch = curl_init('https://www.tshirtgang.com/api/v2/CreateOrder/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{\"api_key\":\"YOUR_API_KEY\",\"shipping\":{\"fullname\":\"Jane Doe\",\"address1\":\"123 Main St\",\"city\":\"Toronto\",\"state\":\"ON\",\"zip\":\"M5V 2T6\",\"country\":\"CA\"},\"order\":[{\"product_id\":98765,\"size\":\"M\",\"color\":\"Black\",\"quantity\":1}]}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
$data = json_decode($res, true);
curl_close($ch);
print_r($data);
// Node 18+ (native fetch)
const res = await fetch('https://www.tshirtgang.com/api/v2/CreateOrder/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"shipping": {
"fullname": "Jane Doe",
"address1": "123 Main St",
"city": "Toronto",
"state": "ON",
"zip": "M5V 2T6",
"country": "CA"
},
"order": [
{
"product_id": 98765,
"size": "M",
"color": "Black",
"quantity": 1
}
]
})
});
const data = await res.json();
console.log(data);
# pip install requests
import requests
res = requests.post(
'https://www.tshirtgang.com/api/v2/CreateOrder/',
json={
"api_key": "YOUR_API_KEY",
"shipping": {
"fullname": "Jane Doe",
"address1": "123 Main St",
"city": "Toronto",
"state": "ON",
"zip": "M5V 2T6",
"country": "CA"
},
"order": [
{
"product_id": 98765,
"size": "M",
"color": "Black",
"quantity": 1
}
]
}
)
print(res.json())
{
"status": "success",
"shiplist": "SL-554321",
"orders": [
{
"order_id": 554321,
"product_id": 98765,
"estimated_ship": "2026-04-19"
}
]
}
| Field | Type | Description |
|---|---|---|
| status | string | `success` on a valid response. |
| shiplist | string | Grouping ID — pass to CheckStatus to track every order in this batch. |
| orders | array | Per-order details; indexes match the request `order[]` order. |
| orders[].order_id | integer | Our order ID. |
| orders[].product_id | integer | The product that was (or was created) and ordered. |
| orders[].estimated_ship | string | Estimated ship date (YYYY-MM-DD). |
Get the production / shipping status for every order in a shiplist. Returns an array (one row per order) with tracking numbers once shipped.
| Field | Type | Description |
|---|---|---|
| api_key required | string | Your API key from /cp/api. |
| shiplist required | string | Shiplist ID returned by CreateOrder (e.g. `SL-554321`). |
curl -X POST https://www.tshirtgang.com/api/v2/CheckStatus/ \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_KEY","shiplist":"SL-554321"}'
<?php
$ch = curl_init('https://www.tshirtgang.com/api/v2/CheckStatus/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{\"api_key\":\"YOUR_API_KEY\",\"shiplist\":\"SL-554321\"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
$data = json_decode($res, true);
curl_close($ch);
print_r($data);
// Node 18+ (native fetch)
const res = await fetch('https://www.tshirtgang.com/api/v2/CheckStatus/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"shiplist": "SL-554321"
})
});
const data = await res.json();
console.log(data);
# pip install requests
import requests
res = requests.post(
'https://www.tshirtgang.com/api/v2/CheckStatus/',
json={
"api_key": "YOUR_API_KEY",
"shiplist": "SL-554321"
}
)
print(res.json())
[
{
"order_id": "YOUR-ORDER-123",
"status": "shipped",
"tracking": "1Z999AA10123456784",
"dates": {
"paid": "2026-04-15",
"printed": "2026-04-17",
"shipped": "2026-04-18"
}
}
]
| Field | Type | Description |
|---|---|---|
| response | array | Array of per-order status rows. |
| response[].order_id | string | Your internal order ID (the `market_id1` you sent on CreateOrder). |
| response[].status | string | One of: `unpaid`, `paid`, `printing`, `shipped`, `cancelled`. |
| response[].tracking | string | Tracking number; empty string until the order ships. |
| response[].dates | object | Timestamps for paid/printed/shipped transitions. |
Fetch a single order by either Tshirtgang `order_id` or your own `market_id1`. Returns full details (address, item, status, tracking, receipts).
| Field | Type | Description |
|---|---|---|
| api_key required | string | Your API key from /cp/api. |
| order_id optional | integer | Our numeric order ID. Exactly one of `order_id` / `market_id1` must be supplied. |
| market_id1 optional | string | Your internal order ID. |
curl -X POST https://www.tshirtgang.com/api/v2/LookupOrder/ \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_KEY","market_id1":"YOUR-ORDER-123"}'
<?php
$ch = curl_init('https://www.tshirtgang.com/api/v2/LookupOrder/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{\"api_key\":\"YOUR_API_KEY\",\"market_id1\":\"YOUR-ORDER-123\"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
$data = json_decode($res, true);
curl_close($ch);
print_r($data);
// Node 18+ (native fetch)
const res = await fetch('https://www.tshirtgang.com/api/v2/LookupOrder/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"market_id1": "YOUR-ORDER-123"
})
});
const data = await res.json();
console.log(data);
# pip install requests
import requests
res = requests.post(
'https://www.tshirtgang.com/api/v2/LookupOrder/',
json={
"api_key": "YOUR_API_KEY",
"market_id1": "YOUR-ORDER-123"
}
)
print(res.json())
{
"status": "success",
"order": {
"order_id": 554321,
"market_id1": "YOUR-ORDER-123",
"status": "printing",
"shipping": {
"fullname": "Jane Doe",
"city": "Toronto",
"country": "CA"
},
"item": {
"product_id": 98765,
"size": "M",
"color": "Black",
"quantity": 1,
"price": "$11.95"
}
}
}
| Field | Type | Description |
|---|---|---|
| status | string | `success` on a valid response. |
| order | object | Full order record. |
| order.order_id | integer | Our order ID. |
| order.market_id1 | string | Your internal order ID. |
| order.status | string | See CheckStatus for valid values. |
| order.shipping | object | Shipping address on file. |
| order.item | object | Ordered SKU snapshot (frozen at purchase time). |
Retrieve your order history, paginated and filterable by status. Returns order summaries (IDs, dates, totals, status).
| Field | Type | Description |
|---|---|---|
| api_key required | string | Your API key from /cp/api. |
| page optional | integer | Page number (1-based). Default `1`. |
| limit optional | integer | Results per page (max 100, default 50). |
| status optional | string | Filter by status: `pending` | `paid` | `printing` | `shipped` | `cancelled`. |
| since optional | string | ISO-8601 date — only orders created after this are returned. |
curl -X POST https://www.tshirtgang.com/api/v2/GetSellerHistory/ \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_KEY","page":1,"status":"shipped"}'
<?php
$ch = curl_init('https://www.tshirtgang.com/api/v2/GetSellerHistory/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{\"api_key\":\"YOUR_API_KEY\",\"page\":1,\"status\":\"shipped\"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
$data = json_decode($res, true);
curl_close($ch);
print_r($data);
// Node 18+ (native fetch)
const res = await fetch('https://www.tshirtgang.com/api/v2/GetSellerHistory/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"page": 1,
"status": "shipped"
})
});
const data = await res.json();
console.log(data);
# pip install requests
import requests
res = requests.post(
'https://www.tshirtgang.com/api/v2/GetSellerHistory/',
json={
"api_key": "YOUR_API_KEY",
"page": 1,
"status": "shipped"
}
)
print(res.json())
{
"status": "success",
"total": 89,
"orders": [
{
"order_id": 554321,
"shiplist": "SL-554321",
"status": "shipped",
"total": "$14.95",
"date": "2026-04-17"
}
]
}
| Field | Type | Description |
|---|---|---|
| status | string | `success` on a valid response. |
| total | integer | Total matching orders (across all pages). |
| orders | array | Page of order summary rows. |
| orders[].order_id | integer | Our order ID. |
| orders[].shiplist | string | Shiplist grouping ID. |
| orders[].status | string | Current order status. |
| orders[].total | string | Order total in USD. |
| orders[].date | string | Order creation date (YYYY-MM-DD). |
Retrieve the current blank catalogue (style / colour / size combinations) available for printing. Supports incremental sync via `filter.lastcheck`.
| Field | Type | Description |
|---|---|---|
| api_key required | string | Your API key from /cp/api. |
| filter.style optional | string | Style name (e.g. "Gildan 5000") or numeric style ID. |
| filter.color optional | string | Colour name (e.g. "Black"). Partial matches not accepted. |
| filter.size optional | string | Size code (S, M, L, XL, 2XL, 3XL, 4XL, 5XL, 6XL). |
| filter.region optional | string | `us`, `ca`, or `europe`. Returns the catalogue for that fulfillment region. |
| filter.available optional | boolean | `true` = only in-stock rows, `false` = only unavailable rows. Omit for all. |
| filter.lastcheck optional | integer | Unix timestamp — only return products whose pricing row was updated since. |
| filter.unreleased optional | boolean | Include products not yet released to the public (default `false`). |
curl -X POST https://www.tshirtgang.com/api/v2/GetAvailableProducts/ \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_KEY","filter":{"region":"us","available":"true"}}'
<?php
$ch = curl_init('https://www.tshirtgang.com/api/v2/GetAvailableProducts/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{\"api_key\":\"YOUR_API_KEY\",\"filter\":{\"region\":\"us\",\"available\":\"true\"}}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
$data = json_decode($res, true);
curl_close($ch);
print_r($data);
// Node 18+ (native fetch)
const res = await fetch('https://www.tshirtgang.com/api/v2/GetAvailableProducts/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"filter": {
"region": "us",
"available": "true"
}
})
});
const data = await res.json();
console.log(data);
# pip install requests
import requests
res = requests.post(
'https://www.tshirtgang.com/api/v2/GetAvailableProducts/',
json={
"api_key": "YOUR_API_KEY",
"filter": {
"region": "us",
"available": "true"
}
}
)
print(res.json())
{
"status": "success",
"products": [
{
"style_id": 42,
"name": "Gildan 5000",
"colors": [
"Black",
"White",
"Navy"
],
"sizes": [
"S",
"M",
"L",
"XL"
]
}
]
}
| Field | Type | Description |
|---|---|---|
| status | string | `success` on a valid response. |
| products | array | List of blank products matching the filter. |
| products[].style_id | integer | Numeric style ID — pass to CreateProduct / CreateOrder. |
| products[].name | string | Human-readable style name. |
| products[].colors | string[] | Available colour names. |
| products[].sizes | string[] | Available size codes. |
Return the full attribute catalogue — every colour (with hex code and PMS reference) and every size code Tshirtgang carries across all styles.
| Field | Type | Description |
|---|---|---|
| api_key required | string | Your API key from /cp/api. |
curl -X POST https://www.tshirtgang.com/api/v2/GetProductList/ \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_KEY"}'
<?php
$ch = curl_init('https://www.tshirtgang.com/api/v2/GetProductList/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{\"api_key\":\"YOUR_API_KEY\"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
$data = json_decode($res, true);
curl_close($ch);
print_r($data);
// Node 18+ (native fetch)
const res = await fetch('https://www.tshirtgang.com/api/v2/GetProductList/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY"
})
});
const data = await res.json();
console.log(data);
# pip install requests
import requests
res = requests.post(
'https://www.tshirtgang.com/api/v2/GetProductList/',
json={
"api_key": "YOUR_API_KEY"
}
)
print(res.json())
{
"status": "success",
"colors": [
{
"id": 1,
"name": "Black",
"hex": "#000000"
}
],
"sizes": [
"S",
"M",
"L",
"XL",
"2XL"
]
}
| Field | Type | Description |
|---|---|---|
| status | string | `success` on a valid response. |
| colors | array | Every colour in the attribute table. |
| colors[].id | integer | Pricing_Attributes row ID — use when calling CreateProduct. |
| colors[].name | string | Canonical colour name. |
| colors[].hex | string | Hex colour code for previewing swatches. |
| sizes | string[] | Short size codes available system-wide. |
Create a new product in your catalogue from a design image URL. The system generates SKUs and mockups for every colour/size combination in your request.
| Field | Type | Description |
|---|---|---|
| api_key required | string | Your API key from /cp/api. |
| product.title required | string | Product name. Shown on invoices and order summaries. |
| product.url required | string | Design image URL (PNG, minimum 2400×3200 recommended for DTG). Must begin with `https://`. |
| product.style required | integer | Style ID from GetAvailableProducts. |
| product.colors required | integer[] | Array of colour IDs from GetProductList. |
| product.sizes required | string[] | Array of size codes (S, M, L, XL, 2XL, 3XL, 4XL, 5XL, 6XL). |
| product.backprint optional | boolean | Set `true` if the design has a back print. Defaults to `false`. |
curl -X POST https://www.tshirtgang.com/api/v2/CreateProduct/ \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_KEY","product":{"title":"Summer Vibes Tee","url":"https://example.com/design.png","style":42,"colors":[1,5,12],"sizes":["S","M","L","XL"]}}'
<?php
$ch = curl_init('https://www.tshirtgang.com/api/v2/CreateProduct/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{\"api_key\":\"YOUR_API_KEY\",\"product\":{\"title\":\"Summer Vibes Tee\",\"url\":\"https://example.com/design.png\",\"style\":42,\"colors\":[1,5,12],\"sizes\":[\"S\",\"M\",\"L\",\"XL\"]}}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
$data = json_decode($res, true);
curl_close($ch);
print_r($data);
// Node 18+ (native fetch)
const res = await fetch('https://www.tshirtgang.com/api/v2/CreateProduct/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"product": {
"title": "Summer Vibes Tee",
"url": "https://example.com/design.png",
"style": 42,
"colors": [
1,
5,
12
],
"sizes": [
"S",
"M",
"L",
"XL"
]
}
})
});
const data = await res.json();
console.log(data);
# pip install requests
import requests
res = requests.post(
'https://www.tshirtgang.com/api/v2/CreateProduct/',
json={
"api_key": "YOUR_API_KEY",
"product": {
"title": "Summer Vibes Tee",
"url": "https://example.com/design.png",
"style": 42,
"colors": [
1,
5,
12
],
"sizes": [
"S",
"M",
"L",
"XL"
]
}
}
)
print(res.json())
{
"status": "success",
"product_id": 98765,
"skus_created": 12
}
| Field | Type | Description |
|---|---|---|
| status | string | `success` on a valid response. |
| product_id | integer | Product ID — use as `product_id` in CreateOrder. |
| skus_created | integer | Number of SKUs generated (colours × sizes). |
Retrieve your product catalogue with pagination. Returns product details, SKU counts, and listing status.
| Field | Type | Description |
|---|---|---|
| api_key required | string | Your API key from /cp/api. |
| page optional | integer | Page number (1-based). Default `1`. |
| limit optional | integer | Results per page. Max `100`. Default `50`. |
curl -X POST https://www.tshirtgang.com/api/v2/GetSellerProducts/ \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_KEY","page":1,"limit":25}'
<?php
$ch = curl_init('https://www.tshirtgang.com/api/v2/GetSellerProducts/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{\"api_key\":\"YOUR_API_KEY\",\"page\":1,\"limit\":25}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
$data = json_decode($res, true);
curl_close($ch);
print_r($data);
// Node 18+ (native fetch)
const res = await fetch('https://www.tshirtgang.com/api/v2/GetSellerProducts/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"page": 1,
"limit": 25
})
});
const data = await res.json();
console.log(data);
# pip install requests
import requests
res = requests.post(
'https://www.tshirtgang.com/api/v2/GetSellerProducts/',
json={
"api_key": "YOUR_API_KEY",
"page": 1,
"limit": 25
}
)
print(res.json())
{
"status": "success",
"total": 142,
"page": 1,
"products": [
{
"product_id": 98765,
"title": "Summer Vibes Tee",
"skus": 12,
"created": "2026-03-15"
}
]
}
| Field | Type | Description |
|---|---|---|
| status | string | `success` on a valid response. |
| total | integer | Total products in your catalogue (across all pages). |
| page | integer | Current page number echoed back. |
| products | array | Page of product rows. |
| products[].product_id | integer | Product ID. |
| products[].title | string | Product name. |
| products[].skus | integer | Number of SKUs on this product. |
| products[].created | string | Creation date (YYYY-MM-DD). |
Estimated production turnaround (in business days) for a given style, before shipping. Use this to display "Ships in X days" on your product pages.
| Field | Type | Description |
|---|---|---|
| api_key required | string | Your API key from /cp/api. |
| style_id required | integer | Style ID from GetAvailableProducts. |
curl -X POST https://www.tshirtgang.com/api/v2/GetProductLatency/ \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_KEY","style_id":42}'
<?php
$ch = curl_init('https://www.tshirtgang.com/api/v2/GetProductLatency/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{\"api_key\":\"YOUR_API_KEY\",\"style_id\":42}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
$data = json_decode($res, true);
curl_close($ch);
print_r($data);
// Node 18+ (native fetch)
const res = await fetch('https://www.tshirtgang.com/api/v2/GetProductLatency/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"style_id": 42
})
});
const data = await res.json();
console.log(data);
# pip install requests
import requests
res = requests.post(
'https://www.tshirtgang.com/api/v2/GetProductLatency/',
json={
"api_key": "YOUR_API_KEY",
"style_id": 42
}
)
print(res.json())
{
"status": "success",
"style_id": 42,
"production_days": 3,
"region": "us"
}
| Field | Type | Description |
|---|---|---|
| status | string | `success` on a valid response. |
| style_id | integer | Echoed style ID. |
| production_days | integer | Expected in-house production time (excludes shipping). |
| region | string | Fulfillment region the latency applies to. |
Free to create, pay-as-you-go on orders. Be live in minutes.
/cp/api.