Teelaunch Orders API

Submit and manage print-on-demand orders - list and get orders, store a new order, create an order from a variant (orders/pro), and cancel, hold, or release orders to control production. Covers GET/POST /orders and the order lifecycle actions.

OpenAPI Specification

teelaunch-openapi.yml Raw ↑
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