Skip to main content
POST
/
api
/
v1
/
products
Create Product
curl --request POST \
  --url https://api.launchmystore.io/api/v1/products \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "<string>",
  "description": "<string>",
  "handle": "<string>",
  "vendor": "<string>",
  "product_type": "<string>",
  "status": "<string>",
  "tags": [
    {}
  ],
  "options": [
    {
      "name": "<string>",
      "values": [
        {}
      ]
    }
  ],
  "variants": [
    {
      "title": "<string>",
      "price": 123,
      "compare_at_price": 123,
      "sku": "<string>",
      "barcode": "<string>",
      "inventory_quantity": 123,
      "weight": 123,
      "weight_unit": "<string>",
      "option1": "<string>",
      "option2": "<string>",
      "option3": "<string>",
      "requires_shipping": true,
      "taxable": true
    }
  ],
  "images": [
    {
      "src": "<string>",
      "alt": "<string>",
      "position": 123
    }
  ]
}
'
{
  "success": true,
  "data": {}
}

Documentation Index

Fetch the complete documentation index at: https://docs.launchmystore.io/llms.txt

Use this file to discover all available pages before exploring further.

Create Product

Creates a new product in the store.

Request

curl -X POST "https://api.launchmystore.io/api/v1/products" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Classic T-Shirt",
    "description": "<p>A comfortable cotton t-shirt.</p>",
    "vendor": "MyBrand",
    "product_type": "Apparel",
    "status": "draft",
    "tags": ["cotton", "casual"],
    "variants": [
      {
        "title": "Small / Black",
        "price": 2500,
        "sku": "TSHIRT-S-BLK",
        "inventory_quantity": 50
      }
    ]
  }'

Body Parameters

title
string
required
The product title
description
string
Product description (supports HTML)
handle
string
URL-safe handle. Auto-generated from title if not provided
vendor
string
Product vendor/brand name
product_type
string
Product type or category
status
string
default:"draft"
Product status: active, draft, archived
tags
array
Array of tags for organizing and filtering products
options
array
Product options (e.g., Size, Color). Max 3 options per product.
variants
array
Array of product variants. At least one variant is required.
images
array
Array of product images

Response

success
boolean
Whether the request succeeded
data
object
The created product object (same structure as Get Product response)

Example Response

{
  "success": true,
  "data": {
    "id": "prod_new123",
    "title": "Classic T-Shirt",
    "handle": "classic-t-shirt",
    "description": "<p>A comfortable cotton t-shirt.</p>",
    "vendor": "MyBrand",
    "product_type": "Apparel",
    "status": "draft",
    "tags": ["cotton", "casual"],
    "variants": [
      {
        "id": "var_new456",
        "title": "Small / Black",
        "price": 2500,
        "sku": "TSHIRT-S-BLK",
        "inventory_quantity": 50
      }
    ],
    "images": [],
    "created_at": "2024-01-25T10:00:00Z",
    "updated_at": "2024-01-25T10:00:00Z"
  }
}

Error Codes

CodeDescription
UNAUTHORIZEDInvalid or missing access token
FORBIDDENApp doesn’t have write_products scope
VALIDATION_ERRORInvalid request body (see error details)
DUPLICATE_HANDLEA product with this handle already exists