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",
  "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": {},
  "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,
        "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"

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

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