Skip to main content
POST
/
v1
/
products
Create products
curl --request POST \
  --url https://api.quickbutik.com/v1/products \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "My white tee!",
  "sku": "T-SHIRT123",
  "is_giftcard": true,
  "description": "<p><strong>This is so so cool!</strong> Heee</p>",
  "price": 299,
  "before_price": 399,
  "purchase_price": 69,
  "tax_rate": 123,
  "weight": 400,
  "stock": 1,
  "disable_minusqty": "1",
  "gtin": "<string>",
  "headcategory_id": 123,
  "headcategory_name": "T-shirts",
  "visible": 1,
  "images": {},
  "metadata": {},
  "preorder": 1,
  "permanent_redirect_from_url": "<string>",
  "skipIfDuplicate": true,
  "variants": {
    "sync": [
      {
        "variant_option1_name": "Color",
        "variant_option1_value": "Red",
        "variant_option2_name": "Size",
        "variant_option2_value": "Large",
        "variant_option3_name": "<string>",
        "variant_option3_value": "<string>",
        "variant_option4_name": "<string>",
        "variant_option4_value": "<string>",
        "variant_option5_name": "<string>",
        "variant_option5_value": "<string>",
        "sku": "<string>",
        "price": 123,
        "purchase_price": 123,
        "qty": 123,
        "qty_location": "<string>",
        "before_price": 123,
        "gtin": "<string>",
        "supplier_sku": "<string>",
        "weight": 123,
        "visible": 0,
        "images": [
          {}
        ]
      }
    ],
    "add": [
      {
        "variant_option1_name": "Color",
        "variant_option1_value": "Red",
        "variant_option2_name": "Size",
        "variant_option2_value": "Large",
        "variant_option3_name": "<string>",
        "variant_option3_value": "<string>",
        "variant_option4_name": "<string>",
        "variant_option4_value": "<string>",
        "variant_option5_name": "<string>",
        "variant_option5_value": "<string>",
        "sku": "<string>",
        "price": 123,
        "purchase_price": 123,
        "qty": 123,
        "qty_location": "<string>",
        "before_price": 123,
        "gtin": "<string>",
        "supplier_sku": "<string>",
        "weight": 123,
        "visible": 0,
        "preorder": 1,
        "images": [
          {}
        ]
      }
    ]
  }
}
'
{
  "success": 1,
  "variants": [
    {}
  ],
  "notices": [
    "<string>"
  ]
}

Authorizations

Authorization
string
header
required

Basic Authentication with API Keys

The Quickbutik API uses Basic Authentication where you use your API key as both the username and password.

How it works:

  1. Format your credentials as api_key:api_key (using the SAME API key for both username and password)
  2. Base64 encode the formatted string
  3. Include in the Authorization header as: Authorization: Basic ENCODED_STRING

Example:

  • API Key: sk_live_abc123
  • Formatted: sk_live_abc123:sk_live_abc123
  • Base64 Encoded: c2tfbGl2ZV9hYmMxMjM6c2tfbGl2ZV9hYmMxMjM=
  • Header: Authorization: Basic c2tfbGl2ZV9hYmMxMjM6c2tfbGl2ZV9hYmMxMjM=

cURL Example:

curl https://api.quickbutik.com/v1/orders -u your_api_key:your_api_key

All API requests must be made over HTTPS. Requests made over HTTP will be rejected.

API keys can be generated in the Quickbutik Control Panel under Settings → API.

Body

application/json
title
string
required

Product title

Example:

"My white tee!"

sku
string

Article Number (SKU)

Example:

"T-SHIRT123"

is_giftcard
boolean

Mark this product as a gift card. Requires the gift card app to be active for the shop.

Example:

true

description
string

Product description. Accepts HTML

Example:

"<p><strong>This is so so cool!</strong> Heee</p>"

price
integer

Price

Example:

299

before_price
integer

Compare price

Example:

399

purchase_price
integer

Purchase price (excl. vat)

Example:

69

tax_rate
integer

VAT percent (%)

weight
number

Weight (in grams)

Example:

400

stock
integer

Stock quantity

Example:

1

disable_minusqty
string

Stock: Disable minus quantity?

Example:

"1"

gtin
string

EAN-number / GTN (Global Trade Item Number)

headcategory_id
integer

Optional: Category id if a product should be placed into a specific category

headcategory_name
string

Optional: Category name if product should be placed into a new category

Example:

"T-shirts"

visible
integer

Visibility in store

Example:

1

images
object

Object with numeric string keys containing image objects. Each key represents an image position/index.

metadata
object

Custom metadata for the product

preorder
integer | null

Assign a preorder option to this product by its ID. Set to null or 0 to leave it as a regular product. Use GET /v1/settings/preorders to retrieve the list of valid preorder option IDs for your store.

Example:

1

permanent_redirect_from_url
string

URL to create a permanent redirect from (for SEO purposes)

skipIfDuplicate
boolean

Skip creation if product with same SKU already exists

variants
object

Product variants configuration

Response

Product created successfully

success
integer
Example:

1

variants
object[]

Created product variants

notices
string[]

Optional warning or error messages