NAV
bash javascript php

Info

Welcome to the generated API reference.

Account

API For Managing Accounts

Get Account Information

Get detailed information about the authenticated user's account.

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/account" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/account"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/account',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 3,
        "code": "hamze",
        "name": "hamze",
        "createdAt": "2020-06-15T23:49:50.000000Z",
        "updatedAt": "2020-10-29T01:41:44.000000Z",
        "active": 1,
        "emailVerified": 1,
        "userId": 3,
        "timezone": "UTC",
        "user": {
            "id": 3,
            "accountId": 3,
            "name": "ibrahim",
            "firstName": "1",
            "lastName": "Test lastname",
            "phoneNumber": "0",
            "email": "[email protected]",
            "emailVerifiedAt": "2020-10-29 01:41:44",
            "createdAt": "2020-06-15T23:49:50.000000Z",
            "updatedAt": "2021-10-13T10:12:49.000000Z",
            "active": 1
        }
    }
}

HTTP Request

GET api/v1/account

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.

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/account/settings?search_key=%22order%22&limit=non&page=minus" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/account/settings"
);

let params = {
    "search_key": ""order"",
    "limit": "non",
    "page": "minus",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/account/settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'search_key'=> '"order"',
            'limit'=> 'non',
            'page'=> 'minus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 1,
            "accountId": 3,
            "key": "order_hold",
            "value": "1",
            "createdAt": "2020-11-18T20:22:48.000000Z",
            "updatedAt": "2021-03-10T23:13:46.000000Z"
        }
    ]
}

HTTP Request

GET api/v1/account/settings

Query Parameters

Parameter Status Description
search_key optional Optional. Search settings by a specific key, allowing partial or fuzzy searching.
limit optional paging limit
page optional default value is 1

Get Account Setting By Id.

Get a specific account setting by its Id.

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/account/settings/6" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/account/settings/6"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/account/settings/6',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 1,
        "accountId": 3,
        "key": "order_hold",
        "value": "1",
        "createdAt": "2020-11-18T20:22:48.000000Z",
        "updatedAt": "2021-10-13T04:37:26.000000Z"
    }
}

HTTP Request

GET api/v1/account/settings/{id}

URL Parameters

Parameter Status Description
id required The ID of the Account Setting.

Update Account Setting

Update account setting by Account Id and Key

Example request:

curl -X PUT \
    "https://api.teelaunch.com/api/v1/account/settings/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"key":"mollitia","value":"veniam"}'
const url = new URL(
    "https://api.teelaunch.com/api/v1/account/settings/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "key": "mollitia",
    "value": "veniam"
}

fetch(url, {
    method: "PUT",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://api.teelaunch.com/api/v1/account/settings/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'key' => 'mollitia',
            'value' => 'veniam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "message": "Account settings updated successfully!"
}

HTTP Request

PUT api/v1/account/settings/{id}

URL Parameters

Parameter Status Description
accountId required ID of the Account

Body Parameters

Parameter Type Status Description
key string required Key of the setting
value string required New value for the setting

Get Payment History

Retrieve the payment history for the authenticated user's account.

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/account/payment-history?limit=quo&page=doloremque" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/account/payment-history"
);

let params = {
    "limit": "quo",
    "page": "doloremque",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/account/payment-history',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'limit'=> 'quo',
            'page'=> 'doloremque',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 100000000060,
            "accountPaymentMethodId": 14,
            "status": 1,
            "amount": "140.25",
            "createdAt": "2021-03-11T05:04:53.000000Z",
            "updatedAt": "2021-03-11T05:04:56.000000Z",
            "accountId": 3,
            "subtotal": "106.50",
            "shippingTotal": "33.75",
            "taxTotal": "0.00",
            "discountTotal": "0.00",
            "transactionId": "mwhs02d6",
            "accountPaymentMethod": {
                "id": 14,
                "accountId": 3,
                "paymentMethodId": 2,
                "isActive": 1,
                "createdAt": "2021-03-10T17:19:32.000000Z",
                "updatedAt": "2021-03-10T17:19:32.000000Z",
                "billingAddressId": null,
                "paymentMethod": {
                    "id": 2,
                    "name": "Paypal",
                    "createdAt": "2020-10-28T21:26:53.000000Z",
                    "updatedAt": "2020-10-28T21:26:53.000000Z"
                }
            }
        }
    ],
    "links": {
        "first": "http:\/\/teelaunch-api.test\/api\/v1\/account\/payment-history?page=1",
        "last": "http:\/\/teelaunch-api.test\/api\/v1\/account\/payment-history?page=16",
        "prev": "http:\/\/teelaunch-api.test\/api\/v1\/account\/payment-history?page=2",
        "next": "http:\/\/teelaunch-api.test\/api\/v1\/account\/payment-history?page=4"
    },
    "meta": {
        "current_page": 3,
        "from": 3,
        "last_page": 16,
        "path": "http:\/\/teelaunch-api.test\/api\/v1\/account\/payment-history",
        "per_page": "1",
        "to": 3,
        "total": 16
    }
}

HTTP Request

GET api/v1/account/payment-history

Query Parameters

Parameter Status Description
limit optional paging limit
page optional default value is 1

Get Payment History By Id.

Retrieve the payment history for a specific payment identified by its unique ID.

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/account/payment-history/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/account/payment-history/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/account/payment-history/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 100000000090,
        "accountPaymentMethodId": 14,
        "status": 1,
        "amount": "16.50",
        "createdAt": "2021-03-26T02:36:13.000000Z",
        "updatedAt": "2021-03-26T02:36:15.000000Z",
        "accountId": 3,
        "subtotal": "11.00",
        "shippingTotal": "5.50",
        "taxTotal": "0.00",
        "discountTotal": "0.00",
        "transactionId": "repyzdy1",
        "orderPayments": [
            {
                "id": 158,
                "orderId": 100000002174,
                "accountPaymentId": 100000000090,
                "lineItemSubtotal": "11.00",
                "discount": "0.00",
                "shippingSubtotal": "5.50",
                "tax": "0.00",
                "totalCost": "16.50",
                "refund": "0.00",
                "createdAt": "2021-03-26T02:36:15.000000Z",
                "updatedAt": "2021-03-26T02:36:15.000000Z",
                "lineItems": [
                    {
                        "id": 170,
                        "orderAccountPaymentId": 158,
                        "orderLineItemId": 100000001907,
                        "blankVariantId": 2400,
                        "productVariantId": 100000040766,
                        "quantity": 1,
                        "unitCost": "11.00",
                        "subtotal": "11.00",
                        "discount": "0.00",
                        "shipping": "5.50",
                        "tax": "0.00",
                        "total": "16.50",
                        "createdAt": "2021-03-26T02:36:15.000000Z",
                        "updatedAt": "2021-03-26T02:36:15.000000Z"
                    }
                ],
                "order": null
            }
        ]
    }
}

HTTP Request

GET api/v1/account/payment-history/{payment_history}

URL Parameters

Parameter Status Description
id required The Id of the Payment History

Blanks

API For Managing Blanks

Get Blanks

Get account blanks with vendor, category, image, variants and options

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/blanks?limit=dolor&page=in" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/blanks"
);

let params = {
    "limit": "dolor",
    "page": "in",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/blanks',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'limit'=> 'dolor',
            'page'=> 'in',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 1,
            "vendorId": 1,
            "name": "20oz Insulated Tumbler",
            "description": "<p><strong>PRODUCT INFORMATION<\/strong><\/p>\n\n<p>A modern take on an old tumbler classic, the 20oz insulated tumbler combines the build and functionality of the original but with a sleeker form facter that is easier to tote around. Constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers.<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>\n\n<p><strong>Design Requirements:<\/strong>&nbsp;1050px x&nbsp;750px<\/p>\n\n<p><strong>PRICING<\/strong><br \/>\n$14.50<br \/>\n<br \/>\n<strong>SHIPPING COST<\/strong><br \/>\nUnited States:&nbsp;$6.25<br \/>\nRest of the World: $10.00<br \/>\nPer Additional:&nbsp;$3.00<\/p>\n\n<p><a href=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/Templates%20V2\/1050x750_Template.pdf\" target=\"_blank\"><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/print\/templatebuttonupdated.png\" style=\"height:50px; width:200px\" \/><\/a><\/p>",
            "defaultInputDescription": null,
            "defaultBlankImageId": null,
            "isFlippableInDesigner": 0,
            "blankCategoryId": 1,
            "isActive": 1,
            "isProcessable": 1,
            "createdAt": "2020-05-16T23:51:21.000000Z",
            "updatedAt": "2021-03-24T16:07:23.000000Z",
            "descriptionStoreDefault": "<p><strong>20oz Insulated Tumbler<\/strong><\/p>\n\n<p>A modern take on an old tumbler classic, the 20oz insulated tumbler combines the build and functionality of the original but with a sleeker form facter that is easier to tote around. Constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers.<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>",
            "bestPractices": "<h2><strong>THE IMPORTANCE OF THE PRINT TEMPLATE<\/strong><\/h2>\n\n<p>The template for the tumblers is set up to display the entire &ldquo;print&rdquo; area. When artwork is uploaded into the app; it is not scalable &ndash; this is why it is important to use the print template to help determine the size and placement of your artwork.<\/p>\n\n<h2><strong>THE LASER ETCHING PROCESS<\/strong><\/h2>\n\n<p>Tumblers are different from our other products in that designs are&nbsp;<strong>NOT<\/strong>&nbsp;printed on to the actual product. Tumbler designs are actually laser etched. Our tumblers are powder coated in a variety of colors and the design you upload is laser etched out of the powder coat which reveals the metal backing of the tumbler. This means that the only colors present on the final product are the color of the powder coat and the metal backing of the tumbler itself. Laser etching creates a dynamic effect that gives the design an opportunity to shine&hellip; literally.<\/p>\n\n<h3><strong>DESIGN TIPS<\/strong><\/h3>\n\n<p>Designing for tumblers is quite different than designing for DTG (standard apparel) or Sublimation (Tote Bags, Blankets, etc.) printing. You have to change your way of thinking. No longer can you think in terms of colors but you must think more in terms of positive and negative space. Where ink would usually be laid for your graphic, now will be etched out of the powder coat color surrounding the tumbler revealing the metal backing. In turn, the areas where there is no graphic, the powder coat will remain. Below are some tips on how to properly create your designs and what to avoid.<\/p>\n\n<p><strong>1) Utilizing Transparency:<\/strong>&nbsp;You must upload a graphic that has transparency within it. If you were to upload a PNG file that has a solid background, you will quickly notice that your mockup file will display a solid box where your design is supposed to be. This is because there is no transparency in your design. If there is no transparency the laser will etch the entire &ldquo;print&rdquo; area because it only recognizes where there are pixels in a design and removes the powder coat that occupies where those&nbsp;pixels reside on the tumbler.<\/p>\n\n<h3>No Transparency<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>No Transparency &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>Graphics that use a healthy mix of positive and negative space or design vs transparent space tend to look the best. Since there are really only two colors in play (the powder coat &amp; metal backing), creating artwork that breaks up the two colors adds more dimension to the final product.<\/p>\n\n<h3>Positive\/Negative Space v.1<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Positive\/Negative Space v.2<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>2) Create Artwork In One Solid Color:<\/strong>&nbsp;Creating artwork in one solid color will better help you visualize how you want your final design to turn out. Gradients, textures, shading, shadows, and other special effects will not appear on the tumbler when etched. Design elements that utilize opacity changes will also not work. The laser only etches to one depth so if you are trying to add layers of depth in your design, the final results will be less than ideal. Creating artwork with one solid color is the best approach to achieving an end result of realistic expectations.<\/p>\n\n<h3>One Color Design<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Art02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>One Color Design &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>3) High Resolution Graphics:<\/strong>&nbsp;Using high resolution artwork is a&nbsp;<strong>MUST<\/strong>&nbsp;for all designs, but may be even more crucial for tumbler designs. Unlike products such as blankets, there is no fleece material to hide imperfections on a tumbler. If you submit pixelated artwork, the laser will pick up on this and etch out a jagged graphic. Vector graphics and solid line art, work the best.<\/p>\n\n<p><strong>4) The Simpler, The Better:<\/strong>&nbsp;Laser etching lends itself to simple bold designs. Artwork with fine detail does not turn out ideally nor does it hold up over time. In order for your design to be impactful it is good practice to simplify otherwise &ldquo;busy&rdquo; elements. As mentioned before, adding a good mix of positive and negative space within your design will also help add dimension and give an otherwise &ldquo;plain&rdquo; design a more dynamic presence.<\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>5) Size Matters:<\/strong>&nbsp;Due to the designated design area on a tumbler, the size of your artwork plays a big part in the end result of the product. In more situations than not, going bigger is better for the laser process. Small text may become hard to read. Small thin lines may get lost. Small fine details can cluster and merge together. The mockup images are a representation of how the final product will look &ndash; it is not always an exact replica of the real deal. Errors can occur and the best way to avoid this is to make your graphic bigger and bolder so there is no doubt that the laser will etch the desired areas.<\/p>\n\n<h3>Thin Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Thick Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>",
            "isTaxEnabled": 0,
            "isSilhouetteArtwork": 0,
            "isRemoveArtworkBackground": null,
            "useVariantImageAsTemplateBackground": 0,
            "variantImageOptionId": null,
            "isActiveDisplay": "Active",
            "categoryDisplay": "Tumblers",
            "thumbnail": "\/blank-images\/2089\/20ozTumbler_Homepage.jpeg",
            "variantImageOptions": [],
            "blankImage": {
                "id": 2089,
                "fileName": "20ozTumbler_Homepage.jpeg",
                "description": "variant image",
                "imageTypeId": 2,
                "fileSize": 12607,
                "width": 500,
                "height": 500,
                "createdAt": "2021-02-01T03:41:09.000000Z",
                "updatedAt": "2021-02-01T03:41:10.000000Z",
                "laravelThroughKey": 1,
                "fileUrl": "\/blank-images\/2089\/20ozTumbler_Homepage.jpeg",
                "imageUrl": "\/blank-images\/2089\/20ozTumbler_Homepage.jpeg",
                "thumbUrl": "\/blank-images\/2089\/20ozTumbler_Homepage-thumb.jpeg"
            }
        },
        {
            "id": 2,
            "vendorId": 1,
            "name": "30oz Insulated Tumbler",
            "description": "<p><strong>PRODUCT INFORMATION<\/strong><\/p>\n\n<p>An instant classic.&nbsp;The 30oz insulated tumbler is big enough for that extra cup of coffee while still being able to fit most cup holders.&nbsp;Constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers. This might be the one tumbler to rule them all.<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>\n\n<p><strong>Design Requirements:<\/strong>&nbsp;1050px x&nbsp;750px<\/p>\n\n<p><strong>PRICING<\/strong><br \/>\n$15.00<br \/>\n<br \/>\n<strong>SHIPPING COST<\/strong><br \/>\nUnited States: $8.50<br \/>\nRest of the World:&nbsp;$15.00<br \/>\nPer Additional:&nbsp;$5.00<\/p>\n\n<p><a href=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/Templates%20V2\/1050x750_Template.pdf\" target=\"_blank\"><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/print\/templatebuttonupdated.png\" style=\"height:50px; width:200px\" \/><\/a><\/p>",
            "defaultInputDescription": null,
            "defaultBlankImageId": null,
            "isFlippableInDesigner": 0,
            "blankCategoryId": 1,
            "isActive": 1,
            "isProcessable": 1,
            "createdAt": "2020-05-17T02:08:09.000000Z",
            "updatedAt": "2021-03-24T16:09:56.000000Z",
            "descriptionStoreDefault": "<p><strong>30oz Insulated Tumbler<\/strong><\/p>\n\n<p>An instant classic.&nbsp;The 30oz insulated tumbler is big enough for that extra cup of coffee while still being able to fit most cup holders.&nbsp;Constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers. This might be the one tumbler to rule them all.<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>",
            "bestPractices": "<h2><strong>THE IMPORTANCE OF THE PRINT TEMPLATE<\/strong><\/h2>\n\n<p>The template for the tumblers is set up to display the entire &ldquo;print&rdquo; area. When artwork is uploaded into the app; it is not scalable &ndash; this is why it is important to use the print template to help determine the size and placement of your artwork.<\/p>\n\n<h2><strong>THE LASER ETCHING PROCESS<\/strong><\/h2>\n\n<p>Tumblers are different from our other products in that designs are&nbsp;<strong>NOT<\/strong>&nbsp;printed on to the actual product. Tumbler designs are actually laser etched. Our tumblers are powder coated in a variety of colors and the design you upload is laser etched out of the powder coat which reveals the metal backing of the tumbler. This means that the only colors present on the final product are the color of the powder coat and the metal backing of the tumbler itself. Laser etching creates a dynamic effect that gives the design an opportunity to shine&hellip; literally.<\/p>\n\n<h3><strong>DESIGN TIPS<\/strong><\/h3>\n\n<p>Designing for tumblers is quite different than designing for DTG (standard apparel) or Sublimation (Tote Bags, Blankets, etc.) printing. You have to change your way of thinking. No longer can you think in terms of colors but you must think more in terms of positive and negative space. Where ink would usually be laid for your graphic, now will be etched out of the powder coat color surrounding the tumbler revealing the metal backing. In turn, the areas where there is no graphic, the powder coat will remain. Below are some tips on how to properly create your designs and what to avoid.<\/p>\n\n<p><strong>1) Utilizing Transparency:<\/strong>&nbsp;You must upload a graphic that has transparency within it. If you were to upload a PNG file that has a solid background, you will quickly notice that your mockup file will display a solid box where your design is supposed to be. This is because there is no transparency in your design. If there is no transparency the laser will etch the entire &ldquo;print&rdquo; area because it only recognizes where there are pixels in a design and removes the powder coat that occupies where those&nbsp;pixels reside on the tumbler.<\/p>\n\n<h3>No Transparency<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>No Transparency &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>Graphics that use a healthy mix of positive and negative space or design vs transparent space tend to look the best. Since there are really only two colors in play (the powder coat &amp; metal backing), creating artwork that breaks up the two colors adds more dimension to the final product.<\/p>\n\n<h3>Positive\/Negative Space v.1<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Positive\/Negative Space v.2<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>2) Create Artwork In One Solid Color:<\/strong>&nbsp;Creating artwork in one solid color will better help you visualize how you want your final design to turn out. Gradients, textures, shading, shadows, and other special effects will not appear on the tumbler when etched. Design elements that utilize opacity changes will also not work. The laser only etches to one depth so if you are trying to add layers of depth in your design, the final results will be less than ideal. Creating artwork with one solid color is the best approach to achieving an end result of realistic expectations.<\/p>\n\n<h3>One Color Design<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Art02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>One Color Design &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>3) High Resolution Graphics:<\/strong>&nbsp;Using high resolution artwork is a&nbsp;<strong>MUST<\/strong>&nbsp;for all designs, but may be even more crucial for tumbler designs. Unlike products such as blankets, there is no fleece material to hide imperfections on a tumbler. If you submit pixelated artwork, the laser will pick up on this and etch out a jagged graphic. Vector graphics and solid line art, work the best.<\/p>\n\n<p><strong>4) The Simpler, The Better:<\/strong>&nbsp;Laser etching lends itself to simple bold designs. Artwork with fine detail does not turn out ideally nor does it hold up over time. In order for your design to be impactful it is good practice to simplify otherwise &ldquo;busy&rdquo; elements. As mentioned before, adding a good mix of positive and negative space within your design will also help add dimension and give an otherwise &ldquo;plain&rdquo; design a more dynamic presence.<\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>5) Size Matters:<\/strong>&nbsp;Due to the designated design area on a tumbler, the size of your artwork plays a big part in the end result of the product. In more situations than not, going bigger is better for the laser process. Small text may become hard to read. Small thin lines may get lost. Small fine details can cluster and merge together. The mockup images are a representation of how the final product will look &ndash; it is not always an exact replica of the real deal. Errors can occur and the best way to avoid this is to make your graphic bigger and bolder so there is no doubt that the laser will etch the desired areas.<\/p>\n\n<h3>Thin Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Thick Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>",
            "isTaxEnabled": 0,
            "isSilhouetteArtwork": 0,
            "isRemoveArtworkBackground": null,
            "useVariantImageAsTemplateBackground": 0,
            "variantImageOptionId": null,
            "isActiveDisplay": "Active",
            "categoryDisplay": "Tumblers",
            "thumbnail": "\/blank-images\/2090\/30ozTumbler_Homepage.jpeg",
            "variantImageOptions": [],
            "blankImage": {
                "id": 2090,
                "fileName": "30ozTumbler_Homepage.jpeg",
                "description": "variant image",
                "imageTypeId": 2,
                "fileSize": 12121,
                "width": 500,
                "height": 500,
                "createdAt": "2021-02-01T03:41:15.000000Z",
                "updatedAt": "2021-02-01T03:41:16.000000Z",
                "laravelThroughKey": 2,
                "fileUrl": "\/blank-images\/2090\/30ozTumbler_Homepage.jpeg",
                "imageUrl": "\/blank-images\/2090\/30ozTumbler_Homepage.jpeg",
                "thumbUrl": "\/blank-images\/2090\/30ozTumbler_Homepage-thumb.jpeg"
            }
        }
    ]
}

HTTP Request

GET api/v1/blanks

Query Parameters

Parameter Status Description
limit required max 5
page optional default value is 1

Get Blank By Id

Retrieve detailed information about a specific blank identified by its unique ID, including vendor, category, image, variants, and options.

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/blanks/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/blanks/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/blanks/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 4,
        "vendorId": 3,
        "name": "Bamboo Coaster - 4pc",
        "description": "<p><strong>PRODUCT INFORMATION<\/strong><br \/>\nProtect your table tops from scratches and water damage with these high-quality, extra thick 100% bamboo coasters. Built to last and preserve the condition of your home furnishings, these coasters also act as a fun accent to your decor.<\/p>\n\n<ul>\n\t<li>Set of 4 Coasters<\/li>\n\t<li>100% Bamboo Wood<\/li>\n\t<li>4&rdquo; Square Coaster with Round Edges<\/li>\n\t<li>1\/2&rdquo; Thick Construction<\/li>\n\t<li>Rinse &amp; Air Dry to Clean<\/li>\n\t<li><strong>DO NOT<\/strong> Put in Dishwasher or Microwave<\/li>\n\t<li>Great Gift Idea!<\/li>\n<\/ul>\n\n<p><strong>Design Requirements:&nbsp;<\/strong>1050px x&nbsp;1050px<\/p>\n\n<p><strong>PRICING<\/strong><br \/>\n$15.00<\/p>\n\n<p><strong>SHIPPING COST<\/strong><br \/>\nUnited States: $5.50<br \/>\nRest of the World: $10.00<br \/>\nPer Additional: $3.00<\/p>\n\n<p><a href=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/Templates%20V2\/BambooCoaster_Template.pdf\" target=\"_blank\"><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/print\/templatebuttonupdated.png\" style=\"height:50px; width:200px\" \/><\/a><\/p>",
        "defaultInputDescription": null,
        "defaultBlankImageId": null,
        "isFlippableInDesigner": 0,
        "blankCategoryId": 6,
        "isActive": 1,
        "isProcessable": 1,
        "createdAt": "2020-05-18T22:22:17.000000Z",
        "updatedAt": "2021-03-24T16:12:23.000000Z",
        "descriptionStoreDefault": "<p><strong>Bamboo Coaster - 4pc<\/strong><\/p>\n\n<p>Protect your table tops from scratches and water damage with these high-quality, extra thick 100% bamboo coasters. Built to last and preserve the condition of your home furnishings, these coasters also act as a fun accent to your decor.<\/p>\n\n<ul>\n\t<li>Set of 4 Coasters<\/li>\n\t<li>100% Bamboo Wood<\/li>\n\t<li>4&rdquo; Square Coaster with Round Edges<\/li>\n\t<li>1\/2&rdquo; Thick Construction<\/li>\n\t<li>Rinse &amp; Air Dry to Clean<\/li>\n\t<li><strong>DO NOT<\/strong> Put in Dishwasher or Microwave<\/li>\n\t<li>Great Gift Idea!<\/li>\n<\/ul>",
        "bestPractices": "<h1>THE IMPORTANCE OF THE PRINT TEMPLATE<\/h1>\n\n<p>The templates for laser etched wooden products&nbsp;are set up to display the entire &ldquo;print&rdquo; area. When artwork is uploaded into the app; it is not scalable &ndash; this is why it is important to use the template provided to help determine the size and placement of your artwork.<\/p>\n\n<h2>THE LASER ETCHING PROCESS<\/h2>\n\n<p>The designs on these objects&nbsp;are&nbsp;<strong>NOT<\/strong>&nbsp;printed on to the actual product. The designs are actually laser etched. The laser process consists of a laser etching and burning the design into the wood,&nbsp;revealing your design in a dark rustic color and at a lower depth from the surface.&nbsp;<strong>*NOTE* The Cork Coaster falls into this best practice category, but it is a cork material not wood. With the coaster,&nbsp;the design is more &quot;burned&quot; into the material with minimal depth.<\/strong><\/p>\n\n<h2>DESIGN TIPS<\/h2>\n\n<p>Designing for these products&nbsp;is quite different than designing for DTG (standard apparel) or Sublimation (Pillows, Blankets, etc.) printing. You have to change your way of thinking. No longer can you think in terms of colors but you must think more in terms of positive and negative space. Where ink would usually be laid for your graphic, now will be etched into the wood. In turn, the areas where there is no graphic, the initial surface will remain. Below are some tips on how to properly create your designs and what to avoid.<\/p>\n\n<p><strong>1) Utilizing Transparency:<\/strong>&nbsp;You must upload a graphic that has transparency within it. If you were to upload a PNG file that has a solid background, you will quickly notice that your mockup file will display a solid box where your design is supposed to be. This is because there is no transparency in your design. If there is no transparency the laser will etch the entire &ldquo;print&rdquo; area because it only recognizes where there are pixels in a design and etches the wood that occupies where those pixels reside on the product.<\/p>\n\n<h3>No Transparency<\/h3>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/solidbackground_design\/\"><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/Coaster_background.png\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<h3>No Transparency - Mockup<\/h3>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/solidbackground_mockup\/\"><img alt=\"Solid Background Mockup\" src=\"https:\/\/i1.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2019\/01\/SolidBackground_Mockup.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<h3>Transparent<\/h3>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/best-practices-bamboo-coaster\/tansparentdesign1\/\"><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/Coaster_nobackground2.jpg\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<h3>Transparent - Mockup<\/h3>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/transparentbackground_mockup\/\"><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/Coaster_nobackground_mockup.png\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<p>Graphics that use a healthy mix of positive and negative space or design vs transparent space tend to look the best. Since there are really only two colors in play (the surface color and darker etched area), creating artwork that breaks up the two colors adds more dimension to the final product.<\/p>\n\n<h3>Positive\/Negative Space v.1<\/h3>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/lesstransparency-2\/\"><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/CuttingBoard_handle_PNv1.png\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<h3>Positive\/Negative Space v.2<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/CuttingBoard_handle_PNv2.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>2.) Create Artwork In One Solid Color:<\/strong>&nbsp;Creating artwork in one solid color will better help you visualize how you want your final design to turn out. Gradients, textures, shading, shadows, and other special effects will not appear on the coaster when etched. Design elements that utilize opacity changes will also not work. The laser only etches to one depth so if you are trying to add layers of depth in your design, the final results will be less than ideal. Creating artwork with one solid color is the best approach to achieving an end result of realistic expectations.<\/p>\n\n<h3>Multi Color Design<\/h3>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/multicolor_design\/\"><img alt=\"Multi-Color Design\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2019\/01\/MultiColor_Design.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<h3>Multi Color Design &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/CuttingBoard_multicolor.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>One Color Design<\/h3>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/singlecolor_design\/\"><img alt=\"Single Color Design\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2019\/01\/SingleColor_Design.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<h3>One Color Design &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/CuttingBoard_singlecolor.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>3) High Resolution Graphics<\/strong>: Using high resolution artwork is a&nbsp;<strong>MUST<\/strong>&nbsp;for all designs, but may be even more crucial for the laser etching process. Unlike products such as blankets, there is no fleece material to hide imperfections from the laser. If you submit pixelated artwork, the laser will pick up on this and etch out a jagged graphic. Vector graphics and solid line art work the best.<\/p>\n\n<p><strong>4) The Simpler, The Better:<\/strong>&nbsp;Laser etching lends itself to simple bold designs. Artwork with fine detail does not turn out ideally nor does it hold up over time. In order for your design to be impactful it is good practice to simplify otherwise &ldquo;busy&rdquo; elements. As mentioned before, adding a good mix of positive and negative space within your design will also help add dimension and give an otherwise &ldquo;plain&rdquo; design a more dynamic presence.<\/p>\n\n<p><strong>5) Size Matters:<\/strong>&nbsp;Due to the designated design area, the size of your artwork plays a big part in the end result of the product. In more situations than not, going bigger is better for the laser process. Small text may become hard to read. Small thin lines may get lost. Small fine details can cluster and merge together. The mockup images are a representation of how the final product will look &ndash; it is not always an exact replica of the real deal. Errors can occur and the best way to avoid this is to make your graphic bigger and bolder so there is no doubt that the laser will etch the desired areas.<\/p>\n\n<h3>Thin Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/CorkCoaster_thin.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Thick&nbsp;Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/CorkCoaster_thick.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>On a similar note, it is important to understand that wood products are never going to be identical. The grain and knots in the wood will almost certainly be different than the mockup image that is created. The mockup images are only a representation of the final product so it is up to you to use your best judgement when uploading artwork. We strongly suggest ordering a sample with one of your designs so you can see what works and what does not work in person.<\/p>",
        "isTaxEnabled": 0,
        "isSilhouetteArtwork": 0,
        "isRemoveArtworkBackground": null,
        "useVariantImageAsTemplateBackground": 0,
        "variantImageOptionId": null,
        "isActiveDisplay": "Active",
        "categoryDisplay": "Home Goods",
        "thumbnail": "\/blank-images\/1738\/Bamboo_Coaster_4pc.jpg",
        "vendor": {
            "id": 3,
            "name": "Qualtry",
            "createdAt": "2020-05-19T05:39:11.000000Z",
            "updatedAt": "2020-05-19T05:39:11.000000Z"
        },
        "category": {
            "id": 6,
            "blankCategoryParentId": 0,
            "name": "Home Goods",
            "isBatchable": 0,
            "isVirtual": 0,
            "sort": 6,
            "createdAt": "2020-05-18T22:44:40.000000Z",
            "updatedAt": "2020-05-18T22:44:40.000000Z"
        },
        "image": {
            "id": 1738,
            "fileName": "Bamboo_Coaster_4pc.jpg",
            "description": "variant image",
            "imageTypeId": 2,
            "fileSize": 20236,
            "width": 500,
            "height": 500,
            "createdAt": "2020-11-11T20:19:52.000000Z",
            "updatedAt": "2020-11-11T20:19:53.000000Z",
            "laravelThroughKey": 4,
            "fileUrl": "\/blank-images\/1738\/Bamboo_Coaster_4pc.jpg",
            "imageUrl": "\/blank-images\/1738\/Bamboo_Coaster_4pc.jpg",
            "thumbUrl": "\/blank-images\/1738\/Bamboo_Coaster_4pc-thumb.jpg"
        },
        "options": [],
        "stageGroups": [
            {
                "id": 4,
                "blankId": 4,
                "name": "Main",
                "sort": 0,
                "isActive": 1,
                "createdAt": "2020-05-18T22:22:17.000000Z",
                "updatedAt": "2020-05-19T17:22:55.000000Z",
                "stages": [
                    {
                        "id": 11,
                        "blankStageGroupId": 4,
                        "blankStageLocationId": 2,
                        "overlayImageId": 119,
                        "isMovable": 0,
                        "isRotatable": 0,
                        "isActive": 0,
                        "sort": 0,
                        "createdAt": "2020-05-26T16:55:29.000000Z",
                        "updatedAt": "2020-05-26T16:55:58.000000Z",
                        "isOptional": 0,
                        "upcharge": null,
                        "createTypes": [
                            {
                                "id": 13,
                                "blankStageId": 11,
                                "createTypeId": 1,
                                "createdAt": "2020-06-04T21:22:14.000000Z",
                                "updatedAt": "2020-06-04T21:22:14.000000Z",
                                "imageRequirement": {
                                    "id": 13,
                                    "createTypeStageId": 13,
                                    "storeSizeMin": null,
                                    "storeSizeMax": null,
                                    "storeWidthMin": 1050,
                                    "storeWidthMax": 1050,
                                    "storeHeightMin": 1050,
                                    "storeHeightMax": 1050,
                                    "customerSizeMin": null,
                                    "customerSizeMax": null,
                                    "customerWidthMin": null,
                                    "customerWidthMax": null,
                                    "customerHeightMin": null,
                                    "customerHeightMax": null,
                                    "isMovable": 0,
                                    "isRotatable": 0,
                                    "createdAt": "2020-06-04T21:22:14.000000Z",
                                    "updatedAt": "2020-06-04T21:22:14.000000Z",
                                    "storeSizeMinReadable": "0 B",
                                    "storeSizeMaxReadable": "0 B"
                                },
                                "createType": {
                                    "id": 1,
                                    "name": "Image",
                                    "hasStoreArtwork": 1,
                                    "hasCustomerArtwork": 0,
                                    "sort": 0,
                                    "createdAt": null,
                                    "updatedAt": null
                                },
                                "imageTypes": [
                                    {
                                        "id": 23,
                                        "createTypeStageId": 13,
                                        "artworkOrigin": 2,
                                        "imageTypeId": 1,
                                        "createdAt": "2020-06-04T21:22:14.000000Z",
                                        "updatedAt": "2020-06-04T21:22:14.000000Z",
                                        "imageType": {
                                            "id": 1,
                                            "displayName": "PNG",
                                            "fileExtension": "png",
                                            "mimeType": "image\/png",
                                            "isUploadable": 1,
                                            "isPrintable": 1,
                                            "sort": 0,
                                            "createdAt": null,
                                            "updatedAt": null
                                        }
                                    }
                                ]
                            }
                        ],
                        "image": {
                            "id": 119,
                            "fileName": "BambooCoaster_APP_Template02.png",
                            "description": "variant image",
                            "imageTypeId": 2,
                            "fileSize": 14534,
                            "width": 1000,
                            "height": 1000,
                            "createdAt": "2020-05-26T16:55:53.000000Z",
                            "updatedAt": "2020-05-26T16:55:53.000000Z",
                            "fileUrl": "\/blank-images\/119\/BambooCoaster_APP_Template02.png",
                            "imageUrl": "\/blank-images\/119\/BambooCoaster_APP_Template02.png",
                            "thumbUrl": "\/blank-images\/119\/BambooCoaster_APP_Template02-thumb.png"
                        },
                        "location": {
                            "id": 2,
                            "fullName": "Front",
                            "shortName": "Front",
                            "createdAt": "2020-05-16T23:57:14.000000Z",
                            "updatedAt": "2020-05-16T23:57:14.000000Z"
                        },
                        "subLocationSettings": [
                            {
                                "id": 12,
                                "blankStageId": 11,
                                "blankStageLocationSubId": 9,
                                "vendorKey": null,
                                "vendorValue": null,
                                "createdAt": "2020-06-19T16:01:11.000000Z",
                                "updatedAt": "2020-06-19T16:01:11.000000Z",
                                "preview": {
                                    "id": 13,
                                    "blankVariantId": null,
                                    "blankStageLocationSubSettingId": 12,
                                    "left": "3.40",
                                    "top": "4.00",
                                    "width": "94.00",
                                    "height": "92.80",
                                    "alignVerticalId": null,
                                    "alignHorizontalId": null,
                                    "createdAt": "2020-06-19T16:01:11.000000Z",
                                    "updatedAt": "2020-06-19T16:01:27.000000Z"
                                },
                                "subLocation": {
                                    "id": 9,
                                    "blankStageLocationId": 2,
                                    "code": null,
                                    "name": "Full Print",
                                    "sort": 0,
                                    "createdAt": "2020-05-20T01:15:18.000000Z",
                                    "updatedAt": "2020-05-20T01:15:18.000000Z"
                                },
                                "offsets": []
                            }
                        ]
                    }
                ]
            }
        ],
        "variants": [
            {
                "id": 43,
                "blankId": 4,
                "sku": "woodencoasters4",
                "quantity": 4,
                "price": "15.00",
                "isActive": 1,
                "isOutOfStock": 0,
                "isProcessable": 1,
                "sort": 0,
                "shippingRuleId": null,
                "createdAt": "2020-05-18T22:22:17.000000Z",
                "updatedAt": "2020-11-11T19:20:35.000000Z",
                "thumbnail": "\/blank-images\/1596\/BambooCoasters.jpg",
                "optionValues": [],
                "image": {
                    "id": 1596,
                    "fileName": "BambooCoasters.jpg",
                    "description": "variant image",
                    "imageTypeId": 2,
                    "fileSize": 19378,
                    "width": 500,
                    "height": 500,
                    "createdAt": "2020-10-31T18:44:29.000000Z",
                    "updatedAt": "2020-10-31T18:44:30.000000Z",
                    "laravelThroughKey": 43,
                    "fileUrl": "\/blank-images\/1596\/BambooCoasters.jpg",
                    "imageUrl": "\/blank-images\/1596\/BambooCoasters.jpg",
                    "thumbUrl": "\/blank-images\/1596\/BambooCoasters-thumb.jpg"
                },
                "image2": null
            }
        ],
        "blankPsd": [
            {
                "id": 66,
                "blankId": 4,
                "blankOptionValueId": null,
                "code": "stacked-standing-angle",
                "name": "Stacked Standing Angle",
                "fileName": "BambooCoster_StackedStandingAngle_OP.psd",
                "isActive": 1,
                "sort": 1,
                "createdAt": "2020-05-26T16:56:56.000000Z",
                "updatedAt": "2020-05-26T16:56:58.000000Z",
                "blankStageGroupId": 4,
                "filePath": "blank-psds\/66\/BambooCoster_StackedStandingAngle_OP.psd",
                "fileUrl": "\/blank-psds\/66\/BambooCoster_StackedStandingAngle_OP.psd",
                "blankMockupImage": null,
                "blankPsdLayer": [
                    {
                        "id": 66,
                        "blankPsdId": 66,
                        "layerName": "design-here-1",
                        "createdAt": "2020-05-26T16:57:43.000000Z",
                        "updatedAt": "2020-05-26T16:57:43.000000Z",
                        "width": 1050,
                        "height": 1050,
                        "dpi": 300,
                        "blankStageId": 11,
                        "offsetX": 0,
                        "offsetY": 0
                    }
                ]
            },
            {
                "id": 67,
                "blankId": 4,
                "blankOptionValueId": null,
                "code": "stacked-offset",
                "name": "Stacked Offset",
                "fileName": "BambooCoster_StackedOffset_OP.psd",
                "isActive": 1,
                "sort": 2,
                "createdAt": "2020-05-26T16:58:04.000000Z",
                "updatedAt": "2020-05-26T16:58:06.000000Z",
                "blankStageGroupId": 4,
                "filePath": "blank-psds\/67\/BambooCoster_StackedOffset_OP.psd",
                "fileUrl": "\/blank-psds\/67\/BambooCoster_StackedOffset_OP.psd",
                "blankMockupImage": null,
                "blankPsdLayer": [
                    {
                        "id": 67,
                        "blankPsdId": 67,
                        "layerName": "design-here-1",
                        "createdAt": "2020-05-26T16:58:46.000000Z",
                        "updatedAt": "2020-05-26T16:58:46.000000Z",
                        "width": 1050,
                        "height": 1050,
                        "dpi": 300,
                        "blankStageId": 11,
                        "offsetX": 0,
                        "offsetY": 0
                    }
                ]
            },
            {
                "id": 68,
                "blankId": 4,
                "blankOptionValueId": null,
                "code": "single-flat",
                "name": "Single Flat",
                "fileName": "BambooCoaster_SingleFlat_OP.psd",
                "isActive": 1,
                "sort": 3,
                "createdAt": "2020-05-26T16:59:09.000000Z",
                "updatedAt": "2020-05-26T16:59:11.000000Z",
                "blankStageGroupId": 4,
                "filePath": "blank-psds\/68\/BambooCoaster_SingleFlat_OP.psd",
                "fileUrl": "\/blank-psds\/68\/BambooCoaster_SingleFlat_OP.psd",
                "blankMockupImage": null,
                "blankPsdLayer": [
                    {
                        "id": 68,
                        "blankPsdId": 68,
                        "layerName": "design-here-1",
                        "createdAt": "2020-05-26T16:59:23.000000Z",
                        "updatedAt": "2020-05-26T16:59:23.000000Z",
                        "width": 1050,
                        "height": 1050,
                        "dpi": 300,
                        "blankStageId": 11,
                        "offsetX": 0,
                        "offsetY": 0
                    }
                ]
            },
            {
                "id": 69,
                "blankId": 4,
                "blankOptionValueId": null,
                "code": "lifestyle",
                "name": "Lifestyle",
                "fileName": "BambooCoaster_Lifestyle_OP.psd",
                "isActive": 1,
                "sort": 4,
                "createdAt": "2020-05-26T16:59:44.000000Z",
                "updatedAt": "2020-05-26T16:59:46.000000Z",
                "blankStageGroupId": 4,
                "filePath": "blank-psds\/69\/BambooCoaster_Lifestyle_OP.psd",
                "fileUrl": "\/blank-psds\/69\/BambooCoaster_Lifestyle_OP.psd",
                "blankMockupImage": null,
                "blankPsdLayer": [
                    {
                        "id": 69,
                        "blankPsdId": 69,
                        "layerName": "design-here-1",
                        "createdAt": "2020-05-26T16:59:59.000000Z",
                        "updatedAt": "2020-05-26T16:59:59.000000Z",
                        "width": 1050,
                        "height": 1050,
                        "dpi": 300,
                        "blankStageId": 11,
                        "offsetX": 0,
                        "offsetY": 0
                    }
                ]
            }
        ],
        "variantImageOptions": [],
        "blankImage": {
            "id": 1738,
            "fileName": "Bamboo_Coaster_4pc.jpg",
            "description": "variant image",
            "imageTypeId": 2,
            "fileSize": 20236,
            "width": 500,
            "height": 500,
            "createdAt": "2020-11-11T20:19:52.000000Z",
            "updatedAt": "2020-11-11T20:19:53.000000Z",
            "laravelThroughKey": 4,
            "fileUrl": "\/blank-images\/1738\/Bamboo_Coaster_4pc.jpg",
            "imageUrl": "\/blank-images\/1738\/Bamboo_Coaster_4pc.jpg",
            "thumbUrl": "\/blank-images\/1738\/Bamboo_Coaster_4pc-thumb.jpg"
        }
    }
}

HTTP Request

GET api/v1/blanks/{id}

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

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/blanks/1/create" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"id":"omnis","name":"nihil","description":"ipsa","images":[]}'
const url = new URL(
    "https://api.teelaunch.com/api/v1/blanks/1/create"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "id": "omnis",
    "name": "nihil",
    "description": "ipsa",
    "images": []
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/blanks/1/create',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'id' => 'omnis',
            'name' => 'nihil',
            'description' => 'ipsa',
            'images' => [],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 100000006371,
        "accountId": 3,
        "name": "Mug Test Right and Left Handed - API - 1",
        "description": "New Mug",
        "tags": null,
        "pickedMockups": null,
        "isActive": 1,
        "createdAt": "2021-11-04T12:21:21.000000Z",
        "updatedAt": "2021-11-04T12:21:21.000000Z",
        "deletedAt": null,
        "orderHold": 0,
        "mainImageUrl": null,
        "mainImageThumbUrl": null,
        "variants": [
            {
                "id": 100000094074,
                "productId": 100000006371,
                "blankVariantId": 365,
                "price": "9.00",
                "weight": null,
                "weightUnitId": null,
                "isActive": 1,
                "createdAt": "2021-11-04T12:21:46.000000Z",
                "updatedAt": "2021-11-04T12:21:46.000000Z",
                "deletedAt": null,
                "thumbnail": null,
                "stageFiles": [
                    {
                        "id": 107815,
                        "status": 5,
                        "accountId": 3,
                        "accountImageId": 100000005362,
                        "productArtFileId": 10708,
                        "productId": 100000006371,
                        "productVariantId": 100000094074,
                        "blankStageGroupId": 27,
                        "blankStageId": 192,
                        "blankStageCreateTypeId": 1,
                        "blankStageLocationId": 15,
                        "blankStageLocationSubId": 25,
                        "blankStageLocationSubOffsetId": 1,
                        "fileName": null,
                        "imageTypeId": null,
                        "size": null,
                        "width": null,
                        "height": null,
                        "startedAt": null,
                        "finishedAt": null,
                        "createdAt": "2021-11-04T12:21:46.000000Z",
                        "updatedAt": "2021-11-04T12:21:46.000000Z",
                        "deletedAt": null,
                        "blankId": 27,
                        "fileUrl": null,
                        "imageUrl": null,
                        "thumbUrl": null
                    },
                    {
                        "id": 107816,
                        "status": 5,
                        "accountId": 3,
                        "accountImageId": 100000005363,
                        "productArtFileId": 10709,
                        "productId": 100000006371,
                        "productVariantId": 100000094074,
                        "blankStageGroupId": 27,
                        "blankStageId": 191,
                        "blankStageCreateTypeId": 1,
                        "blankStageLocationId": 16,
                        "blankStageLocationSubId": 24,
                        "blankStageLocationSubOffsetId": 1,
                        "fileName": null,
                        "imageTypeId": null,
                        "size": null,
                        "width": null,
                        "height": null,
                        "startedAt": null,
                        "finishedAt": null,
                        "createdAt": "2021-11-04T12:21:46.000000Z",
                        "updatedAt": "2021-11-04T12:21:46.000000Z",
                        "deletedAt": null,
                        "blankId": 27,
                        "fileUrl": null,
                        "imageUrl": null,
                        "thumbUrl": null
                    }
                ],
                "printFiles": [],
                "mockupFiles": [],
                "blankVariant": {
                    "id": 365,
                    "blankId": 27,
                    "sku": "11ozaccentblack",
                    "quantity": 1,
                    "price": "4.50",
                    "isActive": 1,
                    "isOutOfStock": 0,
                    "isProcessable": 1,
                    "sort": 1,
                    "shippingRuleId": null,
                    "createdAt": "2020-09-20T03:15:24.000000Z",
                    "updatedAt": "2021-01-30T19:23:01.000000Z",
                    "thumbnail": "\/blank-images\/1892\/11ozAccent_Black.jpg",
                    "blank": {
                        "id": 27,
                        "vendorId": 4,
                        "name": "11oz Accent Mug",
                        "description": "<p><strong>PRODUCT INFORMATION<\/strong><br \/>\n<br \/>\nAdd a little pop of color to your morning routine with this stylish 11oz accent mug. Made with a premium hard coat that provides crisp&nbsp;and vibrant color reproduction, this mug is sure to look sharp in your hands for years.<\/p>\n\n<ul>\n\t<li>High Gloss + Premium White Finish<\/li>\n\t<li>ORCA Coating<\/li>\n\t<li>Dishwasher and Microwave Safe<\/li>\n\t<li>3.7&quot;H x 3.7&quot;W x 3.2&quot;D<\/li>\n\t<li>10.2&quot; Circumference<\/li>\n<\/ul>\n\n<p><strong>File&nbsp;Requirements:<\/strong> 1125px x&nbsp;1125px<\/p>\n\n<p><strong>PRICING<\/strong><br \/>\n$4.50<\/p>\n\n<p><strong>SHIPPING COST<\/strong><br \/>\nUnited States: $5.50<br \/>\nCanada: $8.50<br \/>\nUnited Kingdom: $5.50<br \/>\nRest of the World: $10.00<br \/>\nPer Additional: $3.50<\/p>\n\n<p><a href=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/Templates%20V2\/1125x1125_Template.pdf\" target=\"_blank\"><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/print\/templatebuttonupdated.png\" style=\"height:50px; width:200px\" \/><\/a><\/p>",
                        "defaultInputDescription": null,
                        "defaultBlankImageId": null,
                        "isFlippableInDesigner": 1,
                        "blankCategoryId": 123,
                        "isActive": 1,
                        "isProcessable": 1,
                        "createdAt": "2020-05-19T18:11:48.000000Z",
                        "updatedAt": "2021-03-24T21:38:20.000000Z",
                        "descriptionStoreDefault": "<p><strong>11oz Accent Mug<\/strong><\/p>\n\n<p>Add a little pop of color to your morning routine with this stylish 11oz accent mug. Made with a premium hard coat that provides crisp&nbsp;and vibrant color reproduction, this mug is sure to look sharp in your hands for years.<\/p>\n\n<ul>\n\t<li>High Gloss + Premium White Finish<\/li>\n\t<li>ORCA Coating<\/li>\n\t<li>Dishwasher and Microwave Safe<\/li>\n\t<li>3.7&quot;H x 3.7&quot;W x 3.2&quot;D<\/li>\n\t<li>10.2&quot; Circumference<\/li>\n<\/ul>",
                        "bestPractices": "<h2>THE IMPORTANCE OF THE PRINT TEMPLATE<\/h2>\n\n<p>The template for glossy-finish drinkware&nbsp;is set up to display the entire print area. When artwork is uploaded into the app; it is not scalable &ndash; this is why it is important to use the print template to help determine the size and placement of your artwork.<\/p>\n\n<h3>DESIGN TIPS<\/h3>\n\n<p>Designing for these is pretty straight forward. However, there are a few things to keep in mind to make sure your designs print to their full potential.<\/p>\n\n<p><strong>1) The Simpler, The Better:<\/strong>&nbsp;For these type of products it works best if the designs are clear and can be&nbsp;easily digested by the viewer. Photorealistic designs are acceptable, but the heating process that adheres the artwork&nbsp;tends to blend fine details. We highly recommend creating simple designs that are easy to read and are void of fine details to ensure the best possible final print.<\/p>\n\n<p><strong>2) Avoid Sharp Edges:<\/strong>&nbsp;Designs with sharp edges tend to look warped when placed on a cylindrical product. Examples of sharp edges may be square or rectangular borders, solid background colors, photographs, etc. This is also true for designs that feature a circular element as it will appear more oblong once printed to the product.<\/p>\n\n<p>Another reason to avoid designs with sharp edges is human error. There is always an element of human error involved in the Print On Demand process and these&nbsp;are no different. When placing the sublimated printing paper on the product&nbsp;before the heating process takes place, someone has to line the printing paper around the it. Sometimes the end result of this is a graphic that is not 100% level. This is typically not a huge issue as it usually is a difficult thing to spot&nbsp;<strong>UNLESS<\/strong>&nbsp;there are sharp edge lines in the design. Sharp edges in a graphic tend to stick out like a sore thumb if there was any sort of mistake made during the alignment process of the sublimation paper.<\/p>\n\n<h3>Noticeable Errors With Sharp Edges<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/sharp_edges.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Less Noticeable Errors With Open Designs<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/nosharp_edges.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>3) Font Size:<\/strong>&nbsp;We commonly get asked what is the smallest font size that is acceptable for drinkware&nbsp;designs. This is a difficult question to answer as there are many typefaces with different weights, styles and size variations. A rule of thumb for choosing typefaces and typeface size is if it is difficult to read in the template at 100% view, it will be difficult to read on the final product. If you insist on using a smaller typeface, we recommend choosing a font that is legible as well as spacing your text out enough to easily distinguish what each letter is. More often than not, serif fonts tend to work the best in these situations due to the unique stems at the top\/bottom of each letter that makes it easily identifiable.<\/p>\n\n<p><strong>4) Drop Shadows\/Glows &amp; Low Opacity Elements:<\/strong>&nbsp;It is highly recommended to avoid using drop shadows and glows when creating designs for glossy drinkware. This effect is generally a useful technique in adding dimension to your artwork but will not turn out ideally on these types of products. The gradient effect of a drop shadow\/glow when printed&nbsp;gives the artwork a lower quality look and often times makes the graphic appear blurry.<\/p>\n\n<h3>Blurry Drop Shadow Effect<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/Bad_Drop_Shadow.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Flat Drop Shadow Effect<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/Good_Drop_Shadow.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>Using design elements that have low opacity tend to get lost in the final print. If you have a design element that you want to be seen, it is recommended that you incorporate it into your design at 50% opacity or higher. The design is heated into the ceramic or glossy finish&nbsp;which can mean subtle details that you would normally see on your computer screen will be lost once applied to the product.<\/p>\n\n<p><strong>5) RGB vs CMYK:<\/strong>&nbsp;Knowing your color codes may be the most important practice when using Print on Demand. RGB (Red, Green &amp; Blue) is the color code for web applications. CMYK (Cyan, Magenta, Yellow &amp; Black) is the color code for print applications.<\/p>\n\n<p>We ask that our users upload artwork in RGB because they are uploading a graphic to the web. We strongly recommend checking the files in CMYK prior to upload because the graphic uploaded in RGB will be converted to CMYK at the print facility.&nbsp;<strong>DO NOT<\/strong>&nbsp;upload artwork to the app in CMYK &ndash; this will cause issues with how your design colors are represented on the mockup images. Upload your artwork in RGB, but check your file in CMYK first and adjust accordingly.<\/p>\n\n<p>Some colors are created specifically for your screen using RGB. We call these backlit colors as they are using light from your computer monitor to add more intense vibrancy that cannot be reproduced in the printing process. This is why we always recommend checking your files in CMYK before uploading because there can be drastic shifts in color that completely change what is shown on your mockup image versus the final product. Please see the example below.<\/p>\n\n<h3>RGB - Backlit Color<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/Best%20Practice%20Images\/WaterBottle_RGB.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>CMYK &ndash; How Green Will Reproduce in Print<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/Best%20Practice%20Images\/WaterBottle_CMYK.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>&nbsp;<\/p>\n<!-- .entry-content --><!-- .columns --><!-- .row --><!-- .page-content --><!-- #main --><!-- #primary --><!-- .container --><!-- #content -->",
                        "isTaxEnabled": 0,
                        "isSilhouetteArtwork": null,
                        "isRemoveArtworkBackground": null,
                        "useVariantImageAsTemplateBackground": 0,
                        "variantImageOptionId": 1,
                        "isActiveDisplay": "Active",
                        "categoryDisplay": "Ceramic Mugs",
                        "thumbnail": "\/blank-images\/2084\/11ozAccent_AppHomepage.jpeg",
                        "variantImageOptions": [
                            {
                                "id": 1,
                                "blankId": 27,
                                "blankOptionId": 1,
                                "createdAt": "2020-11-19T20:05:14.000000Z",
                                "updatedAt": "2020-11-19T20:05:14.000000Z"
                            }
                        ],
                        "blankImage": {
                            "id": 2084,
                            "fileName": "11ozAccent_AppHomepage.jpeg",
                            "description": "variant image",
                            "imageTypeId": 2,
                            "fileSize": 12850,
                            "width": 500,
                            "height": 500,
                            "createdAt": "2021-02-01T03:40:44.000000Z",
                            "updatedAt": "2021-02-01T03:40:45.000000Z",
                            "laravelThroughKey": 27,
                            "fileUrl": "\/blank-images\/2084\/11ozAccent_AppHomepage.jpeg",
                            "imageUrl": "\/blank-images\/2084\/11ozAccent_AppHomepage.jpeg",
                            "thumbUrl": "\/blank-images\/2084\/11ozAccent_AppHomepage-thumb.jpeg"
                        }
                    },
                    "image": {
                        "id": 1892,
                        "fileName": "11ozAccent_Black.jpg",
                        "description": "variant image",
                        "imageTypeId": 2,
                        "fileSize": 10723,
                        "width": 500,
                        "height": 500,
                        "createdAt": "2021-01-19T16:43:36.000000Z",
                        "updatedAt": "2021-01-19T16:43:37.000000Z",
                        "laravelThroughKey": 365,
                        "fileUrl": "\/blank-images\/1892\/11ozAccent_Black.jpg",
                        "imageUrl": "\/blank-images\/1892\/11ozAccent_Black.jpg",
                        "thumbUrl": "\/blank-images\/1892\/11ozAccent_Black-thumb.jpg"
                    }
                }
            },
            {
                "id": 100000094075,
                "productId": 100000006371,
                "blankVariantId": 366,
                "price": "9.00",
                "weight": null,
                "weightUnitId": null,
                "isActive": 1,
                "createdAt": "2021-11-04T12:21:46.000000Z",
                "updatedAt": "2021-11-04T12:21:46.000000Z",
                "deletedAt": null,
                "thumbnail": null,
                "stageFiles": [
                    {
                        "id": 107817,
                        "status": 5,
                        "accountId": 3,
                        "accountImageId": 100000005362,
                        "productArtFileId": 10708,
                        "productId": 100000006371,
                        "productVariantId": 100000094075,
                        "blankStageGroupId": 27,
                        "blankStageId": 192,
                        "blankStageCreateTypeId": 1,
                        "blankStageLocationId": 15,
                        "blankStageLocationSubId": 25,
                        "blankStageLocationSubOffsetId": 1,
                        "fileName": null,
                        "imageTypeId": null,
                        "size": null,
                        "width": null,
                        "height": null,
                        "startedAt": null,
                        "finishedAt": null,
                        "createdAt": "2021-11-04T12:21:46.000000Z",
                        "updatedAt": "2021-11-04T12:21:46.000000Z",
                        "deletedAt": null,
                        "blankId": 27,
                        "fileUrl": null,
                        "imageUrl": null,
                        "thumbUrl": null
                    },
                    {
                        "id": 107818,
                        "status": 5,
                        "accountId": 3,
                        "accountImageId": 100000005363,
                        "productArtFileId": 10709,
                        "productId": 100000006371,
                        "productVariantId": 100000094075,
                        "blankStageGroupId": 27,
                        "blankStageId": 191,
                        "blankStageCreateTypeId": 1,
                        "blankStageLocationId": 16,
                        "blankStageLocationSubId": 24,
                        "blankStageLocationSubOffsetId": 1,
                        "fileName": null,
                        "imageTypeId": null,
                        "size": null,
                        "width": null,
                        "height": null,
                        "startedAt": null,
                        "finishedAt": null,
                        "createdAt": "2021-11-04T12:21:46.000000Z",
                        "updatedAt": "2021-11-04T12:21:46.000000Z",
                        "deletedAt": null,
                        "blankId": 27,
                        "fileUrl": null,
                        "imageUrl": null,
                        "thumbUrl": null
                    }
                ],
                "printFiles": [],
                "mockupFiles": [],
                "blankVariant": {
                    "id": 366,
                    "blankId": 27,
                    "sku": "11ozaccentorange",
                    "quantity": 1,
                    "price": "4.50",
                    "isActive": 1,
                    "isOutOfStock": 0,
                    "isProcessable": 1,
                    "sort": 2,
                    "shippingRuleId": null,
                    "createdAt": "2020-09-20T03:15:24.000000Z",
                    "updatedAt": "2021-01-30T19:23:09.000000Z",
                    "thumbnail": "\/blank-images\/1888\/11ozAccent_Orange.jpg",
                    "blank": {
                        "id": 27,
                        "vendorId": 4,
                        "name": "11oz Accent Mug",
                        "description": "<p><strong>PRODUCT INFORMATION<\/strong><br \/>\n<br \/>\nAdd a little pop of color to your morning routine with this stylish 11oz accent mug. Made with a premium hard coat that provides crisp&nbsp;and vibrant color reproduction, this mug is sure to look sharp in your hands for years.<\/p>\n\n<ul>\n\t<li>High Gloss + Premium White Finish<\/li>\n\t<li>ORCA Coating<\/li>\n\t<li>Dishwasher and Microwave Safe<\/li>\n\t<li>3.7&quot;H x 3.7&quot;W x 3.2&quot;D<\/li>\n\t<li>10.2&quot; Circumference<\/li>\n<\/ul>\n\n<p><strong>File&nbsp;Requirements:<\/strong> 1125px x&nbsp;1125px<\/p>\n\n<p><strong>PRICING<\/strong><br \/>\n$4.50<\/p>\n\n<p><strong>SHIPPING COST<\/strong><br \/>\nUnited States: $5.50<br \/>\nCanada: $8.50<br \/>\nUnited Kingdom: $5.50<br \/>\nRest of the World: $10.00<br \/>\nPer Additional: $3.50<\/p>\n\n<p><a href=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/Templates%20V2\/1125x1125_Template.pdf\" target=\"_blank\"><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/print\/templatebuttonupdated.png\" style=\"height:50px; width:200px\" \/><\/a><\/p>",
                        "defaultInputDescription": null,
                        "defaultBlankImageId": null,
                        "isFlippableInDesigner": 1,
                        "blankCategoryId": 123,
                        "isActive": 1,
                        "isProcessable": 1,
                        "createdAt": "2020-05-19T18:11:48.000000Z",
                        "updatedAt": "2021-03-24T21:38:20.000000Z",
                        "descriptionStoreDefault": "<p><strong>11oz Accent Mug<\/strong><\/p>\n\n<p>Add a little pop of color to your morning routine with this stylish 11oz accent mug. Made with a premium hard coat that provides crisp&nbsp;and vibrant color reproduction, this mug is sure to look sharp in your hands for years.<\/p>\n\n<ul>\n\t<li>High Gloss + Premium White Finish<\/li>\n\t<li>ORCA Coating<\/li>\n\t<li>Dishwasher and Microwave Safe<\/li>\n\t<li>3.7&quot;H x 3.7&quot;W x 3.2&quot;D<\/li>\n\t<li>10.2&quot; Circumference<\/li>\n<\/ul>",
                        "bestPractices": "<h2>THE IMPORTANCE OF THE PRINT TEMPLATE<\/h2>\n\n<p>The template for glossy-finish drinkware&nbsp;is set up to display the entire print area. When artwork is uploaded into the app; it is not scalable &ndash; this is why it is important to use the print template to help determine the size and placement of your artwork.<\/p>\n\n<h3>DESIGN TIPS<\/h3>\n\n<p>Designing for these is pretty straight forward. However, there are a few things to keep in mind to make sure your designs print to their full potential.<\/p>\n\n<p><strong>1) The Simpler, The Better:<\/strong>&nbsp;For these type of products it works best if the designs are clear and can be&nbsp;easily digested by the viewer. Photorealistic designs are acceptable, but the heating process that adheres the artwork&nbsp;tends to blend fine details. We highly recommend creating simple designs that are easy to read and are void of fine details to ensure the best possible final print.<\/p>\n\n<p><strong>2) Avoid Sharp Edges:<\/strong>&nbsp;Designs with sharp edges tend to look warped when placed on a cylindrical product. Examples of sharp edges may be square or rectangular borders, solid background colors, photographs, etc. This is also true for designs that feature a circular element as it will appear more oblong once printed to the product.<\/p>\n\n<p>Another reason to avoid designs with sharp edges is human error. There is always an element of human error involved in the Print On Demand process and these&nbsp;are no different. When placing the sublimated printing paper on the product&nbsp;before the heating process takes place, someone has to line the printing paper around the it. Sometimes the end result of this is a graphic that is not 100% level. This is typically not a huge issue as it usually is a difficult thing to spot&nbsp;<strong>UNLESS<\/strong>&nbsp;there are sharp edge lines in the design. Sharp edges in a graphic tend to stick out like a sore thumb if there was any sort of mistake made during the alignment process of the sublimation paper.<\/p>\n\n<h3>Noticeable Errors With Sharp Edges<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/sharp_edges.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Less Noticeable Errors With Open Designs<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/nosharp_edges.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>3) Font Size:<\/strong>&nbsp;We commonly get asked what is the smallest font size that is acceptable for drinkware&nbsp;designs. This is a difficult question to answer as there are many typefaces with different weights, styles and size variations. A rule of thumb for choosing typefaces and typeface size is if it is difficult to read in the template at 100% view, it will be difficult to read on the final product. If you insist on using a smaller typeface, we recommend choosing a font that is legible as well as spacing your text out enough to easily distinguish what each letter is. More often than not, serif fonts tend to work the best in these situations due to the unique stems at the top\/bottom of each letter that makes it easily identifiable.<\/p>\n\n<p><strong>4) Drop Shadows\/Glows &amp; Low Opacity Elements:<\/strong>&nbsp;It is highly recommended to avoid using drop shadows and glows when creating designs for glossy drinkware. This effect is generally a useful technique in adding dimension to your artwork but will not turn out ideally on these types of products. The gradient effect of a drop shadow\/glow when printed&nbsp;gives the artwork a lower quality look and often times makes the graphic appear blurry.<\/p>\n\n<h3>Blurry Drop Shadow Effect<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/Bad_Drop_Shadow.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Flat Drop Shadow Effect<\/h3>\n\n<p><img alt=\"\" src=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/best_practices\/Good_Drop_Shadow.png\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>Using design elements that have low opacity tend to get lost in the final print. If you have a design element that you want to be seen, it is recommended that you incorporate it into your design at 50% opacity or higher. The design is heated into the ceramic or glossy finish&nbsp;which can mean subtle details that you would normally see on your computer screen will be lost once applied to the product.<\/p>\n\n<p><strong>5) RGB vs CMYK:<\/strong>&nbsp;Knowing your color codes may be the most important practice when using Print on Demand. RGB (Red, Green &amp; Blue) is the color code for web applications. CMYK (Cyan, Magenta, Yellow &amp; Black) is the color code for print applications.<\/p>\n\n<p>We ask that our users upload artwork in RGB because they are uploading a graphic to the web. We strongly recommend checking the files in CMYK prior to upload because the graphic uploaded in RGB will be converted to CMYK at the print facility.&nbsp;<strong>DO NOT<\/strong>&nbsp;upload artwork to the app in CMYK &ndash; this will cause issues with how your design colors are represented on the mockup images. Upload your artwork in RGB, but check your file in CMYK first and adjust accordingly.<\/p>\n\n<p>Some colors are created specifically for your screen using RGB. We call these backlit colors as they are using light from your computer monitor to add more intense vibrancy that cannot be reproduced in the printing process. This is why we always recommend checking your files in CMYK before uploading because there can be drastic shifts in color that completely change what is shown on your mockup image versus the final product. Please see the example below.<\/p>\n\n<h3>RGB - Backlit Color<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/Best%20Practice%20Images\/WaterBottle_RGB.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>CMYK &ndash; How Green Will Reproduce in Print<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/Best%20Practice%20Images\/WaterBottle_CMYK.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>&nbsp;<\/p>\n<!-- .entry-content --><!-- .columns --><!-- .row --><!-- .page-content --><!-- #main --><!-- #primary --><!-- .container --><!-- #content -->",
                        "isTaxEnabled": 0,
                        "isSilhouetteArtwork": null,
                        "isRemoveArtworkBackground": null,
                        "useVariantImageAsTemplateBackground": 0,
                        "variantImageOptionId": 1,
                        "isActiveDisplay": "Active",
                        "categoryDisplay": "Ceramic Mugs",
                        "thumbnail": "\/blank-images\/2084\/11ozAccent_AppHomepage.jpeg",
                        "variantImageOptions": [
                            {
                                "id": 1,
                                "blankId": 27,
                                "blankOptionId": 1,
                                "createdAt": "2020-11-19T20:05:14.000000Z",
                                "updatedAt": "2020-11-19T20:05:14.000000Z"
                            }
                        ],
                        "blankImage": {
                            "id": 2084,
                            "fileName": "11ozAccent_AppHomepage.jpeg",
                            "description": "variant image",
                            "imageTypeId": 2,
                            "fileSize": 12850,
                            "width": 500,
                            "height": 500,
                            "createdAt": "2021-02-01T03:40:44.000000Z",
                            "updatedAt": "2021-02-01T03:40:45.000000Z",
                            "laravelThroughKey": 27,
                            "fileUrl": "\/blank-images\/2084\/11ozAccent_AppHomepage.jpeg",
                            "imageUrl": "\/blank-images\/2084\/11ozAccent_AppHomepage.jpeg",
                            "thumbUrl": "\/blank-images\/2084\/11ozAccent_AppHomepage-thumb.jpeg"
                        }
                    },
                    "image": {
                        "id": 1888,
                        "fileName": "11ozAccent_Orange.jpg",
                        "description": "variant image",
                        "imageTypeId": 2,
                        "fileSize": 11504,
                        "width": 500,
                        "height": 500,
                        "createdAt": "2021-01-19T16:41:58.000000Z",
                        "updatedAt": "2021-01-19T16:41:59.000000Z",
                        "laravelThroughKey": 366,
                        "fileUrl": "\/blank-images\/1888\/11ozAccent_Orange.jpg",
                        "imageUrl": "\/blank-images\/1888\/11ozAccent_Orange.jpg",
                        "thumbUrl": "\/blank-images\/1888\/11ozAccent_Orange-thumb.jpg"
                    }
                }
            }
        ],
        "artFiles": [
            {
                "id": 10708,
                "accountId": 3,
                "accountImageId": 100000005362,
                "productId": 100000006371,
                "blankStageGroupId": 27,
                "blankStageId": 192,
                "blankStageCreateTypeId": 1,
                "blankStageLocationId": 15,
                "blankStageLocationSubId": 25,
                "blankStageLocationSubOffsetId": 1,
                "blankId": 27,
                "status": 1,
                "fileName": null,
                "imageTypeId": null,
                "size": null,
                "width": null,
                "height": null,
                "startedAt": null,
                "finishedAt": null,
                "deletedAt": null,
                "createdAt": "2021-11-04T12:21:34.000000Z",
                "updatedAt": "2021-11-04T12:21:34.000000Z",
                "fileUrl": null,
                "imageUrl": null,
                "thumbUrl": null
            },
            {
                "id": 10709,
                "accountId": 3,
                "accountImageId": 100000005363,
                "productId": 100000006371,
                "blankStageGroupId": 27,
                "blankStageId": 191,
                "blankStageCreateTypeId": 1,
                "blankStageLocationId": 16,
                "blankStageLocationSubId": 24,
                "blankStageLocationSubOffsetId": 1,
                "blankId": 27,
                "status": 1,
                "fileName": null,
                "imageTypeId": null,
                "size": null,
                "width": null,
                "height": null,
                "startedAt": null,
                "finishedAt": null,
                "deletedAt": null,
                "createdAt": "2021-11-04T12:21:46.000000Z",
                "updatedAt": "2021-11-04T12:21:46.000000Z",
                "fileUrl": null,
                "imageUrl": null,
                "thumbUrl": null
            }
        ],
        "mockupFiles": [],
        "printFiles": [],
        "blankStageGroup": null
    }
}

HTTP Request

POST api/v1/blanks/{id}/create

Body Parameters

Parameter Type Status Description
id required optional string Blank id.
name required optional string Name of the product.
description required optional string Description of the product.
images array optional of objects containing url, position, location, offset.

Get Blank Categories

Get account blank categories

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/categories" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/categories"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/categories',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 1,
            "blankCategoryParentId": 5,
            "name": "Tumblers",
            "isBatchable": 1,
            "isVirtual": 0,
            "sort": 1,
            "createdAt": "2020-05-16T23:52:43.000000Z",
            "updatedAt": "2020-11-14T21:42:29.000000Z"
        },
        {
            "id": 2,
            "blankCategoryParentId": 0,
            "name": "Accessories",
            "isBatchable": 0,
            "isVirtual": 0,
            "sort": 2,
            "createdAt": "2020-05-18T22:42:46.000000Z",
            "updatedAt": "2020-05-18T22:42:46.000000Z"
        },
        {
            "id": 3,
            "blankCategoryParentId": 0,
            "name": "Apparel",
            "isBatchable": 1,
            "isVirtual": 0,
            "sort": 3,
            "createdAt": "2020-05-18T22:44:18.000000Z",
            "updatedAt": "2021-02-01T18:59:06.000000Z"
        }
    ]
}

HTTP Request

GET api/v1/categories

Get Blank Category By Id

Retrieve information about a specific blank category identified by its unique ID.

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/categories/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/categories/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/categories/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 1,
            "blankCategoryParentId": 5,
            "name": "Tumblers",
            "isBatchable": 1,
            "isVirtual": 0,
            "sort": 1,
            "createdAt": "2020-05-16T23:52:43.000000Z",
            "updatedAt": "2020-11-14T21:42:29.000000Z",
            "childCategories": []
        }
    ]
}

HTTP Request

GET api/v1/categories/{category}

Get Blanks By Category Id

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/categories/in/blanks?limit=placeat&page=quo" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/categories/in/blanks"
);

let params = {
    "limit": "placeat",
    "page": "quo",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/categories/in/blanks',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'limit'=> 'placeat',
            'page'=> 'quo',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 122,
            "vendorId": 1,
            "name": "12oz Wine Insulated Tumbler",
            "description": "<p><strong>PRODUCT INFORMATION<\/strong><\/p>\n\n<p>When you want to be a little less fancy and a little more causual while you drink your wine, reach for this 12oz stemless wine tumbler. Constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers.<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid (stemless)<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>\n\n<p>Design Requirements:&nbsp;1050px x&nbsp;750px<\/p>\n\n<p><strong>PRICING<\/strong><br \/>\n$13.50<\/p>\n\n<p><strong>SHIPPING COST<\/strong><br \/>\nUnited States:&nbsp;$5.00<br \/>\nRest of the World: $10.00<br \/>\nPer Additional:&nbsp;$4.00<\/p>\n\n<p><a href=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/Templates%20V2\/1050x750_Template.pdf\" target=\"_blank\"><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/print\/templatebuttonupdated.png\" style=\"height:50px; width:200px\" \/><\/a><\/p>",
            "defaultInputDescription": null,
            "defaultBlankImageId": null,
            "isFlippableInDesigner": 0,
            "blankCategoryId": 1,
            "isActive": 1,
            "isProcessable": 1,
            "createdAt": "2021-01-19T22:14:58.000000Z",
            "updatedAt": "2021-03-24T16:05:24.000000Z",
            "descriptionStoreDefault": "<p><strong>12oz Wine Insulated Tumbler<\/strong><\/p>\n\n<p>When you want to be a little less fancy and a little more causual while you drink your wine, reach for this 12oz stemless wine tumbler. Constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers.<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid (stemless)<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>",
            "bestPractices": "<h2><strong>THE IMPORTANCE OF THE PRINT TEMPLATE<\/strong><\/h2>\n\n<p>The template for the tumblers is set up to display the entire &ldquo;print&rdquo; area. When artwork is uploaded into the app; it is not scalable &ndash; this is why it is important to use the print template to help determine the size and placement of your artwork.<\/p>\n\n<h2><strong>THE LASER ETCHING PROCESS<\/strong><\/h2>\n\n<p>Tumblers are different from our other products in that designs are&nbsp;<strong>NOT<\/strong>&nbsp;printed on to the actual product. Tumbler designs are actually laser etched. Our tumblers are powder coated in a variety of colors and the design you upload is laser etched out of the powder coat which reveals the metal backing of the tumbler. This means that the only colors present on the final product are the color of the powder coat and the metal backing of the tumbler itself. Laser etching creates a dynamic effect that gives the design an opportunity to shine&hellip; literally.<\/p>\n\n<h3><strong>DESIGN TIPS<\/strong><\/h3>\n\n<p>Designing for tumblers is quite different than designing for DTG (standard apparel) or Sublimation (Tote Bags, Blankets, etc.) printing. You have to change your way of thinking. No longer can you think in terms of colors but you must think more in terms of positive and negative space. Where ink would usually be laid for your graphic, now will be etched out of the powder coat color surrounding the tumbler revealing the metal backing. In turn, the areas where there is no graphic, the powder coat will remain. Below are some tips on how to properly create your designs and what to avoid.<\/p>\n\n<p><strong>1) Utilizing Transparency:<\/strong>&nbsp;You must upload a graphic that has transparency within it. If you were to upload a PNG file that has a solid background, you will quickly notice that your mockup file will display a solid box where your design is supposed to be. This is because there is no transparency in your design. If there is no transparency the laser will etch the entire &ldquo;print&rdquo; area because it only recognizes where there are pixels in a design and removes the powder coat that occupies where those&nbsp;pixels reside on the tumbler.<\/p>\n\n<h3>No Transparency<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>No Transparency &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>Graphics that use a healthy mix of positive and negative space or design vs transparent space tend to look the best. Since there are really only two colors in play (the powder coat &amp; metal backing), creating artwork that breaks up the two colors adds more dimension to the final product.<\/p>\n\n<h3>Positive\/Negative Space v.1<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Positive\/Negative Space v.2<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>2) Create Artwork In One Solid Color:<\/strong>&nbsp;Creating artwork in one solid color will better help you visualize how you want your final design to turn out. Gradients, textures, shading, shadows, and other special effects will not appear on the tumbler when etched. Design elements that utilize opacity changes will also not work. The laser only etches to one depth so if you are trying to add layers of depth in your design, the final results will be less than ideal. Creating artwork with one solid color is the best approach to achieving an end result of realistic expectations.<\/p>\n\n<h3>One Color Design<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Art02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>One Color Design &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>3) High Resolution Graphics:<\/strong>&nbsp;Using high resolution artwork is a&nbsp;<strong>MUST<\/strong>&nbsp;for all designs, but may be even more crucial for tumbler designs. Unlike products such as blankets, there is no fleece material to hide imperfections on a tumbler. If you submit pixelated artwork, the laser will pick up on this and etch out a jagged graphic. Vector graphics and solid line art, work the best.<\/p>\n\n<p><strong>4) The Simpler, The Better:<\/strong>&nbsp;Laser etching lends itself to simple bold designs. Artwork with fine detail does not turn out ideally nor does it hold up over time. In order for your design to be impactful it is good practice to simplify otherwise &ldquo;busy&rdquo; elements. As mentioned before, adding a good mix of positive and negative space within your design will also help add dimension and give an otherwise &ldquo;plain&rdquo; design a more dynamic presence.<\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>5) Size Matters:<\/strong>&nbsp;Due to the designated design area on a tumbler, the size of your artwork plays a big part in the end result of the product. In more situations than not, going bigger is better for the laser process. Small text may become hard to read. Small thin lines may get lost. Small fine details can cluster and merge together. The mockup images are a representation of how the final product will look &ndash; it is not always an exact replica of the real deal. Errors can occur and the best way to avoid this is to make your graphic bigger and bolder so there is no doubt that the laser will etch the desired areas.<\/p>\n\n<h3>Thin Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Thick Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>",
            "isTaxEnabled": 0,
            "isSilhouetteArtwork": 0,
            "isRemoveArtworkBackground": null,
            "useVariantImageAsTemplateBackground": 0,
            "variantImageOptionId": null,
            "isActiveDisplay": "Active",
            "categoryDisplay": "Tumblers",
            "thumbnail": "\/blank-images\/2094\/WineTumbler_Homepage.jpeg",
            "variantImageOptions": [],
            "blankImage": {
                "id": 2094,
                "fileName": "WineTumbler_Homepage.jpeg",
                "description": "variant image",
                "imageTypeId": 2,
                "fileSize": 19741,
                "width": 500,
                "height": 500,
                "createdAt": "2021-02-01T03:41:42.000000Z",
                "updatedAt": "2021-02-01T03:41:43.000000Z",
                "laravelThroughKey": 122,
                "fileUrl": "\/blank-images\/2094\/WineTumbler_Homepage.jpeg",
                "imageUrl": "\/blank-images\/2094\/WineTumbler_Homepage.jpeg",
                "thumbUrl": "\/blank-images\/2094\/WineTumbler_Homepage-thumb.jpeg"
            }
        },
        {
            "id": 34,
            "vendorId": 1,
            "name": "20oz BOHO Insulated Tumbler",
            "description": "<p><strong>PRODUCT INFORMATION<\/strong><\/p>\n\n<p>The 20oz BOHO tumbler takes drinking your favorite beverage to a whole &#39;nother level. Shaped like your typical pilsner glass, but constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers. And if you&#39;re feeling adventurous, try storing the BOHO in the freezer for that desired&nbsp;frosty mug effect!<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>\n\n<p><strong>Design Requirements:<\/strong>&nbsp;1050px x&nbsp;750px<\/p>\n\n<p><strong>PRICING<\/strong><br \/>\n$15.00<\/p>\n\n<p><strong>SHIPPING COST<\/strong><br \/>\nUnited States:&nbsp;$6.25<br \/>\nRest of the World: $10.00<br \/>\nPer Additional:&nbsp;$3.00<\/p>\n\n<p><a href=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/Templates%20V2\/1050x750_Template.pdf\" target=\"_blank\"><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/print\/templatebuttonupdated.png\" style=\"height:50px; width:200px\" \/><\/a><\/p>",
            "defaultInputDescription": null,
            "defaultBlankImageId": null,
            "isFlippableInDesigner": 0,
            "blankCategoryId": 1,
            "isActive": 1,
            "isProcessable": 1,
            "createdAt": "2020-05-19T18:16:30.000000Z",
            "updatedAt": "2021-03-24T16:07:39.000000Z",
            "descriptionStoreDefault": "<p><strong>20oz BOHO Insulated Tumbler<\/strong><\/p>\n\n<p>The 20oz BOHO tumbler takes drinking your favorite beverage to a whole &#39;nother level. Shaped like your typical pilsner glass, but constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers. And if you&#39;re feeling adventurous, try storing the BOHO in the freezer for that desired&nbsp;frosty mug effect!<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>",
            "bestPractices": "<h2><strong>THE IMPORTANCE OF THE PRINT TEMPLATE<\/strong><\/h2>\n\n<p>The template for the tumblers is set up to display the entire &ldquo;print&rdquo; area. When artwork is uploaded into the app; it is not scalable &ndash; this is why it is important to use the print template to help determine the size and placement of your artwork.<\/p>\n\n<h2><strong>THE LASER ETCHING PROCESS<\/strong><\/h2>\n\n<p>Tumblers are different from our other products in that designs are&nbsp;<strong>NOT<\/strong>&nbsp;printed on to the actual product. Tumbler designs are actually laser etched. Our tumblers are powder coated in a variety of colors and the design you upload is laser etched out of the powder coat which reveals the metal backing of the tumbler. This means that the only colors present on the final product are the color of the powder coat and the metal backing of the tumbler itself. Laser etching creates a dynamic effect that gives the design an opportunity to shine&hellip; literally.<\/p>\n\n<h3><strong>DESIGN TIPS<\/strong><\/h3>\n\n<p>Designing for tumblers is quite different than designing for DTG (standard apparel) or Sublimation (Tote Bags, Blankets, etc.) printing. You have to change your way of thinking. No longer can you think in terms of colors but you must think more in terms of positive and negative space. Where ink would usually be laid for your graphic, now will be etched out of the powder coat color surrounding the tumbler revealing the metal backing. In turn, the areas where there is no graphic, the powder coat will remain. Below are some tips on how to properly create your designs and what to avoid.<\/p>\n\n<p><strong>1) Utilizing Transparency:<\/strong>&nbsp;You must upload a graphic that has transparency within it. If you were to upload a PNG file that has a solid background, you will quickly notice that your mockup file will display a solid box where your design is supposed to be. This is because there is no transparency in your design. If there is no transparency the laser will etch the entire &ldquo;print&rdquo; area because it only recognizes where there are pixels in a design and removes the powder coat that occupies where those&nbsp;pixels reside on the tumbler.<\/p>\n\n<h3>No Transparency<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>No Transparency &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>Graphics that use a healthy mix of positive and negative space or design vs transparent space tend to look the best. Since there are really only two colors in play (the powder coat &amp; metal backing), creating artwork that breaks up the two colors adds more dimension to the final product.<\/p>\n\n<h3>Positive\/Negative Space v.1<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Positive\/Negative Space v.2<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>2) Create Artwork In One Solid Color:<\/strong>&nbsp;Creating artwork in one solid color will better help you visualize how you want your final design to turn out. Gradients, textures, shading, shadows, and other special effects will not appear on the tumbler when etched. Design elements that utilize opacity changes will also not work. The laser only etches to one depth so if you are trying to add layers of depth in your design, the final results will be less than ideal. Creating artwork with one solid color is the best approach to achieving an end result of realistic expectations.<\/p>\n\n<h3>One Color Design<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Art02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>One Color Design &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>3) High Resolution Graphics:<\/strong>&nbsp;Using high resolution artwork is a&nbsp;<strong>MUST<\/strong>&nbsp;for all designs, but may be even more crucial for tumbler designs. Unlike products such as blankets, there is no fleece material to hide imperfections on a tumbler. If you submit pixelated artwork, the laser will pick up on this and etch out a jagged graphic. Vector graphics and solid line art, work the best.<\/p>\n\n<p><strong>4) The Simpler, The Better:<\/strong>&nbsp;Laser etching lends itself to simple bold designs. Artwork with fine detail does not turn out ideally nor does it hold up over time. In order for your design to be impactful it is good practice to simplify otherwise &ldquo;busy&rdquo; elements. As mentioned before, adding a good mix of positive and negative space within your design will also help add dimension and give an otherwise &ldquo;plain&rdquo; design a more dynamic presence.<\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>5) Size Matters:<\/strong>&nbsp;Due to the designated design area on a tumbler, the size of your artwork plays a big part in the end result of the product. In more situations than not, going bigger is better for the laser process. Small text may become hard to read. Small thin lines may get lost. Small fine details can cluster and merge together. The mockup images are a representation of how the final product will look &ndash; it is not always an exact replica of the real deal. Errors can occur and the best way to avoid this is to make your graphic bigger and bolder so there is no doubt that the laser will etch the desired areas.<\/p>\n\n<h3>Thin Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Thick Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>",
            "isTaxEnabled": 0,
            "isSilhouetteArtwork": 0,
            "isRemoveArtworkBackground": null,
            "useVariantImageAsTemplateBackground": 0,
            "variantImageOptionId": null,
            "isActiveDisplay": "Active",
            "categoryDisplay": "Tumblers",
            "thumbnail": "\/blank-images\/2092\/BOHOTumbler_Homepage.jpeg",
            "variantImageOptions": [],
            "blankImage": {
                "id": 2092,
                "fileName": "BOHOTumbler_Homepage.jpeg",
                "description": "variant image",
                "imageTypeId": 2,
                "fileSize": 9439,
                "width": 500,
                "height": 500,
                "createdAt": "2021-02-01T03:41:32.000000Z",
                "updatedAt": "2021-02-01T03:41:32.000000Z",
                "laravelThroughKey": 34,
                "fileUrl": "\/blank-images\/2092\/BOHOTumbler_Homepage.jpeg",
                "imageUrl": "\/blank-images\/2092\/BOHOTumbler_Homepage.jpeg",
                "thumbUrl": "\/blank-images\/2092\/BOHOTumbler_Homepage-thumb.jpeg"
            }
        },
        {
            "id": 1,
            "vendorId": 1,
            "name": "20oz Insulated Tumbler",
            "description": "<p><strong>PRODUCT INFORMATION<\/strong><\/p>\n\n<p>A modern take on an old tumbler classic, the 20oz insulated tumbler combines the build and functionality of the original but with a sleeker form facter that is easier to tote around. Constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers.<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>\n\n<p><strong>Design Requirements:<\/strong>&nbsp;1050px x&nbsp;750px<\/p>\n\n<p><strong>PRICING<\/strong><br \/>\n$14.50<br \/>\n<br \/>\n<strong>SHIPPING COST<\/strong><br \/>\nUnited States:&nbsp;$6.25<br \/>\nRest of the World: $10.00<br \/>\nPer Additional:&nbsp;$3.00<\/p>\n\n<p><a href=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/Templates%20V2\/1050x750_Template.pdf\" target=\"_blank\"><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/print\/templatebuttonupdated.png\" style=\"height:50px; width:200px\" \/><\/a><\/p>",
            "defaultInputDescription": null,
            "defaultBlankImageId": null,
            "isFlippableInDesigner": 0,
            "blankCategoryId": 1,
            "isActive": 1,
            "isProcessable": 1,
            "createdAt": "2020-05-16T23:51:21.000000Z",
            "updatedAt": "2021-03-24T16:07:23.000000Z",
            "descriptionStoreDefault": "<p><strong>20oz Insulated Tumbler<\/strong><\/p>\n\n<p>A modern take on an old tumbler classic, the 20oz insulated tumbler combines the build and functionality of the original but with a sleeker form facter that is easier to tote around. Constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers.<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>",
            "bestPractices": "<h2><strong>THE IMPORTANCE OF THE PRINT TEMPLATE<\/strong><\/h2>\n\n<p>The template for the tumblers is set up to display the entire &ldquo;print&rdquo; area. When artwork is uploaded into the app; it is not scalable &ndash; this is why it is important to use the print template to help determine the size and placement of your artwork.<\/p>\n\n<h2><strong>THE LASER ETCHING PROCESS<\/strong><\/h2>\n\n<p>Tumblers are different from our other products in that designs are&nbsp;<strong>NOT<\/strong>&nbsp;printed on to the actual product. Tumbler designs are actually laser etched. Our tumblers are powder coated in a variety of colors and the design you upload is laser etched out of the powder coat which reveals the metal backing of the tumbler. This means that the only colors present on the final product are the color of the powder coat and the metal backing of the tumbler itself. Laser etching creates a dynamic effect that gives the design an opportunity to shine&hellip; literally.<\/p>\n\n<h3><strong>DESIGN TIPS<\/strong><\/h3>\n\n<p>Designing for tumblers is quite different than designing for DTG (standard apparel) or Sublimation (Tote Bags, Blankets, etc.) printing. You have to change your way of thinking. No longer can you think in terms of colors but you must think more in terms of positive and negative space. Where ink would usually be laid for your graphic, now will be etched out of the powder coat color surrounding the tumbler revealing the metal backing. In turn, the areas where there is no graphic, the powder coat will remain. Below are some tips on how to properly create your designs and what to avoid.<\/p>\n\n<p><strong>1) Utilizing Transparency:<\/strong>&nbsp;You must upload a graphic that has transparency within it. If you were to upload a PNG file that has a solid background, you will quickly notice that your mockup file will display a solid box where your design is supposed to be. This is because there is no transparency in your design. If there is no transparency the laser will etch the entire &ldquo;print&rdquo; area because it only recognizes where there are pixels in a design and removes the powder coat that occupies where those&nbsp;pixels reside on the tumbler.<\/p>\n\n<h3>No Transparency<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>No Transparency &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>Graphics that use a healthy mix of positive and negative space or design vs transparent space tend to look the best. Since there are really only two colors in play (the powder coat &amp; metal backing), creating artwork that breaks up the two colors adds more dimension to the final product.<\/p>\n\n<h3>Positive\/Negative Space v.1<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Positive\/Negative Space v.2<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>2) Create Artwork In One Solid Color:<\/strong>&nbsp;Creating artwork in one solid color will better help you visualize how you want your final design to turn out. Gradients, textures, shading, shadows, and other special effects will not appear on the tumbler when etched. Design elements that utilize opacity changes will also not work. The laser only etches to one depth so if you are trying to add layers of depth in your design, the final results will be less than ideal. Creating artwork with one solid color is the best approach to achieving an end result of realistic expectations.<\/p>\n\n<h3>One Color Design<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Art02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>One Color Design &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>3) High Resolution Graphics:<\/strong>&nbsp;Using high resolution artwork is a&nbsp;<strong>MUST<\/strong>&nbsp;for all designs, but may be even more crucial for tumbler designs. Unlike products such as blankets, there is no fleece material to hide imperfections on a tumbler. If you submit pixelated artwork, the laser will pick up on this and etch out a jagged graphic. Vector graphics and solid line art, work the best.<\/p>\n\n<p><strong>4) The Simpler, The Better:<\/strong>&nbsp;Laser etching lends itself to simple bold designs. Artwork with fine detail does not turn out ideally nor does it hold up over time. In order for your design to be impactful it is good practice to simplify otherwise &ldquo;busy&rdquo; elements. As mentioned before, adding a good mix of positive and negative space within your design will also help add dimension and give an otherwise &ldquo;plain&rdquo; design a more dynamic presence.<\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>5) Size Matters:<\/strong>&nbsp;Due to the designated design area on a tumbler, the size of your artwork plays a big part in the end result of the product. In more situations than not, going bigger is better for the laser process. Small text may become hard to read. Small thin lines may get lost. Small fine details can cluster and merge together. The mockup images are a representation of how the final product will look &ndash; it is not always an exact replica of the real deal. Errors can occur and the best way to avoid this is to make your graphic bigger and bolder so there is no doubt that the laser will etch the desired areas.<\/p>\n\n<h3>Thin Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Thick Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>",
            "isTaxEnabled": 0,
            "isSilhouetteArtwork": 0,
            "isRemoveArtworkBackground": null,
            "useVariantImageAsTemplateBackground": 0,
            "variantImageOptionId": null,
            "isActiveDisplay": "Active",
            "categoryDisplay": "Tumblers",
            "thumbnail": "\/blank-images\/2089\/20ozTumbler_Homepage.jpeg",
            "variantImageOptions": [],
            "blankImage": {
                "id": 2089,
                "fileName": "20ozTumbler_Homepage.jpeg",
                "description": "variant image",
                "imageTypeId": 2,
                "fileSize": 12607,
                "width": 500,
                "height": 500,
                "createdAt": "2021-02-01T03:41:09.000000Z",
                "updatedAt": "2021-02-01T03:41:10.000000Z",
                "laravelThroughKey": 1,
                "fileUrl": "\/blank-images\/2089\/20ozTumbler_Homepage.jpeg",
                "imageUrl": "\/blank-images\/2089\/20ozTumbler_Homepage.jpeg",
                "thumbUrl": "\/blank-images\/2089\/20ozTumbler_Homepage-thumb.jpeg"
            }
        },
        {
            "id": 133,
            "vendorId": 1,
            "name": "20oz Travel Tumbler",
            "description": "<p><strong>PRODUCT INFORMATION<\/strong><\/p>\n\n<p>Travel the world or to your living room with your favorite drink in hand. The 20oz Travel Tumbler is constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers. Now with a solid handle and slider lid, you no longer have to worry about drops or spills!<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic slider lid<\/li>\n\t<li>Convenient coated handle<\/li>\n\t<li>Fits most cup holders<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>\n\n<p><strong>PRICING<\/strong><br \/>\n$17.00<\/p>\n\n<p><strong>SHIPPING COST<\/strong><br \/>\nUnited States:&nbsp;$8.50<br \/>\nRest of the World: $10.00<br \/>\nPer Additional:&nbsp;$4.00<\/p>\n\n<p><a href=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/Templates%20V2\/1050x750_Template.pdf\" target=\"_blank\"><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/print\/templatebuttonupdated.png\" style=\"height:50px; width:200px\" \/><\/a><\/p>\n\n<p>&nbsp;<\/p>",
            "defaultInputDescription": null,
            "defaultBlankImageId": null,
            "isFlippableInDesigner": 0,
            "blankCategoryId": 1,
            "isActive": 1,
            "isProcessable": 1,
            "createdAt": "2021-03-09T18:53:51.000000Z",
            "updatedAt": "2021-03-24T20:12:09.000000Z",
            "descriptionStoreDefault": "<p><strong>20oz Travel Tumbler<\/strong><\/p>\n\n<p>Travel the world or to your living room with your favorite drink in hand. The 20oz Travel Tumbler is constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers. Now with a solid handle and slider lid, you no longer have to worry about drops or spills!<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic slider lid<\/li>\n\t<li>Convenient coated handle<\/li>\n\t<li>Fits most cup holders<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>\n\n<p>&nbsp;<\/p>",
            "bestPractices": "<h2><strong>THE IMPORTANCE OF THE PRINT TEMPLATE<\/strong><\/h2>\n\n<p>The template for the tumblers is set up to display the entire &ldquo;print&rdquo; area. When artwork is uploaded into the app; it is not scalable &ndash; this is why it is important to use the print template to help determine the size and placement of your artwork.<\/p>\n\n<h2><strong>THE LASER ETCHING PROCESS<\/strong><\/h2>\n\n<p>Tumblers are different from our other products in that designs are&nbsp;<strong>NOT<\/strong>&nbsp;printed on to the actual product. Tumbler designs are actually laser etched. Our tumblers are powder coated in a variety of colors and the design you upload is laser etched out of the powder coat which reveals the metal backing of the tumbler. This means that the only colors present on the final product are the color of the powder coat and the metal backing of the tumbler itself. Laser etching creates a dynamic effect that gives the design an opportunity to shine&hellip; literally.<\/p>\n\n<h3><strong>DESIGN TIPS<\/strong><\/h3>\n\n<p>Designing for tumblers is quite different than designing for DTG (standard apparel) or Sublimation (Tote Bags, Blankets, etc.) printing. You have to change your way of thinking. No longer can you think in terms of colors but you must think more in terms of positive and negative space. Where ink would usually be laid for your graphic, now will be etched out of the powder coat color surrounding the tumbler revealing the metal backing. In turn, the areas where there is no graphic, the powder coat will remain. Below are some tips on how to properly create your designs and what to avoid.<\/p>\n\n<p><strong>1) Utilizing Transparency:<\/strong>&nbsp;You must upload a graphic that has transparency within it. If you were to upload a PNG file that has a solid background, you will quickly notice that your mockup file will display a solid box where your design is supposed to be. This is because there is no transparency in your design. If there is no transparency the laser will etch the entire &ldquo;print&rdquo; area because it only recognizes where there are pixels in a design and removes the powder coat that occupies where those&nbsp;pixels reside on the tumbler.<\/p>\n\n<h3>No Transparency<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>No Transparency &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>Graphics that use a healthy mix of positive and negative space or design vs transparent space tend to look the best. Since there are really only two colors in play (the powder coat &amp; metal backing), creating artwork that breaks up the two colors adds more dimension to the final product.<\/p>\n\n<h3>Positive\/Negative Space v.1<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Positive\/Negative Space v.2<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>2) Create Artwork In One Solid Color:<\/strong>&nbsp;Creating artwork in one solid color will better help you visualize how you want your final design to turn out. Gradients, textures, shading, shadows, and other special effects will not appear on the tumbler when etched. Design elements that utilize opacity changes will also not work. The laser only etches to one depth so if you are trying to add layers of depth in your design, the final results will be less than ideal. Creating artwork with one solid color is the best approach to achieving an end result of realistic expectations.<\/p>\n\n<h3>One Color Design<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Art02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>One Color Design &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>3) High Resolution Graphics:<\/strong>&nbsp;Using high resolution artwork is a&nbsp;<strong>MUST<\/strong>&nbsp;for all designs, but may be even more crucial for tumbler designs. Unlike products such as blankets, there is no fleece material to hide imperfections on a tumbler. If you submit pixelated artwork, the laser will pick up on this and etch out a jagged graphic. Vector graphics and solid line art, work the best.<\/p>\n\n<p><strong>4) The Simpler, The Better:<\/strong>&nbsp;Laser etching lends itself to simple bold designs. Artwork with fine detail does not turn out ideally nor does it hold up over time. In order for your design to be impactful it is good practice to simplify otherwise &ldquo;busy&rdquo; elements. As mentioned before, adding a good mix of positive and negative space within your design will also help add dimension and give an otherwise &ldquo;plain&rdquo; design a more dynamic presence.<\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>5) Size Matters:<\/strong>&nbsp;Due to the designated design area on a tumbler, the size of your artwork plays a big part in the end result of the product. In more situations than not, going bigger is better for the laser process. Small text may become hard to read. Small thin lines may get lost. Small fine details can cluster and merge together. The mockup images are a representation of how the final product will look &ndash; it is not always an exact replica of the real deal. Errors can occur and the best way to avoid this is to make your graphic bigger and bolder so there is no doubt that the laser will etch the desired areas.<\/p>\n\n<h3>Thin Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Thick Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>",
            "isTaxEnabled": 0,
            "isSilhouetteArtwork": null,
            "isRemoveArtworkBackground": null,
            "useVariantImageAsTemplateBackground": 0,
            "variantImageOptionId": null,
            "isActiveDisplay": "Active",
            "categoryDisplay": "Tumblers",
            "thumbnail": "\/blank-images\/2152\/20ozTravelTumbler_Homepage.png",
            "variantImageOptions": [],
            "blankImage": {
                "id": 2152,
                "fileName": "20ozTravelTumbler_Homepage.png",
                "description": "variant image",
                "imageTypeId": 2,
                "fileSize": 255076,
                "width": 1000,
                "height": 1000,
                "createdAt": "2021-03-09T18:54:10.000000Z",
                "updatedAt": "2021-03-09T18:54:11.000000Z",
                "laravelThroughKey": 133,
                "fileUrl": "\/blank-images\/2152\/20ozTravelTumbler_Homepage.png",
                "imageUrl": "\/blank-images\/2152\/20ozTravelTumbler_Homepage.png",
                "thumbUrl": "\/blank-images\/2152\/20ozTravelTumbler_Homepage-thumb.png"
            }
        },
        {
            "id": 2,
            "vendorId": 1,
            "name": "30oz Insulated Tumbler",
            "description": "<p><strong>PRODUCT INFORMATION<\/strong><\/p>\n\n<p>An instant classic.&nbsp;The 30oz insulated tumbler is big enough for that extra cup of coffee while still being able to fit most cup holders.&nbsp;Constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers. This might be the one tumbler to rule them all.<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>\n\n<p><strong>Design Requirements:<\/strong>&nbsp;1050px x&nbsp;750px<\/p>\n\n<p><strong>PRICING<\/strong><br \/>\n$15.00<br \/>\n<br \/>\n<strong>SHIPPING COST<\/strong><br \/>\nUnited States: $8.50<br \/>\nRest of the World:&nbsp;$15.00<br \/>\nPer Additional:&nbsp;$5.00<\/p>\n\n<p><a href=\"http:\/\/teelaunchcdn.s3.amazonaws.com\/Templates%20V2\/1050x750_Template.pdf\" target=\"_blank\"><img alt=\"\" src=\"https:\/\/teelaunchcdn.s3.us-west-2.amazonaws.com\/print\/templatebuttonupdated.png\" style=\"height:50px; width:200px\" \/><\/a><\/p>",
            "defaultInputDescription": null,
            "defaultBlankImageId": null,
            "isFlippableInDesigner": 0,
            "blankCategoryId": 1,
            "isActive": 1,
            "isProcessable": 1,
            "createdAt": "2020-05-17T02:08:09.000000Z",
            "updatedAt": "2021-03-24T16:09:56.000000Z",
            "descriptionStoreDefault": "<p><strong>30oz Insulated Tumbler<\/strong><\/p>\n\n<p>An instant classic.&nbsp;The 30oz insulated tumbler is big enough for that extra cup of coffee while still being able to fit most cup holders.&nbsp;Constructed out of ultra durable double-wall stainless steel that is vacuum insulated, your drink will remain a consistent temperature 2x longer than your typical glass or plastic containers. This might be the one tumbler to rule them all.<\/p>\n\n<ul>\n\t<li>Tumbler Brand - Polar Camel<\/li>\n\t<li>Snap on acrylic sipper lid<\/li>\n\t<li>BPA and Lead Free<\/li>\n\t<li>Hand Wash Only<\/li>\n\t<li><strong>DO NOT<\/strong> Microwave<\/li>\n<\/ul>",
            "bestPractices": "<h2><strong>THE IMPORTANCE OF THE PRINT TEMPLATE<\/strong><\/h2>\n\n<p>The template for the tumblers is set up to display the entire &ldquo;print&rdquo; area. When artwork is uploaded into the app; it is not scalable &ndash; this is why it is important to use the print template to help determine the size and placement of your artwork.<\/p>\n\n<h2><strong>THE LASER ETCHING PROCESS<\/strong><\/h2>\n\n<p>Tumblers are different from our other products in that designs are&nbsp;<strong>NOT<\/strong>&nbsp;printed on to the actual product. Tumbler designs are actually laser etched. Our tumblers are powder coated in a variety of colors and the design you upload is laser etched out of the powder coat which reveals the metal backing of the tumbler. This means that the only colors present on the final product are the color of the powder coat and the metal backing of the tumbler itself. Laser etching creates a dynamic effect that gives the design an opportunity to shine&hellip; literally.<\/p>\n\n<h3><strong>DESIGN TIPS<\/strong><\/h3>\n\n<p>Designing for tumblers is quite different than designing for DTG (standard apparel) or Sublimation (Tote Bags, Blankets, etc.) printing. You have to change your way of thinking. No longer can you think in terms of colors but you must think more in terms of positive and negative space. Where ink would usually be laid for your graphic, now will be etched out of the powder coat color surrounding the tumbler revealing the metal backing. In turn, the areas where there is no graphic, the powder coat will remain. Below are some tips on how to properly create your designs and what to avoid.<\/p>\n\n<p><strong>1) Utilizing Transparency:<\/strong>&nbsp;You must upload a graphic that has transparency within it. If you were to upload a PNG file that has a solid background, you will quickly notice that your mockup file will display a solid box where your design is supposed to be. This is because there is no transparency in your design. If there is no transparency the laser will etch the entire &ldquo;print&rdquo; area because it only recognizes where there are pixels in a design and removes the powder coat that occupies where those&nbsp;pixels reside on the tumbler.<\/p>\n\n<h3>No Transparency<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>No Transparency &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_Image02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Transparent &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Transparency_mockup02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p>Graphics that use a healthy mix of positive and negative space or design vs transparent space tend to look the best. Since there are really only two colors in play (the powder coat &amp; metal backing), creating artwork that breaks up the two colors adds more dimension to the final product.<\/p>\n\n<h3>Positive\/Negative Space v.1<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Positive\/Negative Space v.2<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/NegativeSpace01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>2) Create Artwork In One Solid Color:<\/strong>&nbsp;Creating artwork in one solid color will better help you visualize how you want your final design to turn out. Gradients, textures, shading, shadows, and other special effects will not appear on the tumbler when etched. Design elements that utilize opacity changes will also not work. The laser only etches to one depth so if you are trying to add layers of depth in your design, the final results will be less than ideal. Creating artwork with one solid color is the best approach to achieving an end result of realistic expectations.<\/p>\n\n<h3>One Color Design<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Art02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>One Color Design &ndash; Mockup<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/SolidColor_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>3) High Resolution Graphics:<\/strong>&nbsp;Using high resolution artwork is a&nbsp;<strong>MUST<\/strong>&nbsp;for all designs, but may be even more crucial for tumbler designs. Unlike products such as blankets, there is no fleece material to hide imperfections on a tumbler. If you submit pixelated artwork, the laser will pick up on this and etch out a jagged graphic. Vector graphics and solid line art, work the best.<\/p>\n\n<p><strong>4) The Simpler, The Better:<\/strong>&nbsp;Laser etching lends itself to simple bold designs. Artwork with fine detail does not turn out ideally nor does it hold up over time. In order for your design to be impactful it is good practice to simplify otherwise &ldquo;busy&rdquo; elements. As mentioned before, adding a good mix of positive and negative space within your design will also help add dimension and give an otherwise &ldquo;plain&rdquo; design a more dynamic presence.<\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Bad<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Bad01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Simple vs Complex &ndash; Good<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/Simple_Good01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<p><strong>5) Size Matters:<\/strong>&nbsp;Due to the designated design area on a tumbler, the size of your artwork plays a big part in the end result of the product. In more situations than not, going bigger is better for the laser process. Small text may become hard to read. Small thin lines may get lost. Small fine details can cluster and merge together. The mockup images are a representation of how the final product will look &ndash; it is not always an exact replica of the real deal. Errors can occur and the best way to avoid this is to make your graphic bigger and bolder so there is no doubt that the laser will etch the desired areas.<\/p>\n\n<h3>Thin Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock01-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>\n\n<h3>Thick Line Artwork<\/h3>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2020\/07\/BoldDesign_Mock02-1024x1024.jpg\" style=\"height:500px; width:500px\" \/><\/p>",
            "isTaxEnabled": 0,
            "isSilhouetteArtwork": 0,
            "isRemoveArtworkBackground": null,
            "useVariantImageAsTemplateBackground": 0,
            "variantImageOptionId": null,
            "isActiveDisplay": "Active",
            "categoryDisplay": "Tumblers",
            "thumbnail": "\/blank-images\/2090\/30ozTumbler_Homepage.jpeg",
            "variantImageOptions": [],
            "blankImage": {
                "id": 2090,
                "fileName": "30ozTumbler_Homepage.jpeg",
                "description": "variant image",
                "imageTypeId": 2,
                "fileSize": 12121,
                "width": 500,
                "height": 500,
                "createdAt": "2021-02-01T03:41:15.000000Z",
                "updatedAt": "2021-02-01T03:41:16.000000Z",
                "laravelThroughKey": 2,
                "fileUrl": "\/blank-images\/2090\/30ozTumbler_Homepage.jpeg",
                "imageUrl": "\/blank-images\/2090\/30ozTumbler_Homepage.jpeg",
                "thumbUrl": "\/blank-images\/2090\/30ozTumbler_Homepage-thumb.jpeg"
            }
        }
    ]
}

HTTP Request

GET api/v1/categories/{id}/blanks

URL Parameters

Parameter Status Description
id required category id

Query Parameters

Parameter Status Description
limit optional paging limit
page optional default value is 1

Orders

API For Managing Orders

Get Orders

Get Account Orders

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/orders?status=molestiae&limit=est&page=asperiores" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/orders"
);

let params = {
    "status": "molestiae",
    "limit": "est",
    "page": "asperiores",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/orders',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'status'=> 'molestiae',
            'limit'=> 'est',
            'page'=> 'asperiores',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 100000015285,
            "accountId": 3,
            "platformStoreId": 100000000513,
            "status": 0,
            "hasError": 0,
            "platformOrderId": 16347149413345,
            "platformOrderNumber": "16347149413345",
            "email": "[email protected]",
            "total": "18.50",
            "ipAddress": null,
            "createdAt": "2021-10-20T07:29:01.000000Z",
            "updatedAt": "2021-10-20T07:29:01.000000Z",
            "closedAt": null,
            "shippingAddressId": 100000015895,
            "billingAddressId": 100000015895,
            "orderDeskId": null,
            "platformCreatedAt": "2021-10-20 07:29:01",
            "platformUpdatedAt": "2021-10-20 07:29:01",
            "orderDeskSplit": 1,
            "deletedAt": null,
            "updatedAtFormatted": "Oct 20 2021, 07:29AM UTC",
            "createdAtFormatted": "Oct 20 2021, 07:29AM UTC",
            "platformCreatedAtFormatted": "Oct 20 2021, 07:29AM UTC",
            "statusReadable": "HOLD",
            "lineItems": [
                {
                    "id": 100000009293,
                    "accountId": 3,
                    "orderId": 100000015285,
                    "platformLineItemId": 1937281,
                    "platformProductId": "16347149419405",
                    "platformVariantId": "163471494194058030",
                    "title": "UODATE PRODUCT",
                    "quantity": 1,
                    "sku": "18500B-MAROON-M",
                    "price": "18.50",
                    "createdAt": "2021-10-20T07:29:01.000000Z",
                    "updatedAt": "2021-10-20T08:53:48.000000Z",
                    "productVariantId": 100000090521,
                    "shipmentId": null,
                    "fileName": "d858d6c5-186b-48b6-b9a4-a84f2ab4a470.png",
                    "imageTypeId": 1,
                    "size": 168225,
                    "width": 500,
                    "height": 500,
                    "properties": null,
                    "deletedAt": null,
                    "fileUrl": "https:\/\/teelaunch-2-dev.s3.us-west-2.amazonaws.com\/accounts\/3\/orders\/100000015285\/order-line-items\/100000009293\/d858d6c5-186b-48b6-b9a4-a84f2ab4a470.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIATBCPJSRSNSDF6TPS%2F20211020%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20211020T094521Z&X-Amz-SignedHeaders=host&X-Amz-Expires=60&X-Amz-Signature=bf9fe8ec498bde40408481c8c7aa0b5de47bd7ee157e42134608c9f690bee797",
                    "imageUrl": "https:\/\/teelaunch-2-dev.s3.us-west-2.amazonaws.com\/accounts\/3\/orders\/100000015285\/order-line-items\/100000009293\/d858d6c5-186b-48b6-b9a4-a84f2ab4a470.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIATBCPJSRSNSDF6TPS%2F20211020%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20211020T094521Z&X-Amz-SignedHeaders=host&X-Amz-Expires=60&X-Amz-Signature=bf9fe8ec498bde40408481c8c7aa0b5de47bd7ee157e42134608c9f690bee797",
                    "thumbUrl": "https:\/\/teelaunch-2-dev.s3.us-west-2.amazonaws.com\/accounts\/3\/orders\/100000015285\/order-line-items\/100000009293\/d858d6c5-186b-48b6-b9a4-a84f2ab4a470-thumb.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIATBCPJSRSNSDF6TPS%2F20211020%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20211020T094521Z&X-Amz-SignedHeaders=host&X-Amz-Expires=60&X-Amz-Signature=e15f49e62ab18c3e0050d4dd8196b358746168ef2943ec8f09c8adce52049813"
                }
            ],
            "shippingAddress": {
                "id": 100000015895,
                "firstName": "Ibrahim",
                "lastName": "",
                "company": null,
                "address1": "Sidon",
                "address2": null,
                "city": "Sidon",
                "state": null,
                "zip": "00961",
                "country": "AO",
                "phone": null,
                "createdAt": "2021-10-20T07:29:01.000000Z",
                "updatedAt": "2021-10-20T07:29:01.000000Z"
            },
            "billingAddress": {
                "id": 100000015895,
                "firstName": "Ibrahim",
                "lastName": "",
                "company": null,
                "address1": "Sidon",
                "address2": null,
                "city": "Sidon",
                "state": null,
                "zip": "00961",
                "country": "AO",
                "phone": null,
                "createdAt": "2021-10-20T07:29:01.000000Z",
                "updatedAt": "2021-10-20T07:29:01.000000Z"
            },
            "shipments": [],
            "payments": []
        },
        {
            "id": 100000015284,
            "accountId": 3,
            "platformStoreId": 100000000513,
            "status": 0,
            "hasError": 0,
            "platformOrderId": 16347054103451,
            "platformOrderNumber": "16347054103451",
            "email": "[email protected]",
            "total": "18.50",
            "ipAddress": null,
            "createdAt": "2021-10-20T04:50:10.000000Z",
            "updatedAt": "2021-10-20T04:50:10.000000Z",
            "closedAt": null,
            "shippingAddressId": 100000015894,
            "billingAddressId": 100000015894,
            "orderDeskId": null,
            "platformCreatedAt": "2021-10-20 04:50:10",
            "platformUpdatedAt": "2021-10-20 04:50:10",
            "orderDeskSplit": 1,
            "deletedAt": null,
            "updatedAtFormatted": "Oct 20 2021, 04:50AM UTC",
            "createdAtFormatted": "Oct 20 2021, 04:50AM UTC",
            "platformCreatedAtFormatted": "Oct 20 2021, 04:50AM UTC",
            "statusReadable": "HOLD",
            "lineItems": [
                {
                    "id": 100000009292,
                    "accountId": 3,
                    "orderId": 100000015284,
                    "platformLineItemId": 1937280,
                    "platformProductId": "16347054106442",
                    "platformVariantId": "163470541064427317",
                    "title": "updated product1",
                    "quantity": 1,
                    "sku": "18500B-MAROON-M",
                    "price": "18.50",
                    "createdAt": "2021-10-20T04:50:10.000000Z",
                    "updatedAt": "2021-10-20T08:52:36.000000Z",
                    "productVariantId": 100000090521,
                    "shipmentId": null,
                    "fileName": "2bd5be59-0655-4ac4-a6a6-e5e1a59878cb.png",
                    "imageTypeId": 1,
                    "size": 168225,
                    "width": 500,
                    "height": 500,
                    "properties": null,
                    "deletedAt": null,
                    "fileUrl": "https:\/\/teelaunch-2-dev.s3.us-west-2.amazonaws.com\/accounts\/3\/orders\/100000015284\/order-line-items\/100000009292\/2bd5be59-0655-4ac4-a6a6-e5e1a59878cb.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIATBCPJSRSNSDF6TPS%2F20211020%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20211020T094521Z&X-Amz-SignedHeaders=host&X-Amz-Expires=60&X-Amz-Signature=c464fa540e9ba1f35dc76869710ce5e6de12ac768b906e3fe44c3350d7926b13",
                    "imageUrl": "https:\/\/teelaunch-2-dev.s3.us-west-2.amazonaws.com\/accounts\/3\/orders\/100000015284\/order-line-items\/100000009292\/2bd5be59-0655-4ac4-a6a6-e5e1a59878cb.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIATBCPJSRSNSDF6TPS%2F20211020%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20211020T094521Z&X-Amz-SignedHeaders=host&X-Amz-Expires=60&X-Amz-Signature=c464fa540e9ba1f35dc76869710ce5e6de12ac768b906e3fe44c3350d7926b13",
                    "thumbUrl": "https:\/\/teelaunch-2-dev.s3.us-west-2.amazonaws.com\/accounts\/3\/orders\/100000015284\/order-line-items\/100000009292\/2bd5be59-0655-4ac4-a6a6-e5e1a59878cb-thumb.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIATBCPJSRSNSDF6TPS%2F20211020%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20211020T094521Z&X-Amz-SignedHeaders=host&X-Amz-Expires=60&X-Amz-Signature=88edf5f49c9fd04f71e0aae76618f8c16e491875cd5e6514a8d85642e473d3f3"
                }
            ],
            "shippingAddress": {
                "id": 100000015894,
                "firstName": "Ibrahim",
                "lastName": "",
                "company": null,
                "address1": "Sidon",
                "address2": null,
                "city": "Sidon",
                "state": null,
                "zip": "00961",
                "country": "AD",
                "phone": null,
                "createdAt": "2021-10-20T04:50:10.000000Z",
                "updatedAt": "2021-10-20T04:50:10.000000Z"
            },
            "billingAddress": {
                "id": 100000015894,
                "firstName": "Ibrahim",
                "lastName": "",
                "company": null,
                "address1": "Sidon",
                "address2": null,
                "city": "Sidon",
                "state": null,
                "zip": "00961",
                "country": "AD",
                "phone": null,
                "createdAt": "2021-10-20T04:50:10.000000Z",
                "updatedAt": "2021-10-20T04:50:10.000000Z"
            },
            "shipments": [],
            "payments": []
        }
    ],
    "links": {
        "first": "http:\/\/teelaunch-api.test\/api\/v1\/orders?page=1",
        "last": "http:\/\/teelaunch-api.test\/api\/v1\/orders?page=6",
        "prev": null,
        "next": "http:\/\/teelaunch-api.test\/api\/v1\/orders?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 6,
        "path": "http:\/\/teelaunch-api.test\/api\/v1\/orders",
        "per_page": 2,
        "to": 2,
        "total": 11
    }
}

HTTP Request

GET api/v1/orders

Query Parameters

Parameter Status Description
status optional The status id you are looking for, insert 'all' to retrieve all statuses
limit required max 5
page optional default value is 1

Get Order By Id

Get account order by id

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/orders/qui" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/orders/qui"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/orders/qui',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 100000015285,
        "accountId": 3,
        "platformStoreId": 100000000513,
        "status": 0,
        "hasError": 0,
        "platformOrderId": 16347149413345,
        "platformOrderNumber": "16347149413345",
        "email": "[email protected]",
        "total": "18.50",
        "ipAddress": null,
        "createdAt": "2021-10-20T07:29:01.000000Z",
        "updatedAt": "2021-10-20T07:29:01.000000Z",
        "closedAt": null,
        "shippingAddressId": 100000015895,
        "billingAddressId": 100000015895,
        "orderDeskId": null,
        "platformCreatedAt": "2021-10-20 07:29:01",
        "platformUpdatedAt": "2021-10-20 07:29:01",
        "orderDeskSplit": 1,
        "deletedAt": null,
        "previousOrderId": null,
        "nextOrderId": 100000015284,
        "updatedAtFormatted": "Oct 20 2021, 07:29AM UTC",
        "createdAtFormatted": "Oct 20 2021, 07:29AM UTC",
        "platformCreatedAtFormatted": "Oct 20 2021, 07:29AM UTC",
        "statusReadable": "HOLD",
        "lineItems": [
            {
                "id": 100000009293,
                "accountId": 3,
                "orderId": 100000015285,
                "platformLineItemId": 1937281,
                "platformProductId": "16347149419405",
                "platformVariantId": "163471494194058030",
                "title": "UODATE PRODUCT",
                "quantity": 1,
                "sku": "18500B-MAROON-M",
                "price": "18.50",
                "createdAt": "2021-10-20T07:29:01.000000Z",
                "updatedAt": "2021-10-20T08:53:48.000000Z",
                "productVariantId": 100000090521,
                "shipmentId": null,
                "fileName": "d858d6c5-186b-48b6-b9a4-a84f2ab4a470.png",
                "imageTypeId": 1,
                "size": 168225,
                "width": 500,
                "height": 500,
                "properties": null,
                "deletedAt": null,
                "fileUrl": "https:\/\/teelaunch-2-dev.s3.us-west-2.amazonaws.com\/accounts\/3\/orders\/100000015285\/order-line-items\/100000009293\/d858d6c5-186b-48b6-b9a4-a84f2ab4a470.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIATBCPJSRSNSDF6TPS%2F20211020%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20211020T094546Z&X-Amz-SignedHeaders=host&X-Amz-Expires=60&X-Amz-Signature=b997ec07a85ffad5ff125da63f797c0e37582ce8e0240580a1eaf34639d0c48e",
                "imageUrl": "https:\/\/teelaunch-2-dev.s3.us-west-2.amazonaws.com\/accounts\/3\/orders\/100000015285\/order-line-items\/100000009293\/d858d6c5-186b-48b6-b9a4-a84f2ab4a470.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIATBCPJSRSNSDF6TPS%2F20211020%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20211020T094546Z&X-Amz-SignedHeaders=host&X-Amz-Expires=60&X-Amz-Signature=b997ec07a85ffad5ff125da63f797c0e37582ce8e0240580a1eaf34639d0c48e",
                "thumbUrl": "https:\/\/teelaunch-2-dev.s3.us-west-2.amazonaws.com\/accounts\/3\/orders\/100000015285\/order-line-items\/100000009293\/d858d6c5-186b-48b6-b9a4-a84f2ab4a470-thumb.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIATBCPJSRSNSDF6TPS%2F20211020%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20211020T094546Z&X-Amz-SignedHeaders=host&X-Amz-Expires=60&X-Amz-Signature=b12a8958d615aafd6ea53f8870516f9068672bf04efe8f7912c6eb2904c3acac"
            }
        ],
        "shippingAddress": {
            "id": 100000015895,
            "firstName": "Ibrahim",
            "lastName": "",
            "company": null,
            "address1": "Sidon",
            "address2": null,
            "city": "Sidon",
            "state": null,
            "zip": "00961",
            "country": "AO",
            "phone": null,
            "createdAt": "2021-10-20T07:29:01.000000Z",
            "updatedAt": "2021-10-20T07:29:01.000000Z"
        },
        "billingAddress": {
            "id": 100000015895,
            "firstName": "Ibrahim",
            "lastName": "",
            "company": null,
            "address1": "Sidon",
            "address2": null,
            "city": "Sidon",
            "state": null,
            "zip": "00961",
            "country": "AO",
            "phone": null,
            "createdAt": "2021-10-20T07:29:01.000000Z",
            "updatedAt": "2021-10-20T07:29:01.000000Z"
        },
        "shipments": [],
        "payments": []
    }
}

HTTP Request

GET api/v1/orders/{id}

URL Parameters

Parameter Status Description
id required Order id

Get Order Tracking Details

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/orders/illum/track" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/orders/illum/track"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/orders/illum/track',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

[
    {
        "tracking_number": "9200000000000000",
        "carrier_code": "USPS",
        "weight": "0",
        "cost": "0",
        "tracking_url": "https:\/\/tools.usps.com\/go\/TrackConfirmAction?qtc_tLabels1=9200000000000000",
        "id": "34413010",
        "order_id": "69380547",
        "store_id": "1525",
        "weight_unit": "lbs",
        "print_status": "1",
        "source": "Manual",
        "date_shipped": "2020-11-17",
        "date_added": "2020-11-17 19:08:52"
    }
]

HTTP Request

GET api/v1/orders/{id}/track

URL Parameters

Parameter Status Description
id required Order id

Store Order

Store order

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/orders" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"details":{"email":"repellendus","phone":"doloribus","firstName":"illo","lastName":"illum","address1":"nihil","address2":"sunt","city":"at","state":"aut","zip":"praesentium","country":"illo","platformStoreName":"aut"},"items":{"variant_id":"perspiciatis","quantity":"praesentium"}}'
const url = new URL(
    "https://api.teelaunch.com/api/v1/orders"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "details": {
        "email": "repellendus",
        "phone": "doloribus",
        "firstName": "illo",
        "lastName": "illum",
        "address1": "nihil",
        "address2": "sunt",
        "city": "at",
        "state": "aut",
        "zip": "praesentium",
        "country": "illo",
        "platformStoreName": "aut"
    },
    "items": {
        "variant_id": "perspiciatis",
        "quantity": "praesentium"
    }
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/orders',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'details' => [
                'email' => 'repellendus',
                'phone' => 'doloribus',
                'firstName' => 'illo',
                'lastName' => 'illum',
                'address1' => 'nihil',
                'address2' => 'sunt',
                'city' => 'at',
                'state' => 'aut',
                'zip' => 'praesentium',
                'country' => 'illo',
                'platformStoreName' => 'aut',
            ],
            'items' => [
                'variant_id' => 'perspiciatis',
                'quantity' => 'praesentium',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "status": 0,
    "platform_order_number": "16419751042387",
    "platform_order_id": "16419751042387",
    "email": "[email protected]",
    "total": 68,
    "platform_data": "{\"details\":{\"email\":\"[email protected]\",\"phone\":\"78787878\",\"name\":\"test firstName\",\"address1\":\"Sidon\",\"address2\":\"Sidon\",\"city\":\"Sidon\",\"state\":\"South\",\"zip\":\"00961\",\"country\":\"AF\",\"platformStoreName\":\"teelaunch-store\"},\"products\":{\"100000006400\":{\"variants\":[{\"product_id\":100000006400,\"variant_id\":\"100000094349\",\"quantity\":\"2\",\"sku\":\"882L-HP-M\",\"price\":30,\"title\":\"test color image\",\"image_url\":\"\\\/accounts\\\/3\\\/products\\\/100000006400\\\/mockup-files\\\/85750\\\/test_color_image_Hot_Pink_Mockup.png\",\"art_file\":[{\"id\":10738},{\"id\":10739}],\"file_name\":\"Anvil_WTank_Flat_FRONT_HotPink.jpg\",\"platform_line_item_id\":1937644,\"platform_product_id\":\"16419751041377\",\"platform_variant_id\":\"164197510413775591\"}]},\"100000006399\":{\"variants\":[{\"product_id\":100000006399,\"variant_id\":\"100000094348\",\"quantity\":\"2\",\"sku\":\"2001A-BROWN-L\",\"price\":38,\"title\":\"Test Apparel\",\"image_url\":\"\\\/accounts\\\/3\\\/products\\\/100000006399\\\/mockup-files\\\/85749\\\/Test_Apparel_Brown_Back_Mockup.png\",\"art_file\":[{\"id\":10736},{\"id\":10737}],\"file_name\":\"AmericanApparel_Mens_Flat_FRONT_Brown.jpg\",\"platform_line_item_id\":1937645,\"platform_product_id\":\"1641975104677\",\"platform_variant_id\":\"16419751046774818\"}]}}}",
    "shipping_address_id": 100000016299,
    "billing_address_id": 100000016299,
    "platform_created_at": "2022-01-12T08:11:44.644836Z",
    "platform_updated_at": "2022-01-12T08:11:44.644854Z",
    "platform_store_id": 100000000513,
    "account_id": 3,
    "updated_at": "2022-01-12T08:11:44.000000Z",
    "created_at": "2022-01-12T08:11:44.000000Z",
    "id": 100000015377,
    "updated_at_formatted": "Jan 12 2022, 08:11AM UTC",
    "created_at_formatted": "Jan 12 2022, 08:11AM UTC",
    "platform_created_at_formatted": "Jan 12 2022, 08:11AM UTC",
    "status_readable": "HOLD"
}

HTTP Request

POST api/v1/orders

Body Parameters

Parameter Type Status Description
details.email string required email address
details.phone string required phone
details.firstName string required first name
details.lastName string required last name
details.address1 string required address1
details.address2 string optional address2
details.city string required city
details.state string required state
details.zip string required zip code
details.country string required country
details.platformStoreName string optional platform store name
items array required array of objects each contains variant_id and quantity
items.variant_id string required variant id
items.quantity string required item quantity

Create Order Pro

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/orders/pro" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"label":2,"name":"hic","email":"hic","firstName":"sequi","lastName":"occaecati","phone":"facilis","address1":"adipisci","address2":"recusandae","city":"ducimus","state":"deserunt","zip":"nemo","country":"tempora","items":{"variant_id":"eaque","quantity":"earum"}}'
const url = new URL(
    "https://api.teelaunch.com/api/v1/orders/pro"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "label": 2,
    "name": "hic",
    "email": "hic",
    "firstName": "sequi",
    "lastName": "occaecati",
    "phone": "facilis",
    "address1": "adipisci",
    "address2": "recusandae",
    "city": "ducimus",
    "state": "deserunt",
    "zip": "nemo",
    "country": "tempora",
    "items": {
        "variant_id": "eaque",
        "quantity": "earum"
    }
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/orders/pro',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'label' => 2,
            'name' => 'hic',
            'email' => 'hic',
            'firstName' => 'sequi',
            'lastName' => 'occaecati',
            'phone' => 'facilis',
            'address1' => 'adipisci',
            'address2' => 'recusandae',
            'city' => 'ducimus',
            'state' => 'deserunt',
            'zip' => 'nemo',
            'country' => 'tempora',
            'items' => [
                'variant_id' => 'eaque',
                'quantity' => 'earum',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

HTTP Request

POST api/v1/orders/pro

Body Parameters

Parameter Type Status Description
label integer required product label
name string required product name
email string required email address
firstName string required first name
lastName string required last name
phone string required phone number
address1 string required address1
address2 string optional address2
city string required city
state string required state
zip string required zip code
country string required country
items array required array of objects each contains variant_id and quantity
items.variant_id string required variant id
items.quantity string required item quantity

Cancel Order

Cancel account order. Note that only hold and pending orders can be canceled

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/orders/aut/cancel" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/orders/aut/cancel"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/orders/aut/cancel',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "message": "Order is canceled successfully!"
}

HTTP Request

POST api/v1/orders/{id}/cancel

URL Parameters

Parameter Status Description
id required Order id

Release Order

Release account order. Note that only hold and out of stock orders can be released

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/orders/aperiam/release" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/orders/aperiam/release"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/orders/aperiam/release',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "message": "Order is released successfully!"
}

HTTP Request

POST api/v1/orders/{id}/release

URL Parameters

Parameter Status Description
id required Order id

Hold Order

Hold account order. Note that only pending orders can be set to Hold

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/orders/assumenda/hold" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/orders/assumenda/hold"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/orders/assumenda/hold',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "message": "Order is set on hold successfully!"
}

HTTP Request

POST api/v1/orders/{id}/hold

URL Parameters

Parameter Status Description
id required Order id

api/v1/orders/cost

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/orders/cost" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/orders/cost"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/orders/cost',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

HTTP Request

POST api/v1/orders/cost

api/v1/orders/blank-cost

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/orders/blank-cost" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/orders/blank-cost"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/orders/blank-cost',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

HTTP Request

POST api/v1/orders/blank-cost

Platform Products

API For Managing Account Platforms Products

Get Platform Products

Get platform products

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/stores/quo/products?limit=dolores&page=aut" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/stores/quo/products"
);

let params = {
    "limit": "dolores",
    "page": "aut",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/stores/quo/products',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'limit'=> 'dolores',
            'page'=> 'aut',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 49829,
            "platformStoreId": 100000000004,
            "platformProductId": "973577494",
            "link": "https:\/\/www.etsy.com\/listing\/973577494\/test?utm_source=teelaunch&utm_medium=api&utm_campaign=api",
            "image": "https:\/\/i.etsystatic.com\/16081005\/d\/il\/f34501\/2965845112\/il_75x75.2965845112_t8gl.jpg?version=0",
            "createdAt": "2021-03-24T22:35:33.000000Z",
            "updatedAt": "2021-10-15T05:33:52.000000Z",
            "title": "Test",
            "deletedAt": null,
            "isIgnored": 0,
            "platformCreatedAt": null,
            "platformUpdatedAt": null
        },
        {
            "id": 43709,
            "platformStoreId": 100000000004,
            "platformProductId": "987326383",
            "link": "https:\/\/www.etsy.com\/listing\/987326383\/test-2?utm_source=teelaunch&utm_medium=api&utm_campaign=api",
            "image": "https:\/\/i.etsystatic.com\/16081005\/d\/il\/b22b42\/3012757441\/il_75x75.3012757441_sav5.jpg?version=0",
            "createdAt": "2021-03-24T17:00:41.000000Z",
            "updatedAt": "2021-03-24T17:00:41.000000Z",
            "title": "Test 2",
            "deletedAt": null,
            "isIgnored": 0,
            "platformCreatedAt": null,
            "platformUpdatedAt": null
        },
        {
            "id": 43703,
            "platformStoreId": 100000000004,
            "platformProductId": "973360612",
            "link": "https:\/\/www.etsy.com\/listing\/973360612\/test?utm_source=teelaunch&utm_medium=api&utm_campaign=api",
            "image": "https:\/\/i.etsystatic.com\/16081005\/d\/il\/cc881b\/3012733099\/il_75x75.3012733099_mref.jpg?version=0",
            "createdAt": "2021-03-24T16:49:53.000000Z",
            "updatedAt": "2021-03-24T16:49:53.000000Z",
            "title": "Test",
            "deletedAt": null,
            "isIgnored": 0,
            "platformCreatedAt": null,
            "platformUpdatedAt": null
        },
        {
            "id": 43333,
            "platformStoreId": 100000000004,
            "platformProductId": "973047126",
            "link": "https:\/\/www.etsy.com\/listing\/973047126\/pan-v?utm_source=teelaunch&utm_medium=api&utm_campaign=api",
            "image": "https:\/\/i.etsystatic.com\/16081005\/d\/il\/e6116b\/3011576251\/il_75x75.3011576251_gk90.jpg?version=0",
            "createdAt": "2021-03-24T03:52:20.000000Z",
            "updatedAt": "2021-03-24T03:52:20.000000Z",
            "title": "Pan V",
            "deletedAt": null,
            "isIgnored": 0,
            "platformCreatedAt": null,
            "platformUpdatedAt": null
        },
        {
            "id": 43332,
            "platformStoreId": 100000000004,
            "platformProductId": "987005657",
            "link": "https:\/\/www.etsy.com\/listing\/987005657\/pan-h?utm_source=teelaunch&utm_medium=api&utm_campaign=api",
            "image": "https:\/\/i.etsystatic.com\/16081005\/d\/il\/dbfbad\/2963863688\/il_75x75.2963863688_daix.jpg?version=0",
            "createdAt": "2021-03-24T03:48:36.000000Z",
            "updatedAt": "2021-03-24T03:48:36.000000Z",
            "title": "Pan H",
            "deletedAt": null,
            "isIgnored": 0,
            "platformCreatedAt": null,
            "platformUpdatedAt": null
        }
    ],
    "links": {
        "first": "http:\/\/teelaunch-api.test\/api\/v1\/stores\/100000000004\/products?page=1",
        "last": "http:\/\/teelaunch-api.test\/api\/v1\/stores\/100000000004\/products?page=86",
        "prev": null,
        "next": "http:\/\/teelaunch-api.test\/api\/v1\/stores\/100000000004\/products?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 86,
        "path": "http:\/\/teelaunch-api.test\/api\/v1\/stores\/100000000004\/products",
        "per_page": 5,
        "to": 5,
        "total": 427
    }
}

HTTP Request

GET api/v1/stores/{platformStoreId}/products

URL Parameters

Parameter Status Description
platformStoreId required platformStoreId

Query Parameters

Parameter Status Description
limit required max 5
page optional default value is 1

Get Platform Product By Id

Get platform product by id

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/stores/vero/products/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/stores/vero/products/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/stores/vero/products/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "id": 136378,
    "platformStoreId": 100000000004,
    "platformProductId": "980604572",
    "link": "https:\/\/www.etsy.com\/listing\/980604572\/h-card?utm_source=teelaunch&utm_medium=api&utm_campaign=api",
    "image": "https:\/\/i.etsystatic.com\/16081005\/d\/il\/b51c3c\/3038810197\/il_75x75.3038810197_bgz4.jpg?version=0",
    "data": "{\"listing_id\":980604572,\"state\":\"draft\",\"user_id\":86752174,\"title\":\"H Card\",\"description\":\"Folded Card\\nBeing connected is easier than ever, but so is getting lost in the noise. These days, cards go above and beyond the ordinary, adding a personal, tangible touch that leaves a real impact on their recipients. If your message really matters, send a card.\\n\\nMade in USA\\nSold in sets of 10\\nStandard Fine Finch 110#\\nPrinted on HP Indigo Printers\\n7x5 Front &amp; Back Folded Card\\nBlank White Envelopes Included\\n\",\"creation_tsz\":1617568802,\"ending_tsz\":1628109602,\"original_creation_tsz\":1617568802,\"last_modified_tsz\":1617568822,\"price\":\"16.00\",\"currency_code\":\"USD\",\"quantity\":2997,\"sku\":[\"657-30\",\"657-10\",\"657-50\"],\"taxonomy_id\":1261,\"taxonomy_path\":[\"Paper & Party Supplies\",\"Paper\",\"Greeting Cards\"],\"state_tsz\":1617568802,\"url\":\"https:\\\/\\\/www.etsy.com\\\/listing\\\/980604572\\\/h-card?utm_source=teelaunch&utm_medium=api&utm_campaign=api\",\"views\":0,\"num_favorers\":0,\"shipping_template_id\":113742915983,\"processing_min\":7,\"processing_max\":8,\"who_made\":\"i_did\",\"is_supply\":\"false\",\"when_made\":\"made_to_order\",\"is_private\":false,\"style\":[\"office\"],\"non_taxable\":false,\"is_customizable\":false,\"is_digital\":false,\"can_write_inventory\":true,\"has_variations\":true,\"should_auto_renew\":false,\"language\":\"en-US\",\"images\":[{\"listing_image_id\":3038810197,\"hex_code\":null,\"red\":null,\"green\":null,\"blue\":null,\"hue\":null,\"saturation\":null,\"brightness\":null,\"is_black_and_white\":null,\"creation_tsz\":1617568822,\"listing_id\":980604572,\"rank\":1,\"url_75x75\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/d\\\/il\\\/b51c3c\\\/3038810197\\\/il_75x75.3038810197_bgz4.jpg?version=0\",\"url_170x135\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/d\\\/il\\\/b51c3c\\\/3038810197\\\/il_170x135.3038810197_bgz4.jpg?version=0\",\"url_570xN\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/r\\\/il\\\/b51c3c\\\/3038810197\\\/il_570xN.3038810197_bgz4.jpg\",\"url_fullxfull\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/r\\\/il\\\/b51c3c\\\/3038810197\\\/il_fullxfull.3038810197_bgz4.jpg\",\"full_height\":2000,\"full_width\":2000},{\"listing_image_id\":2991101682,\"hex_code\":\"F2F0F0\",\"red\":242,\"green\":240,\"blue\":240,\"hue\":0,\"saturation\":0,\"brightness\":94,\"is_black_and_white\":false,\"creation_tsz\":1617568810,\"listing_id\":980604572,\"rank\":2,\"url_75x75\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/d\\\/il\\\/d63530\\\/2991101682\\\/il_75x75.2991101682_g9yv.jpg?version=0\",\"url_170x135\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/d\\\/il\\\/d63530\\\/2991101682\\\/il_170x135.2991101682_g9yv.jpg?version=0\",\"url_570xN\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/r\\\/il\\\/d63530\\\/2991101682\\\/il_570xN.2991101682_g9yv.jpg\",\"url_fullxfull\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/r\\\/il\\\/d63530\\\/2991101682\\\/il_fullxfull.2991101682_g9yv.jpg\",\"full_height\":null,\"full_width\":null},{\"listing_image_id\":2991101872,\"hex_code\":\"E9E8E7\",\"red\":233,\"green\":232,\"blue\":231,\"hue\":30,\"saturation\":0,\"brightness\":91,\"is_black_and_white\":false,\"creation_tsz\":1617568817,\"listing_id\":980604572,\"rank\":2,\"url_75x75\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/d\\\/il\\\/84b9da\\\/2991101872\\\/il_75x75.2991101872_6d67.jpg?version=0\",\"url_170x135\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/d\\\/il\\\/84b9da\\\/2991101872\\\/il_170x135.2991101872_6d67.jpg?version=0\",\"url_570xN\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/r\\\/il\\\/84b9da\\\/2991101872\\\/il_570xN.2991101872_6d67.jpg\",\"url_fullxfull\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/r\\\/il\\\/84b9da\\\/2991101872\\\/il_fullxfull.2991101872_6d67.jpg\",\"full_height\":null,\"full_width\":null}],\"mainimage\":{\"listing_image_id\":3038810197,\"hex_code\":null,\"red\":null,\"green\":null,\"blue\":null,\"hue\":null,\"saturation\":null,\"brightness\":null,\"is_black_and_white\":null,\"creation_tsz\":null,\"listing_id\":980604572,\"rank\":null,\"url_75x75\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/d\\\/il\\\/b51c3c\\\/3038810197\\\/il_75x75.3038810197_bgz4.jpg?version=0\",\"url_170x135\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/d\\\/il\\\/b51c3c\\\/3038810197\\\/il_170x135.3038810197_bgz4.jpg?version=0\",\"url_570xN\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/r\\\/il\\\/b51c3c\\\/3038810197\\\/il_570xN.3038810197_bgz4.jpg\",\"url_fullxfull\":\"https:\\\/\\\/i.etsystatic.com\\\/16081005\\\/r\\\/il\\\/b51c3c\\\/3038810197\\\/il_fullxfull.3038810197_bgz4.jpg\",\"full_height\":null,\"full_width\":null},\"inventory\":[{\"products\":[{\"product_id\":6691577452,\"sku\":\"657-10\",\"property_values\":[{\"property_id\":510,\"property_name\":\"Style\",\"scale_id\":null,\"scale_name\":null,\"values\":[\"Set of 10\"],\"value_ids\":[101642463036]}],\"offerings\":[{\"offering_id\":6670291330,\"price\":{\"amount\":1600,\"divisor\":100,\"currency_code\":\"USD\",\"currency_formatted_short\":\"$16.00\",\"currency_formatted_long\":\"$16.00 USD\",\"currency_formatted_raw\":\"16.00\"},\"quantity\":999,\"is_enabled\":1,\"is_deleted\":0}],\"is_deleted\":0},{\"product_id\":6441140565,\"sku\":\"657-30\",\"property_values\":[{\"property_id\":510,\"property_name\":\"Style\",\"scale_id\":null,\"scale_name\":null,\"values\":[\"Set of 30\"],\"value_ids\":[106765434332]}],\"offerings\":[{\"offering_id\":6670291338,\"price\":{\"amount\":4500,\"divisor\":100,\"currency_code\":\"USD\",\"currency_formatted_short\":\"$45.00\",\"currency_formatted_long\":\"$45.00 USD\",\"currency_formatted_raw\":\"45.00\"},\"quantity\":999,\"is_enabled\":1,\"is_deleted\":0}],\"is_deleted\":0},{\"product_id\":6691577468,\"sku\":\"657-50\",\"property_values\":[{\"property_id\":510,\"property_name\":\"Style\",\"scale_id\":null,\"scale_name\":null,\"values\":[\"Set of 50\"],\"value_ids\":[107334896850]}],\"offerings\":[{\"offering_id\":6670291344,\"price\":{\"amount\":6500,\"divisor\":100,\"currency_code\":\"USD\",\"currency_formatted_short\":\"$65.00\",\"currency_formatted_long\":\"$65.00 USD\",\"currency_formatted_raw\":\"65.00\"},\"quantity\":999,\"is_enabled\":1,\"is_deleted\":0}],\"is_deleted\":0}],\"price_on_property\":[510],\"quantity_on_property\":[510],\"sku_on_property\":[510]}],\"used_manufacturer\":false,\"is_vintage\":false}",
    "createdAt": "2021-04-04T23:40:23.000000Z",
    "updatedAt": "2021-10-12T04:54:16.000000Z",
    "title": "H Card",
    "deletedAt": null,
    "isIgnored": 0,
    "platformCreatedAt": null,
    "platformUpdatedAt": null,
    "variants": [
        {
            "id": 1796885,
            "platformStoreProductId": 136378,
            "platformVariantId": "6441140565",
            "link": null,
            "image": null,
            "data": "{\"product_id\":6441140565,\"property_values\":[{\"property_id\":510,\"property_name\":\"Style\",\"scale_id\":null,\"scale_name\":null,\"values\":[\"Set of 30\"],\"value_ids\":[106765434332]}],\"sku\":\"657-30\",\"offerings\":[{\"offering_id\":6670291338,\"price\":{\"amount\":4500,\"divisor\":100,\"currency_code\":\"USD\",\"currency_formatted_short\":\"$45.00\",\"currency_formatted_long\":\"$45.00 USD\",\"currency_formatted_raw\":\"45.00\"},\"quantity\":999,\"is_enabled\":1,\"is_deleted\":0}],\"is_deleted\":0}",
            "createdAt": "2021-04-04T23:40:23.000000Z",
            "updatedAt": "2021-10-12T04:54:16.000000Z",
            "title": "Set of 30",
            "sku": "657-30",
            "price": "45.00",
            "isIgnored": 0,
            "deletedAt": null,
            "platformCreatedAt": null,
            "platformUpdatedAt": null,
            "productVariant": null
        },
        {
            "id": 1796884,
            "platformStoreProductId": 136378,
            "platformVariantId": "6691577452",
            "link": null,
            "image": null,
            "data": "{\"product_id\":6691577452,\"property_values\":[{\"property_id\":510,\"property_name\":\"Style\",\"scale_id\":null,\"scale_name\":null,\"values\":[\"Set of 10\"],\"value_ids\":[101642463036]}],\"sku\":\"657-10\",\"offerings\":[{\"offering_id\":6670291330,\"price\":{\"amount\":1600,\"divisor\":100,\"currency_code\":\"USD\",\"currency_formatted_short\":\"$16.00\",\"currency_formatted_long\":\"$16.00 USD\",\"currency_formatted_raw\":\"16.00\"},\"quantity\":999,\"is_enabled\":1,\"is_deleted\":0}],\"is_deleted\":0}",
            "createdAt": "2021-04-04T23:40:23.000000Z",
            "updatedAt": "2021-10-12T04:54:16.000000Z",
            "title": "Set of 10",
            "sku": "657-10",
            "price": "16.00",
            "isIgnored": 0,
            "deletedAt": null,
            "platformCreatedAt": null,
            "platformUpdatedAt": null,
            "productVariant": null
        },
        {
            "id": 1796886,
            "platformStoreProductId": 136378,
            "platformVariantId": "6691577468",
            "link": null,
            "image": null,
            "data": "{\"product_id\":6691577468,\"property_values\":[{\"property_id\":510,\"property_name\":\"Style\",\"scale_id\":null,\"scale_name\":null,\"values\":[\"Set of 50\"],\"value_ids\":[107334896850]}],\"sku\":\"657-50\",\"offerings\":[{\"offering_id\":6670291344,\"price\":{\"amount\":6500,\"divisor\":100,\"currency_code\":\"USD\",\"currency_formatted_short\":\"$65.00\",\"currency_formatted_long\":\"$65.00 USD\",\"currency_formatted_raw\":\"65.00\"},\"quantity\":999,\"is_enabled\":1,\"is_deleted\":0}],\"is_deleted\":0}",
            "createdAt": "2021-04-04T23:40:23.000000Z",
            "updatedAt": "2021-10-12T04:54:16.000000Z",
            "title": "Set of 50",
            "sku": "657-50",
            "price": "65.00",
            "isIgnored": 0,
            "deletedAt": null,
            "platformCreatedAt": null,
            "platformUpdatedAt": null,
            "productVariant": null
        }
    ],
    "store": {
        "id": 100000000004,
        "accountId": 3,
        "platformId": 2,
        "name": "TeelaunchGoods",
        "url": "https:\/\/www.etsy.com\/shop\/TeelaunchGoods",
        "enabled": 1,
        "createdAt": "2020-12-20T05:31:38.000000Z",
        "updatedAt": "2021-04-02T00:46:12.000000Z",
        "deletedAt": null,
        "platform": {
            "id": 2,
            "name": "Etsy",
            "managerClass": "SunriseIntegration\\Etsy\\EtsyManager",
            "logo": "\/images\/etsy.svg",
            "enabled": 1,
            "createdAt": "2020-07-24T04:23:40.000000Z",
            "updatedAt": "2020-10-28T21:26:53.000000Z"
        }
    },
    "logs": [
        {
            "id": 13,
            "platformStoreProductId": 136378,
            "message": "Product and it's variants unignored",
            "messageType": 1,
            "createdAt": "2021-10-12T04:54:16.000000Z",
            "updatedAt": "2021-10-12T04:54:16.000000Z"
        },
        {
            "id": 12,
            "platformStoreProductId": 136378,
            "message": "Product and it's variants ignored",
            "messageType": 1,
            "createdAt": "2021-10-12T04:52:15.000000Z",
            "updatedAt": "2021-10-12T04:52:15.000000Z"
        }
    ]
}

HTTP Request

GET api/v1/stores/{platformStoreId}/products/{product}

URL Parameters

Parameter Status Description
platformStoreId required platformStoreId
id required product

Ignore Platform Product

Ignore platform product

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/stores/officia/products/dolores/ignore" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/stores/officia/products/dolores/ignore"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/stores/officia/products/dolores/ignore',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "message": "Ignored successfully!"
}

HTTP Request

POST api/v1/stores/{platformStoreId}/products/{id}/ignore

URL Parameters

Parameter Status Description
platformStoreId required platformStoreId
id required id

Unignore Platform Product

Unignore platform product

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/stores/ipsum/products/aut/unignore" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/stores/ipsum/products/aut/unignore"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/stores/ipsum/products/aut/unignore',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "message": "Unignored successfully!"
}

HTTP Request

POST api/v1/stores/{platformStoreId}/products/{id}/unignore

URL Parameters

Parameter Status Description
platformStoreId required platformStoreId
id required id

Unlink Platform Product Variants

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/stores/products/variants/fuga/unlink" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/stores/products/variants/fuga/unlink"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/stores/products/variants/fuga/unlink',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "message": "Unlinked successfully!"
}

HTTP Request

POST api/v1/stores/products/variants/{id}/unlink

URL Parameters

Parameter Status Description
id required id

Platforms

API For Managing Account Platforms

Get Platforms

Get account Platform with stores connected to each

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/platforms?limit=neque&page=rerum" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/platforms"
);

let params = {
    "limit": "neque",
    "page": "rerum",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/platforms',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'limit'=> 'neque',
            'page'=> 'rerum',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

[
    {
        "id": 1,
        "name": "Shopify",
        "managerClass": "SunriseIntegration\\Shopify\\ShopifyManager",
        "logo": "shopify.svg"
    },
    {
        "id": 2,
        "name": "Etsy",
        "managerClass": "SunriseIntegration\\Etsy\\EtsyManager",
        "logo": "etsy.svg"
    },
    {
        "id": 4,
        "name": "Launch",
        "managerClass": "SunriseIntegration\\Launch\\LaunchManager",
        "logo": "launch.svg"
    },
    {
        "id": 7,
        "name": "Rutter",
        "integration": [
            "Bigcommerce",
            "Prestashop",
            "Amazon",
            "Magento",
            "Wix",
            "Squarespace",
            "Square",
            "Ebay",
            "Woocommerce"
        ],
        "managerClass": "SunriseIntegration\\Launch\\LaunchManager",
        "logo": "rutter.svg"
    }
]

HTTP Request

GET api/v1/platforms

Query Parameters

Parameter Status Description
limit optional paging limit
page optional default value is 1

Get Platform

Get account Platform by id

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/platforms/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/platforms/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/platforms/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 1,
        "name": "Shopify",
        "managerClass": "SunriseIntegration\\Shopify\\ShopifyManager",
        "logo": "shopify.svg",
        "enabled": 1,
        "createdAt": "2020-07-24T04:23:40.000000Z",
        "updatedAt": "2020-10-28T21:26:53.000000Z"
    }
}

HTTP Request

GET api/v1/platforms/{platform}

URL Parameters

Parameter Status Description
id required The ID of the platform.

Products

API For Managing Products

Get Products

Get account products with variants

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/products?limit=nulla&page=iure" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/products"
);

let params = {
    "limit": "nulla",
    "page": "iure",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/products',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'limit'=> 'nulla',
            'page'=> 'iure',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 100000006063,
            "accountId": 3,
            "name": "updated product1",
            "description": "<p><strong>11oz Accent Mug<\/strong><\/p>\n<p>Add a little pop of color to your morning routine with this stylish 11oz accent mug. Made with a premium hard coat that provides crisp and vibrant color reproduction, this mug is sure to look sharp in your hands for years.<\/p>\n<ul>\n<li>High Gloss + Premium White Finish<\/li>\n<li>ORCA Coating<\/li>\n<li>Dishwasher and Microwave Safe<\/li>\n<li>3.7\"H x 3.7\"W x 3.2\"D<\/li>\n<li>10.2\" Circumference<\/li>\n<\/ul>",
            "tags": [],
            "pickedMockups": [],
            "isActive": 1,
            "createdAt": "2021-10-11T07:20:16.000000Z",
            "updatedAt": "2021-10-14T06:45:46.000000Z",
            "deletedAt": null,
            "orderHold": 0,
            "mainImageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
            "mainImageThumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup-thumb.png",
            "variants": [
                {
                    "id": 100000090521,
                    "productId": 100000006063,
                    "blankVariantId": 1830,
                    "price": "37.00",
                    "weight": null,
                    "weightUnitId": null,
                    "isActive": 1,
                    "createdAt": "2021-10-11T07:20:16.000000Z",
                    "updatedAt": "2021-10-11T07:20:16.000000Z",
                    "deletedAt": null,
                    "thumbnail": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup-thumb.png",
                    "mockupFiles": [
                        {
                            "id": 135529,
                            "accountId": 3,
                            "status": 6,
                            "productId": 100000006063,
                            "productVariantId": 100000090521,
                            "productMockupFileId": 85182,
                            "blankPsdId": 607,
                            "blankStageId": 112,
                            "fileName": null,
                            "imageTypeId": null,
                            "size": null,
                            "width": null,
                            "height": null,
                            "startedAt": null,
                            "finishedAt": "2021-10-11T07:22:23.000000Z",
                            "createdAt": "2021-10-11T07:20:33.000000Z",
                            "updatedAt": "2021-10-11T07:22:23.000000Z",
                            "productVariantStageFileId": 105529,
                            "deletedAt": null,
                            "blankId": 96,
                            "blankOptionValueId": 477,
                            "retryCount": 0,
                            "fileUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                            "imageUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                            "thumbUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup-thumb.png",
                            "productMockupFile": {
                                "id": 85182,
                                "accountId": 3,
                                "productId": 100000006063,
                                "productVariantId": 100000090521,
                                "productArtFileId": 10460,
                                "status": 6,
                                "fileName": "Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                                "blankId": 96,
                                "blankOptionValueId": 477,
                                "blankPsdId": 607,
                                "blankStageId": 112,
                                "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                                "imageTypeId": null,
                                "size": null,
                                "width": null,
                                "height": null,
                                "startedAt": "2021-10-11T07:20:50.000000Z",
                                "finishedAt": "2021-10-11T07:22:12.000000Z",
                                "deletedAt": null,
                                "createdAt": "2021-10-11T07:20:33.000000Z",
                                "updatedAt": "2021-10-11T07:22:12.000000Z",
                                "retryCount": 0,
                                "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                                "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                                "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup-thumb.png"
                            }
                        }
                    ]
                },
                {
                    "id": 100000090522,
                    "productId": 100000006063,
                    "blankVariantId": 1833,
                    "price": "37.00",
                    "weight": null,
                    "weightUnitId": null,
                    "isActive": 1,
                    "createdAt": "2021-10-11T07:20:16.000000Z",
                    "updatedAt": "2021-10-11T07:20:16.000000Z",
                    "deletedAt": null,
                    "thumbnail": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup-thumb.png",
                    "mockupFiles": [
                        {
                            "id": 135530,
                            "accountId": 3,
                            "status": 6,
                            "productId": 100000006063,
                            "productVariantId": 100000090522,
                            "productMockupFileId": 85183,
                            "blankPsdId": 611,
                            "blankStageId": 112,
                            "fileName": null,
                            "imageTypeId": null,
                            "size": null,
                            "width": null,
                            "height": null,
                            "startedAt": null,
                            "finishedAt": "2021-10-11T07:21:55.000000Z",
                            "createdAt": "2021-10-11T07:20:34.000000Z",
                            "updatedAt": "2021-10-11T07:21:55.000000Z",
                            "productVariantStageFileId": 105530,
                            "deletedAt": null,
                            "blankId": 96,
                            "blankOptionValueId": 480,
                            "retryCount": 0,
                            "fileUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                            "imageUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                            "thumbUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup-thumb.png",
                            "productMockupFile": {
                                "id": 85183,
                                "accountId": 3,
                                "productId": 100000006063,
                                "productVariantId": 100000090522,
                                "productArtFileId": 10460,
                                "status": 6,
                                "fileName": "Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                                "blankId": 96,
                                "blankOptionValueId": 480,
                                "blankPsdId": 611,
                                "blankStageId": 112,
                                "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                                "imageTypeId": null,
                                "size": null,
                                "width": null,
                                "height": null,
                                "startedAt": "2021-10-11T07:20:59.000000Z",
                                "finishedAt": "2021-10-11T07:21:48.000000Z",
                                "deletedAt": null,
                                "createdAt": "2021-10-11T07:20:34.000000Z",
                                "updatedAt": "2021-10-11T07:21:48.000000Z",
                                "retryCount": 0,
                                "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                                "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                                "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup-thumb.png"
                            }
                        }
                    ]
                },
                {
                    "id": 100000090523,
                    "productId": 100000006063,
                    "blankVariantId": 1836,
                    "price": "37.00",
                    "weight": null,
                    "weightUnitId": null,
                    "isActive": 1,
                    "createdAt": "2021-10-11T07:20:16.000000Z",
                    "updatedAt": "2021-10-11T07:20:16.000000Z",
                    "deletedAt": null,
                    "thumbnail": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup-thumb.png",
                    "mockupFiles": [
                        {
                            "id": 135531,
                            "accountId": 3,
                            "status": 6,
                            "productId": 100000006063,
                            "productVariantId": 100000090523,
                            "productMockupFileId": 85184,
                            "blankPsdId": 614,
                            "blankStageId": 112,
                            "fileName": null,
                            "imageTypeId": null,
                            "size": null,
                            "width": null,
                            "height": null,
                            "startedAt": null,
                            "finishedAt": "2021-10-11T07:22:08.000000Z",
                            "createdAt": "2021-10-11T07:20:35.000000Z",
                            "updatedAt": "2021-10-11T07:22:08.000000Z",
                            "productVariantStageFileId": 105531,
                            "deletedAt": null,
                            "blankId": 96,
                            "blankOptionValueId": 483,
                            "retryCount": 0,
                            "fileUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                            "imageUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                            "thumbUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup-thumb.png",
                            "productMockupFile": {
                                "id": 85184,
                                "accountId": 3,
                                "productId": 100000006063,
                                "productVariantId": 100000090523,
                                "productArtFileId": 10460,
                                "status": 6,
                                "fileName": "Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                                "blankId": 96,
                                "blankOptionValueId": 483,
                                "blankPsdId": 614,
                                "blankStageId": 112,
                                "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                                "imageTypeId": null,
                                "size": null,
                                "width": null,
                                "height": null,
                                "startedAt": "2021-10-11T07:21:02.000000Z",
                                "finishedAt": "2021-10-11T07:21:57.000000Z",
                                "deletedAt": null,
                                "createdAt": "2021-10-11T07:20:35.000000Z",
                                "updatedAt": "2021-10-11T07:21:57.000000Z",
                                "retryCount": 0,
                                "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                                "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                                "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup-thumb.png"
                            }
                        }
                    ]
                }
            ],
            "artFiles": [
                {
                    "id": 10460,
                    "accountId": 3,
                    "accountImageId": 100000004893,
                    "productId": 100000006063,
                    "blankStageGroupId": 118,
                    "blankStageId": 112,
                    "blankStageCreateTypeId": 1,
                    "blankStageLocationId": 1,
                    "blankStageLocationSubId": 1,
                    "blankStageLocationSubOffsetId": 1,
                    "blankId": 96,
                    "status": 6,
                    "fileName": "superman.png",
                    "imageTypeId": 1,
                    "size": 279031,
                    "width": 2400,
                    "height": 1800,
                    "startedAt": "2021-10-11T07:20:18.000000Z",
                    "finishedAt": "2021-10-11T07:20:33.000000Z",
                    "deletedAt": null,
                    "createdAt": "2021-10-11T07:20:16.000000Z",
                    "updatedAt": "2021-10-11T07:20:33.000000Z",
                    "fileUrl": "\/accounts\/3\/products\/100000006063\/art-files\/10460\/superman.png",
                    "imageUrl": "\/accounts\/3\/products\/100000006063\/art-files\/10460\/superman.png",
                    "thumbUrl": "\/accounts\/3\/products\/100000006063\/art-files\/10460\/superman-thumb.png"
                }
            ],
            "mockupFiles": [
                {
                    "id": 85182,
                    "accountId": 3,
                    "productId": 100000006063,
                    "productVariantId": 100000090521,
                    "productArtFileId": 10460,
                    "status": 6,
                    "fileName": "Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                    "blankId": 96,
                    "blankOptionValueId": 477,
                    "blankPsdId": 607,
                    "blankStageId": 112,
                    "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                    "imageTypeId": null,
                    "size": null,
                    "width": null,
                    "height": null,
                    "startedAt": "2021-10-11T07:20:50.000000Z",
                    "finishedAt": "2021-10-11T07:22:12.000000Z",
                    "deletedAt": null,
                    "createdAt": "2021-10-11T07:20:33.000000Z",
                    "updatedAt": "2021-10-11T07:22:12.000000Z",
                    "retryCount": 0,
                    "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                    "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                    "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup-thumb.png"
                },
                {
                    "id": 85183,
                    "accountId": 3,
                    "productId": 100000006063,
                    "productVariantId": 100000090522,
                    "productArtFileId": 10460,
                    "status": 6,
                    "fileName": "Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                    "blankId": 96,
                    "blankOptionValueId": 480,
                    "blankPsdId": 611,
                    "blankStageId": 112,
                    "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                    "imageTypeId": null,
                    "size": null,
                    "width": null,
                    "height": null,
                    "startedAt": "2021-10-11T07:20:59.000000Z",
                    "finishedAt": "2021-10-11T07:21:48.000000Z",
                    "deletedAt": null,
                    "createdAt": "2021-10-11T07:20:34.000000Z",
                    "updatedAt": "2021-10-11T07:21:48.000000Z",
                    "retryCount": 0,
                    "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                    "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                    "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup-thumb.png"
                },
                {
                    "id": 85184,
                    "accountId": 3,
                    "productId": 100000006063,
                    "productVariantId": 100000090523,
                    "productArtFileId": 10460,
                    "status": 6,
                    "fileName": "Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                    "blankId": 96,
                    "blankOptionValueId": 483,
                    "blankPsdId": 614,
                    "blankStageId": 112,
                    "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                    "imageTypeId": null,
                    "size": null,
                    "width": null,
                    "height": null,
                    "startedAt": "2021-10-11T07:21:02.000000Z",
                    "finishedAt": "2021-10-11T07:21:57.000000Z",
                    "deletedAt": null,
                    "createdAt": "2021-10-11T07:20:35.000000Z",
                    "updatedAt": "2021-10-11T07:21:57.000000Z",
                    "retryCount": 0,
                    "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                    "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                    "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup-thumb.png"
                }
            ],
            "printFiles": [
                {
                    "id": 12335,
                    "accountId": 3,
                    "productId": 100000006063,
                    "productArtFileId": 10460,
                    "blankPrintImageId": 135,
                    "blankStageId": 112,
                    "blankStageLocationId": 1,
                    "blankId": 96,
                    "status": 2,
                    "fileName": "Gildan_Youth_Hoodie_2_Front_Print_File.png",
                    "imageTypeId": 1,
                    "size": 279035,
                    "width": 2400,
                    "height": 1800,
                    "startedAt": "2021-10-11T09:02:32.000000Z",
                    "finishedAt": null,
                    "deletedAt": null,
                    "createdAt": "2021-10-11T09:02:28.000000Z",
                    "updatedAt": "2021-10-11T09:02:45.000000Z",
                    "fileUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                    "imageUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                    "thumbUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File-thumb.png"
                },
                {
                    "id": 12336,
                    "accountId": 3,
                    "productId": 100000006063,
                    "productArtFileId": 10460,
                    "blankPrintImageId": 639,
                    "blankStageId": 112,
                    "blankStageLocationId": 1,
                    "blankId": 96,
                    "status": 2,
                    "fileName": "Gildan_Youth_Hoodie_2_Print_File.jpg",
                    "imageTypeId": 2,
                    "size": 5377,
                    "width": 100,
                    "height": 100,
                    "startedAt": "2021-10-11T09:02:45.000000Z",
                    "finishedAt": null,
                    "deletedAt": null,
                    "createdAt": "2021-10-11T09:02:29.000000Z",
                    "updatedAt": "2021-10-11T09:02:52.000000Z",
                    "fileUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File.jpg",
                    "imageUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File.jpg",
                    "thumbUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File-thumb.jpg"
                }
            ]
        },
        {
            "id": 100000006060,
            "accountId": 3,
            "name": "Gildan Youth Hoodie",
            "description": "<p><strong>Gildan Youth Hoodie<\/strong><\/p>\n<p>Cozy sweats in our core weight.<br>7.8-ounce, 50\/50 cotton\/poly fleece<br>Air jet yarn for a soft, pill-resistant finish<\/p>",
            "tags": [],
            "pickedMockups": [],
            "isActive": 1,
            "createdAt": "2021-10-11T06:19:04.000000Z",
            "updatedAt": "2021-10-11T06:19:04.000000Z",
            "deletedAt": null,
            "orderHold": 0,
            "mainImageUrl": "\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup.png",
            "mainImageThumbUrl": "\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup-thumb.png",
            "variants": [
                {
                    "id": 100000090478,
                    "productId": 100000006060,
                    "blankVariantId": 1857,
                    "price": "37.00",
                    "weight": null,
                    "weightUnitId": null,
                    "isActive": 1,
                    "createdAt": "2021-10-11T06:19:04.000000Z",
                    "updatedAt": "2021-10-11T06:19:04.000000Z",
                    "deletedAt": null,
                    "thumbnail": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup-thumb.png",
                    "mockupFiles": [
                        {
                            "id": 135486,
                            "accountId": 3,
                            "status": 6,
                            "productId": 100000006060,
                            "productVariantId": 100000090478,
                            "productMockupFileId": 85160,
                            "blankPsdId": 598,
                            "blankStageId": 112,
                            "fileName": null,
                            "imageTypeId": null,
                            "size": null,
                            "width": null,
                            "height": null,
                            "startedAt": null,
                            "finishedAt": "2021-10-11T06:20:57.000000Z",
                            "createdAt": "2021-10-11T06:19:20.000000Z",
                            "updatedAt": "2021-10-11T06:20:57.000000Z",
                            "productVariantStageFileId": 105486,
                            "deletedAt": null,
                            "blankId": 96,
                            "blankOptionValueId": 468,
                            "retryCount": 0,
                            "fileUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup.png",
                            "imageUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup.png",
                            "thumbUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup-thumb.png",
                            "productMockupFile": {
                                "id": 85160,
                                "accountId": 3,
                                "productId": 100000006060,
                                "productVariantId": 100000090478,
                                "productArtFileId": 10457,
                                "status": 6,
                                "fileName": "Gildan_Youth_Hoodie_Black_Mockup.png",
                                "blankId": 96,
                                "blankOptionValueId": 468,
                                "blankPsdId": 598,
                                "blankStageId": 112,
                                "processedUrl": "accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup.png",
                                "imageTypeId": null,
                                "size": null,
                                "width": null,
                                "height": null,
                                "startedAt": "2021-10-11T06:19:35.000000Z",
                                "finishedAt": "2021-10-11T06:20:50.000000Z",
                                "deletedAt": null,
                                "createdAt": "2021-10-11T06:19:20.000000Z",
                                "updatedAt": "2021-10-11T06:20:50.000000Z",
                                "retryCount": 0,
                                "fileUrl": "\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup.png",
                                "imageUrl": "\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup.png",
                                "thumbUrl": "\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup-thumb.png"
                            }
                        }
                    ]
                }
            ],
            "artFiles": [
                {
                    "id": 10457,
                    "accountId": 3,
                    "accountImageId": 100000004893,
                    "productId": 100000006060,
                    "blankStageGroupId": 118,
                    "blankStageId": 112,
                    "blankStageCreateTypeId": 1,
                    "blankStageLocationId": 1,
                    "blankStageLocationSubId": 1,
                    "blankStageLocationSubOffsetId": 1,
                    "blankId": 96,
                    "status": 6,
                    "fileName": "superman.png",
                    "imageTypeId": 1,
                    "size": 279035,
                    "width": 2400,
                    "height": 1800,
                    "startedAt": "2021-10-11T06:19:07.000000Z",
                    "finishedAt": "2021-10-11T06:19:19.000000Z",
                    "deletedAt": null,
                    "createdAt": "2021-10-11T06:19:04.000000Z",
                    "updatedAt": "2021-10-11T06:19:19.000000Z",
                    "fileUrl": "\/accounts\/3\/products\/100000006060\/art-files\/10457\/superman.png",
                    "imageUrl": "\/accounts\/3\/products\/100000006060\/art-files\/10457\/superman.png",
                    "thumbUrl": "\/accounts\/3\/products\/100000006060\/art-files\/10457\/superman-thumb.png"
                }
            ],
            "mockupFiles": [
                {
                    "id": 85160,
                    "accountId": 3,
                    "productId": 100000006060,
                    "productVariantId": 100000090478,
                    "productArtFileId": 10457,
                    "status": 6,
                    "fileName": "Gildan_Youth_Hoodie_Black_Mockup.png",
                    "blankId": 96,
                    "blankOptionValueId": 468,
                    "blankPsdId": 598,
                    "blankStageId": 112,
                    "processedUrl": "accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup.png",
                    "imageTypeId": null,
                    "size": null,
                    "width": null,
                    "height": null,
                    "startedAt": "2021-10-11T06:19:35.000000Z",
                    "finishedAt": "2021-10-11T06:20:50.000000Z",
                    "deletedAt": null,
                    "createdAt": "2021-10-11T06:19:20.000000Z",
                    "updatedAt": "2021-10-11T06:20:50.000000Z",
                    "retryCount": 0,
                    "fileUrl": "\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup.png",
                    "imageUrl": "\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup.png",
                    "thumbUrl": "\/accounts\/3\/products\/100000006060\/mockup-files\/85160\/Gildan_Youth_Hoodie_Black_Mockup-thumb.png"
                }
            ],
            "printFiles": [
                {
                    "id": 12262,
                    "accountId": 3,
                    "productId": 100000006060,
                    "productArtFileId": 10457,
                    "blankPrintImageId": 135,
                    "blankStageId": 112,
                    "blankStageLocationId": 1,
                    "blankId": 96,
                    "status": 2,
                    "fileName": "Gildan_Youth_Hoodie_Front_Print_File.png",
                    "imageTypeId": 1,
                    "size": 279035,
                    "width": 2400,
                    "height": 1800,
                    "startedAt": "2021-10-11T06:19:21.000000Z",
                    "finishedAt": null,
                    "deletedAt": null,
                    "createdAt": "2021-10-11T06:19:20.000000Z",
                    "updatedAt": "2021-10-11T06:19:34.000000Z",
                    "fileUrl": "\/accounts\/3\/products\/100000006060\/print-files\/12262\/Gildan_Youth_Hoodie_Front_Print_File.png",
                    "imageUrl": "\/accounts\/3\/products\/100000006060\/print-files\/12262\/Gildan_Youth_Hoodie_Front_Print_File.png",
                    "thumbUrl": "\/accounts\/3\/products\/100000006060\/print-files\/12262\/Gildan_Youth_Hoodie_Front_Print_File-thumb.png"
                },
                {
                    "id": 12263,
                    "accountId": 3,
                    "productId": 100000006060,
                    "productArtFileId": 10457,
                    "blankPrintImageId": 608,
                    "blankStageId": 112,
                    "blankStageLocationId": 1,
                    "blankId": 96,
                    "status": 2,
                    "fileName": "Gildan_Youth_Hoodie_Front_Print_File.png",
                    "imageTypeId": 1,
                    "size": 279035,
                    "width": 2400,
                    "height": 1800,
                    "startedAt": "2021-10-11T06:24:49.000000Z",
                    "finishedAt": null,
                    "deletedAt": null,
                    "createdAt": "2021-10-11T06:24:48.000000Z",
                    "updatedAt": "2021-10-11T06:25:02.000000Z",
                    "fileUrl": "\/accounts\/3\/products\/100000006060\/print-files\/12263\/Gildan_Youth_Hoodie_Front_Print_File.png",
                    "imageUrl": "\/accounts\/3\/products\/100000006060\/print-files\/12263\/Gildan_Youth_Hoodie_Front_Print_File.png",
                    "thumbUrl": "\/accounts\/3\/products\/100000006060\/print-files\/12263\/Gildan_Youth_Hoodie_Front_Print_File-thumb.png"
                }
            ]
        }
    ],
    "links": {
        "first": "http:\/\/teelaunch-api.test\/api\/v1\/products?page=1",
        "last": "http:\/\/teelaunch-api.test\/api\/v1\/products?page=353",
        "prev": null,
        "next": "http:\/\/teelaunch-api.test\/api\/v1\/products?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 353,
        "path": "http:\/\/teelaunch-api.test\/api\/v1\/products",
        "per_page": "2",
        "to": 2,
        "total": 706
    }
}

HTTP Request

GET api/v1/products

Query Parameters

Parameter Status Description
limit required max 5
page optional default value is 1

Get Product By Id

Get Account Product By Id

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/products/vel" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/products/vel"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/products/vel',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 100000006063,
        "accountId": 3,
        "name": "Gildan Youth Hoodie 2",
        "description": "<p><strong>Gildan Youth Hoodie<\/strong><\/p>\n<p>Cozy sweats in our core weight.<br>7.8-ounce, 50\/50 cotton\/poly fleece<br>Air jet yarn for a soft, pill-resistant finish<\/p>",
        "tags": [],
        "pickedMockups": [],
        "isActive": 1,
        "createdAt": "2021-10-11T07:20:16.000000Z",
        "updatedAt": "2021-10-11T07:20:16.000000Z",
        "deletedAt": null,
        "orderHold": 0,
        "mainImageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
        "mainImageThumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup-thumb.png",
        "variants": [
            {
                "id": 100000090521,
                "productId": 100000006063,
                "blankVariantId": 1830,
                "price": "37.00",
                "weight": null,
                "weightUnitId": null,
                "isActive": 1,
                "createdAt": "2021-10-11T07:20:16.000000Z",
                "updatedAt": "2021-10-11T07:20:16.000000Z",
                "deletedAt": null,
                "thumbnail": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup-thumb.png",
                "blankVariant": {
                    "id": 1830,
                    "blankId": 96,
                    "sku": "18500B-MAROON-M",
                    "quantity": 1,
                    "price": "18.50",
                    "isActive": 1,
                    "isOutOfStock": 0,
                    "isProcessable": 1,
                    "sort": 53,
                    "shippingRuleId": null,
                    "createdAt": "2020-10-17T23:02:00.000000Z",
                    "updatedAt": "2021-03-06T17:37:34.000000Z",
                    "thumbnail": "\/blank-images\/751\/YouthHoodie_Flat_FRONT_Maroon.jpg",
                    "blank": {
                        "id": 96,
                        "vendorId": 2,
                        "name": "Gildan Youth Hoodie",
                        "description": "<p><strong>PRODUCT INFORMATION<\/strong><br \/>\nCozy sweats in our core weight.<br \/>\n7.8-ounce, 50\/50 cotton\/poly fleece<br \/>\nAir jet yarn for a soft, pill-resistant finish<br \/>\n&nbsp;<\/p>\n\n<p><strong>Design Requirements:&nbsp;<\/strong>Minimum 2400px<br \/>\n<br \/>\n<strong>PRICING<\/strong><br \/>\n$18.50<br \/>\n<br \/>\n<strong>SHIPPING COST<\/strong><br \/>\nUnited States: $5.50<br \/>\nRest of the World: $10.00<br \/>\nPer Additional: $2.00<\/p>",
                        "defaultInputDescription": null,
                        "defaultBlankImageId": null,
                        "isFlippableInDesigner": 1,
                        "blankCategoryId": 3,
                        "isActive": 1,
                        "isProcessable": 1,
                        "createdAt": "2020-10-17T22:01:44.000000Z",
                        "updatedAt": "2021-03-24T16:20:57.000000Z",
                        "descriptionStoreDefault": "<p><strong>Gildan Youth Hoodie<\/strong><\/p>\n\n<p>Cozy sweats in our core weight.<br \/>\n7.8-ounce, 50\/50 cotton\/poly fleece<br \/>\nAir jet yarn for a soft, pill-resistant finish<\/p>",
                        "bestPractices": "<h2>TEELAUNCH STANDARD APPAREL DESIGN &amp; UPLOAD BREAKDOWN<\/h2>\n\n<p>At teelaunch, we require your artwork to be a PNG at a minimum of 2400px wide.<\/p>\n\n<ul>\n\t<li>A PNG for its flexibility to either allow transparency or have a solid background.<\/li>\n\t<li>A minimum of 2400px wide to ensure the artwork that is uploaded is high enough quality to meet our print standards. The app automatically trims the surrounding negative (empty) space around your artwork to make sure that the actual visible pixels meet the 2400px wide requirement. If your file is not a minimum of 2400px wide, the app will not accept it. It is good practice to trim your file before uploading to save time and avoid any unexpected errors.<\/li>\n<\/ul>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/DesignSizing01.jpg\" style=\"height:492px; width:1000px\" \/><\/p>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/DesignSizing02.jpg\" style=\"height:569px; width:1000px\" \/><\/p>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/DesignSizing03.jpg\" style=\"height:607px; width:1000px\" \/><\/p>\n\n<p>&nbsp;<\/p>\n\n<p>&nbsp;<\/p>\n\n<p>&nbsp;<\/p>\n\n<p>Standard apparel is printed via the DTG (Direct To Garment) process. DTG printing differs from screen printing. Screen printing is a more expensive process with a limited color palette and requires more basic designs. DTG printing is built for one-off prints\/short runs and is ideal for more elaborate designs with an extensive color palette. Please read on for important information regarding&nbsp;how to properly create designs for DTG printing and how to maximize the potential of your graphics.<\/p>\n\n<h2>RGB vs CMYK COLOR CODE<\/h2>\n\n<p>Knowing your color codes may be the most important practice when using Print on Demand. RGB (Red, Green &amp; Blue) is the color code for&nbsp;<em>web<\/em>&nbsp;applications. CMYK (Cyan, Magenta, Yellow &amp; Black) is the color code for&nbsp;<em>print<\/em>&nbsp;applications.<\/p>\n\n<p>We ask that our users upload artwork in RGB because they are uploading a graphic to the web. We strongly recommend checking the files in CMYK prior to upload because the graphic uploaded in RGB will be converted to CMYK at the print facility.&nbsp;<strong>DO NOT<\/strong>&nbsp;upload artwork to the app in CMYK &ndash; this will cause issues with how your design colors are represented on the mockup images. Upload your artwork in RGB, but check your file in CMYK first and adjust accordingly.<\/p>\n\n<p>Some colors are created specifically for your screen using RGB. We call these backlit colors as they are using light from your computer monitor to add more intense vibrancy that cannot be reproduced in the DTG printing process. This is why we always recommend checking your files in CMYK before uploading because there can be drastic shifts in color that completely change what is shown on your mockup image versus the final product. Please see the example below.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/best-practices-standard-apparel\/rgb_design_mockup\/\"><img alt=\"RGB - Backlit Color\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/RGB_Design_Mockup.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/cmyk_printreality\/\">&nbsp;<\/a><\/p>\n\n<h3>RGB - Backlit Color<\/h3>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/cmyk_printreality\/\"><img alt=\"CMYK - How Green Will Reproduce in Print\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/CMYK_PrintReality.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<h3>CMYK &ndash; How Green Will Reproduce in Print<\/h3>\n\n<h2>DESIGN TIPS<\/h2>\n\n<p>We want to meet and even exceed your print expectations, but a proper understanding of what works and does not work is required first. There are certain design techniques and applications that do not lend themselves well to the DTG printing process. We will go over design pitfalls and what to avoid.<\/p>\n\n<p><strong>1) Metallics, Glitter &amp; Foils:<\/strong>&nbsp;A popular trend in fashion design is incorporating metallic elements into the garment design. Unfortunately, this does not translate well in DTG printing. In order to achieve a metallic look, there needs to be special ink applied that has reflective properties or a metallic fleck within it. DTG printing has neither of these. If you are to create a design that features this effect, you can expect it to appear more like a photographic representation which will appear much more flat than you may anticipate as there are&nbsp;no special metallics in the ink.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/exampledesign_transparentbackground\/\"><img alt=\"Sample Design on Transparent Background\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/ExampleDesign_TransparentBackground.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/rgb_mockup\/\">&nbsp;<img alt=\"Sample Design on Mockup Image\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/RGB_Mockup.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/exampledesign_blackbackground\/\">&nbsp;<img alt=\"Sample Design on Black Background\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/ExampleDesign_BlackBackground.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/best-practices-standard-apparel\/sampledesign_actualprint\/\">&nbsp;<img alt=\"Actual Print on Gildan Brand Tee\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/SampleDesign_ActualPrint.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><\/p>\n\n<p><strong>2) Same or Similar Colors in Comparison to the Garment:<\/strong>&nbsp;It is recommended that you avoid using the same or similar colors in your design as the garment it is getting printed on. During the printing process, there is a white base layer of ink that gets laid down before your actual graphic is printed. This base layer acts as an adhesive as well as gives the other colors within the graphic a solid base to appear as rich and vibrant as possible.<\/p>\n\n<p>If you would like to maximize the potential of your design, we highly suggest using the garment color to your advantage within your design. If you are creating a design with black colored elements and want it on a black shirt, consider making the black elements within the design transparent so the black of the garment shows through in those areas. This will ensure the black in the design matches the black of the garment whereas if you left the black in the design, it will most likely appear lighter than the garment, thus creating a less impactful design.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/garment_notshowingthrough\/\"><img alt=\"Garment NOT Showing Through Design\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/Garment_NotShowingThrough.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/garment_notshowingthrough_mock\/\">&nbsp;<img alt=\"Garment NOT Showing Through Mockup\" src=\"https:\/\/i1.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/Garment_NotShowingThrough_Mock.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/garmentshowingthrough\/\">&nbsp;<img alt=\"Garment Showing Through Design\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/GarmentShowingThrough.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a>&nbsp;<a href=\"https:\/\/blog.teelaunch.com\/garmentshowingthrough_mock\/\"><img alt=\"Garment Showing Through Mockup\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/GarmentShowingThrough_Mock.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><\/p>\n\n<p><strong>3)&nbsp;<\/strong><strong>Drop Shadows\/Glows &amp; Low Opacity Elements:<\/strong>&nbsp;It is highly recommended to avoid using drop shadows and glows when creating designs for standard apparel. This effect is generally a useful technique in adding dimension to your artwork but will not turn out ideally on a garment. As mentioned above, there is a white base layer of ink that is applied to the garment before any other color is applied. This will effect any sort of drop shadow or glow by adding a faint white haze look. A common remedy\/fix used to replace shadows or glows is halftones. Halftones use solid color in the form of varying sized dots. This gives the illusion of fading colors or gradients, but has solid ink placed on the garment which prevents the white base layer from showing through. If you insist on using a drop shadow or glow effect, please make sure there is a background behind the effected area. If the effect is applied to a transparent area of the design, it will turn out less than ideal.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/gradientexample\/\"><img alt=\"Gradient (Bad)\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/GradientExample.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/halftoneexample\/\">&nbsp;<img alt=\"Halftone (Good)\" src=\"https:\/\/i1.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/HalftoneExample.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<p>Using design elements that have low opacity tend to get lost in the final print. If you have a design element that you want to be seen, it is recommended that you incorporate it into your design at 50% opacity or higher. Always err on the side of brighter or higher opacity to ensure the proper amount of color shows up on the final print.<\/p>\n\n<p><strong>4) Higher Quality Garments = Higher Quality Prints:<\/strong>&nbsp;DTG printing reacts differently to different types of fabric blends. Graphics are heated into the garment to create a long lasting print and depending on the caliber of shirt, fibers from the garment may show through which can have an effect on the overall look of the print. The quality of garment is reflected by the price. For example if you decide to use a Gildan brand shirt, the graphic that is printed may not look as sharp or vibrant as a Next Level branded tee. There is a slight difference in price, but the overall quality\/look\/feel is noticeable.<\/p>\n\n<p><strong>5) Be Aware of Size:<\/strong>&nbsp;We have a QuickPosition feature on the upload screen that allows our users to quickly and accurately position their artwork. The feature has pre-determined print locations and sizes available which gives users flexibility to move and resize artwork to their liking. The complexity and size of the elements on your graphic play an important role in which size\/placement you should choose. If your graphic is elaborate or text heavy, you should consider avoiding smaller graphic placement such as left\/right chest. The smaller your graphic gets printed, the harder it becomes to read. It is good practice in apparel design to create artwork that is easily digestible to the viewer. If design elements are hard to read on your computer monitor at 100% view, it is a high possibility that it will not translate over to a max size print on a garment. The print can only be as good as the file submitted.<\/p>\n\n<p><strong>6) Use A Design Template:<\/strong>&nbsp;We typically offer print templates for all of our products, but standard apparel is different. Designing for standard apparel is so wide open that we cannot limit our users to one specific template, but we can offer some advice on standardizing the process. The&nbsp;<strong>MINIMUM<\/strong>&nbsp;size of artwork we accept is a trimmed (no surrounding empty space) graphic that is 2400px wide. You can upload artwork larger than that, though. Our printers have a maximum print area of 12&rdquo;x 15&rdquo; and print artwork @200dpi (2400px by 3000px). This means that the minimum artwork that can be accepted will meet the requirements for a maximum sized print.<\/p>\n\n<p>It is good practice to design artwork that is to be printed, at 300dpi. This is the standard resolution for print (72dpi for web). Although our printers will downsize the artwork to meet their 200dpi requirement, creating art @300dpi  makes your design file much more versatile for other applications and products. We have found that creating an art board at 12&rdquo;x 15&rdquo; @300dpi (3600px by 4500px) works very well in standard apparel design. You will still need to make sure the file is a minimum of 2400px wide before upload though. To test the 2400px requirement in Photoshop, make sure the background layer is off and showing transparency behind your design &ndash; then go to Image&lt;Trim and select transparent pixels. This will trim away any areas surrounding your graphic that does not have any pixels showing. If your file is above 2400px wide, you are all set to upload!<\/p>\n\n<p>If the maximum print width is 12 inches and the maximum print height is 15 inches. This means artwork that extends further than 15&rdquo; in height will shrink the max width of the design to fit the height of the design into the print area accordingly. This is important to understand as the QuickPosition feature allows for lower placements from the collar of the garment. For example, if you upload a graphic that fils the entire print area of 12&rdquo;x15&rdquo;, but want the placement lower, the graphic print size will actually shrink the lower you go down from the collar to compensate for the maximum print area.<\/p>",
                        "isTaxEnabled": 0,
                        "isSilhouetteArtwork": null,
                        "isRemoveArtworkBackground": null,
                        "useVariantImageAsTemplateBackground": 1,
                        "variantImageOptionId": 1,
                        "isActiveDisplay": "Active",
                        "categoryDisplay": "Apparel",
                        "thumbnail": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black.jpg",
                        "category": {
                            "id": 3,
                            "blankCategoryParentId": 0,
                            "name": "Apparel",
                            "isBatchable": 1,
                            "isVirtual": 0,
                            "sort": 3,
                            "createdAt": "2020-05-18T22:44:18.000000Z",
                            "updatedAt": "2021-02-01T18:59:06.000000Z"
                        },
                        "variantImageOptions": [
                            {
                                "id": 17,
                                "blankId": 96,
                                "blankOptionId": 1,
                                "createdAt": "2020-11-19T20:05:14.000000Z",
                                "updatedAt": "2020-11-19T20:05:14.000000Z"
                            }
                        ],
                        "blankImage": {
                            "id": 1799,
                            "fileName": "YouthHoodie_Flat_FRONT_Black.jpg",
                            "description": "variant image",
                            "imageTypeId": 2,
                            "fileSize": 53558,
                            "width": 1000,
                            "height": 1000,
                            "createdAt": "2020-11-13T20:46:13.000000Z",
                            "updatedAt": "2020-11-13T20:46:14.000000Z",
                            "laravelThroughKey": 96,
                            "fileUrl": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black.jpg",
                            "imageUrl": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black.jpg",
                            "thumbUrl": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black-thumb.jpg"
                        }
                    },
                    "optionValues": [
                        {
                            "id": 477,
                            "blankBlankOptionId": 53,
                            "blankImageId": null,
                            "hexCode": "#361d22",
                            "name": "Maroon",
                            "sort": 0,
                            "createdAt": "2020-10-17T23:01:53.000000Z",
                            "updatedAt": "2020-10-26T18:13:49.000000Z",
                            "laravelThroughKey": 1830,
                            "option": {
                                "id": 1,
                                "name": "Color",
                                "createdAt": "2020-05-16T23:56:41.000000Z",
                                "updatedAt": "2020-05-16T23:57:28.000000Z",
                                "laravelThroughKey": 53
                            }
                        },
                        {
                            "id": 487,
                            "blankBlankOptionId": 54,
                            "blankImageId": null,
                            "hexCode": null,
                            "name": "M",
                            "sort": 0,
                            "createdAt": "2020-10-17T23:02:00.000000Z",
                            "updatedAt": "2020-10-17T23:02:00.000000Z",
                            "laravelThroughKey": 1830,
                            "option": {
                                "id": 3,
                                "name": "Size",
                                "createdAt": "2020-05-26T20:06:51.000000Z",
                                "updatedAt": "2020-12-05T05:07:34.000000Z",
                                "laravelThroughKey": 54
                            }
                        }
                    ],
                    "image": {
                        "id": 751,
                        "fileName": "YouthHoodie_Flat_FRONT_Maroon.jpg",
                        "description": "variant image",
                        "imageTypeId": 2,
                        "fileSize": 322067,
                        "width": 1000,
                        "height": 1000,
                        "createdAt": "2020-10-19T21:17:04.000000Z",
                        "updatedAt": "2020-10-19T21:17:05.000000Z",
                        "laravelThroughKey": 1830,
                        "fileUrl": "\/blank-images\/751\/YouthHoodie_Flat_FRONT_Maroon.jpg",
                        "imageUrl": "\/blank-images\/751\/YouthHoodie_Flat_FRONT_Maroon.jpg",
                        "thumbUrl": "\/blank-images\/751\/YouthHoodie_Flat_FRONT_Maroon-thumb.jpg"
                    }
                },
                "stageFiles": [
                    {
                        "id": 105529,
                        "status": 9,
                        "accountId": 3,
                        "accountImageId": 100000004893,
                        "productArtFileId": 10460,
                        "productId": 100000006063,
                        "productVariantId": 100000090521,
                        "blankStageGroupId": 118,
                        "blankStageId": 112,
                        "blankStageCreateTypeId": 1,
                        "blankStageLocationId": 1,
                        "blankStageLocationSubId": 1,
                        "blankStageLocationSubOffsetId": 1,
                        "fileName": null,
                        "imageTypeId": 1,
                        "size": 375021,
                        "width": 2400,
                        "height": 1800,
                        "startedAt": "2021-10-11T07:22:08.000000Z",
                        "finishedAt": null,
                        "createdAt": "2021-10-11T07:20:16.000000Z",
                        "updatedAt": "2021-10-11T07:22:08.000000Z",
                        "deletedAt": null,
                        "blankId": 96,
                        "fileUrl": null,
                        "imageUrl": null,
                        "thumbUrl": null
                    }
                ],
                "printFiles": [
                    {
                        "id": 109475,
                        "accountId": 3,
                        "status": 1,
                        "productId": 100000006063,
                        "productVariantId": 100000090521,
                        "productPrintFileId": 12335,
                        "fileName": null,
                        "imageTypeId": null,
                        "size": null,
                        "width": 2400,
                        "height": 1800,
                        "processedUrl": null,
                        "startedAt": null,
                        "finishedAt": null,
                        "createdAt": "2021-10-11T09:02:29.000000Z",
                        "updatedAt": "2021-10-11T09:02:29.000000Z",
                        "blankPrintImageId": 135,
                        "blankStageId": 112,
                        "deletedAt": null,
                        "productVariantStageFileId": 105529,
                        "fileUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                        "imageUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                        "thumbUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File-thumb.png",
                        "productPrintFile": {
                            "id": 12335,
                            "accountId": 3,
                            "productId": 100000006063,
                            "productArtFileId": 10460,
                            "blankPrintImageId": 135,
                            "blankStageId": 112,
                            "blankStageLocationId": 1,
                            "blankId": 96,
                            "status": 2,
                            "fileName": "Gildan_Youth_Hoodie_2_Front_Print_File.png",
                            "imageTypeId": 1,
                            "size": 279035,
                            "width": 2400,
                            "height": 1800,
                            "startedAt": "2021-10-11T09:02:32.000000Z",
                            "finishedAt": null,
                            "deletedAt": null,
                            "createdAt": "2021-10-11T09:02:28.000000Z",
                            "updatedAt": "2021-10-11T09:02:45.000000Z",
                            "fileUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                            "imageUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                            "thumbUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File-thumb.png"
                        }
                    }
                ],
                "mockupFiles": [
                    {
                        "id": 135529,
                        "accountId": 3,
                        "status": 6,
                        "productId": 100000006063,
                        "productVariantId": 100000090521,
                        "productMockupFileId": 85182,
                        "blankPsdId": 607,
                        "blankStageId": 112,
                        "fileName": null,
                        "imageTypeId": null,
                        "size": null,
                        "width": null,
                        "height": null,
                        "startedAt": null,
                        "finishedAt": "2021-10-11T07:22:23.000000Z",
                        "createdAt": "2021-10-11T07:20:33.000000Z",
                        "updatedAt": "2021-10-11T07:22:23.000000Z",
                        "productVariantStageFileId": 105529,
                        "deletedAt": null,
                        "blankId": 96,
                        "blankOptionValueId": 477,
                        "retryCount": 0,
                        "fileUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                        "imageUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                        "thumbUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup-thumb.png",
                        "productMockupFile": {
                            "id": 85182,
                            "accountId": 3,
                            "productId": 100000006063,
                            "productVariantId": 100000090521,
                            "productArtFileId": 10460,
                            "status": 6,
                            "fileName": "Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                            "blankId": 96,
                            "blankOptionValueId": 477,
                            "blankPsdId": 607,
                            "blankStageId": 112,
                            "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                            "imageTypeId": null,
                            "size": null,
                            "width": null,
                            "height": null,
                            "startedAt": "2021-10-11T07:20:50.000000Z",
                            "finishedAt": "2021-10-11T07:22:12.000000Z",
                            "deletedAt": null,
                            "createdAt": "2021-10-11T07:20:33.000000Z",
                            "updatedAt": "2021-10-11T07:22:12.000000Z",
                            "retryCount": 0,
                            "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                            "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                            "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup-thumb.png"
                        }
                    }
                ]
            },
            {
                "id": 100000090522,
                "productId": 100000006063,
                "blankVariantId": 1833,
                "price": "37.00",
                "weight": null,
                "weightUnitId": null,
                "isActive": 1,
                "createdAt": "2021-10-11T07:20:16.000000Z",
                "updatedAt": "2021-10-11T07:20:16.000000Z",
                "deletedAt": null,
                "thumbnail": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup-thumb.png",
                "blankVariant": {
                    "id": 1833,
                    "blankId": 96,
                    "sku": "18500B-PURPLE-M",
                    "quantity": 1,
                    "price": "18.50",
                    "isActive": 1,
                    "isOutOfStock": 0,
                    "isProcessable": 1,
                    "sort": 68,
                    "shippingRuleId": null,
                    "createdAt": "2020-10-17T23:02:00.000000Z",
                    "updatedAt": "2021-03-06T17:39:18.000000Z",
                    "thumbnail": "\/blank-images\/754\/YouthHoodie_Flat_FRONT_Purple.jpg",
                    "blank": {
                        "id": 96,
                        "vendorId": 2,
                        "name": "Gildan Youth Hoodie",
                        "description": "<p><strong>PRODUCT INFORMATION<\/strong><br \/>\nCozy sweats in our core weight.<br \/>\n7.8-ounce, 50\/50 cotton\/poly fleece<br \/>\nAir jet yarn for a soft, pill-resistant finish<br \/>\n&nbsp;<\/p>\n\n<p><strong>Design Requirements:&nbsp;<\/strong>Minimum 2400px<br \/>\n<br \/>\n<strong>PRICING<\/strong><br \/>\n$18.50<br \/>\n<br \/>\n<strong>SHIPPING COST<\/strong><br \/>\nUnited States: $5.50<br \/>\nRest of the World: $10.00<br \/>\nPer Additional: $2.00<\/p>",
                        "defaultInputDescription": null,
                        "defaultBlankImageId": null,
                        "isFlippableInDesigner": 1,
                        "blankCategoryId": 3,
                        "isActive": 1,
                        "isProcessable": 1,
                        "createdAt": "2020-10-17T22:01:44.000000Z",
                        "updatedAt": "2021-03-24T16:20:57.000000Z",
                        "descriptionStoreDefault": "<p><strong>Gildan Youth Hoodie<\/strong><\/p>\n\n<p>Cozy sweats in our core weight.<br \/>\n7.8-ounce, 50\/50 cotton\/poly fleece<br \/>\nAir jet yarn for a soft, pill-resistant finish<\/p>",
                        "bestPractices": "<h2>TEELAUNCH STANDARD APPAREL DESIGN &amp; UPLOAD BREAKDOWN<\/h2>\n\n<p>At teelaunch, we require your artwork to be a PNG at a minimum of 2400px wide.<\/p>\n\n<ul>\n\t<li>A PNG for its flexibility to either allow transparency or have a solid background.<\/li>\n\t<li>A minimum of 2400px wide to ensure the artwork that is uploaded is high enough quality to meet our print standards. The app automatically trims the surrounding negative (empty) space around your artwork to make sure that the actual visible pixels meet the 2400px wide requirement. If your file is not a minimum of 2400px wide, the app will not accept it. It is good practice to trim your file before uploading to save time and avoid any unexpected errors.<\/li>\n<\/ul>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/DesignSizing01.jpg\" style=\"height:492px; width:1000px\" \/><\/p>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/DesignSizing02.jpg\" style=\"height:569px; width:1000px\" \/><\/p>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/DesignSizing03.jpg\" style=\"height:607px; width:1000px\" \/><\/p>\n\n<p>&nbsp;<\/p>\n\n<p>&nbsp;<\/p>\n\n<p>&nbsp;<\/p>\n\n<p>Standard apparel is printed via the DTG (Direct To Garment) process. DTG printing differs from screen printing. Screen printing is a more expensive process with a limited color palette and requires more basic designs. DTG printing is built for one-off prints\/short runs and is ideal for more elaborate designs with an extensive color palette. Please read on for important information regarding&nbsp;how to properly create designs for DTG printing and how to maximize the potential of your graphics.<\/p>\n\n<h2>RGB vs CMYK COLOR CODE<\/h2>\n\n<p>Knowing your color codes may be the most important practice when using Print on Demand. RGB (Red, Green &amp; Blue) is the color code for&nbsp;<em>web<\/em>&nbsp;applications. CMYK (Cyan, Magenta, Yellow &amp; Black) is the color code for&nbsp;<em>print<\/em>&nbsp;applications.<\/p>\n\n<p>We ask that our users upload artwork in RGB because they are uploading a graphic to the web. We strongly recommend checking the files in CMYK prior to upload because the graphic uploaded in RGB will be converted to CMYK at the print facility.&nbsp;<strong>DO NOT<\/strong>&nbsp;upload artwork to the app in CMYK &ndash; this will cause issues with how your design colors are represented on the mockup images. Upload your artwork in RGB, but check your file in CMYK first and adjust accordingly.<\/p>\n\n<p>Some colors are created specifically for your screen using RGB. We call these backlit colors as they are using light from your computer monitor to add more intense vibrancy that cannot be reproduced in the DTG printing process. This is why we always recommend checking your files in CMYK before uploading because there can be drastic shifts in color that completely change what is shown on your mockup image versus the final product. Please see the example below.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/best-practices-standard-apparel\/rgb_design_mockup\/\"><img alt=\"RGB - Backlit Color\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/RGB_Design_Mockup.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/cmyk_printreality\/\">&nbsp;<\/a><\/p>\n\n<h3>RGB - Backlit Color<\/h3>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/cmyk_printreality\/\"><img alt=\"CMYK - How Green Will Reproduce in Print\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/CMYK_PrintReality.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<h3>CMYK &ndash; How Green Will Reproduce in Print<\/h3>\n\n<h2>DESIGN TIPS<\/h2>\n\n<p>We want to meet and even exceed your print expectations, but a proper understanding of what works and does not work is required first. There are certain design techniques and applications that do not lend themselves well to the DTG printing process. We will go over design pitfalls and what to avoid.<\/p>\n\n<p><strong>1) Metallics, Glitter &amp; Foils:<\/strong>&nbsp;A popular trend in fashion design is incorporating metallic elements into the garment design. Unfortunately, this does not translate well in DTG printing. In order to achieve a metallic look, there needs to be special ink applied that has reflective properties or a metallic fleck within it. DTG printing has neither of these. If you are to create a design that features this effect, you can expect it to appear more like a photographic representation which will appear much more flat than you may anticipate as there are&nbsp;no special metallics in the ink.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/exampledesign_transparentbackground\/\"><img alt=\"Sample Design on Transparent Background\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/ExampleDesign_TransparentBackground.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/rgb_mockup\/\">&nbsp;<img alt=\"Sample Design on Mockup Image\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/RGB_Mockup.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/exampledesign_blackbackground\/\">&nbsp;<img alt=\"Sample Design on Black Background\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/ExampleDesign_BlackBackground.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/best-practices-standard-apparel\/sampledesign_actualprint\/\">&nbsp;<img alt=\"Actual Print on Gildan Brand Tee\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/SampleDesign_ActualPrint.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><\/p>\n\n<p><strong>2) Same or Similar Colors in Comparison to the Garment:<\/strong>&nbsp;It is recommended that you avoid using the same or similar colors in your design as the garment it is getting printed on. During the printing process, there is a white base layer of ink that gets laid down before your actual graphic is printed. This base layer acts as an adhesive as well as gives the other colors within the graphic a solid base to appear as rich and vibrant as possible.<\/p>\n\n<p>If you would like to maximize the potential of your design, we highly suggest using the garment color to your advantage within your design. If you are creating a design with black colored elements and want it on a black shirt, consider making the black elements within the design transparent so the black of the garment shows through in those areas. This will ensure the black in the design matches the black of the garment whereas if you left the black in the design, it will most likely appear lighter than the garment, thus creating a less impactful design.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/garment_notshowingthrough\/\"><img alt=\"Garment NOT Showing Through Design\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/Garment_NotShowingThrough.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/garment_notshowingthrough_mock\/\">&nbsp;<img alt=\"Garment NOT Showing Through Mockup\" src=\"https:\/\/i1.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/Garment_NotShowingThrough_Mock.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/garmentshowingthrough\/\">&nbsp;<img alt=\"Garment Showing Through Design\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/GarmentShowingThrough.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a>&nbsp;<a href=\"https:\/\/blog.teelaunch.com\/garmentshowingthrough_mock\/\"><img alt=\"Garment Showing Through Mockup\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/GarmentShowingThrough_Mock.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><\/p>\n\n<p><strong>3)&nbsp;<\/strong><strong>Drop Shadows\/Glows &amp; Low Opacity Elements:<\/strong>&nbsp;It is highly recommended to avoid using drop shadows and glows when creating designs for standard apparel. This effect is generally a useful technique in adding dimension to your artwork but will not turn out ideally on a garment. As mentioned above, there is a white base layer of ink that is applied to the garment before any other color is applied. This will effect any sort of drop shadow or glow by adding a faint white haze look. A common remedy\/fix used to replace shadows or glows is halftones. Halftones use solid color in the form of varying sized dots. This gives the illusion of fading colors or gradients, but has solid ink placed on the garment which prevents the white base layer from showing through. If you insist on using a drop shadow or glow effect, please make sure there is a background behind the effected area. If the effect is applied to a transparent area of the design, it will turn out less than ideal.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/gradientexample\/\"><img alt=\"Gradient (Bad)\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/GradientExample.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/halftoneexample\/\">&nbsp;<img alt=\"Halftone (Good)\" src=\"https:\/\/i1.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/HalftoneExample.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<p>Using design elements that have low opacity tend to get lost in the final print. If you have a design element that you want to be seen, it is recommended that you incorporate it into your design at 50% opacity or higher. Always err on the side of brighter or higher opacity to ensure the proper amount of color shows up on the final print.<\/p>\n\n<p><strong>4) Higher Quality Garments = Higher Quality Prints:<\/strong>&nbsp;DTG printing reacts differently to different types of fabric blends. Graphics are heated into the garment to create a long lasting print and depending on the caliber of shirt, fibers from the garment may show through which can have an effect on the overall look of the print. The quality of garment is reflected by the price. For example if you decide to use a Gildan brand shirt, the graphic that is printed may not look as sharp or vibrant as a Next Level branded tee. There is a slight difference in price, but the overall quality\/look\/feel is noticeable.<\/p>\n\n<p><strong>5) Be Aware of Size:<\/strong>&nbsp;We have a QuickPosition feature on the upload screen that allows our users to quickly and accurately position their artwork. The feature has pre-determined print locations and sizes available which gives users flexibility to move and resize artwork to their liking. The complexity and size of the elements on your graphic play an important role in which size\/placement you should choose. If your graphic is elaborate or text heavy, you should consider avoiding smaller graphic placement such as left\/right chest. The smaller your graphic gets printed, the harder it becomes to read. It is good practice in apparel design to create artwork that is easily digestible to the viewer. If design elements are hard to read on your computer monitor at 100% view, it is a high possibility that it will not translate over to a max size print on a garment. The print can only be as good as the file submitted.<\/p>\n\n<p><strong>6) Use A Design Template:<\/strong>&nbsp;We typically offer print templates for all of our products, but standard apparel is different. Designing for standard apparel is so wide open that we cannot limit our users to one specific template, but we can offer some advice on standardizing the process. The&nbsp;<strong>MINIMUM<\/strong>&nbsp;size of artwork we accept is a trimmed (no surrounding empty space) graphic that is 2400px wide. You can upload artwork larger than that, though. Our printers have a maximum print area of 12&rdquo;x 15&rdquo; and print artwork @200dpi (2400px by 3000px). This means that the minimum artwork that can be accepted will meet the requirements for a maximum sized print.<\/p>\n\n<p>It is good practice to design artwork that is to be printed, at 300dpi. This is the standard resolution for print (72dpi for web). Although our printers will downsize the artwork to meet their 200dpi requirement, creating art @300dpi  makes your design file much more versatile for other applications and products. We have found that creating an art board at 12&rdquo;x 15&rdquo; @300dpi (3600px by 4500px) works very well in standard apparel design. You will still need to make sure the file is a minimum of 2400px wide before upload though. To test the 2400px requirement in Photoshop, make sure the background layer is off and showing transparency behind your design &ndash; then go to Image&lt;Trim and select transparent pixels. This will trim away any areas surrounding your graphic that does not have any pixels showing. If your file is above 2400px wide, you are all set to upload!<\/p>\n\n<p>If the maximum print width is 12 inches and the maximum print height is 15 inches. This means artwork that extends further than 15&rdquo; in height will shrink the max width of the design to fit the height of the design into the print area accordingly. This is important to understand as the QuickPosition feature allows for lower placements from the collar of the garment. For example, if you upload a graphic that fils the entire print area of 12&rdquo;x15&rdquo;, but want the placement lower, the graphic print size will actually shrink the lower you go down from the collar to compensate for the maximum print area.<\/p>",
                        "isTaxEnabled": 0,
                        "isSilhouetteArtwork": null,
                        "isRemoveArtworkBackground": null,
                        "useVariantImageAsTemplateBackground": 1,
                        "variantImageOptionId": 1,
                        "isActiveDisplay": "Active",
                        "categoryDisplay": "Apparel",
                        "thumbnail": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black.jpg",
                        "category": {
                            "id": 3,
                            "blankCategoryParentId": 0,
                            "name": "Apparel",
                            "isBatchable": 1,
                            "isVirtual": 0,
                            "sort": 3,
                            "createdAt": "2020-05-18T22:44:18.000000Z",
                            "updatedAt": "2021-02-01T18:59:06.000000Z"
                        },
                        "variantImageOptions": [
                            {
                                "id": 17,
                                "blankId": 96,
                                "blankOptionId": 1,
                                "createdAt": "2020-11-19T20:05:14.000000Z",
                                "updatedAt": "2020-11-19T20:05:14.000000Z"
                            }
                        ],
                        "blankImage": {
                            "id": 1799,
                            "fileName": "YouthHoodie_Flat_FRONT_Black.jpg",
                            "description": "variant image",
                            "imageTypeId": 2,
                            "fileSize": 53558,
                            "width": 1000,
                            "height": 1000,
                            "createdAt": "2020-11-13T20:46:13.000000Z",
                            "updatedAt": "2020-11-13T20:46:14.000000Z",
                            "laravelThroughKey": 96,
                            "fileUrl": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black.jpg",
                            "imageUrl": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black.jpg",
                            "thumbUrl": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black-thumb.jpg"
                        }
                    },
                    "optionValues": [
                        {
                            "id": 480,
                            "blankBlankOptionId": 53,
                            "blankImageId": null,
                            "hexCode": "#4b3c67",
                            "name": "Purple",
                            "sort": 0,
                            "createdAt": "2020-10-17T23:01:53.000000Z",
                            "updatedAt": "2020-10-26T18:14:24.000000Z",
                            "laravelThroughKey": 1833,
                            "option": {
                                "id": 1,
                                "name": "Color",
                                "createdAt": "2020-05-16T23:56:41.000000Z",
                                "updatedAt": "2020-05-16T23:57:28.000000Z",
                                "laravelThroughKey": 53
                            }
                        },
                        {
                            "id": 487,
                            "blankBlankOptionId": 54,
                            "blankImageId": null,
                            "hexCode": null,
                            "name": "M",
                            "sort": 0,
                            "createdAt": "2020-10-17T23:02:00.000000Z",
                            "updatedAt": "2020-10-17T23:02:00.000000Z",
                            "laravelThroughKey": 1833,
                            "option": {
                                "id": 3,
                                "name": "Size",
                                "createdAt": "2020-05-26T20:06:51.000000Z",
                                "updatedAt": "2020-12-05T05:07:34.000000Z",
                                "laravelThroughKey": 54
                            }
                        }
                    ],
                    "image": {
                        "id": 754,
                        "fileName": "YouthHoodie_Flat_FRONT_Purple.jpg",
                        "description": "variant image",
                        "imageTypeId": 2,
                        "fileSize": 240257,
                        "width": 1000,
                        "height": 1000,
                        "createdAt": "2020-10-19T21:18:10.000000Z",
                        "updatedAt": "2020-10-19T21:18:12.000000Z",
                        "laravelThroughKey": 1833,
                        "fileUrl": "\/blank-images\/754\/YouthHoodie_Flat_FRONT_Purple.jpg",
                        "imageUrl": "\/blank-images\/754\/YouthHoodie_Flat_FRONT_Purple.jpg",
                        "thumbUrl": "\/blank-images\/754\/YouthHoodie_Flat_FRONT_Purple-thumb.jpg"
                    }
                },
                "stageFiles": [
                    {
                        "id": 105530,
                        "status": 9,
                        "accountId": 3,
                        "accountImageId": 100000004893,
                        "productArtFileId": 10460,
                        "productId": 100000006063,
                        "productVariantId": 100000090522,
                        "blankStageGroupId": 118,
                        "blankStageId": 112,
                        "blankStageCreateTypeId": 1,
                        "blankStageLocationId": 1,
                        "blankStageLocationSubId": 1,
                        "blankStageLocationSubOffsetId": 1,
                        "fileName": null,
                        "imageTypeId": 1,
                        "size": 375021,
                        "width": 2400,
                        "height": 1800,
                        "startedAt": "2021-10-11T07:22:09.000000Z",
                        "finishedAt": null,
                        "createdAt": "2021-10-11T07:20:16.000000Z",
                        "updatedAt": "2021-10-11T07:22:09.000000Z",
                        "deletedAt": null,
                        "blankId": 96,
                        "fileUrl": null,
                        "imageUrl": null,
                        "thumbUrl": null
                    }
                ],
                "printFiles": [
                    {
                        "id": 109476,
                        "accountId": 3,
                        "status": 1,
                        "productId": 100000006063,
                        "productVariantId": 100000090522,
                        "productPrintFileId": 12335,
                        "fileName": null,
                        "imageTypeId": null,
                        "size": null,
                        "width": 2400,
                        "height": 1800,
                        "processedUrl": null,
                        "startedAt": null,
                        "finishedAt": null,
                        "createdAt": "2021-10-11T09:02:29.000000Z",
                        "updatedAt": "2021-10-11T09:02:29.000000Z",
                        "blankPrintImageId": 135,
                        "blankStageId": 112,
                        "deletedAt": null,
                        "productVariantStageFileId": 105530,
                        "fileUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                        "imageUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                        "thumbUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File-thumb.png",
                        "productPrintFile": {
                            "id": 12335,
                            "accountId": 3,
                            "productId": 100000006063,
                            "productArtFileId": 10460,
                            "blankPrintImageId": 135,
                            "blankStageId": 112,
                            "blankStageLocationId": 1,
                            "blankId": 96,
                            "status": 2,
                            "fileName": "Gildan_Youth_Hoodie_2_Front_Print_File.png",
                            "imageTypeId": 1,
                            "size": 279035,
                            "width": 2400,
                            "height": 1800,
                            "startedAt": "2021-10-11T09:02:32.000000Z",
                            "finishedAt": null,
                            "deletedAt": null,
                            "createdAt": "2021-10-11T09:02:28.000000Z",
                            "updatedAt": "2021-10-11T09:02:45.000000Z",
                            "fileUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                            "imageUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                            "thumbUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File-thumb.png"
                        }
                    },
                    {
                        "id": 109477,
                        "accountId": 3,
                        "status": 1,
                        "productId": 100000006063,
                        "productVariantId": 100000090522,
                        "productPrintFileId": 12336,
                        "fileName": null,
                        "imageTypeId": null,
                        "size": null,
                        "width": 2400,
                        "height": 1800,
                        "processedUrl": null,
                        "startedAt": null,
                        "finishedAt": null,
                        "createdAt": "2021-10-11T09:02:29.000000Z",
                        "updatedAt": "2021-10-11T09:02:29.000000Z",
                        "blankPrintImageId": 639,
                        "blankStageId": 112,
                        "deletedAt": null,
                        "productVariantStageFileId": 105530,
                        "fileUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File.jpg",
                        "imageUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File.jpg",
                        "thumbUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File-thumb.jpg",
                        "productPrintFile": {
                            "id": 12336,
                            "accountId": 3,
                            "productId": 100000006063,
                            "productArtFileId": 10460,
                            "blankPrintImageId": 639,
                            "blankStageId": 112,
                            "blankStageLocationId": 1,
                            "blankId": 96,
                            "status": 2,
                            "fileName": "Gildan_Youth_Hoodie_2_Print_File.jpg",
                            "imageTypeId": 2,
                            "size": 5377,
                            "width": 100,
                            "height": 100,
                            "startedAt": "2021-10-11T09:02:45.000000Z",
                            "finishedAt": null,
                            "deletedAt": null,
                            "createdAt": "2021-10-11T09:02:29.000000Z",
                            "updatedAt": "2021-10-11T09:02:52.000000Z",
                            "fileUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File.jpg",
                            "imageUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File.jpg",
                            "thumbUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File-thumb.jpg"
                        }
                    }
                ],
                "mockupFiles": [
                    {
                        "id": 135530,
                        "accountId": 3,
                        "status": 6,
                        "productId": 100000006063,
                        "productVariantId": 100000090522,
                        "productMockupFileId": 85183,
                        "blankPsdId": 611,
                        "blankStageId": 112,
                        "fileName": null,
                        "imageTypeId": null,
                        "size": null,
                        "width": null,
                        "height": null,
                        "startedAt": null,
                        "finishedAt": "2021-10-11T07:21:55.000000Z",
                        "createdAt": "2021-10-11T07:20:34.000000Z",
                        "updatedAt": "2021-10-11T07:21:55.000000Z",
                        "productVariantStageFileId": 105530,
                        "deletedAt": null,
                        "blankId": 96,
                        "blankOptionValueId": 480,
                        "retryCount": 0,
                        "fileUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                        "imageUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                        "thumbUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup-thumb.png",
                        "productMockupFile": {
                            "id": 85183,
                            "accountId": 3,
                            "productId": 100000006063,
                            "productVariantId": 100000090522,
                            "productArtFileId": 10460,
                            "status": 6,
                            "fileName": "Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                            "blankId": 96,
                            "blankOptionValueId": 480,
                            "blankPsdId": 611,
                            "blankStageId": 112,
                            "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                            "imageTypeId": null,
                            "size": null,
                            "width": null,
                            "height": null,
                            "startedAt": "2021-10-11T07:20:59.000000Z",
                            "finishedAt": "2021-10-11T07:21:48.000000Z",
                            "deletedAt": null,
                            "createdAt": "2021-10-11T07:20:34.000000Z",
                            "updatedAt": "2021-10-11T07:21:48.000000Z",
                            "retryCount": 0,
                            "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                            "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                            "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup-thumb.png"
                        }
                    }
                ]
            },
            {
                "id": 100000090523,
                "productId": 100000006063,
                "blankVariantId": 1836,
                "price": "37.00",
                "weight": null,
                "weightUnitId": null,
                "isActive": 1,
                "createdAt": "2021-10-11T07:20:16.000000Z",
                "updatedAt": "2021-10-11T07:20:16.000000Z",
                "deletedAt": null,
                "thumbnail": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup-thumb.png",
                "blankVariant": {
                    "id": 1836,
                    "blankId": 96,
                    "sku": "18500B-SG-M",
                    "quantity": 1,
                    "price": "18.50",
                    "isActive": 1,
                    "isOutOfStock": 0,
                    "isProcessable": 1,
                    "sort": 83,
                    "shippingRuleId": null,
                    "createdAt": "2020-10-17T23:02:00.000000Z",
                    "updatedAt": "2021-03-06T17:41:05.000000Z",
                    "thumbnail": "\/blank-images\/757\/YouthHoodie_Flat_FRONT_SportGrey.jpg",
                    "blank": {
                        "id": 96,
                        "vendorId": 2,
                        "name": "Gildan Youth Hoodie",
                        "description": "<p><strong>PRODUCT INFORMATION<\/strong><br \/>\nCozy sweats in our core weight.<br \/>\n7.8-ounce, 50\/50 cotton\/poly fleece<br \/>\nAir jet yarn for a soft, pill-resistant finish<br \/>\n&nbsp;<\/p>\n\n<p><strong>Design Requirements:&nbsp;<\/strong>Minimum 2400px<br \/>\n<br \/>\n<strong>PRICING<\/strong><br \/>\n$18.50<br \/>\n<br \/>\n<strong>SHIPPING COST<\/strong><br \/>\nUnited States: $5.50<br \/>\nRest of the World: $10.00<br \/>\nPer Additional: $2.00<\/p>",
                        "defaultInputDescription": null,
                        "defaultBlankImageId": null,
                        "isFlippableInDesigner": 1,
                        "blankCategoryId": 3,
                        "isActive": 1,
                        "isProcessable": 1,
                        "createdAt": "2020-10-17T22:01:44.000000Z",
                        "updatedAt": "2021-03-24T16:20:57.000000Z",
                        "descriptionStoreDefault": "<p><strong>Gildan Youth Hoodie<\/strong><\/p>\n\n<p>Cozy sweats in our core weight.<br \/>\n7.8-ounce, 50\/50 cotton\/poly fleece<br \/>\nAir jet yarn for a soft, pill-resistant finish<\/p>",
                        "bestPractices": "<h2>TEELAUNCH STANDARD APPAREL DESIGN &amp; UPLOAD BREAKDOWN<\/h2>\n\n<p>At teelaunch, we require your artwork to be a PNG at a minimum of 2400px wide.<\/p>\n\n<ul>\n\t<li>A PNG for its flexibility to either allow transparency or have a solid background.<\/li>\n\t<li>A minimum of 2400px wide to ensure the artwork that is uploaded is high enough quality to meet our print standards. The app automatically trims the surrounding negative (empty) space around your artwork to make sure that the actual visible pixels meet the 2400px wide requirement. If your file is not a minimum of 2400px wide, the app will not accept it. It is good practice to trim your file before uploading to save time and avoid any unexpected errors.<\/li>\n<\/ul>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/DesignSizing01.jpg\" style=\"height:492px; width:1000px\" \/><\/p>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/DesignSizing02.jpg\" style=\"height:569px; width:1000px\" \/><\/p>\n\n<p><img alt=\"\" src=\"https:\/\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/DesignSizing03.jpg\" style=\"height:607px; width:1000px\" \/><\/p>\n\n<p>&nbsp;<\/p>\n\n<p>&nbsp;<\/p>\n\n<p>&nbsp;<\/p>\n\n<p>Standard apparel is printed via the DTG (Direct To Garment) process. DTG printing differs from screen printing. Screen printing is a more expensive process with a limited color palette and requires more basic designs. DTG printing is built for one-off prints\/short runs and is ideal for more elaborate designs with an extensive color palette. Please read on for important information regarding&nbsp;how to properly create designs for DTG printing and how to maximize the potential of your graphics.<\/p>\n\n<h2>RGB vs CMYK COLOR CODE<\/h2>\n\n<p>Knowing your color codes may be the most important practice when using Print on Demand. RGB (Red, Green &amp; Blue) is the color code for&nbsp;<em>web<\/em>&nbsp;applications. CMYK (Cyan, Magenta, Yellow &amp; Black) is the color code for&nbsp;<em>print<\/em>&nbsp;applications.<\/p>\n\n<p>We ask that our users upload artwork in RGB because they are uploading a graphic to the web. We strongly recommend checking the files in CMYK prior to upload because the graphic uploaded in RGB will be converted to CMYK at the print facility.&nbsp;<strong>DO NOT<\/strong>&nbsp;upload artwork to the app in CMYK &ndash; this will cause issues with how your design colors are represented on the mockup images. Upload your artwork in RGB, but check your file in CMYK first and adjust accordingly.<\/p>\n\n<p>Some colors are created specifically for your screen using RGB. We call these backlit colors as they are using light from your computer monitor to add more intense vibrancy that cannot be reproduced in the DTG printing process. This is why we always recommend checking your files in CMYK before uploading because there can be drastic shifts in color that completely change what is shown on your mockup image versus the final product. Please see the example below.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/best-practices-standard-apparel\/rgb_design_mockup\/\"><img alt=\"RGB - Backlit Color\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/RGB_Design_Mockup.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/cmyk_printreality\/\">&nbsp;<\/a><\/p>\n\n<h3>RGB - Backlit Color<\/h3>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/cmyk_printreality\/\"><img alt=\"CMYK - How Green Will Reproduce in Print\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/CMYK_PrintReality.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<h3>CMYK &ndash; How Green Will Reproduce in Print<\/h3>\n\n<h2>DESIGN TIPS<\/h2>\n\n<p>We want to meet and even exceed your print expectations, but a proper understanding of what works and does not work is required first. There are certain design techniques and applications that do not lend themselves well to the DTG printing process. We will go over design pitfalls and what to avoid.<\/p>\n\n<p><strong>1) Metallics, Glitter &amp; Foils:<\/strong>&nbsp;A popular trend in fashion design is incorporating metallic elements into the garment design. Unfortunately, this does not translate well in DTG printing. In order to achieve a metallic look, there needs to be special ink applied that has reflective properties or a metallic fleck within it. DTG printing has neither of these. If you are to create a design that features this effect, you can expect it to appear more like a photographic representation which will appear much more flat than you may anticipate as there are&nbsp;no special metallics in the ink.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/exampledesign_transparentbackground\/\"><img alt=\"Sample Design on Transparent Background\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/ExampleDesign_TransparentBackground.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/rgb_mockup\/\">&nbsp;<img alt=\"Sample Design on Mockup Image\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/RGB_Mockup.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/exampledesign_blackbackground\/\">&nbsp;<img alt=\"Sample Design on Black Background\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/ExampleDesign_BlackBackground.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/best-practices-standard-apparel\/sampledesign_actualprint\/\">&nbsp;<img alt=\"Actual Print on Gildan Brand Tee\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/SampleDesign_ActualPrint.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><\/p>\n\n<p><strong>2) Same or Similar Colors in Comparison to the Garment:<\/strong>&nbsp;It is recommended that you avoid using the same or similar colors in your design as the garment it is getting printed on. During the printing process, there is a white base layer of ink that gets laid down before your actual graphic is printed. This base layer acts as an adhesive as well as gives the other colors within the graphic a solid base to appear as rich and vibrant as possible.<\/p>\n\n<p>If you would like to maximize the potential of your design, we highly suggest using the garment color to your advantage within your design. If you are creating a design with black colored elements and want it on a black shirt, consider making the black elements within the design transparent so the black of the garment shows through in those areas. This will ensure the black in the design matches the black of the garment whereas if you left the black in the design, it will most likely appear lighter than the garment, thus creating a less impactful design.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/garment_notshowingthrough\/\"><img alt=\"Garment NOT Showing Through Design\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/Garment_NotShowingThrough.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/garment_notshowingthrough_mock\/\">&nbsp;<img alt=\"Garment NOT Showing Through Mockup\" src=\"https:\/\/i1.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/Garment_NotShowingThrough_Mock.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/garmentshowingthrough\/\">&nbsp;<img alt=\"Garment Showing Through Design\" src=\"https:\/\/i2.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/GarmentShowingThrough.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a>&nbsp;<a href=\"https:\/\/blog.teelaunch.com\/garmentshowingthrough_mock\/\"><img alt=\"Garment Showing Through Mockup\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/GarmentShowingThrough_Mock.jpg?w=411&amp;h=411&amp;crop=1&amp;ssl=1\" style=\"height:350px; width:350px\" \/><\/a><\/p>\n\n<p><strong>3)&nbsp;<\/strong><strong>Drop Shadows\/Glows &amp; Low Opacity Elements:<\/strong>&nbsp;It is highly recommended to avoid using drop shadows and glows when creating designs for standard apparel. This effect is generally a useful technique in adding dimension to your artwork but will not turn out ideally on a garment. As mentioned above, there is a white base layer of ink that is applied to the garment before any other color is applied. This will effect any sort of drop shadow or glow by adding a faint white haze look. A common remedy\/fix used to replace shadows or glows is halftones. Halftones use solid color in the form of varying sized dots. This gives the illusion of fading colors or gradients, but has solid ink placed on the garment which prevents the white base layer from showing through. If you insist on using a drop shadow or glow effect, please make sure there is a background behind the effected area. If the effect is applied to a transparent area of the design, it will turn out less than ideal.<\/p>\n\n<p><a href=\"https:\/\/blog.teelaunch.com\/gradientexample\/\"><img alt=\"Gradient (Bad)\" src=\"https:\/\/i0.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/GradientExample.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><a href=\"https:\/\/blog.teelaunch.com\/halftoneexample\/\">&nbsp;<img alt=\"Halftone (Good)\" src=\"https:\/\/i1.wp.com\/blog.teelaunch.com\/wp-content\/uploads\/2018\/06\/HalftoneExample.jpg?w=826&amp;h=826&amp;crop=1&amp;ssl=1\" style=\"height:500px; width:500px\" \/><\/a><\/p>\n\n<p>Using design elements that have low opacity tend to get lost in the final print. If you have a design element that you want to be seen, it is recommended that you incorporate it into your design at 50% opacity or higher. Always err on the side of brighter or higher opacity to ensure the proper amount of color shows up on the final print.<\/p>\n\n<p><strong>4) Higher Quality Garments = Higher Quality Prints:<\/strong>&nbsp;DTG printing reacts differently to different types of fabric blends. Graphics are heated into the garment to create a long lasting print and depending on the caliber of shirt, fibers from the garment may show through which can have an effect on the overall look of the print. The quality of garment is reflected by the price. For example if you decide to use a Gildan brand shirt, the graphic that is printed may not look as sharp or vibrant as a Next Level branded tee. There is a slight difference in price, but the overall quality\/look\/feel is noticeable.<\/p>\n\n<p><strong>5) Be Aware of Size:<\/strong>&nbsp;We have a QuickPosition feature on the upload screen that allows our users to quickly and accurately position their artwork. The feature has pre-determined print locations and sizes available which gives users flexibility to move and resize artwork to their liking. The complexity and size of the elements on your graphic play an important role in which size\/placement you should choose. If your graphic is elaborate or text heavy, you should consider avoiding smaller graphic placement such as left\/right chest. The smaller your graphic gets printed, the harder it becomes to read. It is good practice in apparel design to create artwork that is easily digestible to the viewer. If design elements are hard to read on your computer monitor at 100% view, it is a high possibility that it will not translate over to a max size print on a garment. The print can only be as good as the file submitted.<\/p>\n\n<p><strong>6) Use A Design Template:<\/strong>&nbsp;We typically offer print templates for all of our products, but standard apparel is different. Designing for standard apparel is so wide open that we cannot limit our users to one specific template, but we can offer some advice on standardizing the process. The&nbsp;<strong>MINIMUM<\/strong>&nbsp;size of artwork we accept is a trimmed (no surrounding empty space) graphic that is 2400px wide. You can upload artwork larger than that, though. Our printers have a maximum print area of 12&rdquo;x 15&rdquo; and print artwork @200dpi (2400px by 3000px). This means that the minimum artwork that can be accepted will meet the requirements for a maximum sized print.<\/p>\n\n<p>It is good practice to design artwork that is to be printed, at 300dpi. This is the standard resolution for print (72dpi for web). Although our printers will downsize the artwork to meet their 200dpi requirement, creating art @300dpi  makes your design file much more versatile for other applications and products. We have found that creating an art board at 12&rdquo;x 15&rdquo; @300dpi (3600px by 4500px) works very well in standard apparel design. You will still need to make sure the file is a minimum of 2400px wide before upload though. To test the 2400px requirement in Photoshop, make sure the background layer is off and showing transparency behind your design &ndash; then go to Image&lt;Trim and select transparent pixels. This will trim away any areas surrounding your graphic that does not have any pixels showing. If your file is above 2400px wide, you are all set to upload!<\/p>\n\n<p>If the maximum print width is 12 inches and the maximum print height is 15 inches. This means artwork that extends further than 15&rdquo; in height will shrink the max width of the design to fit the height of the design into the print area accordingly. This is important to understand as the QuickPosition feature allows for lower placements from the collar of the garment. For example, if you upload a graphic that fils the entire print area of 12&rdquo;x15&rdquo;, but want the placement lower, the graphic print size will actually shrink the lower you go down from the collar to compensate for the maximum print area.<\/p>",
                        "isTaxEnabled": 0,
                        "isSilhouetteArtwork": null,
                        "isRemoveArtworkBackground": null,
                        "useVariantImageAsTemplateBackground": 1,
                        "variantImageOptionId": 1,
                        "isActiveDisplay": "Active",
                        "categoryDisplay": "Apparel",
                        "thumbnail": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black.jpg",
                        "category": {
                            "id": 3,
                            "blankCategoryParentId": 0,
                            "name": "Apparel",
                            "isBatchable": 1,
                            "isVirtual": 0,
                            "sort": 3,
                            "createdAt": "2020-05-18T22:44:18.000000Z",
                            "updatedAt": "2021-02-01T18:59:06.000000Z"
                        },
                        "variantImageOptions": [
                            {
                                "id": 17,
                                "blankId": 96,
                                "blankOptionId": 1,
                                "createdAt": "2020-11-19T20:05:14.000000Z",
                                "updatedAt": "2020-11-19T20:05:14.000000Z"
                            }
                        ],
                        "blankImage": {
                            "id": 1799,
                            "fileName": "YouthHoodie_Flat_FRONT_Black.jpg",
                            "description": "variant image",
                            "imageTypeId": 2,
                            "fileSize": 53558,
                            "width": 1000,
                            "height": 1000,
                            "createdAt": "2020-11-13T20:46:13.000000Z",
                            "updatedAt": "2020-11-13T20:46:14.000000Z",
                            "laravelThroughKey": 96,
                            "fileUrl": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black.jpg",
                            "imageUrl": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black.jpg",
                            "thumbUrl": "\/blank-images\/1799\/YouthHoodie_Flat_FRONT_Black-thumb.jpg"
                        }
                    },
                    "optionValues": [
                        {
                            "id": 483,
                            "blankBlankOptionId": 53,
                            "blankImageId": null,
                            "hexCode": "#bdbdbd",
                            "name": "Sport Grey",
                            "sort": 0,
                            "createdAt": "2020-10-17T23:01:53.000000Z",
                            "updatedAt": "2020-10-26T18:13:10.000000Z",
                            "laravelThroughKey": 1836,
                            "option": {
                                "id": 1,
                                "name": "Color",
                                "createdAt": "2020-05-16T23:56:41.000000Z",
                                "updatedAt": "2020-05-16T23:57:28.000000Z",
                                "laravelThroughKey": 53
                            }
                        },
                        {
                            "id": 487,
                            "blankBlankOptionId": 54,
                            "blankImageId": null,
                            "hexCode": null,
                            "name": "M",
                            "sort": 0,
                            "createdAt": "2020-10-17T23:02:00.000000Z",
                            "updatedAt": "2020-10-17T23:02:00.000000Z",
                            "laravelThroughKey": 1836,
                            "option": {
                                "id": 3,
                                "name": "Size",
                                "createdAt": "2020-05-26T20:06:51.000000Z",
                                "updatedAt": "2020-12-05T05:07:34.000000Z",
                                "laravelThroughKey": 54
                            }
                        }
                    ],
                    "image": {
                        "id": 757,
                        "fileName": "YouthHoodie_Flat_FRONT_SportGrey.jpg",
                        "description": "variant image",
                        "imageTypeId": 2,
                        "fileSize": 372775,
                        "width": 1000,
                        "height": 1000,
                        "createdAt": "2020-10-19T21:19:51.000000Z",
                        "updatedAt": "2020-10-19T21:19:53.000000Z",
                        "laravelThroughKey": 1836,
                        "fileUrl": "\/blank-images\/757\/YouthHoodie_Flat_FRONT_SportGrey.jpg",
                        "imageUrl": "\/blank-images\/757\/YouthHoodie_Flat_FRONT_SportGrey.jpg",
                        "thumbUrl": "\/blank-images\/757\/YouthHoodie_Flat_FRONT_SportGrey-thumb.jpg"
                    }
                },
                "stageFiles": [
                    {
                        "id": 105531,
                        "status": 9,
                        "accountId": 3,
                        "accountImageId": 100000004893,
                        "productArtFileId": 10460,
                        "productId": 100000006063,
                        "productVariantId": 100000090523,
                        "blankStageGroupId": 118,
                        "blankStageId": 112,
                        "blankStageCreateTypeId": 1,
                        "blankStageLocationId": 1,
                        "blankStageLocationSubId": 1,
                        "blankStageLocationSubOffsetId": 1,
                        "fileName": null,
                        "imageTypeId": 1,
                        "size": 375021,
                        "width": 2400,
                        "height": 1800,
                        "startedAt": "2021-10-11T07:22:10.000000Z",
                        "finishedAt": null,
                        "createdAt": "2021-10-11T07:20:16.000000Z",
                        "updatedAt": "2021-10-11T07:22:10.000000Z",
                        "deletedAt": null,
                        "blankId": 96,
                        "fileUrl": null,
                        "imageUrl": null,
                        "thumbUrl": null
                    }
                ],
                "printFiles": [
                    {
                        "id": 109478,
                        "accountId": 3,
                        "status": 1,
                        "productId": 100000006063,
                        "productVariantId": 100000090523,
                        "productPrintFileId": 12335,
                        "fileName": null,
                        "imageTypeId": null,
                        "size": null,
                        "width": 2400,
                        "height": 1800,
                        "processedUrl": null,
                        "startedAt": null,
                        "finishedAt": null,
                        "createdAt": "2021-10-11T09:02:29.000000Z",
                        "updatedAt": "2021-10-11T09:02:29.000000Z",
                        "blankPrintImageId": 135,
                        "blankStageId": 112,
                        "deletedAt": null,
                        "productVariantStageFileId": 105531,
                        "fileUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                        "imageUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                        "thumbUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File-thumb.png",
                        "productPrintFile": {
                            "id": 12335,
                            "accountId": 3,
                            "productId": 100000006063,
                            "productArtFileId": 10460,
                            "blankPrintImageId": 135,
                            "blankStageId": 112,
                            "blankStageLocationId": 1,
                            "blankId": 96,
                            "status": 2,
                            "fileName": "Gildan_Youth_Hoodie_2_Front_Print_File.png",
                            "imageTypeId": 1,
                            "size": 279035,
                            "width": 2400,
                            "height": 1800,
                            "startedAt": "2021-10-11T09:02:32.000000Z",
                            "finishedAt": null,
                            "deletedAt": null,
                            "createdAt": "2021-10-11T09:02:28.000000Z",
                            "updatedAt": "2021-10-11T09:02:45.000000Z",
                            "fileUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                            "imageUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                            "thumbUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File-thumb.png"
                        }
                    }
                ],
                "mockupFiles": [
                    {
                        "id": 135531,
                        "accountId": 3,
                        "status": 6,
                        "productId": 100000006063,
                        "productVariantId": 100000090523,
                        "productMockupFileId": 85184,
                        "blankPsdId": 614,
                        "blankStageId": 112,
                        "fileName": null,
                        "imageTypeId": null,
                        "size": null,
                        "width": null,
                        "height": null,
                        "startedAt": null,
                        "finishedAt": "2021-10-11T07:22:08.000000Z",
                        "createdAt": "2021-10-11T07:20:35.000000Z",
                        "updatedAt": "2021-10-11T07:22:08.000000Z",
                        "productVariantStageFileId": 105531,
                        "deletedAt": null,
                        "blankId": 96,
                        "blankOptionValueId": 483,
                        "retryCount": 0,
                        "fileUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                        "imageUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                        "thumbUrl": "http:\/\/teelaunch-api.test\/images\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup-thumb.png",
                        "productMockupFile": {
                            "id": 85184,
                            "accountId": 3,
                            "productId": 100000006063,
                            "productVariantId": 100000090523,
                            "productArtFileId": 10460,
                            "status": 6,
                            "fileName": "Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                            "blankId": 96,
                            "blankOptionValueId": 483,
                            "blankPsdId": 614,
                            "blankStageId": 112,
                            "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                            "imageTypeId": null,
                            "size": null,
                            "width": null,
                            "height": null,
                            "startedAt": "2021-10-11T07:21:02.000000Z",
                            "finishedAt": "2021-10-11T07:21:57.000000Z",
                            "deletedAt": null,
                            "createdAt": "2021-10-11T07:20:35.000000Z",
                            "updatedAt": "2021-10-11T07:21:57.000000Z",
                            "retryCount": 0,
                            "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                            "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                            "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup-thumb.png"
                        }
                    }
                ]
            }
        ],
        "artFiles": [
            {
                "id": 10460,
                "accountId": 3,
                "accountImageId": 100000004893,
                "productId": 100000006063,
                "blankStageGroupId": 118,
                "blankStageId": 112,
                "blankStageCreateTypeId": 1,
                "blankStageLocationId": 1,
                "blankStageLocationSubId": 1,
                "blankStageLocationSubOffsetId": 1,
                "blankId": 96,
                "status": 6,
                "fileName": "superman.png",
                "imageTypeId": 1,
                "size": 279031,
                "width": 2400,
                "height": 1800,
                "startedAt": "2021-10-11T07:20:18.000000Z",
                "finishedAt": "2021-10-11T07:20:33.000000Z",
                "deletedAt": null,
                "createdAt": "2021-10-11T07:20:16.000000Z",
                "updatedAt": "2021-10-11T07:20:33.000000Z",
                "fileUrl": "\/accounts\/3\/products\/100000006063\/art-files\/10460\/superman.png",
                "imageUrl": "\/accounts\/3\/products\/100000006063\/art-files\/10460\/superman.png",
                "thumbUrl": "\/accounts\/3\/products\/100000006063\/art-files\/10460\/superman-thumb.png",
                "blankStageLocation": {
                    "id": 1,
                    "fullName": "Front Shirt",
                    "shortName": "Front",
                    "createdAt": "2020-05-15T23:39:16.000000Z",
                    "updatedAt": "2020-05-15T23:39:16.000000Z"
                }
            }
        ],
        "mockupFiles": [
            {
                "id": 85182,
                "accountId": 3,
                "productId": 100000006063,
                "productVariantId": 100000090521,
                "productArtFileId": 10460,
                "status": 6,
                "fileName": "Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                "blankId": 96,
                "blankOptionValueId": 477,
                "blankPsdId": 607,
                "blankStageId": 112,
                "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                "imageTypeId": null,
                "size": null,
                "width": null,
                "height": null,
                "startedAt": "2021-10-11T07:20:50.000000Z",
                "finishedAt": "2021-10-11T07:22:12.000000Z",
                "deletedAt": null,
                "createdAt": "2021-10-11T07:20:33.000000Z",
                "updatedAt": "2021-10-11T07:22:12.000000Z",
                "retryCount": 0,
                "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup.png",
                "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85182\/Gildan_Youth_Hoodie_2_Maroon_Mockup-thumb.png"
            },
            {
                "id": 85183,
                "accountId": 3,
                "productId": 100000006063,
                "productVariantId": 100000090522,
                "productArtFileId": 10460,
                "status": 6,
                "fileName": "Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                "blankId": 96,
                "blankOptionValueId": 480,
                "blankPsdId": 611,
                "blankStageId": 112,
                "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                "imageTypeId": null,
                "size": null,
                "width": null,
                "height": null,
                "startedAt": "2021-10-11T07:20:59.000000Z",
                "finishedAt": "2021-10-11T07:21:48.000000Z",
                "deletedAt": null,
                "createdAt": "2021-10-11T07:20:34.000000Z",
                "updatedAt": "2021-10-11T07:21:48.000000Z",
                "retryCount": 0,
                "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup.png",
                "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85183\/Gildan_Youth_Hoodie_2_Purple_Mockup-thumb.png"
            },
            {
                "id": 85184,
                "accountId": 3,
                "productId": 100000006063,
                "productVariantId": 100000090523,
                "productArtFileId": 10460,
                "status": 6,
                "fileName": "Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                "blankId": 96,
                "blankOptionValueId": 483,
                "blankPsdId": 614,
                "blankStageId": 112,
                "processedUrl": "accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                "imageTypeId": null,
                "size": null,
                "width": null,
                "height": null,
                "startedAt": "2021-10-11T07:21:02.000000Z",
                "finishedAt": "2021-10-11T07:21:57.000000Z",
                "deletedAt": null,
                "createdAt": "2021-10-11T07:20:35.000000Z",
                "updatedAt": "2021-10-11T07:21:57.000000Z",
                "retryCount": 0,
                "fileUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                "imageUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup.png",
                "thumbUrl": "\/accounts\/3\/products\/100000006063\/mockup-files\/85184\/Gildan_Youth_Hoodie_2_Sport_Grey_Mockup-thumb.png"
            }
        ],
        "printFiles": [
            {
                "id": 12335,
                "accountId": 3,
                "productId": 100000006063,
                "productArtFileId": 10460,
                "blankPrintImageId": 135,
                "blankStageId": 112,
                "blankStageLocationId": 1,
                "blankId": 96,
                "status": 2,
                "fileName": "Gildan_Youth_Hoodie_2_Front_Print_File.png",
                "imageTypeId": 1,
                "size": 279035,
                "width": 2400,
                "height": 1800,
                "startedAt": "2021-10-11T09:02:32.000000Z",
                "finishedAt": null,
                "deletedAt": null,
                "createdAt": "2021-10-11T09:02:28.000000Z",
                "updatedAt": "2021-10-11T09:02:45.000000Z",
                "fileUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                "imageUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File.png",
                "thumbUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12335\/Gildan_Youth_Hoodie_2_Front_Print_File-thumb.png"
            },
            {
                "id": 12336,
                "accountId": 3,
                "productId": 100000006063,
                "productArtFileId": 10460,
                "blankPrintImageId": 639,
                "blankStageId": 112,
                "blankStageLocationId": 1,
                "blankId": 96,
                "status": 2,
                "fileName": "Gildan_Youth_Hoodie_2_Print_File.jpg",
                "imageTypeId": 2,
                "size": 5377,
                "width": 100,
                "height": 100,
                "startedAt": "2021-10-11T09:02:45.000000Z",
                "finishedAt": null,
                "deletedAt": null,
                "createdAt": "2021-10-11T09:02:29.000000Z",
                "updatedAt": "2021-10-11T09:02:52.000000Z",
                "fileUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File.jpg",
                "imageUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File.jpg",
                "thumbUrl": "\/accounts\/3\/products\/100000006063\/print-files\/12336\/Gildan_Youth_Hoodie_2_Print_File-thumb.jpg"
            }
        ]
    }
}

HTTP Request

GET api/v1/products/{id}

URL Parameters

Parameter Status Description
id required id

Hold Product Orders

Hold product orders

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/products/necessitatibus/orders-hold" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/products/necessitatibus/orders-hold"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/products/necessitatibus/orders-hold',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "message": "Upcoming product orders will be set on hold"
}

HTTP Request

POST api/v1/products/{id}/orders-hold

URL Parameters

Parameter Status Description
id required id

Release Product Orders

Release product orders

Example request:

curl -X POST \
    "https://api.teelaunch.com/api/v1/products/delectus/orders-release" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/products/delectus/orders-release"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.teelaunch.com/api/v1/products/delectus/orders-release',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "message": "Upcoming Product orders will be released"
}

HTTP Request

POST api/v1/products/{id}/orders-release

URL Parameters

Parameter Status Description
id required id

Stores

APIs For Managing Account Platforms Stores

Get Stores

Get stores

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/stores?limit=reprehenderit&page=perferendis" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/stores"
);

let params = {
    "limit": "reprehenderit",
    "page": "perferendis",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/stores',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'limit'=> 'reprehenderit',
            'page'=> 'perferendis',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 100000000004,
            "accountId": 3,
            "platformId": 2,
            "name": "TeelaunchGoods",
            "url": "https:\/\/www.etsy.com\/shop\/TeelaunchGoods",
            "enabled": 1,
            "createdAt": "2020-12-20T05:31:38.000000Z",
            "updatedAt": "2021-04-02T00:46:12.000000Z",
            "deletedAt": null,
            "platform": {
                "id": 2,
                "name": "Etsy",
                "managerClass": "SunriseIntegration\\Etsy\\EtsyManager",
                "logo": "\/images\/etsy.svg",
                "enabled": 1,
                "createdAt": "2020-07-24T04:23:40.000000Z",
                "updatedAt": "2020-10-28T21:26:53.000000Z"
            }
        },
        {
            "id": 100000000005,
            "accountId": 3,
            "platformId": 2,
            "name": "SortaPerfect",
            "url": "https:\/\/www.etsy.com\/shop\/SortaPerfect",
            "enabled": 1,
            "createdAt": "2020-12-20T05:34:27.000000Z",
            "updatedAt": "2021-04-02T00:46:34.000000Z",
            "deletedAt": null,
            "platform": {
                "id": 2,
                "name": "Etsy",
                "managerClass": "SunriseIntegration\\Etsy\\EtsyManager",
                "logo": "\/images\/etsy.svg",
                "enabled": 1,
                "createdAt": "2020-07-24T04:23:40.000000Z",
                "updatedAt": "2020-10-28T21:26:53.000000Z"
            }
        }
    ]
}

HTTP Request

GET api/v1/stores

Query Parameters

Parameter Status Description
limit optional paging limit
page optional default value is 1

Get Store

Get store by Id

Example request:

curl -X GET \
    -G "https://api.teelaunch.com/api/v1/stores/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://api.teelaunch.com/api/v1/stores/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.teelaunch.com/api/v1/stores/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 100000000004,
        "accountId": 3,
        "platformId": 2,
        "name": "TeelaunchGoods",
        "url": "https:\/\/www.etsy.com\/shop\/TeelaunchGoods",
        "enabled": 1,
        "createdAt": "2020-12-20T05:31:38.000000Z",
        "updatedAt": "2021-04-02T00:46:12.000000Z",
        "deletedAt": null,
        "platform": {
            "id": 2,
            "name": "Etsy",
            "managerClass": "SunriseIntegration\\Etsy\\EtsyManager",
            "logo": "\/images\/etsy.svg",
            "enabled": 1,
            "createdAt": "2020-07-24T04:23:40.000000Z",
            "updatedAt": "2020-10-28T21:26:53.000000Z"
        }
    }
}

HTTP Request

GET api/v1/stores/{store}

URL Parameters

Parameter Status Description
id required Store Id