Overview
The Podbase API exposes four primary endpoints for managing print-on-demand orders and products:
POST /orders- Submit new orders for fulfillmentGET /orders- Retrieve multiple orders with paginationGET /orders/{orderId}- Retrieve details for a specific orderGET /catalog- Retrieve the current product catalog
1. POST /orders - Submit New Orders
Purpose
Create and submit new print-on-demand orders for fulfillment.
Key capabilities
Programmatically create new orders
Automatically fulfill orders from your store or platform
Submit bulk orders
Process custom products with user-uploaded designs
Example Request
Endpoint
POST https://open-api.podbase.com/orders
Headers
x-api-key: your_api_key_hereContent-Type: application/json
Request Body
{
"externalOrderId": "ORDER-12345",
"buyer": {
"fullName": "John Smith",
"phone": "+1234567890",
"email": "john@example.com"
},
"deliveryAddress": {
"line1": "123 Main Street",
"line2": "Apt 4B",
"city": "New York",
"postalCode": "10001",
"country": "US",
"region": "NY"
},
"shippingTypeId": "PBS-F7-7ZH-223S",
"items": [
{
"productId": "PBP-123-ABC",
"variantId": "PBV-123-ADC",
"quantity": 2,
"printFile": "https://example.com/designs/custom-design.png",
"externalProductId": "MY-PRODUCT-001",
"title": "Custom iPhone Case",
"price": 29.99
}
]
}Example Response - Success
Status: 201 Created
{
"orderId": "PB-ORD-987654",
"externalOrderId": "ORDER-12345",
"status": "PENDING",
"createdAt": "2026-02-01T10:30:00Z",
"items": [
{
"itemId": "ITEM-001",
"productId": "PROD-ABC-123",
"variantId": "VAR-XYZ-789",
"quantity": 2,
"status": "PENDING"
}
]
}Example Response - Error
Status: 400 Bad Request
{
"error": "Invalid shipping type ID",
"message": "The provided shippingTypeId is not valid",
"field": "shippingTypeId"
}Shipping Type IDs
Economy Delivery:
PBS-F7-7ZH-223SExpress Delivery:
PBS-3K-HSP-223D
2. GET /orders - Retrieve Multiple Orders
Purpose
Retrieve a paginated list of orders with optional filtering.
Key capabilities
View all orders
Track order statuses in bulk
Build order management dashboards
Generate order volume reports
Sync orders with your internal database
Monitor fulfillment progress
Example Request
GET https://open-api.podbase.com/orders?page=1&limit=10&status=FULFILLED
Headers
x-api-key: your_api_key_here
Query Parameters
page— Page number (default:1)limit— Items per page (default:10, max:100)status— Filter by status (PENDING,PROCESSING,FULFILLED,CANCELLED)startDate— Filter orders from this date (ISO 8601)endDate— Filter orders until this date (ISO 8601)
Example Response
Status: 200 OK
{
"orders": [
{
"orderId": "PBO-123-123-123",
"externalOrderId": "ORDER-12345",
"status": "FULFILLED",
"createdAt": "2021-01-01T10:30:00Z",
"fulfilledAt": "2021-01-03T14:22:00Z",
"trackingNumber": "1Z999AA10123456784",
"carrier": "DHL",
"buyer": {
"fullName": "John Smith",
"email": "john@example.com"
},
"items": [
{
"itemId": "ITEM-001",
"productId": "PBP-ABC-123",
"variantId": "PBV-XYZ-789",
"quantity": 2,
"status": "FULFILLED"
}
]
},
{
"orderId": "PBO-123-123-ABC",
"externalOrderId": "ORDER-12346",
"status": "FULFILLED",
"createdAt": "2021-01-20T11:15:00Z",
"fulfilledAt": "2021-01-25T16:45:00Z",
"trackingNumber": "1Z999AA10123456785",
"carrier": "DHL",
"buyer": {
"fullName": "Jane Doe",
"email": "jane@example.com"
},
"items": [
{
"itemId": "ITEM-002",
"productId": "PBP-124-ABC",
"variantId": "PBV-123-125",
"quantity": 1,
"status": "FULFILLED"
}
]
}
],
"pagination": {
"currentPage": 1,
"totalPages": 5,
"totalOrders": 47,
"limit": 10
}
}Common Use Cases
Display pending orders in an admin dashboard
Retrieve last month’s fulfilled orders for reporting
Monitor processing orders to estimate fulfillment time
Analyze cancelled orders and rejection reasons
3. GET /orders/{orderId} - Retrieve Order Details
Purpose
Retrieve full details for a single order.
Key capabilities
Check order status
Retrieve tracking information
Verify order details
Support customer inquiries
Communicate order progress
Debug fulfillment issues
Example Request
GET https://open-api.podbase.com/orders/PB-ORD-987654
Headers
x-api-key: your_api_key_here
Example Response - Fulfilled Order
Status: 200 OK
{
"orderId": "PBO-123-123-132",
"externalOrderId": "ORDER-12345",
"status": "FULFILLED",
"createdAt": "2026-01-28T10:30:00Z",
"approvedAt": "2026-01-28T10:31:00Z",
"processingStartedAt": "2026-01-28T14:00:00Z",
"fulfilledAt": "2026-01-29T14:22:00Z",
"trackingNumber": "1Z999AA10123456784",
"carrier": "DHL",
"estimatedDelivery": "2026-02-03T23:59:59Z",
"buyer": {
"fullName": "John Smith",
"phone": "+1234567890",
"email": "john@example.com"
},
"deliveryAddress": {
"line1": "123 Main Street",
"line2": "Apt 4B",
"city": "New York",
"postalCode": "10001",
"country": "US",
"region": "NY"
},
"shippingTypeId": "PBS-F7-7ZH-223S",
"shippingType": "Economy Delivery",
"items": [
{
"itemId": "ITEM-001",
"productId": "PBP-123-ABC",
"productName": "Tough Case",
"variantId": "PBV-123-123",
"variantName": "iPhone 15 Pro ",
"quantity": 2,
"printFile": "https://example.com/designs/custom-design.png",
"externalProductId": "MY-PRODUCT-001",
"title": "Custom iPhone Case",
"price": 29.99,
"status": "FULFILLED"
}
],
"totalCost": 45.98
}Order Status Values
PENDING- Submitted, awaiting approvalAPPROVED- Approved, awaiting productionPROCESSING- In productionFULFILLED- Shipped with trackingCANCELLED- Order cancelled
4. GET /catalog - Retrieve Product Catalog
Purpose
Retrieve available products, variants, pricing, and print requirements.
Key capabilities
Display products in your store
Build product selection flows
Retrieve pricing data
Validate product and variant IDs
Sync product data automatically
Display design requirements
Example Request
GET https://open-api.podbase.com/catalogHeaders
x-api-key: your_api_key_hereExample Response
{
"lastUpdated": "2021-01-01T00:00:00Z",
"products": [
{
"productId": "PBP-123-123",
"name": "iPhone Pro Tough Case",
"description": "Super awesome case",
"category": "Phone Cases",
"basePrice": 59.99,
"printArea": {
"width": 3200,
"height": 3200,
"unit": "pixels",
"dpi": 300
},
"variants": [
{
"variantId": "PBV-XYZ-789",
"name": "iPhone15",
"sku": "IP15",
"available": true
},
{
"variantId": "PBV-XYZ-790",
"name": "iPhone15 Pro ",
"sku": "IP15P",
"available": true
},
{
"variantId": "PBV-XYZ-791",
"name": "iPhone 15 Pro Max ",
"sku": "IP15PM",
"available": true
}
],
"images": [
{
"type": "mockup",
"url": "https://podbase.com/mockups/iphone-15-pro-black.png"
}
]
},
Practical Workflow Example
A complete order lifecycle using all endpoints:
1. Retrieve Products
GET /catalogDisplay products
Store
productIdandvariantId
2. Submit Order
POST /ordersSubmit order and design
Store returned
orderId
3. Track Order
GET /orders/{orderId}Poll for status updates
Retrieve tracking when fulfilled
4. Manage Orders in Bulk
GET /orders?status=PROCESSINGDisplay production orders
Generate reports
Authentication
All requests require an API key:
x-api-key: your_api_key_here
API Key Location
Dashboard → Integrations → Podbase API
Comments
0 comments
Article is closed for comments.