Help Needed with Correct JSON Structure for Etsy API in a Print-On-Demand Scenario

Hello Make.com Community,

I’m building an automation scenario that integrates Dropbox, Printify, and Etsy to create Print on Demand posters. While most of the scenario functions as expected, I am encountering a persistent issue with the JSON formatting required by the Etsy API, specifically when trying to modify an Etsy listing with multiple color variants that are linked to Printify product via unique SKUs.

Goal:

My aim is to create Etsy listings where each product variant, corresponding to a different color, links back to its specific product on Printify. The challenge lies in structuring the JSON correctly to include multiple color variants per listing according to Etsy’s API requirements.

Issue:

The JSON I am currently generating is not accepted by Etsy’s API. Based on the error message received, there appears to be a problem with the structure of my JSON, particularly with how certain keys are nested or formatted. The differences are obvious from the working JSON example below and the non-working one that is output from my Create JSON module. (I dont have the experience to fix it though)

Error Message from Etsy:

“Array contains invalid keys: price, values, quantity, scale_id, value_ids, is_enabled”

This indicates that my JSON structure includes keys in incorrect locations or contexts.

Current JSON Format (Non-Working):

{
“products”: [
{
“sku”: “33657885355821525247”,
“price”: “69”,
“values”: “Red”,
“quantity”: “999”,
“scale_id”: “1”,
“value_ids”: “101”,
“is_enabled”: “true”,
“property_id”: “1”,
“property_name”: “Color”
},
{
“sku”: “18410885311790648307”,
“price”: “69”,
“values”: “Orange”,
“quantity”: “999”,
“scale_id”: “1”,
“value_ids”: “101”,
“is_enabled”: “true”,
“property_id”: “1”,
“property_name”: “Color”
},
{
“sku”: “36083950315634123334”,
“price”: “69”,
“values”: “Blue”,
“quantity”: “999”,
“scale_id”: “1”,
“value_ids”: “101”,
“is_enabled”: “true”,
“property_id”: “1”,
“property_name”: “Color”
},
{
“sku”: “26944425828331204527”,
“price”: “69”,
“values”: “Green”,
“quantity”: “999”,
“scale_id”: “1”,
“value_ids”: “101”,
“is_enabled”: “true”,
“property_id”: “1”,
“property_name”: “Color”
},
{
“sku”: “82358702278640520354”,
“price”: “69”,
“values”: “Grey”,
“quantity”: “999”,
“scale_id”: “1”,
“value_ids”: “101”,
“is_enabled”: “true”,
“property_id”: “1”,
“property_name”: “Color”
}
],
“property_id”: [
1
],
“sku_on_property”: [
1
],
“price_on_property”: [
1
],
“quantity_on_property”: [
1
]
}

Expected JSON Format (Working):

{
“products”: [
{
“sku”: “NEW_SKU_1”,
“property_values”: [
{
“property_id”: 1,
“value_ids”: [
101
],
“scale_id”: 1,
“property_name”: “Color”,
“values”: [
“Variant Name Here - COLOR 1”
]
}
],
“offerings”: [
{
“price”: 69,
“quantity”: 999,
“is_enabled”: true
}
]
},
{
“sku”: “NEW_SKU_2”,
“property_values”: [
{
“property_id”: 1,
“value_ids”: [
102
],
“scale_id”: 1,
“property_name”: “Color”,
“values”: [
“Variant Name Here - COLOR 2”
]
}
],
“offerings”: [
{
“price”: 79,
“quantity”: 999,
“is_enabled”: true
}
]
},
{
“sku”: “NEW_SKU_3”,
“property_values”: [
{
“property_id”: 1,
“value_ids”: [
103
],
“scale_id”: 1,
“property_name”: “Color”,
“values”: [
“Variant Name Here - COLOR 3”
]
}
],
“offerings”: [
{
“price”: 89,
“quantity”: 999,
“is_enabled”: true
}
]
},
{
“sku”: “NEW_SKU_4”,
“property_values”: [
{
“property_id”: 1,
“value_ids”: [
101
],
“scale_id”: 1,
“property_name”: “Color”,
“values”: [
“Variant Name Here - COLOR 4”
]
}
],
“offerings”: [
{
“price”: 69,
“quantity”: 999,
“is_enabled”: true
}
]
},
{
“sku”: “NEW_SKU_5”,
“property_values”: [
{
“property_id”: 1,
“value_ids”: [
101
],
“scale_id”: 1,
“property_name”: “Color”,
“values”: [
“Variant Name Here - COLOR 5”
]
}
],
“offerings”: [
{
“price”: 69,
“quantity”: 999,
“is_enabled”: true
}
]
}
],
“property_id”: [
1
],
“price_on_property”: [
1
],
“quantity_on_property”: [
1
],
“sku_on_property”: [
1
]
}

Steps I’ve Tried:

  • I have used array aggregators and JSON creators in Make to structure the output.
  • I’ve adjusted the mappings between variables and JSON fields.

Screenshots:

  • I will include a screenshot of an abridged version of my workflow with sample data focusing on the JSON creation and the API posting to Etsy.



Could anyone guide me on how to correct the JSON structure to fit Etsy’s API requirements? Insights, examples, or any form of help would be greatly appreciated!

Thank you!

1 Like

You haven’t created required json format. You just have created your data in json format. I dont have screenshot to share as i haven’t worked on this specific call recently.

I did used the etsy api so i know that you are doing completely wrong by not editing your code.

Princy Jain
Make consultant,
For consulting support: Follow up Automated

2 Likes

Hello Princy,

Thanks for your feedback. I realize I need to fix my JSON structure to work with Etsy’s API.

Since I’m new to using this API, could you please give me some tips on how to set up the “Product property_values” and “offerings” correctly? Any advice or direction would be really helpful.

Thank you so much for your help!

@Brian2 Adjusting whole code here is lengthy process. And explaining how to edit by writing here is impossible.

I can only guide to use create JSON module to create properties and then use in your scenario.
Princy Jain
Make consultant,
For consulting support: Follow up Automated

1 Like

Thank you, Princy, for your suggestions. I’ll look into using the Create JSON module as you advised and see if I can make further progress.

I appreciate your time and help!

Let me know here if you have any specific question woth screenshot i will try to help you out.