Open API
Use your API key to access Podmaster data from external apps, scripts, or integrations.
Your API Key
Find your API key in the Podmaster dashboard under Settings → API Access.
Keep your API key private. Never expose it in public repositories, client-side code, or browser logs. If you suspect it has been compromised, contact support to reset it.
Authentication
How to include your API key in every request.
All API requests must include your key in the pod-api-key HTTP header.
Requests without a valid key return 401 Unauthorized.
Base URL
https://apps.podmaster.app/api/podmaster/{shop_id}/
Example request (curl)
# Replace {shop_id} with your store domain and {YOUR_KEY} with your API key
curl -X GET \
"https://apps.podmaster.app/api/podmaster/{shop_id}/orders" \
-H "pod-api-key: {YOUR_KEY}" \
-H "Accept: application/json"
Quick start
1
Copy your API key
Go to Settings → API Access in the Podmaster dashboard and copy your unique API key.
2
Find your Shop ID
Your Shop ID is your full Shopify domain, e.g.
mystore.myshopify.com. Use it as the {shop_id} path segment in every URL.3
Include the key in every request header
Add the header
pod-api-key: YOUR_KEY to each HTTP request. All responses are returned as JSON.Available Endpoints
Click an endpoint to expand. All endpoints are prefixed with
/api/podmaster/{shop_id}/
GET
/orders
Retrieve a paginated list of paid, non-cancelled orders placed through the customizer.
| Parameter | Type | Description |
|---|---|---|
| pod-api-keyheaderrequired | string | Your store API key for authentication. |
| pageoptional | integer | Page number. Default: 1 |
| limitoptional | integer | Results per page. Default: 10, max: 100 |
| start_dateoptional | date | Filter orders on or after this date. Format: YYYY-MM-DD |
| end_dateoptional | date | Filter orders on or before this date. Format: YYYY-MM-DD |
curl -X GET \
"https://apps.podmaster.app/api/podmaster/{shop_id}/orders?page=1&limit=10&start_date=2024-01-01" \
-H "pod-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
{
"current_page": 1,
"data": [
{
"id": 101,
"order_number": 1042,
"shop_id": "mystore.myshopify.com",
"total_price": "85.00",
"subtotal_price": "75.00",
"total_line_items_price": "75.00",
"currency": "USD",
"financial_status": "paid",
"fulfillment_status": null,
"printful_fulfillment_status": null,
"has_printful": false,
"created_at": "2024-03-15T10:30:00.000000Z",
"customer_detail": {
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"phone": "+1-555-0100"
},
"shipping_line_detail": {
"title": "Standard Shipping",
"price": "5.00"
},
"line_item": [
{
"id": 9988776655,
"product_id": 1234567890,
"variant_id": 9876543210,
"title": "Custom T-Shirt",
"quantity": 1,
"price": "75.00",
"sku": "TSHIRT-M-RED",
"pcustomizerId": "abc123def456",
"productSource": "printful",
"design": [
{
"id": 55,
"type": "front",
"canvas_filename": "design_front.png",
"canvas_width": 1000,
"canvas_height": 1000,
"canvas_url": "https://cdn.example.com/.../design_front.png",
"print_url": "https://cdn.example.com/.../print_front.png",
"print_pdf_url": null,
"mockup_url": "https://cdn.example.com/.../mockup_front.png"
}
]
}
]
}
],
"first_page_url": "https://apps.podmaster.app/api/podmaster/{shop_id}/orders?page=1",
"from": 1,
"last_page": 5,
"next_page_url": "https://apps.podmaster.app/api/podmaster/{shop_id}/orders?page=2",
"per_page": 10,
"prev_page_url": null,
"to": 10,
"total": 47
}
GET
/orders/{orderId}
Retrieve full details for a single order including line items, customer, shipping, design images, and Printful status.
| Parameter | Type | Description |
|---|---|---|
| pod-api-keyheaderrequired | string | Your store API key for authentication. |
| orderIdrequired | integer | The internal Podmaster order ID (returned in the orders list as id). |
curl -X GET \
"https://apps.podmaster.app/api/podmaster/{shop_id}/orders/101" \
-H "pod-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
{
"id": 101,
"order_number": 1042,
"shop_id": "mystore.myshopify.com",
"total_price": "85.00",
"subtotal_price": "75.00",
"currency": "USD",
"financial_status": "paid",
"fulfillment_status": null,
"has_printful": false,
"customer_detail": {
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"phone": "+1-555-0100"
},
"shipping_line_detail": {
"title": "Standard Shipping",
"price": "5.00"
},
"line_item": [
{
"id": 9988776655,
"product_id": 1234567890,
"variant_id": 9876543210,
"title": "Custom T-Shirt",
"quantity": 1,
"price": "75.00",
"sku": "TSHIRT-M-RED",
"pcustomizerId": "abc123def456",
"productSource": "store",
"design": [
{
"id": 55,
"type": "front",
"canvas_filename": "design_front.png",
"canvas_width": 1000,
"canvas_height": 1000,
"canvas_url": "https://cdn.example.com/.../design_front.png",
"print_url": "https://cdn.example.com/.../print_front.png",
"print_pdf_url": "https://cdn.example.com/.../print_front.pdf",
"mockup_url": "https://cdn.example.com/.../mockup_front.png"
}
]
}
]
}
POST
/bulk-import/create
Submit a batch of Shopify products to be set up as custom products. Returns a
batch_id to poll for progress.| Parameter | Type | Description |
|---|---|---|
| pod-api-keyheaderrequired | string | Your store API key for authentication. |
| source_product_idrequired | string | The ID of an existing custom product whose design template will be applied to all target products. |
| product_idsoptional | array | Array of Shopify product IDs to convert. Either this or collection_ids must be provided. |
| collection_idsoptional | array | Array of Shopify collection IDs. All products in each collection will be converted. Max 250 products total per batch. |
curl -X POST \
"https://apps.podmaster.app/api/podmaster/{shop_id}/bulk-import/create" \
-H "pod-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"source_product_id": "8012345678901",
"product_ids": ["8099887766550", "8099887766551", "8099887766552"],
"collection_ids": []
}'
{
"success": true,
"batch_id": "bulk_64f8a2b1c3d4e.56789012",
"message": "Bulk product creation started successfully",
"total_products": 3,
"already_custom": 0,
"skipped": 0
}
GET
/bulk-import/status/{batch_id}
Check the processing status and progress of a previously submitted bulk import batch.
| Parameter | Type | Description |
|---|---|---|
| pod-api-keyheaderrequired | string | Your store API key for authentication. |
| batch_idrequired | string | The batch ID returned from /bulk-import/create. |
curl -X GET \
"https://apps.podmaster.app/api/podmaster/{shop_id}/bulk-import/status/bulk_64f8a2b1c3d4e.56789012" \
-H "pod-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
// In progress
{
"success": true,
"batch_id": "bulk_64f8a2b1c3d4e.56789012",
"status": "processing",
"percentage": 58,
"total": 3,
"processed": 2,
"successful": 1,
"failed": 1,
"current_product": "8099887766552",
"errors": ["Product 8099887766551: Variant configuration mismatch"],
"is_completed": false
}
// Completed
{
"success": true,
"batch_id": "bulk_64f8a2b1c3d4e.56789012",
"status": "completed",
"percentage": 100,
"total": 3,
"processed": 3,
"successful": 3,
"failed": 0,
"current_product": null,
"errors": [],
"is_completed": true
}
GET
/print-profiles
Retrieve all print profiles configured for your store (device settings, CMYK mappings, paper sizes).
| Parameter | Type | Description |
|---|---|---|
| pod-api-keyheaderrequired | string | Your store API key for authentication. |
curl -X GET \
"https://apps.podmaster.app/api/podmaster/{shop_id}/print-profiles" \
-H "pod-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
{
"success": true,
"profiles": [
{
"id": 1,
"shop_id": "mystore.myshopify.com",
"name": "DTG Front 12x16",
"description": "Standard front print for DTG",
"margin_top": 2.00,
"margin_left": 1.50,
"margin_right": 1.50,
"margin_bottom": 2.00,
"printing_size_width": 30.48,
"printing_size_height": 40.64,
"orientation": "portrait",
"design_width": 25.00,
"design_position": "center-top",
"cmyk_convert": true,
"cmyk_profile": "USWebCoatedSWOP.icc",
"is_default": true,
"formatted_size": "30.48 × 40.64 cm",
"printable_width": 27.48,
"printable_height": 36.64
}
]
}
GET
/print-profiles/{id}
Retrieve full details for a single print profile by its ID.
| Parameter | Type | Description |
|---|---|---|
| pod-api-keyheaderrequired | string | Your store API key for authentication. |
| idrequired | integer | The print profile ID (returned in the profiles list). |
curl -X GET \
"https://apps.podmaster.app/api/podmaster/{shop_id}/print-profiles/1" \
-H "pod-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
{
"success": true,
"profile": {
"id": 1,
"shop_id": "mystore.myshopify.com",
"name": "DTG Front 12x16",
"description": "Standard front print for DTG",
"margin_top": 2.00,
"margin_left": 1.50,
"margin_right": 1.50,
"margin_bottom": 2.00,
"printing_size_width": 30.48,
"printing_size_height": 40.64,
"orientation": "portrait",
"design_width": 25.00,
"design_position": "center-top",
"cmyk_convert": true,
"cmyk_profile": "USWebCoatedSWOP.icc",
"is_default": true,
"formatted_size": "30.48 × 40.64 cm",
"printable_width": 27.48,
"printable_height": 36.64
}
}
Response Codes
Standard HTTP status codes returned by the API.
Need more detail? See the
full API documentation →