Teelaunch Products API
List and retrieve the products in a Teelaunch account, update a product, and hold or release the orders tied to a product. Covers GET /products, GET /products/{id}, and the product update and hold/release order operations.
List and retrieve the products in a Teelaunch account, update a product, and hold or release the orders tied to a product. Covers GET /products, GET /products/{id}, and the product update and hold/release order operations.
openapi: 3.0.0
info:
title: teelaunch API
description: Teelaunch print-on-demand REST API. Manage account and settings, browse the blank product
catalog, create and manage products, submit and manage orders, and retrieve shipment tracking across
connected sales-channel platforms and stores. Authenticated with a Bearer (JWT) API token generated
from teelaunch Developer Settings.
version: 1.0.0
servers:
- url: https://api.teelaunch.com/api/v1
description: Production base URL
paths:
/account:
get:
tags:
- Account
summary: Get detailed information about the authenticated user's account.
description: 'Get Account Information
Get detailed information about the authenticated user''s account.'
operationId: 2568f6551774f5a58a2e1b7e5aad8115
responses:
'200':
description: Successful response
'500':
description: Internal Server Error
security:
- bearerAuth: []
/account/payment-history:
get:
tags:
- Account Payment
summary: Retrieve the payment history for the authenticated user's account.
description: 'Get Payment History
Retrieve the payment history for the authenticated user''s account.'
operationId: ad402e84d315e0489a7293ad6c657278
parameters:
- name: limit
in: query
description: Paging limit
required: false
schema:
type: integer
- name: page
in: query
description: 'Page number (default: 1)'
required: false
schema:
type: integer
responses:
'200':
description: Successful response
'500':
description: Internal Server Error
security:
- bearerAuth: []
/account/payment-history/{id}:
get:
tags:
- Account Payment
summary: Retrieve the payment history for a specific payment identified by its unique ID.
description: 'Get Payment History By Id.
Retrieve the payment history for a specific payment identified by its unique ID.'
operationId: d0f6b4a170c810850fa4232399e6dddb
parameters:
- name: id
in: path
description: The Id of the Payment History
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/account/settings:
get:
tags:
- Account Settings
summary: Get a list of all account settings or search based on a specific key.
description: 'Get Account Settings
Get a list of all account settings or search based on a specific key. You can perform partial
or fuzzy searching on setting keys by entering a partial key or keyword.'
operationId: 36147cdcf2d975057c6846c7a43a481b
parameters:
- name: search_key
in: query
description: 'Search settings by a specific key, allowing partial or fuzzy searching. Example:
order'
required: false
schema:
type: string
- name: limit
in: query
required: true
schema:
type: integer
- name: page
in: query
description: 'Page number (default: 1)'
required: false
schema:
type: integer
responses:
'200':
description: Successful response
'500':
description: Internal Server Error
security:
- bearerAuth: []
/account/settings/{id}:
get:
tags:
- Account Settings
summary: Get Account Setting By Id
description: 'Get Account Setting By Id.
Get a specific account setting by its Id.'
operationId: 849c2a043635e8e054c3cfb802078d84
parameters:
- name: id
in: path
description: The ID of the Account Setting
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/account/settings/{accountId}:
put:
tags:
- Account Settings
summary: Update Account Setting
description: 'Update Account Setting
Update account setting by Account Id and Key'
operationId: b3d49efa73678cddfc3a06c3da79a875
parameters:
- name: accountId
in: path
description: ID of the Account
required: true
schema:
type: integer
requestBody:
description: Request body for updating account setting
required: true
content:
application/json:
schema:
properties:
key:
type: string
example: setting_key
value:
type: string
example: new_setting_value
type: object
responses:
'200':
description: Successful response
'404':
description: Not Found
'422':
description: Unprocessable Entity
'500':
description: Internal Server Error
security:
- bearerAuth: []
/categories:
get:
tags:
- Blank Category
summary: Get Blank Categories
description: 'Get Blank Categories
Get account blank categories'
operationId: 3cf29949d6a59edf1bfbdca9319518d9
responses:
'200':
description: Successful response
'500':
description: Internal Server Error
security:
- bearerAuth: []
/categories/{id}:
get:
tags:
- Blank Category
summary: Get Blank Category By Id
description: 'Get Blank Category By Id
Retrieve information about a specific blank category identified by its unique ID.'
operationId: 7bd6346eeb8f9e067822a1bb5e554f97
parameters:
- name: id
in: path
description: The ID of the blank category to retrieve.
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'500':
description: Internal Server Error
security:
- bearerAuth: []
/categories/{id}/blanks:
get:
tags:
- Blank Category
summary: Get blanks by category Id
description: Get Blanks By Category Id
operationId: a7238e30037699428ecc2f0a35538f48
parameters:
- name: id
in: path
description: Category id
required: true
schema:
type: integer
- name: limit
in: query
required: true
schema:
type: integer
- name: page
in: query
description: 'Page number (default: 1)'
required: false
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/blanks:
get:
tags:
- Blank
summary: Get Blanks
description: 'Get Blanks
Get account blanks with vendor, category, image, variants and options'
operationId: f33ed3c07d628928c695d015706213e2
parameters:
- name: limit
in: query
description: Paging limit (max 5)
required: true
schema:
type: integer
maximum: 5
- name: page
in: query
description: 'Page number (default: 1)'
required: false
schema:
type: integer
responses:
'200':
description: Successful response
'500':
description: Internal Server Error
security:
- bearerAuth: []
/blanks/{id}:
get:
tags:
- Blank
summary: Get Blank By Id
description: 'Get Blank By Id
Retrieve detailed information about a specific blank identified by its unique ID,
including vendor, category, image, variants, and options.'
operationId: 4073123195b174f93c22a2e39ba43e84
parameters:
- name: id
in: path
description: The ID of the blank to retrieve.
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'500':
description: Internal Server Error
security:
- bearerAuth: []
/blanks/country/shipping/cost/{id}:
get:
tags:
- Blank
summary: Get Country Shipping Cost By Blank Variant Id
description: Get Country Shipping Cost By Blank Variant Id
operationId: 9c109d7727861f3df589d68698789840
parameters:
- name: id
in: path
description: The ID of the blank variant to retrieve.
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'500':
description: Internal Server Error
security:
- bearerAuth: []
/blanks/{id}/create:
post:
tags:
- Blank
summary: Create Product by Blank Id
description: 'Create Product by Blank Id
Create product by blank id with all variants. Note that only MONOGRAM blank category doesn''t
need images as bodyParam'
operationId: b8af01928da4a18ca202e09b28f49041
parameters:
- name: id
in: path
description: Blank id
required: true
schema:
type: string
requestBody:
description: Request body for creating a product
required: true
content:
application/json:
schema:
properties:
name:
type: string
example: Product Name
description:
type: string
example: Product Description
variants:
type: array
items:
properties:
id:
type: integer
type: integer
images:
type: array
items:
properties:
url:
type: string
example: https://example.com/image.jpg
position:
type: string
example: front
location:
type: string
example: center
offset:
type: string
example: '0'
type: object
type: object
responses:
'200':
description: Successful response
'422':
description: Unprocessable Entity
'500':
description: Internal Server Error
security:
- bearerAuth: []
/orders:
get:
tags:
- Orders
summary: Get Orders
description: 'Get Orders
Get Account Orders'
operationId: 2f71f731d00917eaf4cf488100ee4a68
parameters:
- name: status
in: query
description: The status id you are looking for, insert 'all' to retrieve all statuses
required: false
schema:
type: string
- name: limit
in: query
description: Paging limit (max 5)
required: true
schema:
type: integer
maximum: 5
- name: page
in: query
description: 'Page number (default: 1)'
required: false
schema:
type: integer
- name: start_date
in: query
description: The start date must be UNIX timestamps (positive integers)
required: false
schema:
type: string
format: date
- name: end_date
in: query
description: The end date must be UNIX timestamps (positive integers)
required: false
schema:
type: string
format: date
responses:
'200':
description: Successful response
'500':
description: Internal Server Error
security:
- bearerAuth: []
post:
tags:
- Orders
summary: Store Order
description: 'Store Order
Store order'
operationId: 2bbb6d29d3345bb1d0d38877b33030f0
requestBody:
description: Request body for storing an order
required: true
content:
application/json:
schema:
properties:
details:
properties:
email:
type: string
example: user@example.com
phone:
type: string
example: '1234567890'
firstName:
type: string
example: John
lastName:
type: string
example: Doe
address1:
type: string
example: 123 Main St
address2:
type: string
example: Apt 456
city:
type: string
example: City
state:
type: string
example: State
zip:
type: string
example: '12345'
country:
type: string
example: Country
platformStoreName:
type: string
example: Store Name
type: object
items:
type: array
items:
properties:
variant_id:
type: string
example: variant_id
quantity:
type: number
example: 5
type: object
type: object
responses:
'200':
description: Successful response
'422':
description: Unprocessable Entity
'500':
description: Internal Server Error
security:
- bearerAuth: []
/orders/{id}:
get:
tags:
- Orders
summary: Get Order By Id
description: 'Get Order By Id
Get account order by id'
operationId: 50d90d5c46e6459e22cbd89ca05e879f
parameters:
- name: id
in: path
description: Order id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/orders/{id}/cancel:
post:
tags:
- Orders
summary: Cancel Order
description: 'Cancel Order
Cancel account order. Note that only hold and pending orders can be canceled'
operationId: 59facf5d09499d6376eb0c9731cdb736
parameters:
- name: id
in: path
description: Order id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'422':
description: Unprocessable Entity
'500':
description: Internal Server Error
security:
- bearerAuth: []
/orders/{id}/release:
post:
tags:
- Orders
summary: Release Order
description: 'Release Order
Release account order. Note that only hold and out of stock orders can be released'
operationId: 3a94a0e0d5c256d26f33cd58de6fab66
parameters:
- name: id
in: path
description: Order id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'422':
description: Unprocessable Entity
'500':
description: Internal Server Error
security:
- bearerAuth: []
/orders/{id}/hold:
post:
tags:
- Orders
summary: Hold Order
description: 'Hold Order
Hold account order. Note that only pending orders can be set to Hold'
operationId: d29a3a373c10dfb35f2d71743c9b20cd
parameters:
- name: id
in: path
description: Order id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'422':
description: Unprocessable Entity
'500':
description: Internal Server Error
security:
- bearerAuth: []
/orders/pro:
post:
tags:
- Orders
summary: Create Order from variant
description: Create Order Pro
operationId: d8d545a21521bc4d460011d0f946ddbe
requestBody:
description: Request body for storing an order
required: true
content:
application/json:
schema:
properties:
label:
type: integer
example: 1000
name:
type: string
example: test api product
email:
type: string
example: tarik@teelaunch.com
firstName:
type: string
example: tarek
lastName:
type: string
example: ibrahim
phone:
type: string
example: '81646800'
address1:
type: string
example: 123 Main St
address2:
type: string
example: Apt 4B
city:
type: string
example: Cityville
state:
type: string
example: CA
zip:
type: string
example: '12345'
country:
type: string
example: US
variants:
type: array
items:
properties:
id:
type: integer
example: 1181
images:
type: array
items:
properties:
url:
type: string
example: https://teelaunch-2.s3.us-west-2.amazonaws.com/accounts/3/products/100000544685/art-files/649065/Hoodie_CarolinaBlue_XL_LeftChest_Chloe.png
stage:
type: string
example: Front Shirt
type: object
quantity:
type: integer
example: 1
TextPersonalizer:
type: string
example: ''
shippingLabel:
type: string
example: ''
type: object
type: object
responses:
'200':
description: Successful response
'422':
description: Unprocessable Entity
'500':
description: Internal Server Error
security:
- bearerAuth: []
/orders/{id}/shipments:
get:
tags:
- Orders
summary: Get Shipment by Order ID
description: Get Order Shipments
operationId: 240dd75ed623c423755bef1843635581
parameters:
- name: id
in: path
description: Order id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/orders/line-item/{id}/shipments:
get:
tags:
- Orders
summary: Get Shipment by Order Line Item ID
description: Get Order Line Item Shipments
operationId: b7e91b64cf7a7b7cf6d4018b3bdcdb69
parameters:
- name: id
in: path
description: Order Line Item id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/orders/platform/{id}/shipments:
get:
tags:
- Orders
summary: Get Shipment by Platform Order Id
description: Get Shipments by platform order id
operationId: d5e42a4442f4058bb2830cc58e623f97
parameters:
- name: id
in: path
description: Platform Order Id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/platforms:
get:
tags:
- Platforms
summary: Get Platforms
description: 'Get Platforms
Get account Platform with stores connected to each'
operationId: ea7be5e215e4581e1c38dc5a9c7414ef
parameters:
- name: limit
in: query
required: true
schema:
type: integer
- name: page
in: query
description: 'Page number (default: 1)'
required: false
schema:
type: integer
responses:
'200':
description: Successful response
'500':
description: Internal Server Error
security:
- bearerAuth: []
/platforms/{id}:
get:
tags:
- Platforms
summary: Get Platform
description: 'Get Platform
Get account Platform by id'
operationId: cc3d714e5f357e1dbe48c1dfd6c64ff1
parameters:
- name: id
in: path
description: The ID of the platform.
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/stores:
get:
tags:
- Platform Stores
summary: Get Stores
description: 'Get Stores
Get stores'
operationId: 029dfe0bb9acd7df4230201a637a1ac1
parameters:
- name: limit
in: query
required: true
schema:
type: integer
- name: page
in: query
description: 'Page number (default: 1)'
required: false
schema:
type: integer
responses:
'200':
description: Successful response
'500':
description: Internal Server Error
security:
- bearerAuth: []
/stores/{id}:
get:
tags:
- Platform Stores
summary: Get Store
description: 'Get Store
Get store by Id'
operationId: 5ebb71f384e9969ae7bfca07c4cf7450
parameters:
- name: id
in: path
description: Platform Store Id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/stores/products/variants/{id}/unlink:
post:
tags:
- Platform Store Product Variants
summary: Unlink Platform Product Variants
description: Unlink Platform Product Variants
operationId: dbbcc24e2bc2247f2f013ea856fdb091
parameters:
- name: id
in: path
description: platform store product platform store product Platform store product variant id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
success:
type: boolean
example: true
message:
type: string
example: Variant unlinked!
type: object
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/stores/products/variants/{id}/ignore:
post:
tags:
- Platform Store Product Variants
summary: Ignore Platform Product Variants
description: Ignore platform product variants
operationId: 4c4c73196aad959c84a922c39cf1be8e
parameters:
- name: id
in: path
description: Platform store product variant id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
success:
type: boolean
example: true
message:
type: string
example: Variant ignored!
type: object
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/stores/products/variants/{id}/unignore:
post:
tags:
- Platform Store Product Variants
summary: Ignore Platform Product Variants
description: Unignore Platform Product Variants
operationId: 988135adcca30eef5d9d08bc0930b695
parameters:
- name: id
in: path
description: Platform store product variant id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
success:
type: boolean
example: true
message:
type: string
example: Variant Unignored!
type: object
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/stores/{platformStoreId}/products/{id}:
get:
tags:
- Platform Store Products
summary: Get Platform Product By Id
description: 'Get Platform Product By Id
Get platform product by id'
operationId: 3fa7a6faf46bb48fd6a78c2a133d7cf8
parameters:
- name: platformStoreId
in: path
description: Platform Store Id
required: true
schema:
type: integer
- name: id
in: path
description: Platform Store Product Id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/stores/{platformStoreId}/products:
get:
tags:
- Platform Store Products
summary: Get Platform Products
description: 'Get Platform Products
Get platform products'
operationId: aeb6e9973ad802d72917350ef1b41e2d
parameters:
- name: platformStoreId
in: path
description: platformStoreId
required: true
schema:
type: integer
- name: limit
in: query
description: max 5
required: true
schema:
type: integer
- name: page
in: query
description: default value is 1
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/stores/{platformStoreId}/products/{id}/ignore:
post:
tags:
- Platform Store Products
summary: Ignore Platform Product
description: 'Ignore Platform Product
Ignore platform product'
operationId: 2636ded800a48cf2f66eefa4db1cf915
parameters:
- name: platformStoreId
in: path
description: platformStoreId
required: true
schema:
type: integer
- name: id
in: path
description: productId
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/stores/{platformStoreId}/products/{id}/unignore:
post:
tags:
- Platform Store Products
summary: Unignore Platform Product
description: 'Unignore Platform Product
Unignore platform product'
operationId: 9f1bf75602027f29bba07b1ffb89d345
parameters:
- name: platformStoreId
in: path
description: platformStoreId
required: true
schema:
type: integer
- name: id
in: path
description: Platform store product id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
/products:
get:
tags:
- Products
summary: Get Products
description: Get account products with variants
operationId: cbd3820f1c54e85489d86c79c20ec741
parameters:
- name: limit
in: query
description: Maximum number of products to retrieve (required, max 5)
required: true
schema:
type: integer
maximum: 5
- name: page
in: query
description: Page number (default value is 1)
schema:
type: integer
default: 1
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: responses/Products/index.json
'400':
description: Bad Request
'500':
description: Internal Server Error
security:
- bearerAuth: []
/products/{id}:
get:
tags:
- Products
summary: Get Product By Id
description: 'Get Product By Id
Get Account Product By Id'
operationId: 163fa1b107c906fbd20e5a804078dfa4
parameters:
- name: id
in: path
description: id
required: true
schema:
type: integer
responses:
'200':
description: Successful response
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- bearerAuth: []
components:
securitySchemes:
bearerAuth:
type: http
name: bearerAuth
in: header
bearerFormat: JWT
scheme: bearer
tags:
- name: Account
description: Account
- name: Account Payment
description: Account Payment
- name: Account Settings
description: Account Settings
- name: Blank Category
description: Blank Category
- name: Blank
description: Blank
- name: Orders
description: Orders
- name: Platforms
description: Platforms
- name: Platform Stores
description: Platform Stores
- name: Platform St
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/teelaunch/refs/heads/main/openapi/teelaunch-openapi.yml