IMPORTANT
Our API is continuously in development. You will be notified of upcoming changes ahead of time so keep a look out for any updates.
Developers have access to the Kickflip API to retrieve designs and orders data. This section will help you understand which parts of Kickflip you can access and how to work with them.
API access
In order to access orders information within Kickflip Rest API, you must generate an API key. The key should be used following JWT specification.
CAUTION
Do not share the tokens with anyone outside your organization.
Pagination
We use pagination to allow you to fetch orders or designs. To fetch the first result, do not include or set lastIndex parameter to 0. To fetch the subsequent results, use the lastIndex number from your previous request, in the pagination section. You will reach the last result page when the collectionSize is equal as the lastIndex, or when the resultSize is 0.
Orders
Get all orders
https://api.mycustomizer.com/brands/{companyname}/
orders
This endpoint allows you to get your brand's orders.
Example : GET https://api.mycustomizer.com/brands/myamazingbrand/orders
Request
Path Parameters |
|
|
companyname |
| Your company / brand name. |
Headers |
|
|
Authorization (REQUIRED) |
| API access token (JWT). The header should resemble this : Authorization: Bearer <token> |
Query Parameters |
|
|
lastIndex (OPTIONAL) |
| Define the pagination. See pagination description. Will return the remaining results after result #. Cannot be 0 or exceed "collectionSize" (collectionSize is given in the response body). |
sortOrder (OPTIONAL) |
| Sort your results by "ascending" or "descending" order. By default it will be "descending" |
count (OPTIONAL) |
| Amount of orders. By default, 25 orders will be returned. Cannot be 0. |
sortKey (OPTIONAL) |
| Sorts your results by either "orderId" or by "date". By default, it will be the orderId. |
Response
200: OK
Orders successfully retrieved.
{
"pagination": {
"collectionSize": 2,
"resultSize": 1,
"lastIndex": 0,
"sortOrder": "ascending",
"sortKey": "orderId"
},
"results": [
{
"currency": "CAD",
"status": "pending",
"paymentStatus": "paid",
"statusHistory": [
{
"status": "pending",
"date": "2019-02-23T17:52:35.202Z"
}
],
"exchangeRateAtCreation": 0.7276461903834083,
"transactionFeePercentage": 1.9,
"trial": false,
"_id": "5e69254b714841168b8d9825",
"eCommerceOrderId": "1014154653754",
"eCommerceOrderName": "#1001",
"store": "5e55926a61f7b78c20f298f6",
"items": [
{
"quantity": 1,
"design": "5e692525714841158b8d9825"
}
],
"totalPrice": 234,
"date": "2019-02-11T17:52:11.776Z",
"orderId": 2,
"__v": 0,
"id": "5e69254b714841168b8d9825"
}
]
}
401: Unauthorized
Wrong or absent Authorization header
Invalid credentials
500: Internal Server Error
Bad request param
Invalid sort value: { orderId: dsfdsdf }
Get order by id
https://api.mycustomizer.com/brands/{companyname}
/orders/:id
Get a specific order by its id
Request
Path Parameters |
|
|
id (REQUIRED) |
| The requested order id. |
companyname (REQUIRED) |
| Your company / brand name. |
Headers |
|
|
Authorization (REQUIRED) |
| API access token (JWT). The header should resemble this : Authorization: Bearer <token> |
Response
200: OK
{
"currency": "CAD",
"status": "pending",
"paymentStatus": "paid",
"statusHistory": [
{
"status": "pending",
"date": "2019-02-23T17:52:35.202Z"
}
],
"exchangeRateAtCreation": 0.7276461903834083,
"transactionFeePercentage": 1.9,
"trial": false,
"_id": "5e69254b714841168b8d9825",
"eCommerceOrderId": "1014154653754",
"eCommerceOrderName": "#1001",
"store": "5e55926a61f7b78c20f298f6",
"items": [
{
"quantity": 1,
"design": "5e692525714841158b8d9825"
}
],
"totalPrice": 234,
"date": "2019-02-11T17:52:11.776Z",
"orderId": 2,
"__v": 0,
"id": "5e69254b714841168b8d9825"
}
404: Not Found
Order does not exist
Not Found
Designs
Get Designs
https://api.mycustomizer.com/brands/{companyname}
/designs
This endpoint allows you to get your brand's designs.
Example: GET https://api.mycustomizer.com/brands/myamazingbrand/designs?lastIndex=1&count=23&backwards=true
Request
Path Parameters |
|
|
companyname (REQUIRED) |
| Your company / brand name. |
Headers |
|
|
Authentication (REQUIRED) |
| API access token (JWT). The header should resemble this : Authorization: Bearer <token> |
Query Parameters |
|
|
lastIndex (OPTIONAL) |
| Define the pagination. See pagination description in Endpoints page. Will return the remaining results after result #<lastIndex>. Cannot be 0 or exceed "collectionSize" (collectionSize is given in the response body). |
count (OPTIONAL) |
| Amount of designs. By default, 25 designs will be returned. Cannot be 0. |
backwards (OPTIONAL) |
| Sort in ascending order (false) or in descending order (true). Default value is false. |
sortKey (OPTIONAL) |
| Whether the cake should be gluten-free or not. |
Response
200: OK
Designs successfully retrieved.
{
"pagination": {
"collectionSize": 2,
"resultSize": 1,
"lastIndex": 1,
"sortOrder": "descending",
"sortKey": "designId"
},
"results": [
{
"productionData": [
{
"key": "Body material",
"value": "Bright Red",
"ref": {
"optionId": "OPTION-3yvzws",
"choiceId": "CHOICE-3z0yrg"
}
},
{
"key": "Pickguard material",
"value": "White",
"ref": {
"optionId": "OPTION-3yy27g",
"choiceId": "CHOICE-3zjli5"
}
},
{
"key": "Controls material",
"value": "Black",
"ref": {
"optionId": "OPTION-3z1sy4",
"choiceId": "CHOICE-3gkyxt"
}
},
{
"key": "Pickups material",
"value": "White",
"ref": {
"optionId": "OPTION-3z59m4",
"choiceId": "CHOICE-3z4m5p"
}
},
{
"key": "Logo logo",
"value": "https://cdn1.mczr.co/companyname/5ba28ac92f99bd001016621c.png",
"ref": {
"optionId": "OPTION-3zepsg",
"choiceId": "CHOICE-670j8j"
}
},
{
"key": "Sticker image",
"value": "Red heart",
"ref": {
"optionId": "OPTION-2rhdgx",
"choiceId": "CHOICE-2rkgpd"
}
},
{
"key": "Name font",
"value": "Bodoni",
"ref": {
"optionId": "OPTION-1xxzli",
"choiceId": "CHOICE-1xniva"
}
},
{
"key": "Name color",
"value": "Red",
"ref": {
"optionId": "OPTION-1xyd12",
"choiceId": "CHOICE-1xsnli"
}
}
],
"summary": [
{
"key": "Body",
"value": "Bright Red"
},
{
"key": "Pickguard",
"value": "White"
},
{
"key": "Controls",
"value": "Black"
},
{
"key": "Pickups",
"value": "White"
},
{
"key": "Your name"
},
{
"key": "Sticker",
"value": "Red heart"
}
],
"designImages": [
{
"_id": "5e74283608310f001714de62",
"originalFilename": "topnotchdesignname-1.png",
"size": 586761,
"date": "2020-03-20T02:19:34.739Z",
"filename": "5e74283608310f001714de62.png",
"url": "https://cdnv2.mycustomizer.com/companyname/5e74283608310f001714de62.png",
"__v": 0
}
],
"_id": "5e74283608310f001714de63",
"price": 123,
"configuration": {
"OPTION-3yt018": "CHOICE-3ytdoc",
"OPTION-3yvwjw": "CHOICE-3ywa70",
"OPTION-3yvzws": "CHOICE-3z0yrg",
"OPTION-3yxyuk": "CHOICE-3z0drw",
"OPTION-3yy27g": "CHOICE-3zjli5",
"OPTION-3z1pl8": "CHOICE-3z2db0",
"OPTION-3z1sy4": "CHOICE-3gkyxt",
"OPTION-3z5698": "CHOICE-3ycmbg",
"OPTION-3z59m4": "CHOICE-3z4m5p",
"OPTION-3zemfk": "CHOICE-3zeccw",
"OPTION-3zepsg": {
"id": "CHOICE-670j8j",
"name": "Custom logo",
"code": "",
"description": "",
"thumbnail": null,
"type": "logo",
"views": [
{
"type": "logo",
"logo": {
"_id": "5ba28ac92f99bd001016621c",
"originalFilename": "yourlogo.png",
"size": 9539,
"date": "2018-09-19T17:43:37.742Z",
"filename": "5ba28ac92f99bd001016621c.png",
"url": "https://cdn1.mczr.co/companyname/5ba28ac92f99bd001016621c.png",
"id": "5ba28ac92f99bd001016621c"
}
}
]
},
"OPTION-3zet5c": "CHOICE-3zej2o",
"OPTION-3zewi8": "CHOICE-3zefps",
"OPTION-2rhdgx": "CHOICE-2rkgpd",
"OPTION-1xxzli": "CHOICE-1xniva",
"OPTION-1xy2ye": "CHOICE-1xhsdy",
"OPTION-1xy6ba": {
"id": "CHOICE-1xxsvq",
"type": "text",
"name": "Default text",
"views": [
{
"type": "text",
"text": "Your text"
}
]
},
"OPTION-1xy9o6": "CHOICE-1xxw8m",
"OPTION-1xyd12": "CHOICE-1xsnli",
"OPTION-1yhniv": "CHOICE-1yiedz",
"OPTION-3fwg80": "CHOICE-3fx734"
},
"productId": "5e2a0142c56085001093615b",
"productName": "Custom Guitar",
"customizerProductId": "5e2a0142c56085001093615a",
"designImage": {
"_id": "5e74283608310f001714de62",
"originalFilename": "topnotchdesignname-1.png",
"size": 586761,
"date": "2020-03-20T02:19:34.739Z",
"filename": "5e74283608310f001714de62.png",
"url": "https://cdnv2.mycustomizer.com/companyname/5e74283608310f001714de62.png",
"__v": 0
},
"store": "5e2a0143db252ec325e011f2",
"createdAt": "2020-03-20T02:19:34.964Z",
"updatedAt": "2020-03-20T02:19:34.964Z",
"designId": 2,
"__v": 0,
"id": "5e74283608310f001714de63"
}
]
}
404: Not Found
Could not find your company name
Trying to launch invalid tenant.
Get Design by id
https://api.mycustomizer.com/brands/{companyname}
/designs/:id
Request
Path Parameters |
|
|
id (REQUIRED) |
| The requested design id. |
companyname (REQUIRED) | string | Your company / brand name. |
Headers |
|
|
Authorization (REQUIRED) |
| API access token (JWT). The header should resemble this : Authorization: Bearer <token> |
Response
200: OK
Successfully retrieved the design
{
"productionData": [
{
"key": "Body material",
"value": "Bright Red",
"ref": {
"optionId": "OPTION-3yvzws",
"choiceId": "CHOICE-3z0yrg"
}
},
{
"key": "Pickguard material",
"value": "White",
"ref": {
"optionId": "OPTION-3yy27g",
"choiceId": "CHOICE-3zjli5"
}
},
{
"key": "Controls material",
"value": "Black",
"ref": {
"optionId": "OPTION-3z1sy4",
"choiceId": "CHOICE-3gkyxt"
}
},
{
"key": "Pickups material",
"value": "White",
"ref": {
"optionId": "OPTION-3z59m4",
"choiceId": "CHOICE-3z4m5p"
}
},
{
"key": "Logo logo",
"value": "https://cdn1.mczr.co/companyname/5ba28ac92f99bd001016621c.png",
"ref": {
"optionId": "OPTION-3zepsg",
"choiceId": "CHOICE-670j8j"
}
},
{
"key": "Sticker image",
"value": "Red heart",
"ref": {
"optionId": "OPTION-2rhdgx",
"choiceId": "CHOICE-2rkgpd"
}
},
{
"key": "Name font",
"value": "Bodoni",
"ref": {
"optionId": "OPTION-1xxzli",
"choiceId": "CHOICE-1xniva"
}
},
{
"key": "Name color",
"value": "Red",
"ref": {
"optionId": "OPTION-1xyd12",
"choiceId": "CHOICE-1xsnli"
}
}
],
"summary": [
{
"key": "Body",
"value": "Bright Red"
},
{
"key": "Pickguard",
"value": "White"
},
{
"key": "Controls",
"value": "Black"
},
{
"key": "Pickups",
"value": "White"
},
{
"key": "Your name"
},
{
"key": "Sticker",
"value": "Red heart"
}
],
"designImages": [
{
"_id": "5e74283608310f001714de62",
"originalFilename": "topnotchdesignname-1.png",
"size": 586761,
"date": "2020-03-20T02:19:34.739Z",
"filename": "5e74283608310f001714de62.png",
"url": "https://cdnv2.mycustomizer.com/companyname/5e74283608310f001714de62.png",
"__v": 0
}
],
"_id": "5e74283608310f001714de63",
"price": 123,
"configuration": {
"OPTION-3yt018": "CHOICE-3ytdoc",
"OPTION-3yvwjw": "CHOICE-3ywa70",
"OPTION-3yvzws": "CHOICE-3z0yrg",
"OPTION-3yxyuk": "CHOICE-3z0drw",
"OPTION-3yy27g": "CHOICE-3zjli5",
"OPTION-3z1pl8": "CHOICE-3z2db0",
"OPTION-3z1sy4": "CHOICE-3gkyxt",
"OPTION-3z5698": "CHOICE-3ycmbg",
"OPTION-3z59m4": "CHOICE-3z4m5p",
"OPTION-3zemfk": "CHOICE-3zeccw",
"OPTION-3zepsg": {
"id": "CHOICE-670j8j",
"name": "Custom logo",
"code": "",
"description": "",
"thumbnail": null,
"type": "logo",
"views": [
{
"type": "logo",
"logo": {
"_id": "5ba28ac92f99bd001016621c",
"originalFilename": "yourlogo.png",
"size": 9539,
"date": "2018-09-19T17:43:37.742Z",
"filename": "5ba28ac92f99bd001016621c.png",
"url": "https://cdn1.mczr.co/companyname/5ba28ac92f99bd001016621c.png",
"id": "5ba28ac92f99bd001016621c"
}
}
]
},
"OPTION-3zet5c": "CHOICE-3zej2o",
"OPTION-3zewi8": "CHOICE-3zefps",
"OPTION-2rhdgx": "CHOICE-2rkgpd",
"OPTION-1xxzli": "CHOICE-1xniva",
"OPTION-1xy2ye": "CHOICE-1xhsdy",
"OPTION-1xy6ba": {
"id": "CHOICE-1xxsvq",
"type": "text",
"name": "Default text",
"views": [
{
"type": "text",
"text": "Your text"
}
]
},
"OPTION-1xy9o6": "CHOICE-1xxw8m",
"OPTION-1xyd12": "CHOICE-1xsnli",
"OPTION-1yhniv": "CHOICE-1yiedz",
"OPTION-3fwg80": "CHOICE-3fx734"
},
"productId": "5e2a0142c56085001093615b",
"productName": "Custom Guitar",
"customizerProductId": "5e2a0142c56085001093615a",
"designImage": {
"_id": "5e74283608310f001714de62",
"originalFilename": "topnotchdesignname-1.png",
"size": 586761,
"date": "2020-03-20T02:19:34.739Z",
"filename": "5e74283608310f001714de62.png",
"url": "https://cdnv2.Kickflip.com/companyname/5e74283608310f001714de62.png",
"__v": 0
},
"store": "5e2a0143db252ec325e011f2",
"createdAt": "2020-03-20T02:19:34.964Z",
"updatedAt": "2020-03-20T02:19:34.964Z",
"designId": 2,
"__v": 0,
"id": "5e74283608310f001714de63"
}
Get bad words list
https://api.mycustomizer.com/brands/{companyname}/wordfilter
Request
Path Parameters |
|
|
companyname (REQUIRED) | string | Your company / brand name. |
Headers |
|
|
Authorization (REQUIRED) |
| API access token (JWT). The header should resemble this : Authorization: Bearer <token> |
Response
200: OK
Successfully retrieved the wordfilter
{
isActive: true,
words: ["bad-word-1", "bad word 2", "badWord3"]
}
Post bad words list
https://api.mycustomizer.com/brands/{companyname}/wordfilter
Request
Path Parameters |
|
|
companyname (REQUIRED) | string | Your company / brand name. |
Headers |
|
|
Authorization (REQUIRED) |
| API access token (JWT). The header should resemble this : Authorization: Bearer <token> |
Body |
|
|
isActive (OPTIONAL) | boolean |
|
words (OPTIONAL) | string[] | the full list of bad words as an array of strings |
Response
200: OK
Successfully retrieved the wordfilter
["bad-word-1", "bad word 2", "badWord3"]
404: Not Found
Not Found