Get started

    API Endpoint

        https://api.bigvanet.com/v3
                

The Qstomizer API provides programmatic access to read the customizations data made with the Qstomizer App. Retrieve a list of customization orders, order details, high-resolution design files, etc.

To use this API, you need an V3 API key. You can get an API key from the App backend. You need to have subscribed to a specific subscription Plan. Check the website for more details. Please contact us at info@bigvanstudio.com if you have any doubt.

To make a call, it is necessary to pass the API key in the header of the call with the format API_KEY. See the examples for more info.

get orders

Get a list of product customizations included in orders.


# Here is a curl example
curl \
--location \
--request GET 'https://api.bigvanet.com/v3/orders?shop=mystore.myshopify.com
                &date_start=2000-01-01 00:00:00
                &date_end=2022-12-31 23:59:59
                &limit=2
                &included_in_order=1' \
--header 'API_KEY: [YOUR V3 API KEY]'
            

# Here is a NodeJS example using Axios
var axios = require('axios');

var config = {
  method: 'get',
  url: 'https://api.bigvanet.com/v3/orders?shop=mystore.myshopify.com
        &date_start=2000-01-01 00:00:00
        &date_end=2022-12-31 23:59:59
        &limit=2',
  headers: {
    'API_KEY': '[YOUR V3 API KEY]'
  }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
            

# Here is a PHP example using CURL
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.bigvanet.com/v3/orders?shop=mystore.myshopify.com
                &date_start=2000-01-01%2000:00:00
                &date_end=2022-12-31%2023:59:59
                &limit=2',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => array(
    'API_KEY: [YOUR V3 API KEY]'
    ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

            

CALL (GET):
https://api.bigvanet.com/v3/orders



Result example :

{
    "statusCode": 200,
    "headers": {
        "Content-type": "application/json",
        "access-control-allow-origin": "*",
        "API": "Qstomizer API v3.0"
    },
    "body": {
        "version": 3,
        "error": false,
        "error_message": "",
        "data": [
            {
                "order_id": 779092,
                "order_date": "2022/09/01 01:43",
                "status_id": 1,
                "status_date": "2022/09/01 01:43",
                "hex_color": "",
                "template_id": 522273,
                "product_title": "2\" x 2\" Custom Rubber Stamp - No Handle / No Ink",
                "comments": "",
                "user_notes": "Please, contact us before proceed.",
                "user_agent": ""
            },
            {
                "order_id": 779092,
                "order_date": "2022/09/01 01:43",
                "status_id": 1,
                "status_date": "2022/09/01 01:43",
                "hex_color": "",
                "template_id": 512275,
                "product_title": "2\" x 2\" Custom Rubber Stamp - Add Handle / No Ink",
                "comments": "",
                "user_notes": "Please, contact us before proceed.",
                "user_agent": ""
            }
        ]
    }
}
                

QUERY PARAMETERS

Field Type Description
shop String Shopify store URL with the format [merchanstore].myshopify.com.
Example: mystore.myshopify.com
date_start String Start date with the format YEAR-MONTH-DAY HOUR:MINUTE:SECOND.
date_end String End date with the format YEAR-MONTH-DAY HOUR:MINUTE:SECOND.
limit Number (optional - default 25) A limit on the number of objects to be returned, between 1 and 250.


RESULTS

Field Type Description
order_id Number ID of the customization order in the Qstomizer system.
order_date String Date and hour of the customization with the format YEAR-MONTH-DAY HOUR:MINUTE.
status_id Number Status of the order. Possible values:
1: Pending
2: Stopped
3: In Production
4: Finished
5: Canceled
6: Deleted
7: Artwork approval pending
status_date String Date and hour of the order status with the format YEAR-MONTH-DAY HOUR:MINUTE.
hex_color String Color of the product in Hexadecimal format.
template_id Number ID of the product template.
comments String Comments added by the merchant to the store.
user_notes String Notes added by the client to the customization order.
user_agent String Information about the device and browser where the customization was made.

get order

Get information about a specific customization order. Each side in the response includes a design_hd_url field that you can use to download the high-resolution design file on demand (see Get HD Design below).


# Here is a curl example
curl \
--location \
--request GET 'https://api.bigvanet.com/v3/order?shop=mystore.myshopify.com
                &orderId=1727839' \
--header 'API_KEY: [YOUR V3 API KEY]'
            

# Here is a NodeJS example using Axios
var axios = require('axios');

var config = {
  method: 'get',
  url: 'https://api.bigvanet.com/v3/order?shop=mystore.myshopify.com&orderId=1727839',
  headers: {
    'API_KEY': '[YOUR V3 API KEY]'
  }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
            

# Here is a PHP example using CURL
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.bigvanet.com/v3/order?shop=mystore.myshopify.com&orderId=1727839',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'API_KEY: [YOUR V3 API KEY]'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

            

CALL (GET):
https://api.bigvanet.com/v3/order



Result example :

{
    "statusCode": 200,
    "headers": {
        "Content-type": "application/json",
        "access-control-allow-origin": "*",
        "API": "Qstomizer API v3.0"
    },
    "body": {
        "version": 3,
        "error": false,
        "error_message": "",
        "data": {
            "customization_date": "2022/09/01 15:09",
            "status_id": 1,
            "status_date": "2022/09/01 15:09",
            "hex_color": "",
            "template_id": 52275,
            "comments": "",
            "user_notes": "Please, contact us before proceed.",
            "user_agent": "",
            "sides": [
                {
                    "side_id": 8443,
                    "side_name": "Front",
                    "image_url": "https://cdn.bigvanet.com/mystore.myshopify.com/orderimages/r57tmGMP5GNABA5RVJ7pj0p3b1664443576571.jpg",
                    "design_png": "https://cdn.bigvanet.com/mystore.myshopify.com/orderimages/r57tmGMP5GNABA5RVADssJ7pj0p3b1664443576571.png",
                    "design_hd_url": "https://qstomizer.bigvanet.com/backend/index.php?page=apiGenerateDesign&id_order=1789921&sideid=8443",
                    "generator_tool": "https://qstomizer.bigvanet.com/generator_tool/?sideid=8443&orderid=1789921&orderkey=633564ba88044428mh6j6h6x6pwjm8mqwp6j6cwfu46lw86o6cmhwc68wjwcuewem",
                    "nodes": [
                        {
                            "type": "image",
                            "formatOrigen": "clipart",
                            "id": "grupoimage0",
                            "position": { "x": 308.94, "y": 160.99 },
                            "scale": { "x": 0.9505, "y": 0.9505 },
                            "rotation": 0,
                            "size": { "width": 200, "height": 202 },
                            "src": "https://cdn.bigvanet.com/clipart/people/00-png/basketball-player.png",
                            "keepRatio": true,
                            "globalScale": 1,
                            "isEditable": false,
                            "originalFileUrl": "https://cdn.bigvanet.com/clipart/people/00-png/basketball-player.png"
                        },
                        {
                            "type": "text",
                            "id": "grupotexto1",
                            "position": { "x": 321.78, "y": 365.14 },
                            "fill": "#ffe599",
                            "hasStroke": true,
                            "stroke": "#000000",
                            "strokeWidth": 1.97,
                            "align": "center",
                            "fontSize": 40,
                            "fontFamily": "Carter One",
                            "text": "BASKETBALL",
                            "fillpattern": "",
                            "scale": { "x": 0.6845, "y": 0.6845 },
                            "rotation": -5.208,
                            "keepRatio": true,
                            "lineHeight": 1,
                            "globalScale": 1,
                            "shadowEnabled": true,
                            "shadowColor": "#fff",
                            "shadowOffset": { "x": 0, "y": 0 },
                            "shadowBlur": 0
                        }
                    ]
                },
                {
                    "side_id": 8414,
                    "side_name": "Back",
                    "image_url": "https://cdn.bigvanet.com/mystore.myshopify.com/orderimages/sZABUV0DTaVpcpRbZ6sDuIr2U1664443576548.jpg",
                    "design_png": "",
                    "design_hd_url": "https://qstomizer.bigvanet.com/backend/index.php?page=apiGenerateDesign&id_order=1789921&sideid=8414",
                    "generator_tool": "https://qstomizer.bigvanet.com/generator_tool/?sideid=8414&orderid=1789921&orderkey=633564ba880428mh6j6h6x6pwjm8mqwp6j6cwfu46lw86o6cmhwc68wjwcuewem",
                    "nodes": []
                }
            ],
            "options_selected": {
                "variation_id": "32277",
                "option1": "Size",
                "option1_value": "Small",
                "option2": "Color",
                "option2_value": "White",
                "option3": null,
                "option3_value": null,
                "color": "#FFFFFF",
                "color_des": "White",
                "variantSelected": {
                    "id": 42232624808105,
                    "title": "Small / White",
                    "price": "500.00",
                    "sku": "",
                    "inventory_quantity": 1000,
                    "qty": 1
                },
                "isProductSummary": true
            },
            "orders": [
                {
                    "shopify_order_id": 4889333336255,
                    "shopify_order_name": "#3891",
                    "shopify_id_product": 7504436314495,
                    "shopify_variant_id": 42618944895551,
                    "quantity": 1
                }
            ]
        }
    }
}
                

QUERY PARAMETERS

Field Type Description
shop String Shopify store URL with the format [merchanstore].myshopify.com.
Example: mystore.myshopify.com
orderId Number Id of the customization order in the Qstomizer system.


RESULTS

Field Type Description
customization_date String Date and hour of the customization with the format YEAR-MONTH-DAY HOUR:MINUTE.
status_id Number Status of the order. Possible values:
1: Pending
2: Stopped
3: In Production
4: Finished
5: Canceled
6: Deleted
7: Artwork approval pending
status_date String Date and hour of the order status with the format YEAR-MONTH-DAY HOUR:MINUTE.
hex_color String Color of the product in Hexadecimal format.
template_id Number ID of the product template.
comments String Comments added by the merchant to the order.
user_notes String Notes added by the client to the customization order.
user_agent String Information about the device and browser where the customization was made.
orders JSON Information about the Shopify orders that contain this customization. The customer can order this product one or more times.
shopify_order_id: The Shopify internal ID of the order.
shopify_order_name: The order name used by the merchant (e.g. #1046).
shopify_id_product: ID of the product in Shopify.
shopify_variant_id: ID of the product variant in Shopify.
quantity: Quantity ordered.
sides JSON Customization data separated by product sides. Each side contains:
side_id: ID of the side.
side_name: Name of the side (e.g. Front, Back).
image_url: URL of the customization preview image for that side.
design_png: URL of the design in PNG format, cropped using the die-cut lines.
design_hd_url: Endpoint to request the high-resolution design file on demand. Requires your API_KEY header. See Get HD Design.
generator_tool: URL that opens the generator tool to access and download the design.
nodes: JSON array with all the design element specs (images and texts used to create the design).
options_selected: JSON object with the product variation selected by the customer.

get hd design

Returns a temporary signed URL to download the high-resolution design file (PNG or PDF) for a specific order side. The file is generated on demand using the product's print settings and cached automatically for subsequent requests.

This is a two-step workflow: first call Get Order to retrieve the design_hd_url for each side, then call that URL with your API_KEY header to get the signed download link.


# Here is a curl example
curl \
--location \
--request GET 'https://qstomizer.bigvanet.com/backend/index.php
                ?page=apiGenerateDesign
                &id_order=1789921
                &sideid=8443' \
--header 'API_KEY: [YOUR V3 API KEY]'
            

# Here is a NodeJS example using Axios
var axios = require('axios');

// Step 1 — get the order to obtain design_hd_url for each side
var orderRes = await axios.get('https://api.bigvanet.com/v3/order', {
  params: { shop: 'mystore.myshopify.com', orderId: 1789921 },
  headers: { 'API_KEY': '[YOUR V3 API KEY]' }
});

var sides = orderRes.data.body.data.sides;

// Step 2 — request the HD file for each side
for (var side of sides) {
  var hdRes = await axios.get(side.design_hd_url, {
    headers: { 'API_KEY': '[YOUR V3 API KEY]' }
  });

  if (hdRes.data.ok) {
    console.log('Side:', side.side_name);
    console.log('Download URL:', hdRes.data.url);      // signed S3 URL, valid 15 min
    console.log('Expires at:', hdRes.data.expires_at);
    console.log('Cached:', hdRes.data.cached);
  }
}
            

# Here is a PHP example using CURL
function getHDDesignUrl($designHdUrl, $apiKey) {
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => $designHdUrl,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'GET',
        CURLOPT_HTTPHEADER => array(
            'API_KEY: ' . $apiKey
        ),
    ));
    $response = json_decode(curl_exec($curl), true);
    curl_close($curl);
    return $response;
}

// Step 1 — get the order
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.bigvanet.com/v3/order?shop=mystore.myshopify.com&orderId=1789921',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => array('API_KEY: [YOUR V3 API KEY]'),
));
$order = json_decode(curl_exec($curl), true);
curl_close($curl);

// Step 2 — download HD file for each side
foreach ($order['body']['data']['sides'] as $side) {
    $result = getHDDesignUrl($side['design_hd_url'], '[YOUR V3 API KEY]');
    if ($result['ok']) {
        // $result['url'] is a signed S3 URL valid for 15 minutes
        file_put_contents('side_' . $side['side_id'] . '.png', file_get_contents($result['url']));
    }
}
            

CALL (GET):
https://qstomizer.bigvanet.com/backend/index.php?page=apiGenerateDesign



Result example :

{
    "ok": true,
    "url": "https://s3.amazonaws.com/qstomizeruserimages/mystore.myshopify.com/hd/order-1789921-side-8443.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&...",
    "expires_at": "2025-06-09T16:00:00Z",
    "cached": false
}
                

REQUEST HEADERS

Header Required Description
API_KEY Yes Your V3 API Key. Also accepted as x-api-key or Authorization: Bearer <key>.


QUERY PARAMETERS

Field Type Description
page String Must be apiGenerateDesign.
id_order Number Qstomizer customization order ID. Obtained from Get Orders or Get Order.
sideid Number Side ID to generate. Obtained from sides[].side_id in the Get Order response.


RESULTS

Field Type Description
ok Boolean true if the HD file was generated or retrieved successfully.
url String Signed S3 URL to download the HD design file. Valid for 15 minutes. Download the file before it expires; after that, call this endpoint again to get a fresh URL.
expires_at String ISO 8601 datetime indicating when the signed URL expires.
cached Boolean true if the file was already cached from a previous request (faster response). false if it was generated fresh.


ERROR RESPONSES

HTTP Code error value Description
401 Missing API_KEY header No API_KEY header was included in the request.
401 Invalid API_KEY The API key does not exist or the account does not have API access.
400 Missing id_order or sideid One or both required parameters are missing or zero.
404 Order not found The order does not exist or does not belong to your store.
429 quota_exceeded Monthly HD generation limit reached for your subscription plan.
503 (generation error) The HD file generation failed. Wait a few seconds and retry.