{"openapi":"3.0.0","info":{"contact":{"x-twitter":"akeneopim"},"title":"Akeneo PIM REST API","version":"1.0.0","x-apisguru-categories":["enterprise"],"x-logo":{"url":"https://twitter.com/akeneopim/profile_image?size=original"},"x-origin":[{"format":"swagger","url":"https://raw.githubusercontent.com/akeneo/pim-api-docs/master/content/swagger/akeneo-web-api.json","version":"2.0"}],"x-providerName":"akeneo.com"},"paths":{"/api/oauth/v1/token":{"post":{"description":"This endpoint allows you to get an authentication token. No need to be authenticated to use this endpoint.","operationId":"post_token","parameters":[{"description":"Equal to 'application/json' or 'application/x-www-form-urlencoded', no other value allowed","in":"header","name":"Content-type","required":true,"schema":{"type":"string"}},{"description":"Equal to 'Basic xx', where 'xx' is the base 64 encoding of the client id and secret. Find out how to generate them in the <a href=\"/documentation/authentication.html#client-idsecret-generation\">Client ID/secret generation</a> section.","in":"header","name":"Authorization","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"grant_type":"password","password":"admin","username":"admin"},"properties":{"grant_type":{"description":"Always equal to \"password\"","type":"string"},"password":{"description":"Your PIM password","type":"string"},"username":{"description":"Your PIM username","type":"string"}},"required":["username","password","grant_type"],"type":"object"}}},"x-form-data":true},"responses":{"200":{"description":"Return an authentication token","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"access_token":{"description":"Authentication token that should be given in every authenticated request to the API","type":"string"},"expires_in":{"description":"Validity of the token given in seconds, 3600s = 1h by default","type":"integer"},"refresh_token":{"description":"Use this token when your access token has expired. See <a href=\"/documentation/authentication.html#refresh-an-expired-token\">Refresh an expired token</a> section for more details.","type":"string"},"scope":{"description":"Unused, always equal to \"null\"","type":"string"},"token_type":{"description":"Token type, always equal to \"bearer\"","type":"string"}},"type":"object"}},"access_token":{"examples":{"response":{"value":"ZTZmYjU4ZmQxZWNmMzk1M2NlYzA5NmFhNmIzVjExMzE4NmJmODBkZGIyYTliYmQyNjk2ZDQwZThmNjdiZDQzOQ"}}},"expires_in":{"examples":{"response":{"value":3600}}},"refresh_token":{"examples":{"response":{"value":"M2FlODI0OTE3ODMyNjViMzRiOWE5ODMyNWViMThkNDU5YzJjNjFiZjNkZWFjMzIyYjc4YTgzZWY1MjE5ZTY5Mw"}}},"scope":{"examples":{"response":{"value":null}}},"token_type":{"examples":{"response":{"value":"bearer"}}}}},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Get authentication token","tags":["Authentication"],"x-no-token":true,"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1":{"get":{"description":"This endpoint allows you to get the list of all the available endpoints. No need to be authenticated to use this endpoint.","operationId":"get_endpoints","responses":{"200":{"description":"Return the list of all available endpoints","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"authentication":{"description":"Endpoint to get the authentication token","type":"object"},"host":{"description":"Host name","type":"string"},"routes":{"description":"All the availables endpoints","type":"object"}},"type":"object"}},"authentication":{"examples":{"response":{"value":{"fos_oauth_server_token":{"methods":["POST"],"route":"/api/oauth/v1/token"}}}}},"host":{"examples":{"response":{"value":"https://demo.akeneo.com"}}},"routes":{"examples":{"response":{"value":{"pim_api_category_create":{"methods":["POST"],"route":"/api/rest/v1/categories"},"pim_api_category_get":{"methods":["GET"],"route":"/api/rest/v1/categories/{code}"},"pim_api_category_list":{"methods":["GET"],"route":"/api/rest/v1/categories"},"pim_api_category_partial_update":{"methods":["PATCH"],"route":"/api/rest/v1/categories/{code}"}}}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of all endpoints","tags":["Overview"],"x-no-token":true,"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/asset-categories":{"get":{"description":"This endpoint allows you to get a list of PAM asset categories. PAM asset categories are paginated and sorted by `root/left`.","operationId":"get_asset_categories","parameters":[{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Returns PAM asset categories paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"front_views","labels":{"en_US":"Front views","fr_FR":"Vues de face"},"parent":"pictures"},"properties":{"code":{"description":"PAM asset category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"PAM asset category labels for each locale","properties":{"localeCode":{"description":"PAM asset category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"PAM ssset category code of the parent's asset category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing asset category code. &#10;&bull; If equal to an existing asset category code, it cannot reference itself."}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"PAM Asset Categories","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-categories/pictures"}},"code":"pictures","labels":{"de_DE":"Bilder","en_US":"Pictures","fr_FR":"Images"},"parent":null},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-categories/front_views"}},"code":"front_views","labels":{"de_DE":"Vorderansichten","en_US":"Front views","fr_FR":"Vues de face"},"parent":"pictures"},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-categories/side_views"}},"code":"side_views","labels":{"de_DE":"Profilansichten","en_US":"Side views","fr_FR":"Vues de profil"},"parent":"pictures"}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/asset-categories?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/asset-categories?page=3&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/asset-categories?page=1&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-categories?page=2&limit=3"}}}}},"current_page":{"examples":{"response":{"value":2}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of PAM asset categories","tags":["PAM asset category"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]},"patch":{"description":"This endpoint allows you to update several PAM asset categories at once.","operationId":"patch_asset_categories","requestBody":{"content":{"application/json":{"schema":{"example":{"code":"front_views","labels":{"en_US":"Front views","fr_FR":"Vues de face"},"parent":"pictures"},"properties":{"code":{"description":"PAM asset category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"PAM asset category labels for each locale","properties":{"localeCode":{"description":"PAM asset category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"PAM ssset category code of the parent's asset category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing asset category code. &#10;&bull; If equal to an existing asset category code, it cannot reference itself."}},"required":["code"],"type":"object","x-examples":{"x-example-1":"{\"code\":\"pictures\",\"parent\":null}","x-example-2":"{\"code\":\"front_views\",\"parent\":\"pitures\"}","x-example-3":"{\"code\":\"other_views\",\"parent\":\"pictures\"}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"code\":\"spring_collection\",\"status_code\":201}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"code\":\"front_views\",\"status_code\":422,\"message\":\"Asset category \"pitures\" does not exist.\"}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"code\":\"other_views\",\"status_code\":204}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several PAM asset categories","tags":["PAM asset category"],"x-body-by-line":"Contains several lines, each line is a category in JSON standard format","x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]},"post":{"description":"This endpoint allows you to create a new PAM asset category.","operationId":"post_asset_categories","requestBody":{"content":{"application/json":{"schema":{"example":{"code":"front_views","labels":{"en_US":"Front views","fr_FR":"Vues de face"},"parent":"pictures"},"properties":{"code":{"description":"PAM asset category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"PAM asset category labels for each locale","properties":{"localeCode":{"description":"PAM asset category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"PAM ssset category code of the parent's asset category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing asset category code. &#10;&bull; If equal to an existing asset category code, it cannot reference itself."}},"required":["code"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new PAM asset category","tags":["PAM asset category"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]}},"/api/rest/v1/asset-categories/{code}":{"get":{"description":"This endpoint allows you to get the information about a given PAM asset category.","operationId":"get_asset_categories__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the asset category in JSON standard format","content":{"application/json":{"schema":{"example":{"code":"front_views","labels":{"en_US":"Front views","fr_FR":"Vues de face"},"parent":"pictures"},"properties":{"code":{"description":"PAM asset category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"PAM asset category labels for each locale","properties":{"localeCode":{"description":"PAM asset category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"PAM ssset category code of the parent's asset category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing asset category code. &#10;&bull; If equal to an existing asset category code, it cannot reference itself."}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a PAM asset category","tags":["PAM asset category"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]},"patch":{"description":"This endpoint allows you to update a given PAM asset category. Know more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no category exists for the given code, it creates it.","operationId":"patch_asset_categories__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"front_views","labels":{"en_US":"Front views","fr_FR":"Vues de face"},"parent":"pictures"},"properties":{"code":{"description":"PAM asset category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"PAM asset category labels for each locale","properties":{"localeCode":{"description":"PAM asset category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"PAM ssset category code of the parent's asset category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing asset category code. &#10;&bull; If equal to an existing asset category code, it cannot reference itself."}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a PAM asset category","tags":["PAM asset category"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]}},"/api/rest/v1/asset-families":{"get":{"description":"This endpoint allows you to get a list of asset families. Asset families are paginated.","operationId":"get_asset_families","parameters":[{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}}],"responses":{"200":{"description":"Return asset families paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"attribute_as_main_media":"main_image","code":"model_pictures","labels":{"en_US":"Model pictures","fr_FR":"Photographies en pied"},"naming_convention":{"abort_asset_creation_on_error":true,"pattern":"/(?P<product_ref>.*)-.*/","source":{"channel":null,"locale":null,"property":"code"}},"product_link_rules":[{"assign_assets_to":[{"attribute":"model_pictures","mode":"replace"}],"product_selections":[{"field":"sku","operator":"EQUALS","value":"{{product_ref}}"}]}],"transformations":[{"filename_suffix":"_thumbnailBW","label":"Thumbnail plus black and white transformation","operations":[{"parameters":{"height":150,"width":150},"type":"thumbnail"},{"parameters":{"colorspace":"grey"},"type":"colorspace"}],"source":{"attribute":"main_image","channel":null,"locale":null},"target":{"attribute":"thumbnail","channel":null,"locale":null}}]},"properties":{"attribute_as_main_media":{"default":"First media file or media link attribute that was created","description":"Attribute code that is used as the main media of the asset family.","type":"string","x-validation-rules":"It should be the code of an attribute that belongs to this family, and it must be a media file or a media link attribute type."},"code":{"description":"Asset family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Asset family labels for each locale","properties":{"localeCode":{"description":"Asset family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"naming_convention":{"default":{},"description":"The naming convention ran over the asset code or the main media filename upon each asset creation, in order to automatically set several values in asset attributes. To learn more and see the format of this property, take a look at <a href='/concepts/asset-manager.html#focus-on-the-naming-convention'>here</a>.","properties":{"abort_asset_creation_on_error":{"description":"Whether the asset should be created if the naming convention failed to apply. More details <a href='/concepts/asset-manager.html#abort-asset-creation-on-error'>here</a>.","type":"boolean"},"pattern":{"description":"The regular expression that should be applied on the source. More details <a href='/concepts/asset-manager.html#pattern'>here</a>.","type":"string"},"source":{"description":"The string on which the naming convention should be applied. More details <a href='/concepts/asset-manager.html#source'>here</a>.","type":"object"}},"type":"object","x-validation-rules":"To know more about the validation of this property, take a look at our naming convention format."},"product_link_rules":{"default":[],"description":"The rules that will be run after the asset creation, in order to automatically link the assets of this family to a set of products. To understand the format of this property, see <a href='/concepts/asset-manager.html#focus-on-the-product-link-rule'>here</a>.","items":{"properties":{"assign_assets_to":{"description":"The product value in which your assets will be assigned. More details <a href='/concepts/asset-manager.html#product-value-assignment'>here</a>.","items":{"properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"},"mode":{"type":"string"}},"required":["attribute","mode"],"type":"object"},"type":"array"},"product_selections":{"description":"The product selection to which the assets of the asset family to be automatically linked. More details <a href='/concepts/asset-manager.html#product-selection'>here</a>.","items":{"properties":{"channel":{"type":"string"},"field":{"type":"string"},"locale":{"type":"string"},"operator":{"type":"string"},"value":{"type":"string"}},"required":["field","operator","value"],"type":"object"},"type":"array"}},"type":"object"},"type":"array","x-validation-rules":"To know more about the validation of this property, take a look at our product link rule format."},"transformations":{"default":[],"description":"The transformations to perform on source files in order to generate new files into your asset attributes (only available since v4.0). To understand the format of this property, see <a href='/concepts/asset-manager.html#focus-on-the-transformations'>here</a>.","items":{"properties":{"filename_prefix":{"description":"The prefix that will be prepended to the source filename to generate the target filename. More details <a href='/concepts/asset-manager.html#target-filename'>here</a>.","type":"string"},"filename_suffix":{"description":"The suffix that will be appended to the source filename to generate the target filename. More details <a href='/concepts/asset-manager.html#target-filename'>here</a>.","type":"string"},"label":{"description":"The name of the transformation","type":"string"},"operations":{"description":"The transformations that should be applied to your source file to generate the target file. More details <a href='/concepts/asset-manager.html#transformation-operations'>here</a>.","properties":{"parameters":{"properties":{"colorspace":{"type":"string"},"height":{"type":"integer"},"quality":{"type":"integer"},"ratio":{"type":"integer"},"resolution-unit":{"type":"string"},"resolution-x":{"type":"integer"},"resolution-y":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"type":{"type":"string"}},"type":"object","x-validation-rules":"Should contain at least one operation"},"source":{"description":"The attribute value in which is stored the media file you want to use as the source file for your transformation. More details <a href='/concepts/asset-manager.html#source-file'>here</a>.","properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"}},"required":["attribute","channel","locale"],"type":"object"},"target":{"description":"The attribute value in which the PIM will generate the new transformed file, aka the target file. More details <a href='/concepts/asset-manager.html#target-file'>here</a>.","properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"}},"required":["attribute","channel","locale"],"type":"object"}},"required":["label","target","source","operations"],"type":"object"},"type":"array","x-from-version":"4.0","x-validation-rules":"To know more about the validation of this property, take a look at our transformation format."}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Asset families","type":"object"}},"_embedded":{"examples":{"response":{"value":{"_items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families/packshots"}},"code":"packshots","labels":{"en_US":"Packshots","fr_FR":"Plans produit"},"product_link_rules":[{"assign_assets_to":[{"attribute":"{{my_product_attribute}}","mode":"add"}],"product_selections":[{"field":"sku","operator":"=","value":"{{product_ref}}"}]}],"transformations":[{"filename_suffix":"_thumbnailBW","label":"My transformation","operations":[{"parameters":{"height":150,"width":150},"type":"thumbnail"},{"parameters":{"colorspace":"grey"},"type":"colorspace"}],"source":{"attribute":"main_image","channel":null,"locale":null},"target":{"attribute":"thumbnail","channel":null,"locale":null}}],"“naming_convention”":{"abort_asset_creation_on_error":true,"pattern":"/(?P<product_ref>.*)\\.jpg/","source":{"channel":null,"locale":null,"property":"code"}}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families/videos"}},"code":"videos","labels":{"en_US":"Videos","fr_FR":"Vidéos"},"product_link_rules":[{"assign_assets_to":[{"attribute":"presentation_video","locale":"{{locale}}","mode":"replace"}],"product_selections":[{"field":"categories","operator":"IN","value":["{{category}}"]}]}]},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families/user_guides"}},"code":"user_guides","labels":{"en_US":"User guides","fr_FR":"Guides utilisateur"},"product_link_rules":[{"assign_assets_to":[{"attribute":"user_instructions","locale":"{{locale}}","mode":"replace"}],"product_selections":[{"field":"sku","operator":"=","value":"{{product_ref}}"}]}]}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families?search_after=2x055w%3D%3D"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families"}}}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of asset families","tags":["Asset family"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/asset-families/{asset_family_code}/assets":{"get":{"description":"This endpoint allows you to get a list of assets of a given asset family. Assets are paginated. This endpoint is case sensitive on the asset family code.","operationId":"get_assets","parameters":[{"description":"Filter assets, for more details see the <a href=\"/documentation/filter.html#filter-assets\">Asset filters</a> section","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Filter asset values to return scopable asset attributes for the given channel as well as the non localizable/non scopable asset attributes, for more details see the <a href=\"/documentation/filter.html#asset-values-by-channel\">Filter asset values by channel</a> section","in":"query","name":"channel","required":false,"schema":{"type":"string"}},{"description":"Filter asset values to return localizable attributes for the given locales as well as the non localizable/non scopable asset attributes, for more details see the <a href=\"/documentation/filter.html#asset-values-by-locale\">Filter asset values by locale</a> section","in":"query","name":"locales","required":false,"schema":{"type":"string"}},{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}},{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}}],"responses":{"200":{"description":"Return the assets of the given asset family paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"properties":{"_embedded":{"properties":{"_items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"sku_54628_picture1","created":"2025-08-15T13:52:10.876Z","updated":"2025-08-15T13:52:10.876Z","values":{"end_of_use_date":[{"channel":null,"data":"02/03/2021","locale":null}],"main_colors":[{"channel":null,"data":["red","purple"],"locale":null}],"media_preview":[{"channel":null,"data":"sku_54628_picture1.jpg","locale":null}],"model_wears_size":[{"channel":null,"data":"s","locale":null}],"photographer":[{"channel":null,"data":"ben_levy","locale":null}]}},"properties":{"code":{"description":"Code of the asset","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-from-version":"6.0","x-immutable":true,"x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-from-version":"6.0","x-read-only":true},"values":{"description":"Asset attributes values, see the <a href='/concepts/asset-manager.html#focus-on-the-asset-values'>Focus on the asset values</a> section for more details.","properties":{"attributeCode":{"items":{"properties":{"channel":{"description":"Channel code of the asset attribute value","type":"string"},"data":{"description":"Asset attribute value. See <a href='/concepts/asset-manager.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"locale":{"description":"Locale code of the asset attribute value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Asset attribute values section"}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Asset","type":"object"}},"_embedded":{"examples":{"response":{"value":{"_items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families/model_pictures/assets/allie_jean_model_picture"}},"code":"allie_jean_model_picture","created":"2025-08-15T13:52:10.875Z","updated":"2025-08-15T13:52:10.875Z","values":{"media_link":[{"channel":null,"data":"allie_jean_model_picture.png","locale":null}],"model_is_wearing_size":[{"channel":null,"data":"size_27","locale":null}],"warning_mention":[{"channel":null,"data":"Photo not retouched","locale":"en_US"},{"channel":null,"data":"Photo non retouchée","locale":"fr_FR"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families/model_pictures/assets/amy_socks_model_picture"}},"code":"amy_socks_model_picture","created":"2025-08-15T13:52:10.876Z","updated":"2025-08-15T13:52:10.876Z","values":{"media_link":[{"channel":null,"data":"amy_socks_model_picture.png","locale":null}],"model_is_wearing_size":[{"channel":null,"data":"unique_size","locale":null}],"warning_mention":[{"channel":null,"data":"Photo not retouched","locale":"en_US"},{"channel":null,"data":"Photo non retouchée","locale":"fr_FR"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families/model_pictures/assets/alice_blouse_model_picture"}},"code":"alice_blouse_model_picture","created":"2025-08-15T13:52:10.876Z","updated":"2025-08-15T13:52:10.876Z","values":{"media_link":[{"channel":null,"data":"alice_blouse_model_picture.png","locale":null}],"model_is_wearing_size":[{"channel":null,"data":"small","locale":null}],"warning_mention":[{"channel":null,"data":"Photo retouched","locale":"en_US"},{"channel":null,"data":"Photo non retouchée","locale":"fr_FR"}]}}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families/model_pictures/assets"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families/model_pictures/assets?search_after=2x088w%3D%3D"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-families/model_pictures/assets"}}}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get the list of the assets of a given asset family","tags":["Asset"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several assets of one given asset family at once. Learn more about the <a href=\"/documentation/update.html#patch-asset-attribute-values\">Update behavior</a>. Note that if the asset does not already exist for the given asset family, it creates it. This endpoint is case sensitive on the asset family code.","operationId":"patch_assets","parameters":[{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":[{"code":"sku_54628_picture1","created":"2025-08-15T13:52:10.876Z","updated":"2025-08-15T13:52:10.876Z","values":{"end_of_use_date":[{"channel":null,"data":"02/03/2021","locale":null}],"main_colors":[{"channel":null,"data":["red","purple"],"locale":null}],"media_preview":[{"channel":null,"data":"sku_54628_picture1.jpg","locale":null}],"model_wears_size":[{"channel":null,"data":"s","locale":null}],"photographer":[{"channel":null,"data":"ben_levy","locale":null}]}},{"code":"sku_54628_picture2","created":"2025-08-15T13:52:10.876Z","updated":"2025-08-15T13:52:10.876Z","values":{"end_of_use_date":[{"channel":null,"data":"02/03/2021","locale":null}],"main_colors":[{"channel":null,"data":["blue","white"],"locale":null}],"media_preview":[{"channel":null,"data":"sku_54628_picture2.jpg","locale":null}],"model_wears_size":[{"channel":null,"data":"s","locale":null}],"photographer":[{"channel":null,"data":"ben_levy","locale":null}]}},{"code":"sku_54628_picture3","created":"2025-08-15T13:52:10.876Z","updated":"2025-08-15T13:52:10.876Z","values":{"end_of_use_date":[{"channel":null,"data":"02/03/2021","locale":null}],"main_colors":[{"channel":null,"data":["purple"],"locale":null}],"media_preview":[{"channel":null,"data":"sku_54628_picture3.jpg","locale":null}],"model_wears_size":[{"channel":null,"data":"s","locale":null}],"photographer":[{"channel":null,"data":"ben_levy","locale":null}]}}],"items":{"example":{"code":"sku_54628_picture1","created":"2025-08-15T13:52:10.876Z","updated":"2025-08-15T13:52:10.876Z","values":{"end_of_use_date":[{"channel":null,"data":"02/03/2021","locale":null}],"main_colors":[{"channel":null,"data":["red","purple"],"locale":null}],"media_preview":[{"channel":null,"data":"sku_54628_picture1.jpg","locale":null}],"model_wears_size":[{"channel":null,"data":"s","locale":null}],"photographer":[{"channel":null,"data":"ben_levy","locale":null}]}},"properties":{"code":{"description":"Code of the asset","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-from-version":"6.0","x-immutable":true,"x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-from-version":"6.0","x-read-only":true},"values":{"description":"Asset attributes values, see the <a href='/concepts/asset-manager.html#focus-on-the-asset-values'>Focus on the asset values</a> section for more details.","properties":{"attributeCode":{"items":{"properties":{"channel":{"description":"Channel code of the asset attribute value","type":"string"},"data":{"description":"Asset attribute value. See <a href='/concepts/asset-manager.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"locale":{"description":"Locale code of the asset attribute value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Asset attribute values section"}},"required":["code"],"type":"object"},"type":"array"}}},"required":true},"responses":{"200":{"description":"OK","x-details":"Returns an JSON array in which each object gives you the status of each asset creation or update","x-examples":[{"code":"sku_54628_picture1","status_code":204},{"code":"sku_54628_picture2","message":"Property 'group' does not exist.","status_code":422},{"code":"sku_54628_picture3","status_code":201}],"x-no-entity":true,"content":{"application/json":{"schema":{"items":{"properties":{"code":{"description":"Resource code","type":"string"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"},"type":"array"}}}},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several assets","tags":["Asset"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/asset-families/{asset_family_code}/assets/{code}":{"delete":{"description":"This endpoint allows you to delete a given asset. This endpoint is case sensitive on the asset family code.","operationId":"delete_assets__code_","parameters":[{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No content to return","x-details":"Means that the deletion was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}}},"summary":"Delete an asset","tags":["Asset"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]},"get":{"description":"This endpoint allows you to get the information about a given asset for a given asset family. This endpoint is case sensitive on the asset family code.","operationId":"get_assets__code_","parameters":[{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the asset in JSON standard format","content":{"application/json":{"schema":{"example":{"code":"sku_54628_picture1","created":"2025-08-15T13:52:10.876Z","updated":"2025-08-15T13:52:10.876Z","values":{"end_of_use_date":[{"channel":null,"data":"02/03/2021","locale":null}],"main_colors":[{"channel":null,"data":["red","purple"],"locale":null}],"media_preview":[{"channel":null,"data":"sku_54628_picture1.jpg","locale":null}],"model_wears_size":[{"channel":null,"data":"s","locale":null}],"photographer":[{"channel":null,"data":"ben_levy","locale":null}]}},"properties":{"code":{"description":"Code of the asset","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-from-version":"6.0","x-immutable":true,"x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-from-version":"6.0","x-read-only":true},"values":{"description":"Asset attributes values, see the <a href='/concepts/asset-manager.html#focus-on-the-asset-values'>Focus on the asset values</a> section for more details.","properties":{"attributeCode":{"items":{"properties":{"channel":{"description":"Channel code of the asset attribute value","type":"string"},"data":{"description":"Asset attribute value. See <a href='/concepts/asset-manager.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"locale":{"description":"Locale code of the asset attribute value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Asset attribute values section"}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get an asset of a given asset family","tags":["Asset"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given asset of a given asset family. Learn more about the <a href=\"/documentation/update.html#patch-asset-attribute-values\">Update behavior</a>. Note that if the asset does not already exist for the given asset family, it creates it. This endpoint is case sensitive on the asset family code.","operationId":"patch_asset__code_","parameters":[{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"sku_54628_picture1","created":"2025-08-15T13:52:10.876Z","updated":"2025-08-15T13:52:10.876Z","values":{"end_of_use_date":[{"channel":null,"data":"02/03/2021","locale":null}],"main_colors":[{"channel":null,"data":["red","purple"],"locale":null}],"media_preview":[{"channel":null,"data":"sku_54628_picture1.jpg","locale":null}],"model_wears_size":[{"channel":null,"data":"s","locale":null}],"photographer":[{"channel":null,"data":"ben_levy","locale":null}]}},"properties":{"code":{"description":"Code of the asset","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-from-version":"6.0","x-immutable":true,"x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-from-version":"6.0","x-read-only":true},"values":{"description":"Asset attributes values, see the <a href='/concepts/asset-manager.html#focus-on-the-asset-values'>Focus on the asset values</a> section for more details.","properties":{"attributeCode":{"items":{"properties":{"channel":{"description":"Channel code of the asset attribute value","type":"string"},"data":{"description":"Asset attribute value. See <a href='/concepts/asset-manager.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"locale":{"description":"Locale code of the asset attribute value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Asset attribute values section"}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create an asset","tags":["Asset"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/asset-families/{asset_family_code}/attributes":{"get":{"description":"This endpoint allows you to get the list of attributes of a given asset family.","operationId":"get_asset_families__code__attributes","parameters":[{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the attributes of the given asset family","x-examples":[{"code":"model_is_wearing_size","is_required_for_completeness":true,"labels":{"en_US":"Model is wearing size","fr_FR":"Le mannequin porte la taille"},"type":"single_option","value_per_channel":false,"value_per_locale":false},{"code":"media_link","is_required_for_completeness":true,"labels":{"en_US":"Media link","fr_FR":"Lien vers le média"},"media_type":"image","prefix":"https://my-dam.com/","suffix":"?height=630&width=485","type":"media_link","value_per_channel":false,"value_per_locale":false},{"code":"warning_mention","is_required_for_completeness":false,"is_rich_text_editor":false,"is_textarea":false,"labels":{"en_US":"Warning mention","fr_FR":"Phrase d'avertissement"},"max_characters":"50","type":"text","validation_rule":"none","value_per_channel":false,"value_per_locale":true}],"x-no-entity":true,"content":{"application/json":{"schema":{"items":{"example":{"code":"model_is_wearing_size","is_required_for_completeness":true,"labels":{"en_US":"Model is wearing size","fr_FR":"Le mannequin porte la taille"},"type":"single_option","value_per_channel":false,"value_per_locale":false},"properties":{"allowed_extensions":{"default":[],"description":"Extensions allowed when the attribute type is `media_file`","items":{"type":"string"},"type":"array","x-warning":"Only for `media_file` attribute type"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"decimals_allowed":{"default":false,"description":"Whether decimals are allowed when the attribute type is `number`","type":"boolean","x-warning":"Only for `number` attribute type"},"is_read_only":{"default":false,"description":"Whether the attribute should be in read only mode only in the UI, but you can still update it with the API","type":"boolean"},"is_required_for_completeness":{"default":false,"description":"Whether the attribute should be part of the record's completeness calculation","type":"boolean"},"is_rich_text_editor":{"description":"Whether the UI should display a rich text editor instead of a simple text area when the attribute type is `text`","type":"boolean","x-validation-rules":"Required when the property `is_textarea` is equal to `true`","x-warning":"Only for `text` attribute type"},"is_textarea":{"default":false,"description":"Whether the UI should display a text area instead of a simple field when the attribute type is `text`","type":"boolean","x-warning":"Only for `text` attribute type"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"max_characters":{"description":"Maximum number of characters allowed for the value of the attribute when the attribute type is `text`","type":"integer","x-warning":"Only for `text` attribute type"},"max_file_size":{"default":null,"description":"Max file size in MB when the attribute type is `media_file`","type":"string","x-warning":"Only for `media_file` attribute type"},"max_value":{"default":null,"description":"Maximum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The maximum value must be greater than the minimum value","x-warning":"Only for `number` attribute type"},"media_type":{"description":"For the `media_link` attribute type, it is the type of the media behind the url, to allow its preview in the PIM. For the `media_file` attribute type, it is the type of the file.","enum":["image","pdf","youtube","vimeo","other"],"type":"string","x-warning":"Only required for `media_link` and `media_file` attribute types"},"min_value":{"default":null,"description":"Minimum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The minimum value must be lower than the maximum value","x-warning":"Only for `number` attribute type"},"prefix":{"default":null,"description":"Prefix of the `media_link` attribute type. The common url root that prefixes the link to the media","type":"string","x-warning":"Only for `media_link` attribute type"},"suffix":{"default":null,"description":"Suffix of the `media_link` attribute type. The common url suffix for the media","type":"string","x-warning":"Only for `media_link` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/asset-manager.html#asset-attribute'>type</a> section for more details.","enum":["text","media_link","number","media_file","single_option","multiple_options","reference_entity_single_link","reference_entity_multiple_links","boolean"],"type":"string","x-immutable":true},"validation_regexp":{"default":null,"description":"Regexp expression used to validate the attribute value when the attribute type is `text`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `text` attribute type"},"validation_rule":{"default":"none","description":"Validation rule type used to validate the attribute value when the attribute type is `text`","enum":["email","url","regexp","none"],"type":"string","x-warning":"Only for `text` attribute type"},"value_per_channel":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"value_per_locale":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true}},"required":["code","type","media_type"],"type":"object"},"type":"array"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get the list of attributes of a given asset family","tags":["Asset attribute"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/asset-families/{asset_family_code}/attributes/{attribute_code}/options":{"get":{"description":"This endpoint allows you to get a list of attribute options for a given asset family.","operationId":"get_asset_family_attributes__attribute_code__options","parameters":[{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}},{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the options of the given attribute of the given asset family","x-examples":[{"code":"unique_size","labels":{"en_US":"Unique size","fr_FR":"Taille unique"}},{"code":"size_27","labels":{"en_US":"Size 27","fr_FR":"Taille 36"}},{"code":"small","labels":{"en_US":"S","fr_FR":"S"}}],"x-no-entity":true,"content":{"application/json":{"schema":{"items":{"example":{"code":"small","labels":{"en_US":"S","fr_FR":"S"}},"properties":{"code":{"description":"Attribute's option code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"},"type":"array"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a list of attribute options of a given attribute for a given asset family","tags":["Asset attribute option"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/asset-families/{asset_family_code}/attributes/{attribute_code}/options/{code}":{"get":{"description":"This endpoint allows you to get the information about a given asset attribute option.","operationId":"get_asset_attributes__attribute_code__options__code_","parameters":[{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}},{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the asset attribute option in JSON format","content":{"application/json":{"schema":{"example":{"code":"small","labels":{"en_US":"S","fr_FR":"S"}},"properties":{"code":{"description":"Attribute's option code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get an attribute option for a given attribute of a given asset family","tags":["Asset attribute option"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given option for a given attribute and a given asset family. Learn more about the <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if the option does not already exist for the given attribute of the given asset family, it creates it.","operationId":"patch_asset_attributes__attribute_code__options__code_","parameters":[{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}},{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"small","labels":{"en_US":"S","fr_FR":"S"}},"properties":{"code":{"description":"Attribute's option code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create an asset attribute option for a given asset family","tags":["Asset attribute option"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/asset-families/{asset_family_code}/attributes/{code}":{"get":{"description":"This endpoint allows you to get the information about a given attribute for a given asset family.","operationId":"get_asset_family_attributes__code_","parameters":[{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the asset attribute in JSON format","content":{"application/json":{"schema":{"example":{"code":"model_is_wearing_size","is_required_for_completeness":true,"labels":{"en_US":"Model is wearing size","fr_FR":"Le mannequin porte la taille"},"type":"single_option","value_per_channel":false,"value_per_locale":false},"properties":{"allowed_extensions":{"default":[],"description":"Extensions allowed when the attribute type is `media_file`","items":{"type":"string"},"type":"array","x-warning":"Only for `media_file` attribute type"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"decimals_allowed":{"default":false,"description":"Whether decimals are allowed when the attribute type is `number`","type":"boolean","x-warning":"Only for `number` attribute type"},"is_read_only":{"default":false,"description":"Whether the attribute should be in read only mode only in the UI, but you can still update it with the API","type":"boolean"},"is_required_for_completeness":{"default":false,"description":"Whether the attribute should be part of the record's completeness calculation","type":"boolean"},"is_rich_text_editor":{"description":"Whether the UI should display a rich text editor instead of a simple text area when the attribute type is `text`","type":"boolean","x-validation-rules":"Required when the property `is_textarea` is equal to `true`","x-warning":"Only for `text` attribute type"},"is_textarea":{"default":false,"description":"Whether the UI should display a text area instead of a simple field when the attribute type is `text`","type":"boolean","x-warning":"Only for `text` attribute type"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"max_characters":{"description":"Maximum number of characters allowed for the value of the attribute when the attribute type is `text`","type":"integer","x-warning":"Only for `text` attribute type"},"max_file_size":{"default":null,"description":"Max file size in MB when the attribute type is `media_file`","type":"string","x-warning":"Only for `media_file` attribute type"},"max_value":{"default":null,"description":"Maximum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The maximum value must be greater than the minimum value","x-warning":"Only for `number` attribute type"},"media_type":{"description":"For the `media_link` attribute type, it is the type of the media behind the url, to allow its preview in the PIM. For the `media_file` attribute type, it is the type of the file.","enum":["image","pdf","youtube","vimeo","other"],"type":"string","x-warning":"Only required for `media_link` and `media_file` attribute types"},"min_value":{"default":null,"description":"Minimum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The minimum value must be lower than the maximum value","x-warning":"Only for `number` attribute type"},"prefix":{"default":null,"description":"Prefix of the `media_link` attribute type. The common url root that prefixes the link to the media","type":"string","x-warning":"Only for `media_link` attribute type"},"suffix":{"default":null,"description":"Suffix of the `media_link` attribute type. The common url suffix for the media","type":"string","x-warning":"Only for `media_link` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/asset-manager.html#asset-attribute'>type</a> section for more details.","enum":["text","media_link","number","media_file","single_option","multiple_options","reference_entity_single_link","reference_entity_multiple_links","boolean"],"type":"string","x-immutable":true},"validation_regexp":{"default":null,"description":"Regexp expression used to validate the attribute value when the attribute type is `text`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `text` attribute type"},"validation_rule":{"default":"none","description":"Validation rule type used to validate the attribute value when the attribute type is `text`","enum":["email","url","regexp","none"],"type":"string","x-warning":"Only for `text` attribute type"},"value_per_channel":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"value_per_locale":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true}},"required":["code","type","media_type"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get an attribute of a given asset family","tags":["Asset attribute"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given attribute for a given asset family. Note that if the attribute does not already exist for the given asset family, it creates it.","operationId":"patch_asset_family_attributes__code_","parameters":[{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"model_is_wearing_size","is_required_for_completeness":true,"labels":{"en_US":"Model is wearing size","fr_FR":"Le mannequin porte la taille"},"type":"single_option","value_per_channel":false,"value_per_locale":false},"properties":{"allowed_extensions":{"default":[],"description":"Extensions allowed when the attribute type is `media_file`","items":{"type":"string"},"type":"array","x-warning":"Only for `media_file` attribute type"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"decimals_allowed":{"default":false,"description":"Whether decimals are allowed when the attribute type is `number`","type":"boolean","x-warning":"Only for `number` attribute type"},"is_read_only":{"default":false,"description":"Whether the attribute should be in read only mode only in the UI, but you can still update it with the API","type":"boolean"},"is_required_for_completeness":{"default":false,"description":"Whether the attribute should be part of the record's completeness calculation","type":"boolean"},"is_rich_text_editor":{"description":"Whether the UI should display a rich text editor instead of a simple text area when the attribute type is `text`","type":"boolean","x-validation-rules":"Required when the property `is_textarea` is equal to `true`","x-warning":"Only for `text` attribute type"},"is_textarea":{"default":false,"description":"Whether the UI should display a text area instead of a simple field when the attribute type is `text`","type":"boolean","x-warning":"Only for `text` attribute type"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"max_characters":{"description":"Maximum number of characters allowed for the value of the attribute when the attribute type is `text`","type":"integer","x-warning":"Only for `text` attribute type"},"max_file_size":{"default":null,"description":"Max file size in MB when the attribute type is `media_file`","type":"string","x-warning":"Only for `media_file` attribute type"},"max_value":{"default":null,"description":"Maximum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The maximum value must be greater than the minimum value","x-warning":"Only for `number` attribute type"},"media_type":{"description":"For the `media_link` attribute type, it is the type of the media behind the url, to allow its preview in the PIM. For the `media_file` attribute type, it is the type of the file.","enum":["image","pdf","youtube","vimeo","other"],"type":"string","x-warning":"Only required for `media_link` and `media_file` attribute types"},"min_value":{"default":null,"description":"Minimum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The minimum value must be lower than the maximum value","x-warning":"Only for `number` attribute type"},"prefix":{"default":null,"description":"Prefix of the `media_link` attribute type. The common url root that prefixes the link to the media","type":"string","x-warning":"Only for `media_link` attribute type"},"suffix":{"default":null,"description":"Suffix of the `media_link` attribute type. The common url suffix for the media","type":"string","x-warning":"Only for `media_link` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/asset-manager.html#asset-attribute'>type</a> section for more details.","enum":["text","media_link","number","media_file","single_option","multiple_options","reference_entity_single_link","reference_entity_multiple_links","boolean"],"type":"string","x-immutable":true},"validation_regexp":{"default":null,"description":"Regexp expression used to validate the attribute value when the attribute type is `text`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `text` attribute type"},"validation_rule":{"default":"none","description":"Validation rule type used to validate the attribute value when the attribute type is `text`","enum":["email","url","regexp","none"],"type":"string","x-warning":"Only for `text` attribute type"},"value_per_channel":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"value_per_locale":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true}},"required":["code","type","media_type"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create an attribute of a given asset family","tags":["Asset attribute"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/asset-families/{code}":{"get":{"description":"This endpoint allows you to get the information about a given asset family.","operationId":"get_asset_family__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the asset family in JSON format.","content":{"application/json":{"schema":{"example":{"attribute_as_main_media":"main_image","code":"model_pictures","labels":{"en_US":"Model pictures","fr_FR":"Photographies en pied"},"naming_convention":{"abort_asset_creation_on_error":true,"pattern":"/(?P<product_ref>.*)-.*/","source":{"channel":null,"locale":null,"property":"code"}},"product_link_rules":[{"assign_assets_to":[{"attribute":"model_pictures","mode":"replace"}],"product_selections":[{"field":"sku","operator":"EQUALS","value":"{{product_ref}}"}]}],"transformations":[{"filename_suffix":"_thumbnailBW","label":"Thumbnail plus black and white transformation","operations":[{"parameters":{"height":150,"width":150},"type":"thumbnail"},{"parameters":{"colorspace":"grey"},"type":"colorspace"}],"source":{"attribute":"main_image","channel":null,"locale":null},"target":{"attribute":"thumbnail","channel":null,"locale":null}}]},"properties":{"attribute_as_main_media":{"default":"First media file or media link attribute that was created","description":"Attribute code that is used as the main media of the asset family.","type":"string","x-validation-rules":"It should be the code of an attribute that belongs to this family, and it must be a media file or a media link attribute type."},"code":{"description":"Asset family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Asset family labels for each locale","properties":{"localeCode":{"description":"Asset family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"naming_convention":{"default":{},"description":"The naming convention ran over the asset code or the main media filename upon each asset creation, in order to automatically set several values in asset attributes. To learn more and see the format of this property, take a look at <a href='/concepts/asset-manager.html#focus-on-the-naming-convention'>here</a>.","properties":{"abort_asset_creation_on_error":{"description":"Whether the asset should be created if the naming convention failed to apply. More details <a href='/concepts/asset-manager.html#abort-asset-creation-on-error'>here</a>.","type":"boolean"},"pattern":{"description":"The regular expression that should be applied on the source. More details <a href='/concepts/asset-manager.html#pattern'>here</a>.","type":"string"},"source":{"description":"The string on which the naming convention should be applied. More details <a href='/concepts/asset-manager.html#source'>here</a>.","type":"object"}},"type":"object","x-validation-rules":"To know more about the validation of this property, take a look at our naming convention format."},"product_link_rules":{"default":[],"description":"The rules that will be run after the asset creation, in order to automatically link the assets of this family to a set of products. To understand the format of this property, see <a href='/concepts/asset-manager.html#focus-on-the-product-link-rule'>here</a>.","items":{"properties":{"assign_assets_to":{"description":"The product value in which your assets will be assigned. More details <a href='/concepts/asset-manager.html#product-value-assignment'>here</a>.","items":{"properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"},"mode":{"type":"string"}},"required":["attribute","mode"],"type":"object"},"type":"array"},"product_selections":{"description":"The product selection to which the assets of the asset family to be automatically linked. More details <a href='/concepts/asset-manager.html#product-selection'>here</a>.","items":{"properties":{"channel":{"type":"string"},"field":{"type":"string"},"locale":{"type":"string"},"operator":{"type":"string"},"value":{"type":"string"}},"required":["field","operator","value"],"type":"object"},"type":"array"}},"type":"object"},"type":"array","x-validation-rules":"To know more about the validation of this property, take a look at our product link rule format."},"transformations":{"default":[],"description":"The transformations to perform on source files in order to generate new files into your asset attributes (only available since v4.0). To understand the format of this property, see <a href='/concepts/asset-manager.html#focus-on-the-transformations'>here</a>.","items":{"properties":{"filename_prefix":{"description":"The prefix that will be prepended to the source filename to generate the target filename. More details <a href='/concepts/asset-manager.html#target-filename'>here</a>.","type":"string"},"filename_suffix":{"description":"The suffix that will be appended to the source filename to generate the target filename. More details <a href='/concepts/asset-manager.html#target-filename'>here</a>.","type":"string"},"label":{"description":"The name of the transformation","type":"string"},"operations":{"description":"The transformations that should be applied to your source file to generate the target file. More details <a href='/concepts/asset-manager.html#transformation-operations'>here</a>.","properties":{"parameters":{"properties":{"colorspace":{"type":"string"},"height":{"type":"integer"},"quality":{"type":"integer"},"ratio":{"type":"integer"},"resolution-unit":{"type":"string"},"resolution-x":{"type":"integer"},"resolution-y":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"type":{"type":"string"}},"type":"object","x-validation-rules":"Should contain at least one operation"},"source":{"description":"The attribute value in which is stored the media file you want to use as the source file for your transformation. More details <a href='/concepts/asset-manager.html#source-file'>here</a>.","properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"}},"required":["attribute","channel","locale"],"type":"object"},"target":{"description":"The attribute value in which the PIM will generate the new transformed file, aka the target file. More details <a href='/concepts/asset-manager.html#target-file'>here</a>.","properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"}},"required":["attribute","channel","locale"],"type":"object"}},"required":["label","target","source","operations"],"type":"object"},"type":"array","x-from-version":"4.0","x-validation-rules":"To know more about the validation of this property, take a look at our transformation format."}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get an asset family","tags":["Asset family"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given asset family. Note that if the asset family does not already exist, it creates it.","operationId":"patch_asset_family__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"attribute_as_main_media":"main_image","code":"model_pictures","labels":{"en_US":"Model pictures","fr_FR":"Photographies en pied"},"naming_convention":{"abort_asset_creation_on_error":true,"pattern":"/(?P<product_ref>.*)-.*/","source":{"channel":null,"locale":null,"property":"code"}},"product_link_rules":[{"assign_assets_to":[{"attribute":"model_pictures","mode":"replace"}],"product_selections":[{"field":"sku","operator":"EQUALS","value":"{{product_ref}}"}]}],"transformations":[{"filename_suffix":"_thumbnailBW","label":"Thumbnail plus black and white transformation","operations":[{"parameters":{"height":150,"width":150},"type":"thumbnail"},{"parameters":{"colorspace":"grey"},"type":"colorspace"}],"source":{"attribute":"main_image","channel":null,"locale":null},"target":{"attribute":"thumbnail","channel":null,"locale":null}}]},"properties":{"attribute_as_main_media":{"default":"First media file or media link attribute that was created","description":"Attribute code that is used as the main media of the asset family.","type":"string","x-validation-rules":"It should be the code of an attribute that belongs to this family, and it must be a media file or a media link attribute type."},"code":{"description":"Asset family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Asset family labels for each locale","properties":{"localeCode":{"description":"Asset family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"naming_convention":{"default":{},"description":"The naming convention ran over the asset code or the main media filename upon each asset creation, in order to automatically set several values in asset attributes. To learn more and see the format of this property, take a look at <a href='/concepts/asset-manager.html#focus-on-the-naming-convention'>here</a>.","properties":{"abort_asset_creation_on_error":{"description":"Whether the asset should be created if the naming convention failed to apply. More details <a href='/concepts/asset-manager.html#abort-asset-creation-on-error'>here</a>.","type":"boolean"},"pattern":{"description":"The regular expression that should be applied on the source. More details <a href='/concepts/asset-manager.html#pattern'>here</a>.","type":"string"},"source":{"description":"The string on which the naming convention should be applied. More details <a href='/concepts/asset-manager.html#source'>here</a>.","type":"object"}},"type":"object","x-validation-rules":"To know more about the validation of this property, take a look at our naming convention format."},"product_link_rules":{"default":[],"description":"The rules that will be run after the asset creation, in order to automatically link the assets of this family to a set of products. To understand the format of this property, see <a href='/concepts/asset-manager.html#focus-on-the-product-link-rule'>here</a>.","items":{"properties":{"assign_assets_to":{"description":"The product value in which your assets will be assigned. More details <a href='/concepts/asset-manager.html#product-value-assignment'>here</a>.","items":{"properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"},"mode":{"type":"string"}},"required":["attribute","mode"],"type":"object"},"type":"array"},"product_selections":{"description":"The product selection to which the assets of the asset family to be automatically linked. More details <a href='/concepts/asset-manager.html#product-selection'>here</a>.","items":{"properties":{"channel":{"type":"string"},"field":{"type":"string"},"locale":{"type":"string"},"operator":{"type":"string"},"value":{"type":"string"}},"required":["field","operator","value"],"type":"object"},"type":"array"}},"type":"object"},"type":"array","x-validation-rules":"To know more about the validation of this property, take a look at our product link rule format."},"transformations":{"default":[],"description":"The transformations to perform on source files in order to generate new files into your asset attributes (only available since v4.0). To understand the format of this property, see <a href='/concepts/asset-manager.html#focus-on-the-transformations'>here</a>.","items":{"properties":{"filename_prefix":{"description":"The prefix that will be prepended to the source filename to generate the target filename. More details <a href='/concepts/asset-manager.html#target-filename'>here</a>.","type":"string"},"filename_suffix":{"description":"The suffix that will be appended to the source filename to generate the target filename. More details <a href='/concepts/asset-manager.html#target-filename'>here</a>.","type":"string"},"label":{"description":"The name of the transformation","type":"string"},"operations":{"description":"The transformations that should be applied to your source file to generate the target file. More details <a href='/concepts/asset-manager.html#transformation-operations'>here</a>.","properties":{"parameters":{"properties":{"colorspace":{"type":"string"},"height":{"type":"integer"},"quality":{"type":"integer"},"ratio":{"type":"integer"},"resolution-unit":{"type":"string"},"resolution-x":{"type":"integer"},"resolution-y":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"type":{"type":"string"}},"type":"object","x-validation-rules":"Should contain at least one operation"},"source":{"description":"The attribute value in which is stored the media file you want to use as the source file for your transformation. More details <a href='/concepts/asset-manager.html#source-file'>here</a>.","properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"}},"required":["attribute","channel","locale"],"type":"object"},"target":{"description":"The attribute value in which the PIM will generate the new transformed file, aka the target file. More details <a href='/concepts/asset-manager.html#target-file'>here</a>.","properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"}},"required":["attribute","channel","locale"],"type":"object"}},"required":["label","target","source","operations"],"type":"object"},"type":"array","x-from-version":"4.0","x-validation-rules":"To know more about the validation of this property, take a look at our transformation format."}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create an asset family","tags":["Asset family"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/asset-media-files":{"post":{"description":"This endpoint allows you to create a new media file and associate it to a media file attribute value of an asset.","operationId":"post_asset_media_files","parameters":[{"description":"Equal to 'multipart/form-data', no other value allowed","in":"header","name":"Content-type","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/post_asset_media_filesBody"},"responses":{"201":{"description":"Created","headers":{"Asset-media-file-code":{"description":"Code of the media file","schema":{"type":"string"}},"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the media file creation was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `multipart/form-data`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘multipart/form-data’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new media file for an asset","tags":["Asset media file"],"x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/asset-media-files/{code}":{"get":{"description":"This endpoint allows you to download a given media file that is associated with an asset.","operationId":"get_asset_media_files__code","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-content-type":"Mime-type of the media file","x-details":"Returns the binary of the media file"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}}},"summary":"Download the media file associated to an asset","tags":["Asset media file"],"x-content-type":"Mime-type of the media file","x-ee":true,"x-versions":["3.2","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/asset-tags":{"get":{"description":"This endpoint allows you to get a list of PAM asset tags. PAM asset tags are paginated.","operationId":"get_asset_tags","parameters":[{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Returns PAM asset tags paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"tshirt"},"properties":{"code":{"description":"PAM asset tag code","type":"string","x-immutable":true}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"PAM Asset Tags","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-tags/tshirt"}},"code":"tshirt"},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-tags/belt"}},"code":"belt"},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-tags/red"}},"code":"red"}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/asset-tags?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/asset-tags?page=3&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/asset-tags?page=1&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/asset-tags?page=2&limit=3"}}}}},"current_page":{"examples":{"response":{"value":2}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of PAM asset tags","tags":["PAM asset tag"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]}},"/api/rest/v1/asset-tags/{code}":{"get":{"description":"This endpoint allows you to get the information about a given PAM asset tag.","operationId":"get_asset_tags__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the asset tag in JSON format","content":{"application/json":{"schema":{"example":{"code":"tshirt"},"properties":{"code":{"description":"PAM asset tag code","type":"string","x-immutable":true}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a PAM asset tag","tags":["PAM asset tag"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]},"patch":{"description":"This endpoint allows you to update a given PAM asset tag. Know more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no tag exists for the given code, it creates it.","operationId":"patch_asset_tags__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"tshirt"},"properties":{"code":{"description":"PAM asset tag code","type":"string","x-immutable":true}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a PAM asset tag","tags":["PAM asset tag"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]}},"/api/rest/v1/assets":{"get":{"description":"This endpoint allows you to get a list of PAM assets. PAM assets are paginated.","operationId":"get_pam_assets","parameters":[{"description":"Pagination method type, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"pagination_type","required":false,"x-validation-rules":"One of the following values","schema":{"type":"string","enum":["page","search_after"],"default":"page"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Returns PAM assets paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"categories":["tshirts_assets"],"code":"tshirt_artemis_main_picture","description":"The main picture of the Artemis t-shirt","end_of_use":"2019-09-01T00:00:00+0200","localizable":false,"reference_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture.jpg","locale":null}],"tags":["tshirts","red","summer"],"variation_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale"}},"code":"7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_ecommerce.jpg","locale":null,"scope":"e_commerce"},{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_print.jpg","locale":null,"scope":"print"}]},"properties":{"categories":{"default":[],"description":"Codes of the PAM asset categories in which the asset is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing asset category code"},"code":{"description":"PAM asset code","type":"string","x-immutable":true},"description":{"default":null,"description":"Description of the PAM asset","type":"string"},"end_of_use":{"default":null,"description":"Date on which the PAM asset expire","format":"dateTime","type":"string","x-validation-rules":"The date follows the ISO 8601 format"},"localizable":{"default":false,"description":"Whether the asset is localized or not, meaning if you want to have different reference files for each of your locale","type":"boolean","x-immutable":true},"reference_files":{"description":"Reference files of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the reference file","properties":{"download":{"properties":{"href":{"description":"URI to download the reference file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the reference file entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the reference file","type":"string"},"locale":{"description":"Locale code of the reference file","type":"string"}},"type":"object"},"type":"array","x-read-only":true},"tags":{"default":[],"description":"Tags of the PAM asset","items":{"type":"string"},"type":"array"},"variation_files":{"description":"Variations of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the variation file","properties":{"download":{"properties":{"href":{"description":"URI to download the variation file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the variation entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the variation","type":"string"},"locale":{"description":"Locale code of the variation","type":"string"},"scope":{"description":"Channel code of the variation","type":"string"}},"type":"object"},"type":"array","x-read-only":true}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"PAM Assets","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture"}},"categories":["tshirts_assets"],"code":"tshirt_artemis_main_picture","description":"The main picture of the Artemis t-shirt","end_of_use":"2019-09-01T00:00:00+0200","localizable":false,"reference_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture.jpg","locale":null}],"tags":["tshirts","red","summer"],"variation_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale"}},"code":"7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_ecommerce.jpg","locale":null,"scope":"e_commerce"},{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_print.jpg","locale":null,"scope":"print"}]},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_profile_picture"}},"categories":["tshirts_assets"],"code":"tshirt_artemis_profile_picture","description":"The profile picture of the Artemis t-shirt","end_of_use":"2019-09-01T00:00:00+0200","localizable":false,"reference_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_profile_picture/reference-files/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_profile_picture/reference-files/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_profile_picture.jpg","locale":null}],"tags":["tshirts","red","summer","profile_views"],"variation_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_profile_picture/variation-files/ecommerce/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_profile_picture/variation-files/ecommerce/no_locale"}},"code":"7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_profile_picture_ecommerce.jpg","locale":null,"scope":"e_commerce"},{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_profile_picture/variation-files/print/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_profile_picture/variation-files/print/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_profile_picture_print.jpg","locale":null,"scope":"print"}]},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_maintenance_manual"}},"categories":["tshirts_assets"],"code":"tshirt_artemis_maintenance_manual","description":"The maintenance manual of the Artemis t-shirt","end_of_use":null,"localizable":true,"reference_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_maintenance_manual/reference-files/en_US/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_maintenance_manual/reference-files/en_US"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_maintenance_manual_en_US.pdf","locale":"en_US"},{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_maintenance_manual/reference-files/fr_FR/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_maintenance_manual/reference-files/fr_FR"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_maintenance_manual_fr_FR.pdf","locale":"fr_FR"}],"tags":["tshirts","manuals"],"variation_files":[]}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/assets?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/assets?page=3&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/assets?page=1&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets?page=2&limit=3"}}}}},"current_page":{"examples":{"response":{"value":2}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of PAM assets","tags":["PAM asset"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]},"patch":{"description":"This endpoint allows you to update several PAM assets at once.","operationId":"patch_pam_assets","requestBody":{"content":{"application/json":{"schema":{"example":{"categories":["tshirts_assets"],"code":"tshirt_artemis_main_picture","description":"The main picture of the Artemis t-shirt","end_of_use":"2019-09-01T00:00:00+0200","localizable":false,"reference_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture.jpg","locale":null}],"tags":["tshirts","red","summer"],"variation_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale"}},"code":"7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_ecommerce.jpg","locale":null,"scope":"e_commerce"},{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_print.jpg","locale":null,"scope":"print"}]},"properties":{"categories":{"default":[],"description":"Codes of the PAM asset categories in which the asset is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing asset category code"},"code":{"description":"PAM asset code","type":"string","x-immutable":true},"description":{"default":null,"description":"Description of the PAM asset","type":"string"},"end_of_use":{"default":null,"description":"Date on which the PAM asset expire","format":"dateTime","type":"string","x-validation-rules":"The date follows the ISO 8601 format"},"localizable":{"default":false,"description":"Whether the asset is localized or not, meaning if you want to have different reference files for each of your locale","type":"boolean","x-immutable":true},"reference_files":{"description":"Reference files of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the reference file","properties":{"download":{"properties":{"href":{"description":"URI to download the reference file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the reference file entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the reference file","type":"string"},"locale":{"description":"Locale code of the reference file","type":"string"}},"type":"object"},"type":"array","x-read-only":true},"tags":{"default":[],"description":"Tags of the PAM asset","items":{"type":"string"},"type":"array"},"variation_files":{"description":"Variations of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the variation file","properties":{"download":{"properties":{"href":{"description":"URI to download the variation file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the variation entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the variation","type":"string"},"locale":{"description":"Locale code of the variation","type":"string"},"scope":{"description":"Channel code of the variation","type":"string"}},"type":"object"},"type":"array","x-read-only":true}},"required":["code"],"type":"object","x-examples":{"x-example-1":"{\"code\":\"tshirt_aria_main_picture\",\"categories\":[\"tshirts_assets\"],\"tags\":[\"tshirts\", \"red\", \"summer\"]}","x-example-2":"{\"code\":\"tshirt_artemis_maintenance_manual\",\"categories\":[\"tshirts_assets\",\"short_sleeve\"]}","x-example-3":"{\"code\":\"tshirt_artemis_main_picture\",\"tags\":[\"tshirts\", \"red\", \"summer\",\"short_sleeve\"]}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"code\":\"tshirt_aria_main_picture\",\"status_code\":201}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"code\":\"tshirt_artemis_maintenance_manual\",\"status_code\":422,\"message\":\"Category \"short_sleeve\" does not exist.\"}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"code\":\"tshirt_artemis_main_picture\",\"status_code\":204}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several PAM assets","tags":["PAM asset"],"x-body-by-line":"Contains several lines, each line is a PAM asset in JSON format","x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]},"post":{"description":"This endpoint allows you to create a new PAM asset.","operationId":"post_pam_assets","requestBody":{"content":{"application/json":{"schema":{"example":{"categories":["tshirts_assets"],"code":"tshirt_artemis_main_picture","description":"The main picture of the Artemis t-shirt","end_of_use":"2019-09-01T00:00:00+0200","localizable":false,"reference_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture.jpg","locale":null}],"tags":["tshirts","red","summer"],"variation_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale"}},"code":"7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_ecommerce.jpg","locale":null,"scope":"e_commerce"},{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_print.jpg","locale":null,"scope":"print"}]},"properties":{"categories":{"default":[],"description":"Codes of the PAM asset categories in which the asset is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing asset category code"},"code":{"description":"PAM asset code","type":"string","x-immutable":true},"description":{"default":null,"description":"Description of the PAM asset","type":"string"},"end_of_use":{"default":null,"description":"Date on which the PAM asset expire","format":"dateTime","type":"string","x-validation-rules":"The date follows the ISO 8601 format"},"localizable":{"default":false,"description":"Whether the asset is localized or not, meaning if you want to have different reference files for each of your locale","type":"boolean","x-immutable":true},"reference_files":{"description":"Reference files of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the reference file","properties":{"download":{"properties":{"href":{"description":"URI to download the reference file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the reference file entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the reference file","type":"string"},"locale":{"description":"Locale code of the reference file","type":"string"}},"type":"object"},"type":"array","x-read-only":true},"tags":{"default":[],"description":"Tags of the PAM asset","items":{"type":"string"},"type":"array"},"variation_files":{"description":"Variations of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the variation file","properties":{"download":{"properties":{"href":{"description":"URI to download the variation file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the variation entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the variation","type":"string"},"locale":{"description":"Locale code of the variation","type":"string"},"scope":{"description":"Channel code of the variation","type":"string"}},"type":"object"},"type":"array","x-read-only":true}},"required":["code"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new PAM asset","tags":["PAM asset"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]}},"/api/rest/v1/assets/{asset_code}/reference-files/{locale_code}":{"get":{"description":"This endpoint allows you to get the information about a reference file of a given PAM asset.","operationId":"get_reference_files__locale_code_","parameters":[{"description":"Code of the asset","in":"path","name":"asset_code","required":true,"schema":{"type":"string"}},{"description":"Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable","in":"path","name":"locale_code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the reference file in JSON format","content":{"application/json":{"schema":{"example":{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale/download"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture.jpg","locale":null},"properties":{"_link":{"description":"Links to get and download the reference file","properties":{"download":{"properties":{"href":{"description":"URI to download the reference file","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the PAM asset reference file","type":"string","x-immutable":true},"locale":{"description":"Locale of the PAM asset reference file, equal to `null` if the asset is not localizable","type":"string"}},"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a reference file","tags":["PAM asset reference file"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]},"post":{"description":"This endpoint allows you to upload a new reference file for a given PAM asset and locale. It will also automatically generate all the variation files corresponding to this reference file.","operationId":"post_reference_files__locale_code_","parameters":[{"description":"Code of the asset","in":"path","name":"asset_code","required":true,"schema":{"type":"string"}},{"description":"Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable","in":"path","name":"locale_code","required":true,"schema":{"type":"string"}},{"description":"Equal to 'multipart/form-data', no other value allowed","in":"header","name":"Content-type","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/post_reference_files__locale_code_Body"},"responses":{"201":{"description":"Uploaded","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the reference file upload was successful. Beware that even if the reference file upload is complete, some variation files generations could have failed. If so, you will see a warning message in the response body.","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"channel":{"description":"Channel for which the variation file generation failed","type":"string"},"locale":{"description":"Locale for which the variation file generation failed","type":"string"},"message":{"description":"Message explaining why the variation file generation failed","type":"string"}},"type":"object"},"type":"array"},"message":{"description":"Message explaining the warning","type":"string"}},"type":"object"}}}},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `multipart/form-data`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘multipart/form-data’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Upload a new reference file","tags":["PAM asset reference file"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]}},"/api/rest/v1/assets/{asset_code}/reference-files/{locale_code}/download":{"get":{"description":"This endpoint allows you to download a given reference file.","operationId":"get_reference_files__channel_code__locale_code__download","parameters":[{"description":"Code of the asset","in":"path","name":"asset_code","required":true,"schema":{"type":"string"}},{"description":"Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable","in":"path","name":"locale_code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-content-type":"Mime-type of the reference file","x-details":"Returns the binary of the reference file"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}}},"summary":"Download a reference file","tags":["PAM asset reference file"],"x-content-type":"Mime-type of the reference file","x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]}},"/api/rest/v1/assets/{asset_code}/variation-files/{channel_code}/{locale_code}":{"get":{"description":"This endpoint allows you to get the information about a variation file of a given PAM asset.","operationId":"get_variation_files__channel_code__locale_code","parameters":[{"description":"Code of the asset","in":"path","name":"asset_code","required":true,"schema":{"type":"string"}},{"description":"Code of the channel","in":"path","name":"channel_code","required":true,"schema":{"type":"string"}},{"description":"Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable","in":"path","name":"locale_code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the variation file in JSON format","content":{"application/json":{"schema":{"example":{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale/download"}},"code":"7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_ecommerce.jpg","locale":null,"scope":"ecommerce"},"properties":{"_link":{"description":"Links to get and download the reference file","properties":{"download":{"properties":{"href":{"description":"URI to download the variation file","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the PAM asset variation file","type":"string","x-immutable":true},"locale":{"description":"Locale of the PAM asset variation file, equal to `null` if the asset is not localizable","type":"string"},"scope":{"description":"Channel of the PAM asset variation file","type":"string"}},"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a variation file","tags":["PAM asset variation file"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]},"post":{"description":"This endpoint allows you to upload a new variation file for a given PAM asset, channel and locale.","operationId":"post_variation_files__channel_code__locale_code_","parameters":[{"description":"Code of the asset","in":"path","name":"asset_code","required":true,"schema":{"type":"string"}},{"description":"Code of the channel","in":"path","name":"channel_code","required":true,"schema":{"type":"string"}},{"description":"Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable","in":"path","name":"locale_code","required":true,"schema":{"type":"string"}},{"description":"Equal to 'multipart/form-data', no other value allowed","in":"header","name":"Content-type","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/post_reference_files__locale_code_Body"},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `multipart/form-data`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘multipart/form-data’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Upload a new variation file","tags":["PAM asset variation file"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]}},"/api/rest/v1/assets/{asset_code}/variation-files/{channel_code}/{locale_code}/download":{"get":{"description":"This endpoint allows you to download a given variation file.","operationId":"get_variation_files__channel_code__locale_code__download","parameters":[{"description":"Code of the asset","in":"path","name":"asset_code","required":true,"schema":{"type":"string"}},{"description":"Code of the channel","in":"path","name":"channel_code","required":true,"schema":{"type":"string"}},{"description":"Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable","in":"path","name":"locale_code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-content-type":"Mime-type of the variation file","x-details":"Returns the binary of the variation file"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}}},"summary":"Download a variation file","tags":["PAM asset variation file"],"x-content-type":"Mime-type of the variation file","x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]}},"/api/rest/v1/assets/{code}":{"get":{"description":"This endpoint allows you to get the information about a given PAM asset.","operationId":"get_pam_assets__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the PAM asset in JSON format","content":{"application/json":{"schema":{"example":{"categories":["tshirts_assets"],"code":"tshirt_artemis_main_picture","description":"The main picture of the Artemis t-shirt","end_of_use":"2019-09-01T00:00:00+0200","localizable":false,"reference_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture.jpg","locale":null}],"tags":["tshirts","red","summer"],"variation_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale"}},"code":"7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_ecommerce.jpg","locale":null,"scope":"e_commerce"},{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_print.jpg","locale":null,"scope":"print"}]},"properties":{"categories":{"default":[],"description":"Codes of the PAM asset categories in which the asset is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing asset category code"},"code":{"description":"PAM asset code","type":"string","x-immutable":true},"description":{"default":null,"description":"Description of the PAM asset","type":"string"},"end_of_use":{"default":null,"description":"Date on which the PAM asset expire","format":"dateTime","type":"string","x-validation-rules":"The date follows the ISO 8601 format"},"localizable":{"default":false,"description":"Whether the asset is localized or not, meaning if you want to have different reference files for each of your locale","type":"boolean","x-immutable":true},"reference_files":{"description":"Reference files of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the reference file","properties":{"download":{"properties":{"href":{"description":"URI to download the reference file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the reference file entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the reference file","type":"string"},"locale":{"description":"Locale code of the reference file","type":"string"}},"type":"object"},"type":"array","x-read-only":true},"tags":{"default":[],"description":"Tags of the PAM asset","items":{"type":"string"},"type":"array"},"variation_files":{"description":"Variations of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the variation file","properties":{"download":{"properties":{"href":{"description":"URI to download the variation file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the variation entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the variation","type":"string"},"locale":{"description":"Locale code of the variation","type":"string"},"scope":{"description":"Channel code of the variation","type":"string"}},"type":"object"},"type":"array","x-read-only":true}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a PAM asset","tags":["PAM asset"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]},"patch":{"description":"This endpoint allows you to update a given PAM asset. Know more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no asset exists for the given code, it creates it.","operationId":"patch_pam_assets__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"categories":["tshirts_assets"],"code":"tshirt_artemis_main_picture","description":"The main picture of the Artemis t-shirt","end_of_use":"2019-09-01T00:00:00+0200","localizable":false,"reference_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture.jpg","locale":null}],"tags":["tshirts","red","summer"],"variation_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale"}},"code":"7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_ecommerce.jpg","locale":null,"scope":"e_commerce"},{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_print.jpg","locale":null,"scope":"print"}]},"properties":{"categories":{"default":[],"description":"Codes of the PAM asset categories in which the asset is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing asset category code"},"code":{"description":"PAM asset code","type":"string","x-immutable":true},"description":{"default":null,"description":"Description of the PAM asset","type":"string"},"end_of_use":{"default":null,"description":"Date on which the PAM asset expire","format":"dateTime","type":"string","x-validation-rules":"The date follows the ISO 8601 format"},"localizable":{"default":false,"description":"Whether the asset is localized or not, meaning if you want to have different reference files for each of your locale","type":"boolean","x-immutable":true},"reference_files":{"description":"Reference files of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the reference file","properties":{"download":{"properties":{"href":{"description":"URI to download the reference file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the reference file entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the reference file","type":"string"},"locale":{"description":"Locale code of the reference file","type":"string"}},"type":"object"},"type":"array","x-read-only":true},"tags":{"default":[],"description":"Tags of the PAM asset","items":{"type":"string"},"type":"array"},"variation_files":{"description":"Variations of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the variation file","properties":{"download":{"properties":{"href":{"description":"URI to download the variation file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the variation entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the variation","type":"string"},"locale":{"description":"Locale code of the variation","type":"string"},"scope":{"description":"Channel code of the variation","type":"string"}},"type":"object"},"type":"array","x-read-only":true}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a PAM asset","tags":["PAM asset"],"x-deprecated":true,"x-ee":true,"x-versions":["2.1","2.2","2.3","3.x"]}},"/api/rest/v1/association-types":{"get":{"description":"This endpoint allows you to get a list of association types. Association types are paginated and sorted by code.","operationId":"association_types_get_list","parameters":[{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return association types paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"upsell","is_quantified":false,"is_two_way":false,"labels":{"en_US":"Upsell","fr_FR":"Vente incitative"}},"properties":{"code":{"description":"Association type code","type":"string","x-immutable":true},"is_quantified":{"default":false,"description":"When true, the association is a quantified association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"is_two_way":{"default":false,"description":"When true, the association is a two-way association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"labels":{"default":{},"description":"Association type labels for each locale","properties":{"localeCode":{"description":"Association type label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Association types","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/association-types/X_SELL"}},"code":"X_SELL","is_quantified":false,"is_two_way":false,"labels":{"en_US":"Cross sell","fr_FR":"Vente croisée"}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/association-types/UPSELL"}},"code":"UPSELL","is_quantified":false,"is_two_way":false,"labels":{"en_US":"Upsell","fr_FR":"Vente incitative"}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/association-types/SUBSTITUTION"}},"code":"SUBSTITUTION","is_quantified":false,"is_two_way":false,"labels":{"en_US":"Substitution","fr_FR":"Remplacement"}}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/association-types?page=1&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/association-types?page=1&limit=3"}}}}},"current_page":{"examples":{"response":{"value":1}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a list of association types","tags":["Association type"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several association types at once.","operationId":"several_association_types_patch","requestBody":{"content":{"application/json":{"schema":{"example":{"code":"upsell","is_quantified":false,"is_two_way":false,"labels":{"en_US":"Upsell","fr_FR":"Vente incitative"}},"properties":{"code":{"description":"Association type code","type":"string","x-immutable":true},"is_quantified":{"default":false,"description":"When true, the association is a quantified association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"is_two_way":{"default":false,"description":"When true, the association is a two-way association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"labels":{"default":{},"description":"Association type labels for each locale","properties":{"localeCode":{"description":"Association type label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object","x-examples":{"x-example-1":"{\"code\":\"new_sell\"}","x-example-2":"{\"code\":\"substitution\", \"type\":\"bar\"}","x-example-3":"{\"code\":\"x_cross_sell\", \"is_two_way\": true, \"is_quantified\": false}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"code\":\"new_sell\",\"status_code\":201}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"code\":\"substitution\",\"status_code\":422,\"message\":\"Property \\\"type\\\" does not exist. Check the standard format documentation.\",\"_links\":{\"documentation\":{\"href\":\"http:\\/\\/api.akeneo.com\\/api-reference.html#patch_association_types__code_\"}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"code\":\"x_cross_sell\",\"status_code\":204}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several association types","tags":["Association type"],"x-body-by-line":"Contains several lines, each line is an association type in JSON standard format","x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a new association type.","operationId":"association_types_post","requestBody":{"content":{"application/json":{"schema":{"example":{"code":"upsell","is_quantified":false,"is_two_way":false,"labels":{"en_US":"Upsell","fr_FR":"Vente incitative"}},"properties":{"code":{"description":"Association type code","type":"string","x-immutable":true},"is_quantified":{"default":false,"description":"When true, the association is a quantified association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"is_two_way":{"default":false,"description":"When true, the association is a two-way association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"labels":{"default":{},"description":"Association type labels for each locale","properties":{"localeCode":{"description":"Association type label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new association type","tags":["Association type"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/association-types/{code}":{"get":{"description":"This endpoint allows you to get the information about a given association type.","operationId":"association_types_get","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the association type in JSON standard format","content":{"application/json":{"schema":{"example":{"code":"upsell","is_quantified":false,"is_two_way":false,"labels":{"en_US":"Upsell","fr_FR":"Vente incitative"}},"properties":{"code":{"description":"Association type code","type":"string","x-immutable":true},"is_quantified":{"default":false,"description":"When true, the association is a quantified association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"is_two_way":{"default":false,"description":"When true, the association is a two-way association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"labels":{"default":{},"description":"Association type labels for each locale","properties":{"localeCode":{"description":"Association type label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get an association type","tags":["Association type"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given association type. Know more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no association type exists for the given code, it creates it.","operationId":"association_types_patch","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"upsell","is_quantified":false,"is_two_way":false,"labels":{"en_US":"Upsell","fr_FR":"Vente incitative"}},"properties":{"code":{"description":"Association type code","type":"string","x-immutable":true},"is_quantified":{"default":false,"description":"When true, the association is a quantified association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"is_two_way":{"default":false,"description":"When true, the association is a two-way association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"labels":{"default":{},"description":"Association type labels for each locale","properties":{"localeCode":{"description":"Association type label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create an association type","tags":["Association type"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/attribute-groups":{"get":{"description":"This endpoint allows you to get a list of attribute groups. Attribute groups are paginated and sorted by code.","operationId":"attribute_groups_get_list","parameters":[{"description":"Filter attribute groups, for more details see the <a href=\"/documentation/filter.html#filter-attribute-groups\">Filters</a> section.","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return attribute groups paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"attributes":["sku","name","description","response_time","release_date","price"],"code":"marketing","labels":{"en_US":"Marketing","fr_FR":"Marketing"},"sort_order":4},"properties":{"attributes":{"default":[],"description":"Attribute codes that compose the attribute group","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code, an attribute can only be in one attribute group"},"code":{"description":"Attribute group code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute group labels for each locale","properties":{"localeCode":{"description":"Attribute group label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"default":0,"description":"Attribute group order among other attribute groups","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Attribute groups","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/attribute-groups/marketing"}},"attributes":["sku","name","description","response_time","release_date","price"],"code":"marketing","labels":{"en_US":"Marketing","fr_FR":"Marketing"},"sort_order":4},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/attribute-groups/technical"}},"attributes":["weight","maximum_scan_size","color_scanning","power_requirements","maximum_print_size","sensor_type","total_megapixels","optical_zoom","camera_type"],"code":"technical","labels":{"en_US":"Technical","fr_FR":"Technique"},"sort_order":5}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/attribute-groups?page=1&limit=2"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/attribute-groups?page=4&limit=2"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/attribute-groups?page=2&limit=2"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/attribute-groups?page=3&limit=2"}}}}},"current_page":{"examples":{"response":{"value":3}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of attribute groups","tags":["Attribute group"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several attribute groups at once.","operationId":"several_attribute_groups_patch","requestBody":{"content":{"application/json":{"schema":{"example":{"attributes":["sku","name","description","response_time","release_date","price"],"code":"marketing","labels":{"en_US":"Marketing","fr_FR":"Marketing"},"sort_order":4},"properties":{"attributes":{"default":[],"description":"Attribute codes that compose the attribute group","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code, an attribute can only be in one attribute group"},"code":{"description":"Attribute group code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute group labels for each locale","properties":{"localeCode":{"description":"Attribute group label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"default":0,"description":"Attribute group order among other attribute groups","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object","x-examples":{"x-example-1":"{\"code\":\"technical\",\"labels\":{\"en_US\": \"Technical\", \"fr_FR\": \"Technique\"}}","x-example-2":"{\"code\":\"marketing\",\"type\":\"bar\"}","x-example-3":"{\"code\":\"design\",\"sort_order\":7}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"code\":\"technical\",\"status_code\":201}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"code\":\"marketing\",\"status_code\":422,\"message\":\"Property \\\"type\\\" does not exist. Check the standard format documentation.\",\"_links\":{\"documentation\":{\"href\":\"http:\\/\\/api.akeneo.com\\/api-reference.html#patch_attribute_groups__code_\"}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"code\":\"design\",\"status_code\":204}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several attribute groups","tags":["Attribute group"],"x-body-by-line":"Contains several lines, each line is an attribute group in JSON standard format","x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a new attribute group.","operationId":"attribute_groups_post","requestBody":{"content":{"application/json":{"schema":{"example":{"attributes":["sku","name","description","response_time","release_date","price"],"code":"marketing","labels":{"en_US":"Marketing","fr_FR":"Marketing"},"sort_order":4},"properties":{"attributes":{"default":[],"description":"Attribute codes that compose the attribute group","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code, an attribute can only be in one attribute group"},"code":{"description":"Attribute group code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute group labels for each locale","properties":{"localeCode":{"description":"Attribute group label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"default":0,"description":"Attribute group order among other attribute groups","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new attribute group","tags":["Attribute group"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/attribute-groups/{code}":{"get":{"description":"This endpoint allows you to get the information about a given attribute group.","operationId":"attribute_groups_get","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the attribute group in JSON standard format","content":{"application/json":{"schema":{"example":{"attributes":["sku","name","description","response_time","release_date","price"],"code":"marketing","labels":{"en_US":"Marketing","fr_FR":"Marketing"},"sort_order":4},"properties":{"attributes":{"default":[],"description":"Attribute codes that compose the attribute group","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code, an attribute can only be in one attribute group"},"code":{"description":"Attribute group code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute group labels for each locale","properties":{"localeCode":{"description":"Attribute group label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"default":0,"description":"Attribute group order among other attribute groups","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get an attribute group","tags":["Attribute group"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given attribute group. Know more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no attribute group exists for the given code, it creates it.","operationId":"attribute_groups_patch","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"attributes":["sku","name","description","response_time","release_date","price"],"code":"marketing","labels":{"en_US":"Marketing","fr_FR":"Marketing"},"sort_order":4},"properties":{"attributes":{"default":[],"description":"Attribute codes that compose the attribute group","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code, an attribute can only be in one attribute group"},"code":{"description":"Attribute group code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute group labels for each locale","properties":{"localeCode":{"description":"Attribute group label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"default":0,"description":"Attribute group order among other attribute groups","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create an attribute group","tags":["Attribute group"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/attributes":{"get":{"description":"This endpoint allows you to get a list of attributes. Attributes are paginated and sorted by code.","operationId":"get_attributes","parameters":[{"description":"Filter attributes, for more details see the <a href=\"/documentation/filter.html#filter-attributes\">Filters</a> section.","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}},{"description":"Return the options of 'select' column types (of a table attribute) in the response. (Only available since the 7.0 version)","in":"query","name":"with_table_select_options","required":false,"x-from-version":"7.0","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return attributes paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"allowed_extensions":[],"available_locales":[],"code":"release_date","date_max":"2025-08-15T13:52:10.880Z","date_min":"2025-08-15T13:52:10.880Z","decimals_allowed":null,"default_metric_unit":null,"default_value":null,"group":"marketing","group_labels":{"en_US":"Marketing","fr_FR":"Marketing"},"labels":{"en_US":"Sale date","fr_FR":"Date des soldes"},"localizable":false,"max_characters":null,"max_file_size":null,"metric_family":null,"minimum_input_length":null,"negative_allowed":null,"number_max":null,"number_min":null,"reference_data_name":null,"scopable":false,"sort_order":1,"type":"pim_catalog_date","unique":false,"useable_as_grid_filter":true,"validation_regexp":null,"validation_rule":null,"wysiwyg_enabled":null},"properties":{"allowed_extensions":{"description":"Extensions allowed when the attribute type is `pim_catalog_file` or `pim_catalog_image`","items":{"type":"string"},"type":"array","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"available_locales":{"description":"To make the attribute locale specfic, specify here for which locales it is specific","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing and activated locale"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"date_max":{"description":"Maximum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"date_min":{"description":"Minimum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"decimals_allowed":{"description":"Whether decimals are allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"default_metric_unit":{"description":"Default metric unit when the attribute type is `pim_catalog_metric`","type":"string","x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"default_value":{"description":"Default value for a Yes/No attribute, applied when creating a new product or product model (only available since the 5.0)","type":"boolean","x-from-version":"5.0","x-warning":"Only for `pim_catalog_boolean` attribute type"},"group":{"description":"Attribute group","type":"string","x-validation-rules":"It is the code of an existing group"},"group_labels":{"default":{},"description":"Group labels for each locale","properties":{"localeCode":{"description":"Group label for the locale `localeCode`","type":"string"}},"type":"object","x-read-only":true,"x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"localizable":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true},"max_characters":{"description":"Number maximum of characters allowed for the value of the attribute when the attribute type is `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier`","type":"integer","x-warning":"Only for `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier` attribute types"},"max_file_size":{"description":"Max file size in MB when the attribute type is `pim_catalog_file` or `pim_catalog_image`","type":"string","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"metric_family":{"description":"Metric family when the attribute type is `pim_catalog_metric`","type":"string","x-immutable":true,"x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"negative_allowed":{"description":"Whether negative values are allowed when the attribute type is `pim_catalog_metric` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric` or `pim_catalog_number` attribute types"},"number_max":{"description":"Maximum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"number_min":{"description":"Minimum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"reference_data_name":{"description":"Reference entity code when the attribute type is `akeneo_reference_entity` or `akeneo_reference_entity_collection` OR Asset family code when the attribute type is `pim_catalog_asset_collection`","type":"string","x-validation-rules":"Required only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types","x-warning":"Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types"},"scopable":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"sort_order":{"default":0,"description":"Order of the attribute in its group","type":"integer","x-validation-rules":"It is a positive integer"},"table_configuration":{"description":"Configuration of the Table attribute (columns)","items":{"properties":{"code":{"description":"Column code","type":"string"},"data_type":{"description":"Column data type","enum":["select","text","number","boolean"],"type":"string"},"is_required_for_completeness":{"default":false,"description":"Defines if the column should be entirely filled for the attribute to be considered complete","type":"boolean","x-warning":"This value is always true for the first column in a table configuration"},"labels":{"default":{},"description":"Column labels for each locale","properties":{"localeCode":{"description":"Column label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"validations":{"default":{},"description":"User defined validation constraints on the cell content","properties":{"decimals_allowed":{"description":"whether the value of a numeric cell can hold a decimal part","type":"boolean","x-validation-rules":"only for `number` data type columns"},"max":{"description":"maximum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"},"max_length":{"description":"maximum length of a text cell","type":"number","x-validation-rules":"only for `text` data type columns"},"min":{"description":"minimum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"}},"type":"object"}},"required":["code","data_type"],"type":"object"},"type":"array","x-validation-rules":"Required only for `pim_catalog_table` attribute type","x-warning":"Only for `pim_catalog_table` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/catalog-structure.html#attribute'>type</a> section for more details.","enum":["pim_catalog_identifier","pim_catalog_metric","pim_catalog_number","pim_catalog_reference_data_multi_select","pim_catalog_reference_data_simple_select","pim_catalog_simpleselect","pim_catalog_multiselect","pim_catalog_date","pim_catalog_textarea","pim_catalog_text","pim_catalog_file","pim_catalog_image","pim_catalog_price_collection","pim_catalog_boolean","akeneo_reference_entity","akeneo_reference_entity_collection","pim_catalog_asset_collection"],"type":"string","x-immutable":true,"x-validation-rules":"The type is one of the following values"},"unique":{"description":"Whether two values for the attribute cannot be the same","type":"boolean","x-immutable":true},"useable_as_grid_filter":{"description":"Whether the attribute can be used as a filter for the product grid in the PIM user interface","type":"boolean"},"validation_regexp":{"description":"Regexp expression used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"validation_rule":{"description":"Validation rule type used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Equal to `regexp` when the attribute type is equal to `pim_catalog_identifier`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"wysiwyg_enabled":{"description":"Whether the WYSIWYG interface is shown when the attribute type is `pim_catalog_textarea`","type":"boolean","x-warning":"Only for `pim_catalog_textarea` attribute type"}},"required":["code","type","group"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Attributes","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/attributes/sku"}},"allowed_extensions":[],"available_locales":[],"code":"sku","date_max":null,"date_min":null,"decimals_allowed":false,"default_metric_unit":null,"default_value":null,"group":"other","group_labels":{"en_US":"Other","fr_FR":"Autre"},"labels":{"en_US":"Identifier","fr_FR":"Identifiant"},"localizable":false,"max_characters":null,"max_file_size":null,"metric_family":null,"minimum_input_length":null,"negative_allowed":false,"number_max":null,"number_min":null,"reference_data_name":null,"scopable":false,"sort_order":1,"type":"pim_catalog_identifier","unique":true,"useable_as_grid_filter":true,"validation_regexp":null,"validation_rule":null,"wysiwyg_enabled":false},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/attributes/release_date"}},"allowed_extensions":[],"available_locales":[],"code":"release_date","date_max":"2025-08-15T13:52:10.880Z","date_min":"2025-08-15T13:52:10.880Z","decimals_allowed":false,"default_metric_unit":null,"default_value":null,"group":"marketing","labels":{"en_US":"Sale date","fr_FR":"Date des soldes"},"localizable":false,"max_characters":null,"max_file_size":null,"metric_family":null,"minimum_input_length":null,"negative_allowed":false,"number_max":null,"number_min":null,"reference_data_name":null,"scopable":false,"sort_order":1,"type":"pim_catalog_date","unique":false,"useable_as_grid_filter":true,"validation_regexp":null,"validation_rule":null,"wysiwyg_enabled":false},{"_links":{"self":{"href":"http://localhost:8080/api/rest/v1/attributes/food_composition"}},"allowed_extensions":[],"auto_option_sorting":null,"available_locales":[],"code":"food_composition","date_max":null,"date_min":null,"decimals_allowed":null,"default_metric_unit":null,"default_value":null,"group":"product","guidelines":{},"is_read_only":null,"labels":{"en_US":"Composition","fr_FR":"Composition"},"localizable":false,"max_characters":null,"max_file_size":null,"metric_family":null,"minimum_input_length":null,"negative_allowed":null,"number_max":null,"number_min":null,"reference_data_name":null,"scopable":false,"sort_order":0,"table_configuration":[{"code":"ingredient","data_type":"select","is_required_for_completeness":true,"labels":{"en_US":"Ingredient","fr_FR":"Ingrédient"},"validations":{}},{"code":"percentage","data_type":"number","is_required_for_completeness":true,"labels":{"en_US":"%","fr_FR":"%"},"validations":{"decimals_allowed":true,"max":100,"min":0}},{"code":"allergen","data_type":"boolean","is_required_for_completeness":false,"labels":{"en_US":"Allergen","fr_FR":"Allergène"},"validations":{}}],"type":"pim_catalog_table","unique":false,"useable_as_grid_filter":false,"validation_regexp":null,"validation_rule":null,"wysiwyg_enabled":null}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/attributes?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/attributes?page=4&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/attributes?page=2&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/attributes?page=3&limit=3"}}}}},"current_page":{"examples":{"response":{"value":3}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of attributes","tags":["Attribute"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several attributes at once.","operationId":"patch_attributes","requestBody":{"content":{"application/json":{"schema":{"example":{"allowed_extensions":[],"available_locales":[],"code":"release_date","date_max":"2025-08-15T13:52:10.880Z","date_min":"2025-08-15T13:52:10.880Z","decimals_allowed":null,"default_metric_unit":null,"default_value":null,"group":"marketing","group_labels":{"en_US":"Marketing","fr_FR":"Marketing"},"labels":{"en_US":"Sale date","fr_FR":"Date des soldes"},"localizable":false,"max_characters":null,"max_file_size":null,"metric_family":null,"minimum_input_length":null,"negative_allowed":null,"number_max":null,"number_min":null,"reference_data_name":null,"scopable":false,"sort_order":1,"type":"pim_catalog_date","unique":false,"useable_as_grid_filter":true,"validation_regexp":null,"validation_rule":null,"wysiwyg_enabled":null},"properties":{"allowed_extensions":{"description":"Extensions allowed when the attribute type is `pim_catalog_file` or `pim_catalog_image`","items":{"type":"string"},"type":"array","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"available_locales":{"description":"To make the attribute locale specfic, specify here for which locales it is specific","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing and activated locale"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"date_max":{"description":"Maximum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"date_min":{"description":"Minimum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"decimals_allowed":{"description":"Whether decimals are allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"default_metric_unit":{"description":"Default metric unit when the attribute type is `pim_catalog_metric`","type":"string","x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"default_value":{"description":"Default value for a Yes/No attribute, applied when creating a new product or product model (only available since the 5.0)","type":"boolean","x-from-version":"5.0","x-warning":"Only for `pim_catalog_boolean` attribute type"},"group":{"description":"Attribute group","type":"string","x-validation-rules":"It is the code of an existing group"},"group_labels":{"default":{},"description":"Group labels for each locale","properties":{"localeCode":{"description":"Group label for the locale `localeCode`","type":"string"}},"type":"object","x-read-only":true,"x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"localizable":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true},"max_characters":{"description":"Number maximum of characters allowed for the value of the attribute when the attribute type is `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier`","type":"integer","x-warning":"Only for `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier` attribute types"},"max_file_size":{"description":"Max file size in MB when the attribute type is `pim_catalog_file` or `pim_catalog_image`","type":"string","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"metric_family":{"description":"Metric family when the attribute type is `pim_catalog_metric`","type":"string","x-immutable":true,"x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"negative_allowed":{"description":"Whether negative values are allowed when the attribute type is `pim_catalog_metric` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric` or `pim_catalog_number` attribute types"},"number_max":{"description":"Maximum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"number_min":{"description":"Minimum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"reference_data_name":{"description":"Reference entity code when the attribute type is `akeneo_reference_entity` or `akeneo_reference_entity_collection` OR Asset family code when the attribute type is `pim_catalog_asset_collection`","type":"string","x-validation-rules":"Required only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types","x-warning":"Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types"},"scopable":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"sort_order":{"default":0,"description":"Order of the attribute in its group","type":"integer","x-validation-rules":"It is a positive integer"},"table_configuration":{"description":"Configuration of the Table attribute (columns)","items":{"properties":{"code":{"description":"Column code","type":"string"},"data_type":{"description":"Column data type","enum":["select","text","number","boolean"],"type":"string"},"is_required_for_completeness":{"default":false,"description":"Defines if the column should be entirely filled for the attribute to be considered complete","type":"boolean","x-warning":"This value is always true for the first column in a table configuration"},"labels":{"default":{},"description":"Column labels for each locale","properties":{"localeCode":{"description":"Column label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"validations":{"default":{},"description":"User defined validation constraints on the cell content","properties":{"decimals_allowed":{"description":"whether the value of a numeric cell can hold a decimal part","type":"boolean","x-validation-rules":"only for `number` data type columns"},"max":{"description":"maximum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"},"max_length":{"description":"maximum length of a text cell","type":"number","x-validation-rules":"only for `text` data type columns"},"min":{"description":"minimum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"}},"type":"object"}},"required":["code","data_type"],"type":"object"},"type":"array","x-validation-rules":"Required only for `pim_catalog_table` attribute type","x-warning":"Only for `pim_catalog_table` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/catalog-structure.html#attribute'>type</a> section for more details.","enum":["pim_catalog_identifier","pim_catalog_metric","pim_catalog_number","pim_catalog_reference_data_multi_select","pim_catalog_reference_data_simple_select","pim_catalog_simpleselect","pim_catalog_multiselect","pim_catalog_date","pim_catalog_textarea","pim_catalog_text","pim_catalog_file","pim_catalog_image","pim_catalog_price_collection","pim_catalog_boolean","akeneo_reference_entity","akeneo_reference_entity_collection","pim_catalog_asset_collection"],"type":"string","x-immutable":true,"x-validation-rules":"The type is one of the following values"},"unique":{"description":"Whether two values for the attribute cannot be the same","type":"boolean","x-immutable":true},"useable_as_grid_filter":{"description":"Whether the attribute can be used as a filter for the product grid in the PIM user interface","type":"boolean"},"validation_regexp":{"description":"Regexp expression used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"validation_rule":{"description":"Validation rule type used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Equal to `regexp` when the attribute type is equal to `pim_catalog_identifier`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"wysiwyg_enabled":{"description":"Whether the WYSIWYG interface is shown when the attribute type is `pim_catalog_textarea`","type":"boolean","x-warning":"Only for `pim_catalog_textarea` attribute type"}},"required":["code","type","group"],"type":"object","x-examples":{"x-example-1":"{\"code\":\"description\",\"useable_as_grid_filter\":true}","x-example-2":"{\"code\":\"short_description\",\"group\":\"marketig\"}","x-example-3":"{\"code\":\"release_date\",\"date_min\":\"2017-06-28T08:00:00\"}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"code\":\"description\",\"status_code\":201}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"code\":\"short_description\",\"status_code\":422,\"message\":\"Group \"marketig\" does not exist.\"}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"code\":\"release_date\",\"status_code\":204}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several attributes","tags":["Attribute"],"x-body-by-line":"Contains several lines, each line is an attribute in JSON standard format","x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a new attribute.","operationId":"post_attributes","requestBody":{"content":{"application/json":{"schema":{"example":{"allowed_extensions":[],"available_locales":[],"code":"release_date","date_max":"2025-08-15T13:52:10.880Z","date_min":"2025-08-15T13:52:10.880Z","decimals_allowed":null,"default_metric_unit":null,"default_value":null,"group":"marketing","group_labels":{"en_US":"Marketing","fr_FR":"Marketing"},"labels":{"en_US":"Sale date","fr_FR":"Date des soldes"},"localizable":false,"max_characters":null,"max_file_size":null,"metric_family":null,"minimum_input_length":null,"negative_allowed":null,"number_max":null,"number_min":null,"reference_data_name":null,"scopable":false,"sort_order":1,"type":"pim_catalog_date","unique":false,"useable_as_grid_filter":true,"validation_regexp":null,"validation_rule":null,"wysiwyg_enabled":null},"properties":{"allowed_extensions":{"description":"Extensions allowed when the attribute type is `pim_catalog_file` or `pim_catalog_image`","items":{"type":"string"},"type":"array","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"available_locales":{"description":"To make the attribute locale specfic, specify here for which locales it is specific","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing and activated locale"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"date_max":{"description":"Maximum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"date_min":{"description":"Minimum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"decimals_allowed":{"description":"Whether decimals are allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"default_metric_unit":{"description":"Default metric unit when the attribute type is `pim_catalog_metric`","type":"string","x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"default_value":{"description":"Default value for a Yes/No attribute, applied when creating a new product or product model (only available since the 5.0)","type":"boolean","x-from-version":"5.0","x-warning":"Only for `pim_catalog_boolean` attribute type"},"group":{"description":"Attribute group","type":"string","x-validation-rules":"It is the code of an existing group"},"group_labels":{"default":{},"description":"Group labels for each locale","properties":{"localeCode":{"description":"Group label for the locale `localeCode`","type":"string"}},"type":"object","x-read-only":true,"x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"localizable":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true},"max_characters":{"description":"Number maximum of characters allowed for the value of the attribute when the attribute type is `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier`","type":"integer","x-warning":"Only for `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier` attribute types"},"max_file_size":{"description":"Max file size in MB when the attribute type is `pim_catalog_file` or `pim_catalog_image`","type":"string","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"metric_family":{"description":"Metric family when the attribute type is `pim_catalog_metric`","type":"string","x-immutable":true,"x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"negative_allowed":{"description":"Whether negative values are allowed when the attribute type is `pim_catalog_metric` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric` or `pim_catalog_number` attribute types"},"number_max":{"description":"Maximum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"number_min":{"description":"Minimum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"reference_data_name":{"description":"Reference entity code when the attribute type is `akeneo_reference_entity` or `akeneo_reference_entity_collection` OR Asset family code when the attribute type is `pim_catalog_asset_collection`","type":"string","x-validation-rules":"Required only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types","x-warning":"Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types"},"scopable":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"sort_order":{"default":0,"description":"Order of the attribute in its group","type":"integer","x-validation-rules":"It is a positive integer"},"table_configuration":{"description":"Configuration of the Table attribute (columns)","items":{"properties":{"code":{"description":"Column code","type":"string"},"data_type":{"description":"Column data type","enum":["select","text","number","boolean"],"type":"string"},"is_required_for_completeness":{"default":false,"description":"Defines if the column should be entirely filled for the attribute to be considered complete","type":"boolean","x-warning":"This value is always true for the first column in a table configuration"},"labels":{"default":{},"description":"Column labels for each locale","properties":{"localeCode":{"description":"Column label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"validations":{"default":{},"description":"User defined validation constraints on the cell content","properties":{"decimals_allowed":{"description":"whether the value of a numeric cell can hold a decimal part","type":"boolean","x-validation-rules":"only for `number` data type columns"},"max":{"description":"maximum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"},"max_length":{"description":"maximum length of a text cell","type":"number","x-validation-rules":"only for `text` data type columns"},"min":{"description":"minimum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"}},"type":"object"}},"required":["code","data_type"],"type":"object"},"type":"array","x-validation-rules":"Required only for `pim_catalog_table` attribute type","x-warning":"Only for `pim_catalog_table` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/catalog-structure.html#attribute'>type</a> section for more details.","enum":["pim_catalog_identifier","pim_catalog_metric","pim_catalog_number","pim_catalog_reference_data_multi_select","pim_catalog_reference_data_simple_select","pim_catalog_simpleselect","pim_catalog_multiselect","pim_catalog_date","pim_catalog_textarea","pim_catalog_text","pim_catalog_file","pim_catalog_image","pim_catalog_price_collection","pim_catalog_boolean","akeneo_reference_entity","akeneo_reference_entity_collection","pim_catalog_asset_collection"],"type":"string","x-immutable":true,"x-validation-rules":"The type is one of the following values"},"unique":{"description":"Whether two values for the attribute cannot be the same","type":"boolean","x-immutable":true},"useable_as_grid_filter":{"description":"Whether the attribute can be used as a filter for the product grid in the PIM user interface","type":"boolean"},"validation_regexp":{"description":"Regexp expression used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"validation_rule":{"description":"Validation rule type used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Equal to `regexp` when the attribute type is equal to `pim_catalog_identifier`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"wysiwyg_enabled":{"description":"Whether the WYSIWYG interface is shown when the attribute type is `pim_catalog_textarea`","type":"boolean","x-warning":"Only for `pim_catalog_textarea` attribute type"}},"required":["code","type","group"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new attribute","tags":["Attribute"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/attributes/{attribute_code}/options":{"get":{"description":"This endpoint allows you to get a list of attribute options. Attribute options are paginated and sorted by code.","operationId":"get_attributes__attribute_code__options","parameters":[{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return attribute options paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"attribute":"a_simple_select","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"},"sort_order":2},"properties":{"attribute":{"description":"Code of attribute related to the attribute option","type":"string","x-validation-rules":"It is the same attribute code as the one given as path parameter"},"code":{"description":"Code of option","type":"string"},"labels":{"default":{},"description":"Attribute option labels for each locale","properties":{"localeCode":{"description":"Attribute option label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"description":"Order of attribute option","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Attribute Options","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/attributes/color/options/red"}},"attribute":"a_simple_select","code":"red","labels":{"en_US":"Red","fr_FR":"Rouge"},"sort_order":1},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/attributes/color/options/black"}},"attribute":"a_simple_select","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"},"sort_order":2},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/attributes/color/options/purple"}},"attribute":"a_simple_select","code":"purple","labels":{"en_US":"Purple","fr_FR":"Violet"},"sort_order":3}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/attributes/color/options?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/attributes/color/options?page=4&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/attributes/color/options?page=2&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/attributes/color/options?page=3&limit=3"}}}}},"current_page":{"examples":{"response":{"value":3}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of attribute options","tags":["Attribute option"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update several attribute options at once.","operationId":"patch_attributes__attribute_code__options","parameters":[{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"attribute":"a_simple_select","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"},"sort_order":2},"properties":{"attribute":{"description":"Code of attribute related to the attribute option","type":"string","x-validation-rules":"It is the same attribute code as the one given as path parameter"},"code":{"description":"Code of option","type":"string"},"labels":{"default":{},"description":"Attribute option labels for each locale","properties":{"localeCode":{"description":"Attribute option label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"description":"Order of attribute option","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object","x-examples":{"x-example-1":"{\"code\":\"black\", \"attribute\":\"a_simple_select\", \"labels\":{\"en_US\": \"Black\",\"fr_FR\": \"Noir\"}}","x-example-2":"{\"code\":\"red\", \"label\":{\"en_US\": \"Red\",\"fr_FR\": \"Rouge\"}}","x-example-3":"{\"code\":\"yellow\", \"labels\":{\"en_US\": \"Yellow\",\"fr_FR\": \"Jaune\"}}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"code\":\"black\",\"status_code\":201}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"code\":\"red\",\"status_code\":422,\"message\":\"Property \"label\" does not exist. Check the API format documentation.\"}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"code\":\"yellow\",\"status_code\":204}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several attribute options","tags":["Attribute option"],"x-body-by-line":"Contains several lines, each line is an attribute option in JSON standard format","x-versions":["2.1","2.2","2.3","3.x","4.0","5.0","6.0","7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a new attribute option.","operationId":"post_attributes__attribute_code__options","parameters":[{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"attribute":"a_simple_select","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"},"sort_order":2},"properties":{"attribute":{"description":"Code of attribute related to the attribute option","type":"string","x-validation-rules":"It is the same attribute code as the one given as path parameter"},"code":{"description":"Code of option","type":"string"},"labels":{"default":{},"description":"Attribute option labels for each locale","properties":{"localeCode":{"description":"Attribute option label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"description":"Order of attribute option","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new attribute option","tags":["Attribute option"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/attributes/{attribute_code}/options/{code}":{"get":{"description":"This endpoint allows you to get the information about a given attribute option.","operationId":"get_attributes__attribute_code__options__code_","parameters":[{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the attribute option in JSON standard format","content":{"application/json":{"schema":{"example":{"attribute":"a_simple_select","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"},"sort_order":2},"properties":{"attribute":{"description":"Code of attribute related to the attribute option","type":"string","x-validation-rules":"It is the same attribute code as the one given as path parameter"},"code":{"description":"Code of option","type":"string"},"labels":{"default":{},"description":"Attribute option labels for each locale","properties":{"localeCode":{"description":"Attribute option label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"description":"Order of attribute option","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get an attribute option","tags":["Attribute option"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given attribute option. Know more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no attribute option exists for the given code, it creates it.","operationId":"patch_attributes__attribute_code__options__code_","parameters":[{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"attribute":"a_simple_select","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"},"sort_order":2},"properties":{"attribute":{"description":"Code of attribute related to the attribute option","type":"string","x-validation-rules":"It is the same attribute code as the one given as path parameter"},"code":{"description":"Code of option","type":"string"},"labels":{"default":{},"description":"Attribute option labels for each locale","properties":{"localeCode":{"description":"Attribute option label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"description":"Order of attribute option","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create an attribute option","tags":["Attribute option"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/attributes/{code}":{"get":{"description":"This endpoint allows you to get the information about a given attribute.","operationId":"get_attributes__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}},{"description":"Return the options of 'select' column types (of a table attribute) in the response. (Only available since the 7.0 version)","in":"query","name":"with_table_select_options","required":false,"x-from-version":"7.0","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the attribute in JSON standard format","content":{"application/json":{"schema":{"example":{"allowed_extensions":[],"available_locales":[],"code":"release_date","date_max":"2025-08-15T13:52:10.881Z","date_min":"2025-08-15T13:52:10.881Z","decimals_allowed":null,"default_metric_unit":null,"default_value":null,"group":"marketing","group_labels":{"en_US":"Marketing","fr_FR":"Marketing"},"labels":{"en_US":"Sale date","fr_FR":"Date des soldes"},"localizable":false,"max_characters":null,"max_file_size":null,"metric_family":null,"minimum_input_length":null,"negative_allowed":null,"number_max":null,"number_min":null,"reference_data_name":null,"scopable":false,"sort_order":1,"type":"pim_catalog_date","unique":false,"useable_as_grid_filter":true,"validation_regexp":null,"validation_rule":null,"wysiwyg_enabled":null},"properties":{"allowed_extensions":{"description":"Extensions allowed when the attribute type is `pim_catalog_file` or `pim_catalog_image`","items":{"type":"string"},"type":"array","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"available_locales":{"description":"To make the attribute locale specfic, specify here for which locales it is specific","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing and activated locale"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"date_max":{"description":"Maximum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"date_min":{"description":"Minimum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"decimals_allowed":{"description":"Whether decimals are allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"default_metric_unit":{"description":"Default metric unit when the attribute type is `pim_catalog_metric`","type":"string","x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"default_value":{"description":"Default value for a Yes/No attribute, applied when creating a new product or product model (only available since the 5.0)","type":"boolean","x-from-version":"5.0","x-warning":"Only for `pim_catalog_boolean` attribute type"},"group":{"description":"Attribute group","type":"string","x-validation-rules":"It is the code of an existing group"},"group_labels":{"default":{},"description":"Group labels for each locale","properties":{"localeCode":{"description":"Group label for the locale `localeCode`","type":"string"}},"type":"object","x-read-only":true,"x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"localizable":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true},"max_characters":{"description":"Number maximum of characters allowed for the value of the attribute when the attribute type is `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier`","type":"integer","x-warning":"Only for `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier` attribute types"},"max_file_size":{"description":"Max file size in MB when the attribute type is `pim_catalog_file` or `pim_catalog_image`","type":"string","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"metric_family":{"description":"Metric family when the attribute type is `pim_catalog_metric`","type":"string","x-immutable":true,"x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"negative_allowed":{"description":"Whether negative values are allowed when the attribute type is `pim_catalog_metric` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric` or `pim_catalog_number` attribute types"},"number_max":{"description":"Maximum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"number_min":{"description":"Minimum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"reference_data_name":{"description":"Reference entity code when the attribute type is `akeneo_reference_entity` or `akeneo_reference_entity_collection` OR Asset family code when the attribute type is `pim_catalog_asset_collection`","type":"string","x-validation-rules":"Required only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types","x-warning":"Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types"},"scopable":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"sort_order":{"default":0,"description":"Order of the attribute in its group","type":"integer","x-validation-rules":"It is a positive integer"},"table_configuration":{"description":"Configuration of the Table attribute (columns)","items":{"properties":{"code":{"description":"Column code","type":"string"},"data_type":{"description":"Column data type","enum":["select","text","number","boolean"],"type":"string"},"is_required_for_completeness":{"default":false,"description":"Defines if the column should be entirely filled for the attribute to be considered complete","type":"boolean","x-warning":"This value is always true for the first column in a table configuration"},"labels":{"default":{},"description":"Column labels for each locale","properties":{"localeCode":{"description":"Column label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"validations":{"default":{},"description":"User defined validation constraints on the cell content","properties":{"decimals_allowed":{"description":"whether the value of a numeric cell can hold a decimal part","type":"boolean","x-validation-rules":"only for `number` data type columns"},"max":{"description":"maximum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"},"max_length":{"description":"maximum length of a text cell","type":"number","x-validation-rules":"only for `text` data type columns"},"min":{"description":"minimum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"}},"type":"object"}},"required":["code","data_type"],"type":"object"},"type":"array","x-validation-rules":"Required only for `pim_catalog_table` attribute type","x-warning":"Only for `pim_catalog_table` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/catalog-structure.html#attribute'>type</a> section for more details.","enum":["pim_catalog_identifier","pim_catalog_metric","pim_catalog_number","pim_catalog_reference_data_multi_select","pim_catalog_reference_data_simple_select","pim_catalog_simpleselect","pim_catalog_multiselect","pim_catalog_date","pim_catalog_textarea","pim_catalog_text","pim_catalog_file","pim_catalog_image","pim_catalog_price_collection","pim_catalog_boolean","akeneo_reference_entity","akeneo_reference_entity_collection","pim_catalog_asset_collection"],"type":"string","x-immutable":true,"x-validation-rules":"The type is one of the following values"},"unique":{"description":"Whether two values for the attribute cannot be the same","type":"boolean","x-immutable":true},"useable_as_grid_filter":{"description":"Whether the attribute can be used as a filter for the product grid in the PIM user interface","type":"boolean"},"validation_regexp":{"description":"Regexp expression used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"validation_rule":{"description":"Validation rule type used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Equal to `regexp` when the attribute type is equal to `pim_catalog_identifier`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"wysiwyg_enabled":{"description":"Whether the WYSIWYG interface is shown when the attribute type is `pim_catalog_textarea`","type":"boolean","x-warning":"Only for `pim_catalog_textarea` attribute type"}},"required":["code","type","group"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get an attribute","tags":["Attribute"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given attribute. Know more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no attribute exists for the given code, it creates it.","operationId":"patch_attributes__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"allowed_extensions":[],"available_locales":[],"code":"release_date","date_max":"2025-08-15T13:52:10.881Z","date_min":"2025-08-15T13:52:10.881Z","decimals_allowed":null,"default_metric_unit":null,"default_value":null,"group":"marketing","group_labels":{"en_US":"Marketing","fr_FR":"Marketing"},"labels":{"en_US":"Sale date","fr_FR":"Date des soldes"},"localizable":false,"max_characters":null,"max_file_size":null,"metric_family":null,"minimum_input_length":null,"negative_allowed":null,"number_max":null,"number_min":null,"reference_data_name":null,"scopable":false,"sort_order":1,"type":"pim_catalog_date","unique":false,"useable_as_grid_filter":true,"validation_regexp":null,"validation_rule":null,"wysiwyg_enabled":null},"properties":{"allowed_extensions":{"description":"Extensions allowed when the attribute type is `pim_catalog_file` or `pim_catalog_image`","items":{"type":"string"},"type":"array","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"available_locales":{"description":"To make the attribute locale specfic, specify here for which locales it is specific","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing and activated locale"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"date_max":{"description":"Maximum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"date_min":{"description":"Minimum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"decimals_allowed":{"description":"Whether decimals are allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"default_metric_unit":{"description":"Default metric unit when the attribute type is `pim_catalog_metric`","type":"string","x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"default_value":{"description":"Default value for a Yes/No attribute, applied when creating a new product or product model (only available since the 5.0)","type":"boolean","x-from-version":"5.0","x-warning":"Only for `pim_catalog_boolean` attribute type"},"group":{"description":"Attribute group","type":"string","x-validation-rules":"It is the code of an existing group"},"group_labels":{"default":{},"description":"Group labels for each locale","properties":{"localeCode":{"description":"Group label for the locale `localeCode`","type":"string"}},"type":"object","x-read-only":true,"x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"localizable":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true},"max_characters":{"description":"Number maximum of characters allowed for the value of the attribute when the attribute type is `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier`","type":"integer","x-warning":"Only for `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier` attribute types"},"max_file_size":{"description":"Max file size in MB when the attribute type is `pim_catalog_file` or `pim_catalog_image`","type":"string","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"metric_family":{"description":"Metric family when the attribute type is `pim_catalog_metric`","type":"string","x-immutable":true,"x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"negative_allowed":{"description":"Whether negative values are allowed when the attribute type is `pim_catalog_metric` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric` or `pim_catalog_number` attribute types"},"number_max":{"description":"Maximum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"number_min":{"description":"Minimum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"reference_data_name":{"description":"Reference entity code when the attribute type is `akeneo_reference_entity` or `akeneo_reference_entity_collection` OR Asset family code when the attribute type is `pim_catalog_asset_collection`","type":"string","x-validation-rules":"Required only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types","x-warning":"Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types"},"scopable":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"sort_order":{"default":0,"description":"Order of the attribute in its group","type":"integer","x-validation-rules":"It is a positive integer"},"table_configuration":{"description":"Configuration of the Table attribute (columns)","items":{"properties":{"code":{"description":"Column code","type":"string"},"data_type":{"description":"Column data type","enum":["select","text","number","boolean"],"type":"string"},"is_required_for_completeness":{"default":false,"description":"Defines if the column should be entirely filled for the attribute to be considered complete","type":"boolean","x-warning":"This value is always true for the first column in a table configuration"},"labels":{"default":{},"description":"Column labels for each locale","properties":{"localeCode":{"description":"Column label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"validations":{"default":{},"description":"User defined validation constraints on the cell content","properties":{"decimals_allowed":{"description":"whether the value of a numeric cell can hold a decimal part","type":"boolean","x-validation-rules":"only for `number` data type columns"},"max":{"description":"maximum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"},"max_length":{"description":"maximum length of a text cell","type":"number","x-validation-rules":"only for `text` data type columns"},"min":{"description":"minimum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"}},"type":"object"}},"required":["code","data_type"],"type":"object"},"type":"array","x-validation-rules":"Required only for `pim_catalog_table` attribute type","x-warning":"Only for `pim_catalog_table` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/catalog-structure.html#attribute'>type</a> section for more details.","enum":["pim_catalog_identifier","pim_catalog_metric","pim_catalog_number","pim_catalog_reference_data_multi_select","pim_catalog_reference_data_simple_select","pim_catalog_simpleselect","pim_catalog_multiselect","pim_catalog_date","pim_catalog_textarea","pim_catalog_text","pim_catalog_file","pim_catalog_image","pim_catalog_price_collection","pim_catalog_boolean","akeneo_reference_entity","akeneo_reference_entity_collection","pim_catalog_asset_collection"],"type":"string","x-immutable":true,"x-validation-rules":"The type is one of the following values"},"unique":{"description":"Whether two values for the attribute cannot be the same","type":"boolean","x-immutable":true},"useable_as_grid_filter":{"description":"Whether the attribute can be used as a filter for the product grid in the PIM user interface","type":"boolean"},"validation_regexp":{"description":"Regexp expression used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"validation_rule":{"description":"Validation rule type used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Equal to `regexp` when the attribute type is equal to `pim_catalog_identifier`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"wysiwyg_enabled":{"description":"Whether the WYSIWYG interface is shown when the attribute type is `pim_catalog_textarea`","type":"boolean","x-warning":"Only for `pim_catalog_textarea` attribute type"}},"required":["code","type","group"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create an attribute","tags":["Attribute"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/catalogs":{"get":{"description":"This endpoint allows you to get the list of catalogs you owned.","operationId":"get_app_catalogs","parameters":[{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":100}}],"responses":{"200":{"description":"Return the paginated catalogs owned by the user making the request","x-examples":{"_embedded":{"items":[{"enabled":false,"id":"12351d98-200e-4bbc-aa19-7fdda1bd14f2","name":"Store FR"},{"enabled":true,"id":"092c5f22-ecd8-485f-97e9-3b78098e1386","name":"Store US"}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/catalogs?page=1&limit=2"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/catalogs?page=4&limit=2"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/catalogs?page=2&limit=2"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/catalogs?page=3&limit=2"}},"current_page":3},"content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"enabled":false,"id":"12351d98-200e-4bbc-aa19-7fdda1bd14f2","name":"My app catalog"},"properties":{"enabled":{"default":false,"description":"Whether the catalog is enabled or not","type":"boolean"},"id":{"description":"Catalog id","type":"string","x-immutable":true},"name":{"description":"Catalog name","type":"string"}},"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Catalogs","type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}}},"summary":"Get the list of owned catalogs","tags":["Catalogs"],"x-app-token":true,"x-versions":["SaaS"]},"post":{"description":"This endpoint allows you to create a new catalog.","operationId":"post_app_catalog","requestBody":{"$ref":"#/components/requestBodies/post_app_catalogBody"},"responses":{"201":{"description":"Created","x-details":"Means that the creation was successful","content":{"application/json":{"schema":{"example":{"enabled":false,"id":"12351d98-200e-4bbc-aa19-7fdda1bd14f2","name":"My app catalog"},"properties":{"enabled":{"default":false,"description":"Whether the catalog is enabled or not","type":"boolean"},"id":{"description":"Catalog id","type":"string","x-immutable":true},"name":{"description":"Catalog name","type":"string"}},"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","x-examples-per-version":[{"x-example":{"code":422,"errors":[{"message":"This value should not be blank.","property":"name"},{"message":"This value is too short. It should have 1 character or more.","property":"name"}],"message":"Validation failed."},"x-version":"SaaS"}],"content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}}}}},"summary":"Create a new catalog","tags":["Catalogs"],"x-app-token":true,"x-versions":["SaaS"]}},"/api/rest/v1/catalogs/{id}":{"delete":{"description":"This endpoint allows you to delete a catalog.","operationId":"delete_app_catalog","parameters":[{"description":"Catalog ID","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"404":{"description":"Catalog not found","x-details":"The catalog id given in the URI does not exist","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Catalog \"65f5a521-e65c-4d7b-8be8-1f267fa2729c\" does not exist or you can't access it."}}}}}},"summary":"Delete a catalog","tags":["Catalogs"],"x-app-token":true,"x-versions":["SaaS"]},"get":{"description":"This endpoint allows you to get the information about a catalog.","operationId":"get_app_catalog","parameters":[{"description":"Catalog ID","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Return the catalog","content":{"application/json":{"schema":{"example":{"enabled":false,"id":"12351d98-200e-4bbc-aa19-7fdda1bd14f2","name":"My app catalog"},"properties":{"enabled":{"default":false,"description":"Whether the catalog is enabled or not","type":"boolean"},"id":{"description":"Catalog id","type":"string","x-immutable":true},"name":{"description":"Catalog name","type":"string"}},"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"404":{"description":"Catalog not found","x-details":"The catalog id given in the URI does not exist","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Catalog \"65f5a521-e65c-4d7b-8be8-1f267fa2729c\" does not exist or you can't access it."}}}}}},"summary":"Get a catalog","tags":["Catalogs"],"x-app-token":true,"x-versions":["SaaS"]},"patch":{"description":"This endpoint allows you to update a catalog.","operationId":"patch_app_catalog","parameters":[{"description":"Catalog ID","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"$ref":"#/components/requestBodies/post_app_catalogBody"},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"example":{"enabled":false,"id":"12351d98-200e-4bbc-aa19-7fdda1bd14f2","name":"My app catalog"},"properties":{"enabled":{"default":false,"description":"Whether the catalog is enabled or not","type":"boolean"},"id":{"description":"Catalog id","type":"string","x-immutable":true},"name":{"description":"Catalog name","type":"string"}},"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"404":{"description":"Catalog not found","x-details":"The catalog id given in the URI does not exist","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Catalog \"65f5a521-e65c-4d7b-8be8-1f267fa2729c\" does not exist or you can't access it."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","x-examples-per-version":[{"x-example":{"code":422,"errors":[{"message":"This value should not be blank.","property":"name"},{"message":"This value is too short. It should have 1 character or more.","property":"name"}],"message":"Validation failed."},"x-version":"SaaS"}],"content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}}}}},"summary":"Update a catalog","tags":["Catalogs"],"x-app-token":true,"x-versions":["SaaS"]}},"/api/rest/v1/catalogs/{id}/mapped-products":{"get":{"description":"This endpoint allows you to get the list of products related to a catalog when the mapping is enabled. Please, note that a disabled catalog can return an HTTP 200 with a payload containing an error message, for more details see the <a href=\"apps/catalogs.html#troubleshooting\">App Catalog</a> section.","operationId":"get_app_catalog_mapped_products","parameters":[{"description":"Catalog ID","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"description":"Filter products that have been updated BEFORE the provided date (Only available on Catalogs endpoints)","in":"query","name":"updated_before","required":false,"x-from-version":"SaaS","schema":{"type":"string","format":"date"}},{"description":"Filter products that have been updated AFTER the provided date (Only available on Catalogs endpoints)","in":"query","name":"updated_after","required":false,"x-from-version":"SaaS","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Return the paginated **mapped** products","x-examples-per-version":[{"x-example":{"_embedded":{"items":[{"code":"sku-1234","title":"Canon Video Visualiser RE-455X","uuid":"04f47a54-8cc9-4c51-90e9-eb9aace0865f"},{"code":"sku-1235","title":"Trust Cuby Pro","uuid":"06dc8c5b-9e2f-4423-b9dd-31a3aaa0a048"},{"code":"sku-1236","title":"Trust Urban Revolt","uuid":"0c3635f9-fedc-4bbd-96ab-856f69746b56"},{"code":"sku-1237","title":"Microsoft LifeCam Studio","uuid":"0e957ed4-fa44-48de-b6c7-7149d890fb3a"}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/catalogs/d259aecf-3ec1-4b07-ae0f-ce234b86c025/mapped-products?limit=100"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/catalogs/d259aecf-3ec1-4b07-ae0f-ce234b86c025/mapped-products?limit=100"}}},"x-version":"SaaS"}],"content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"format":"uuid","type":"string"},"type":"array"}},"type":"object"}}}],"title":"Products","type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"404":{"description":"Catalog not found","x-details":"The catalog id given in the URI does not exist","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Catalog \"65f5a521-e65c-4d7b-8be8-1f267fa2729c\" does not exist or you can't access it."}}}}}},"summary":"Get the list of mapped products related to a catalog","tags":["Catalog products"],"x-versions":["SaaS"]}},"/api/rest/v1/catalogs/{id}/mapping-schemas/product":{"delete":{"description":"This endpoint allows you to delete the product mapping schema related to a catalog","operationId":"delete_app_catalogs_mapping_schema_product","parameters":[{"description":"Catalog ID","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"404":{"description":"Catalog not found","x-details":"The catalog id given in the URI does not exist","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Catalog \"65f5a521-e65c-4d7b-8be8-1f267fa2729c\" does not exist or you can't access it."}}}}}},"summary":"Delete the product mapping schema related to a catalog","tags":["Mapping schema for products"],"x-app-token":true,"x-versions":["SaaS"]},"get":{"description":"This endpoint allows you to retrieve the product mapping schema related to a catalog","operationId":"get_app_catalogs_mapping_schema_product","parameters":[{"description":"Catalog ID","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Return product mapping schema related to a catalog","content":{"application/json":{"schema":{"example":{"$comment":"My schema !","$id":"https://example.com/product","$schema":"https://api.akeneo.com/mapping/product/0.0.6/schema","description":"JSON Schema describing the structure of products expected by our application","properties":{"available":{"description":"Used to display when a product is out of stock on your e-commerce website.","title":"Is available","type":"boolean"},"body_html":{"description":"Product description in raw HTML","maxLength":255,"minLength":0,"title":"Description (textarea)","type":"string"},"main_color":{"description":"The main color of the product, used by grid filters on your e-commerce website.","title":"Main color","type":"string"},"main_image":{"description":"Format: URI/link","format":"uri","title":"Main image","type":"string"},"name":{"title":"Product name","type":"string"},"price":{"title":"Price (€)","type":"number"},"publication_date":{"description":"Format: ISO 8601 standard. \nUsed to filter products that must be published on your e-commerce website depending on the current date.","format":"date-time","title":"Publication date","type":"string"},"sku":{"description":"Selling Partner SKU (stock keeping unit) identifier for the listing. \n SKU uniquely identifies a listing for a Selling Partner.","title":"SKU (Stock Keeping Unit)","type":"string"},"uuid":{"title":"Product UUID","type":"string"},"weight":{"title":"Weight (g)","type":"number"}},"title":"Product Mapping","type":"object"},"properties":{"$comment":{"description":"allows you to add a comment","type":"string"},"$id":{"description":"id of your schema","type":"string"},"$schema":{"description":"$schema indicates which product mapping schema version your app uses","type":"string"},"description":{"description":"allows you to add a description of your mapping schema","type":"string"},"properties":{"description":"list and describe the targets your app expects","type":"object"},"title":{"description":"allows you to add a title to your mapping schema","type":"string"},"type":{"description":"should always be \"object\"","type":"string"}},"required":["$schema","properties"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"404":{"description":"Catalog not found","x-details":"The catalog id given in the URI does not exist","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Catalog \"65f5a521-e65c-4d7b-8be8-1f267fa2729c\" does not exist or you can't access it."}}}}}},"summary":"Get the product mapping schema related to a catalog","tags":["Mapping schema for products"],"x-app-token":true,"x-versions":["SaaS"]},"put":{"description":"This endpoint allows you to create or update the product mapping schema related to a catalog","operationId":"put_app_catalogs_mapping_schema_product","parameters":[{"description":"Catalog ID","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"$comment":"My schema !","$id":"https://example.com/product","$schema":"https://api.akeneo.com/mapping/product/0.0.6/schema","description":"JSON Schema describing the structure of products expected by our application","properties":{"available":{"description":"Used to display when a product is out of stock on your e-commerce website.","title":"Is available","type":"boolean"},"body_html":{"description":"Product description in raw HTML","maxLength":255,"minLength":0,"title":"Description (textarea)","type":"string"},"main_color":{"description":"The main color of the product, used by grid filters on your e-commerce website.","title":"Main color","type":"string"},"main_image":{"description":"Format: URI/link","format":"uri","title":"Main image","type":"string"},"name":{"title":"Product name","type":"string"},"price":{"title":"Price (€)","type":"number"},"publication_date":{"description":"Format: ISO 8601 standard. \nUsed to filter products that must be published on your e-commerce website depending on the current date.","format":"date-time","title":"Publication date","type":"string"},"sku":{"description":"Selling Partner SKU (stock keeping unit) identifier for the listing. \n SKU uniquely identifies a listing for a Selling Partner.","title":"SKU (Stock Keeping Unit)","type":"string"},"uuid":{"title":"Product UUID","type":"string"},"weight":{"title":"Weight (g)","type":"number"}},"title":"Product Mapping","type":"object"},"properties":{"$comment":{"description":"allows you to add a comment","type":"string"},"$id":{"description":"id of your schema","type":"string"},"$schema":{"description":"$schema indicates which product mapping schema version your app uses","type":"string"},"description":{"description":"allows you to add a description of your mapping schema","type":"string"},"properties":{"description":"list and describe the targets your app expects","type":"object"},"title":{"description":"allows you to add a title to your mapping schema","type":"string"},"type":{"description":"should always be \"object\"","type":"string"}},"required":["$schema","properties"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","x-examples-per-version":[{"x-example":{"code":422,"errors":[{"message":"You must provide a valid schema.","property":"product_mapping_schema"}],"message":"Validation failed."},"x-version":"SaaS"}],"content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}}}}},"summary":"Create or update the product mapping schema related to a catalog","tags":["Mapping schema for products"],"x-app-token":true,"x-versions":["SaaS"]}},"/api/rest/v1/catalogs/{id}/product-uuids":{"get":{"description":"This endpoint allows you to get the list of uuids of products contained in a catalog. Please, note that a disabled catalog can return an HTTP 200 with a payload containing an error message, for more details see the <a href=\"apps/catalogs.html#troubleshooting\">App Catalog</a> section.","operationId":"get_app_catalog_product_uuids","parameters":[{"description":"Id of the catalog","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"description":"Filter products that have been updated BEFORE the provided date (Only available on Catalogs endpoints)","in":"query","name":"updated_before","required":false,"x-from-version":"SaaS","schema":{"type":"string","format":"date"}},{"description":"Filter products that have been updated AFTER the provided date (Only available on Catalogs endpoints)","in":"query","name":"updated_after","required":false,"x-from-version":"SaaS","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Return the paginated product uuids","x-examples":{"_embedded":{"items":["844c736b-a19b-48a6-a354-6056044729f0","b2a683ef-4a91-4ed3-b3fa-76dab065a8d5","eddfbd2a-abc7-488d-b9e3-41289c824f80"]},"_links":{"first":{"href":"http://demo.akeneo.com/api/rest/v1/catalogs/12351d98-200e-4bbc-aa19-7fdda1bd14f2/product-uuids"},"next":{"href":"http://demo.akeneo.com/api/rest/v1/catalogs/12351d98-200e-4bbc-aa19-7fdda1bd14f2/product-uuids?search_after=eddfbd2a-abc7-488d-b9e3-41289c824f80"},"self":{"href":"http://demo.akeneo.com/api/rest/v1/catalogs/12351d98-200e-4bbc-aa19-7fdda1bd14f2/product-uuids"}}},"content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"format":"uuid","type":"string"},"type":"array"}},"type":"object"}}}],"title":"Product uuids","type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"404":{"description":"Catalog not found","x-details":"The catalog id given in the URI does not exist","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Catalog \"65f5a521-e65c-4d7b-8be8-1f267fa2729c\" does not exist or you can't access it."}}}}}},"summary":"Get the list of product uuids","tags":["Catalog products"],"x-app-token":true,"x-versions":["SaaS"]}},"/api/rest/v1/catalogs/{id}/products":{"get":{"description":"This endpoint allows you to get the list of products related to a catalog. Products are paginated and they can be filtered. In the Enterprise Edition, permissions based on your app settings are applied to the set of products you request. Please, note that a disabled catalog can return an HTTP 200 with a payload containing an error message, for more details see the <a href=\"apps/catalogs.html#troubleshooting\">App Catalog</a> section.","operationId":"get_app_catalog_products","parameters":[{"description":"Catalog ID","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"description":"Filter products that have been updated BEFORE the provided date (Only available on Catalogs endpoints)","in":"query","name":"updated_before","required":false,"x-from-version":"SaaS","schema":{"type":"string","format":"date"}},{"description":"Filter products that have been updated AFTER the provided date (Only available on Catalogs endpoints)","in":"query","name":"updated_after","required":false,"x-from-version":"SaaS","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Return the paginated products","x-examples-per-version":[{"x-example":{"_embedded":{"items":[{"associations":{"PACK":{"groups":[],"product_models":[],"products":[]},"SUBSTITUTION":{"groups":[],"product_models":[],"products":[]},"UPSELL":{"groups":[],"product_models":[],"products":[]},"X_SELL":{"groups":[],"product_models":[],"products":[]}},"categories":["Cloths"],"created":"2025-08-15T13:52:10.882Z","enabled":true,"family":"mens_clothing","groups":[],"quantified_associations":{},"updated":"2025-08-15T13:52:10.882Z","uuid":"00073089-1310-4340-bcf0-9e33e4019b79","values":{"Default_Price":[{"data":[{"amount":"10.00","currency":"USD"}]}],"Name":[{"data":"Product 416"}],"Weight":[{"data":{"amount":10,"unit":"KILOGRAM"}}],"sku":[{"data":"product_416"}]}},{"associations":{"PACK":{"groups":[],"product_models":[],"products":[]},"SUBSTITUTION":{"groups":[],"product_models":[],"products":[]},"UPSELL":{"groups":[],"product_models":[],"products":[]},"X_SELL":{"groups":[],"product_models":[],"products":[]}},"categories":["Cloths"],"created":"2025-08-15T13:52:10.882Z","enabled":true,"family":"mens_clothing","groups":[],"quantified_associations":{},"updated":"2025-08-15T13:52:10.882Z","uuid":"00248acf-f1f7-45cb-b409-c8c4b9a17a86","values":{"Default_Price":[{"data":[{"amount":"10.00","currency":"USD"}]}],"Name":[{"data":"Product 470"}],"Weight":[{"data":{"amount":10,"unit":"KILOGRAM"}}],"sku":[{"data":"product_470"}]}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/catalogs/65f5a521-e65c-4d7b-8be8-1f267fa2729c/products?limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/catalogs/65f5a521-e65c-4d7b-8be8-1f267fa2729c/products?search_after=0059d30f-6874-4277-81ed-3b3657c83f5e&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/catalogs/65f5a521-e65c-4d7b-8be8-1f267fa2729c/products?limit=3"}}},"x-version":"SaaS"}],"content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"format":"uuid","type":"string"},"type":"array"}},"type":"object"}}}],"title":"Products","type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"404":{"description":"Catalog not found","x-details":"The catalog id given in the URI does not exist","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Catalog \"65f5a521-e65c-4d7b-8be8-1f267fa2729c\" does not exist or you can't access it."}}}}}},"summary":"Get the list of products related to a catalog","tags":["Catalog products"],"x-versions":["SaaS"]}},"/api/rest/v1/catalogs/{id}/products/{uuid}":{"get":{"description":"This endpoint allows you to get a specific product related to a catalog. In the Enterprise Edition, permissions based on your app settings are applied on the product you request. Please, note that a disabled catalog can return an HTTP 200 with a payload containing an error message, for more details see the <a href=\"apps/catalogs.html#troubleshooting\">App Catalog</a> section.","operationId":"get_app_catalog_products_uuid","parameters":[{"description":"Catalog ID","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Product UUID","in":"path","name":"uuid","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Return the product","x-examples-per-version":[{"x-example":{"categories":[],"enabled":true,"family":"tshirt","groups":[],"uuid":"a5eed606-4f98-4d8c-b926-5b59f8fb0ee7","values":{"name":[{"data":"Top","locale":"en_US"}]}},"x-version":"SaaS"}]},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"404":{"description":"Catalog not found","x-details":"The catalog id given in the URI does not exist","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Catalog \"65f5a521-e65c-4d7b-8be8-1f267fa2729c\" does not exist or you can't access it."}}}}}},"summary":"Get a product related to a catalog","tags":["Catalog products"],"x-versions":["SaaS"]}},"/api/rest/v1/categories":{"get":{"description":"This endpoint allows you to get a list of categories. Categories are paginated and sorted by `root/left`.","operationId":"get_categories","parameters":[{"description":"Filter categories, for more details see the <a href=\"/documentation/filter.html#filter-categories\">Filters</a> section.","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}},{"description":"Return information about category position into its category tree (only available since the 7.0 version)","in":"query","name":"with_position","required":false,"x-from-version":"7.0","schema":{"type":"boolean"}},{"description":"Return attribute values of the category (only available on SaaS platforms)","in":"query","name":"with_enriched_attributes","required":false,"x-from-version":"SaaS","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Return categories paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"winter_collection","labels":{"en_US":"Winter collection","fr_FR":"Collection hiver"},"parent":null,"position":1,"updated":"2025-08-15T13:52:10.883Z","values":{"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US":{"attribute_code":"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26","channel":"ecommerce","data":"<p>Winter collection description</p>\n","locale":"en_US","type":"textarea"}}},"properties":{"code":{"description":"Category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Category labels for each locale","properties":{"localeCode":{"description":"Category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"Category code of the parent's category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing category code. &#10;&bull; If equal to an existing category code, it cannot reference itself."},"position":{"description":"Position of the category in its level, start from 1 (only available since the 7.0 version and when query parameter \"with_position\" is set to \"true\")","type":"integer","x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"default":null,"description":"Attribute values","properties":{"attributeCode|attributeUuid|channelCode|localeCode":{"items":{"properties":{"attribute_code":{"description":"The attribute code with its uuid (attributeCode|attributeUuid)","type":"string"},"channel":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the attribute value","type":"string"},"data":{"description":"Attribute value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the attribute value","type":"string"},"type":{"description":"The attribute type","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-read-only":true}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Categories","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/categories/winter_collection"}},"code":"winter_collection","labels":{"de_DE":"Winter-Kollektion","en_US":"Winter collection","fr_FR":"Collection hiver"},"parent":null,"position":1,"updated":"2025-08-15T13:52:10.883Z","values":{"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US":{"attribute_code":"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26","channel":"ecommerce","data":"<p>Winter collection description</p>\n","locale":"en_US","type":"textarea"}}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/categories/woman"}},"code":"woman","labels":{"de_DE":"Damen","en_US":"Woman","fr_FR":"Femme"},"parent":"winter_collection","position":1,"updated":"2025-08-15T13:52:10.883Z","values":{}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/categories/man"}},"code":"man","labels":{"de_DE":"Herren","en_US":"Man","fr_FR":"Homme"},"parent":"winter_collection","position":2,"updated":"2025-08-15T13:52:10.883Z","values":{}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/categories/kids"}},"code":"kids","labels":{"de_DE":"Kinder","en_US":"Kids","fr_FR":"Enfant"},"parent":"winter_collection","position":3,"updated":"2025-08-15T13:52:10.883Z","values":{}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/categories/summer_collection"}},"code":"summer_collection","labels":{"de_DE":"Sommer-Kollektion","en_US":"Summer collection","fr_FR":"Collection été"},"parent":null,"position":1,"updated":"2025-08-15T13:52:10.883Z","values":{}}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/categories?page=1&limit=5"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/categories?page=3&limit=5"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/categories?page=1&limit=5"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/categories?page=2&limit=5"}}}}},"current_page":{"examples":{"response":{"value":2}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of categories","tags":["Category"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update several categories at once.","operationId":"patch_categories","requestBody":{"content":{"application/json":{"schema":{"example":{"code":"winter_collection","labels":{"en_US":"Winter collection","fr_FR":"Collection hiver"},"parent":null,"position":1,"updated":"2025-08-15T13:52:10.883Z","values":{"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US":{"attribute_code":"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26","channel":"ecommerce","data":"<p>Winter collection description</p>\n","locale":"en_US","type":"textarea"}}},"properties":{"code":{"description":"Category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Category labels for each locale","properties":{"localeCode":{"description":"Category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"Category code of the parent's category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing category code. &#10;&bull; If equal to an existing category code, it cannot reference itself."},"position":{"description":"Position of the category in its level, start from 1 (only available since the 7.0 version and when query parameter \"with_position\" is set to \"true\")","type":"integer","x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"default":null,"description":"Attribute values","properties":{"attributeCode|attributeUuid|channelCode|localeCode":{"items":{"properties":{"attribute_code":{"description":"The attribute code with its uuid (attributeCode|attributeUuid)","type":"string"},"channel":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the attribute value","type":"string"},"data":{"description":"Attribute value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the attribute value","type":"string"},"type":{"description":"The attribute type","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-read-only":true}},"required":["code"],"type":"object","x-examples":{"x-example-1":"{\"code\":\"spring_collection\",\"parent\":null}","x-example-2":"{\"code\":\"woman\",\"parent\":\"spring_collectionn\"}","x-example-3":"{\"code\":\"man\",\"parent\":\"spring_collection\"}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"code\":\"spring_collection\",\"status_code\":201}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"code\":\"woman\",\"status_code\":422,\"message\":\"Category \"spring_collectionn\" does not exist.\"}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"code\":\"man\",\"status_code\":204}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several categories","tags":["Category"],"x-body-by-line":"Contains several lines, each line is a category in JSON standard format","x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a new category.","operationId":"post_categories","requestBody":{"content":{"application/json":{"schema":{"example":{"code":"winter_collection","labels":{"en_US":"Winter collection","fr_FR":"Collection hiver"},"parent":null,"position":1,"updated":"2025-08-15T13:52:10.883Z","values":{"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US":{"attribute_code":"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26","channel":"ecommerce","data":"<p>Winter collection description</p>\n","locale":"en_US","type":"textarea"}}},"properties":{"code":{"description":"Category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Category labels for each locale","properties":{"localeCode":{"description":"Category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"Category code of the parent's category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing category code. &#10;&bull; If equal to an existing category code, it cannot reference itself."},"position":{"description":"Position of the category in its level, start from 1 (only available since the 7.0 version and when query parameter \"with_position\" is set to \"true\")","type":"integer","x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"default":null,"description":"Attribute values","properties":{"attributeCode|attributeUuid|channelCode|localeCode":{"items":{"properties":{"attribute_code":{"description":"The attribute code with its uuid (attributeCode|attributeUuid)","type":"string"},"channel":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the attribute value","type":"string"},"data":{"description":"Attribute value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the attribute value","type":"string"},"type":{"description":"The attribute type","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-read-only":true}},"required":["code"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new category","tags":["Category"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/categories/{code}":{"get":{"description":"This endpoint allows you to get the information about a given category.","operationId":"get_categories__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}},{"description":"Return information about category position into its category tree (only available since the 7.0 version)","in":"query","name":"with_position","required":false,"x-from-version":"7.0","schema":{"type":"boolean"}},{"description":"Return attribute values of the category (only available on SaaS platforms)","in":"query","name":"with_enriched_attributes","required":false,"x-from-version":"SaaS","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the category in JSON standard format","content":{"application/json":{"schema":{"example":{"code":"winter_collection","labels":{"en_US":"Winter collection","fr_FR":"Collection hiver"},"parent":null,"position":1,"updated":"2025-08-15T13:52:10.883Z","values":{"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US":{"attribute_code":"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26","channel":"ecommerce","data":"<p>Winter collection description</p>\n","locale":"en_US","type":"textarea"}}},"properties":{"code":{"description":"Category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Category labels for each locale","properties":{"localeCode":{"description":"Category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"Category code of the parent's category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing category code. &#10;&bull; If equal to an existing category code, it cannot reference itself."},"position":{"description":"Position of the category in its level, start from 1 (only available since the 7.0 version and when query parameter \"with_position\" is set to \"true\")","type":"integer","x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"default":null,"description":"Attribute values","properties":{"attributeCode|attributeUuid|channelCode|localeCode":{"items":{"properties":{"attribute_code":{"description":"The attribute code with its uuid (attributeCode|attributeUuid)","type":"string"},"channel":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the attribute value","type":"string"},"data":{"description":"Attribute value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the attribute value","type":"string"},"type":{"description":"The attribute type","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-read-only":true}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a category","tags":["Category"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given category. Know more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no category exists for the given code, it creates it.","operationId":"patch_categories__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"winter_collection","labels":{"en_US":"Winter collection","fr_FR":"Collection hiver"},"parent":null,"position":1,"updated":"2025-08-15T13:52:10.883Z","values":{"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US":{"attribute_code":"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26","channel":"ecommerce","data":"<p>Winter collection description</p>\n","locale":"en_US","type":"textarea"}}},"properties":{"code":{"description":"Category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Category labels for each locale","properties":{"localeCode":{"description":"Category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"Category code of the parent's category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing category code. &#10;&bull; If equal to an existing category code, it cannot reference itself."},"position":{"description":"Position of the category in its level, start from 1 (only available since the 7.0 version and when query parameter \"with_position\" is set to \"true\")","type":"integer","x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"default":null,"description":"Attribute values","properties":{"attributeCode|attributeUuid|channelCode|localeCode":{"items":{"properties":{"attribute_code":{"description":"The attribute code with its uuid (attributeCode|attributeUuid)","type":"string"},"channel":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the attribute value","type":"string"},"data":{"description":"Attribute value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the attribute value","type":"string"},"type":{"description":"The attribute type","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-read-only":true}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a category","tags":["Category"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/category-media-files/{code}/download":{"get":{"description":"This endpoint allows you to download a given media file that is used as an attribute value of a enriched category.","operationId":"get_category_media_files__code__download","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-content-type":"Mime-type of the media file","x-details":"Returns the binary of the media file"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}}},"summary":"Download a category media file","tags":["Category"],"x-content-type":"Mime-type of the media file","x-versions":["SaaS"]}},"/api/rest/v1/channels":{"get":{"description":"This endpoint allows you to get a list of channels. Channels are paginated and sorted by code.","operationId":"get_channels","parameters":[{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return channels paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"category_tree":"master","code":"ecommerce","conversion_units":{"weight":"KILOGRAM"},"currencies":["USD","EUR"],"labels":{"de_DE":"Ecommerce","en_US":"Ecommerce","fr_FR":"Ecommerce"},"locales":["de_DE","en_US","fr_FR"]},"properties":{"category_tree":{"description":"Code of the category tree linked to the channel","type":"string","x-validation-rules":"It is the code of an existing category code that is a tree (a category without parent)"},"code":{"description":"Channel code","type":"string","x-immutable":true},"conversion_units":{"description":"Units to which the given metric attributes should be converted when exporting products","properties":{"attributeCode":{"description":"Conversion unit code used to convert the values of the attribute `attributeCode` when exporting via the channel","type":"string"}},"type":"object","x-validation-rules":"&bull; The `attributeCode` is the code of an existing attribute whose type is `pim_catalog_metric` &#10;&bull; The strings are existing unit codes."},"currencies":{"description":"Codes of activated currencies for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing currency code &#10;&bull; At least one currency in the array"},"labels":{"default":{},"description":"Channel labels for each locale","properties":{"localeCode":{"description":"Channel label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"locales":{"description":"Codes of activated locales for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing locale code &#10;&bull; At least one locale in the array"}},"required":["code","category_tree","locales","currencies"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Channels","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/channels/ecommerce"}},"category_tree":"master","code":"ecommerce","conversion_units":{"a_metric":"KILOWATT","a_metric_negative":"CELSIUS","a_metric_to_not_convert":null},"currencies":["USD","EUR"],"labels":{"de_DE":"E-commerce","en_US":"Ecommerce","fr_FR":"E-commerce"},"locales":["en_US","fr_FR","de_DE"]},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/channels/mobile"}},"category_tree":"master","code":"mobile","conversion_units":{"a_metric":"KILOWATT","a_metric_negative":"CELSIUS","a_metric_to_not_convert":null},"currencies":["USD","EUR"],"labels":{"de_DE":"Mobile","en_US":"Mobile","fr_FR":"Mobile"},"locales":["en_US","fr_FR","de_DE"]},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/channels/print"}},"category_tree":"master","code":"print","conversion_units":{},"currencies":["USD","EUR"],"labels":{"de_DE":"Print","en_US":"Print","fr_FR":"Print"},"locales":["en_US","fr_FR","de_DE"]}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/channels?page=1&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/channels?page=1&limit=3"}}}}},"current_page":{"examples":{"response":{"value":1}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a list of channels","tags":["Channel"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several channels at once.","operationId":"several_channels_patch","requestBody":{"content":{"application/json":{"schema":{"example":{"category_tree":"master","code":"ecommerce","conversion_units":{"weight":"KILOGRAM"},"currencies":["USD","EUR"],"labels":{"de_DE":"Ecommerce","en_US":"Ecommerce","fr_FR":"Ecommerce"},"locales":["de_DE","en_US","fr_FR"]},"properties":{"category_tree":{"description":"Code of the category tree linked to the channel","type":"string","x-validation-rules":"It is the code of an existing category code that is a tree (a category without parent)"},"code":{"description":"Channel code","type":"string","x-immutable":true},"conversion_units":{"description":"Units to which the given metric attributes should be converted when exporting products","properties":{"attributeCode":{"description":"Conversion unit code used to convert the values of the attribute `attributeCode` when exporting via the channel","type":"string"}},"type":"object","x-validation-rules":"&bull; The `attributeCode` is the code of an existing attribute whose type is `pim_catalog_metric` &#10;&bull; The strings are existing unit codes."},"currencies":{"description":"Codes of activated currencies for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing currency code &#10;&bull; At least one currency in the array"},"labels":{"default":{},"description":"Channel labels for each locale","properties":{"localeCode":{"description":"Channel label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"locales":{"description":"Codes of activated locales for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing locale code &#10;&bull; At least one locale in the array"}},"required":["code","category_tree","locales","currencies"],"type":"object","x-examples":{"x-example-1":"{\"code\":\"ecommerce_fr\", \"category_tree\": \"master\", \"currencies\": [\"EUR\"], \"locales\": [\"fr_FR\"], \"labels\":{\"fr_FR\": \"Ecommerce Fr\"}}","x-example-2":"{\"code\":\"ecommerce_ch\", \"type\":\"bar\"}","x-example-3":"{\"code\":\"tablet\", \"labels\":{\"en_US\": \"Tablet\", \"fr_FR\": \"Tablette\"}}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"code\":\"ecommerce_fr\",\"status_code\":201}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"code\":\"ecommerce_ch\",\"status_code\":422,\"message\":\"Property \\\"type\\\" does not exist. Check the standard format documentation.\",\"_links\":{\"documentation\":{\"href\":\"http:\\/\\/api.akeneo.com\\/api-reference.html#patch_channels__code_\"}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"code\":\"tablet\",\"status_code\":204}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several channels","tags":["Channel"],"x-body-by-line":"Contains several lines, each line is a channel in JSON standard format","x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a new channel.","operationId":"channels_post","requestBody":{"content":{"application/json":{"schema":{"example":{"category_tree":"master","code":"ecommerce","conversion_units":{"weight":"KILOGRAM"},"currencies":["USD","EUR"],"labels":{"de_DE":"Ecommerce","en_US":"Ecommerce","fr_FR":"Ecommerce"},"locales":["de_DE","en_US","fr_FR"]},"properties":{"category_tree":{"description":"Code of the category tree linked to the channel","type":"string","x-validation-rules":"It is the code of an existing category code that is a tree (a category without parent)"},"code":{"description":"Channel code","type":"string","x-immutable":true},"conversion_units":{"description":"Units to which the given metric attributes should be converted when exporting products","properties":{"attributeCode":{"description":"Conversion unit code used to convert the values of the attribute `attributeCode` when exporting via the channel","type":"string"}},"type":"object","x-validation-rules":"&bull; The `attributeCode` is the code of an existing attribute whose type is `pim_catalog_metric` &#10;&bull; The strings are existing unit codes."},"currencies":{"description":"Codes of activated currencies for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing currency code &#10;&bull; At least one currency in the array"},"labels":{"default":{},"description":"Channel labels for each locale","properties":{"localeCode":{"description":"Channel label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"locales":{"description":"Codes of activated locales for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing locale code &#10;&bull; At least one locale in the array"}},"required":["code","category_tree","locales","currencies"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new channel","tags":["Channel"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/channels/{code}":{"get":{"description":"This endpoint allows you to get the information about a given channel.","operationId":"get_channels__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the channel in JSON standard format","content":{"application/json":{"schema":{"example":{"category_tree":"master","code":"ecommerce","conversion_units":{"weight":"KILOGRAM"},"currencies":["USD","EUR"],"labels":{"de_DE":"Ecommerce","en_US":"Ecommerce","fr_FR":"Ecommerce"},"locales":["de_DE","en_US","fr_FR"]},"properties":{"category_tree":{"description":"Code of the category tree linked to the channel","type":"string","x-validation-rules":"It is the code of an existing category code that is a tree (a category without parent)"},"code":{"description":"Channel code","type":"string","x-immutable":true},"conversion_units":{"description":"Units to which the given metric attributes should be converted when exporting products","properties":{"attributeCode":{"description":"Conversion unit code used to convert the values of the attribute `attributeCode` when exporting via the channel","type":"string"}},"type":"object","x-validation-rules":"&bull; The `attributeCode` is the code of an existing attribute whose type is `pim_catalog_metric` &#10;&bull; The strings are existing unit codes."},"currencies":{"description":"Codes of activated currencies for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing currency code &#10;&bull; At least one currency in the array"},"labels":{"default":{},"description":"Channel labels for each locale","properties":{"localeCode":{"description":"Channel label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"locales":{"description":"Codes of activated locales for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing locale code &#10;&bull; At least one locale in the array"}},"required":["code","category_tree","locales","currencies"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a channel","tags":["Channel"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given channel. Know more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no channel exists for the given code, it creates it.","operationId":"channels_patch","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"category_tree":"master","code":"ecommerce","conversion_units":{"weight":"KILOGRAM"},"currencies":["USD","EUR"],"labels":{"de_DE":"Ecommerce","en_US":"Ecommerce","fr_FR":"Ecommerce"},"locales":["de_DE","en_US","fr_FR"]},"properties":{"category_tree":{"description":"Code of the category tree linked to the channel","type":"string","x-validation-rules":"It is the code of an existing category code that is a tree (a category without parent)"},"code":{"description":"Channel code","type":"string","x-immutable":true},"conversion_units":{"description":"Units to which the given metric attributes should be converted when exporting products","properties":{"attributeCode":{"description":"Conversion unit code used to convert the values of the attribute `attributeCode` when exporting via the channel","type":"string"}},"type":"object","x-validation-rules":"&bull; The `attributeCode` is the code of an existing attribute whose type is `pim_catalog_metric` &#10;&bull; The strings are existing unit codes."},"currencies":{"description":"Codes of activated currencies for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing currency code &#10;&bull; At least one currency in the array"},"labels":{"default":{},"description":"Channel labels for each locale","properties":{"localeCode":{"description":"Channel label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"locales":{"description":"Codes of activated locales for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing locale code &#10;&bull; At least one locale in the array"}},"required":["code","category_tree","locales","currencies"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a channel","tags":["Channel"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/currencies":{"get":{"description":"This endpoint allows you to get a list of currencies. Currencies are paginated and sorted by code.","operationId":"currencies_get_list","parameters":[{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return currencies paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"EUR","enabled":true},"properties":{"code":{"description":"Currency code","type":"string","x-immutable":true},"enabled":{"description":"Whether the currency is enabled","type":"boolean"}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Currencies","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/currencies/ADP"}},"code":"ADP","enabled":true},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/currencies/AED"}},"code":"AED","enabled":true},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/currencies/AFA"}},"code":"AFA","enabled":false}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/currencies?page=1&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/currencies?page=1&limit=3"}}}}},"current_page":{"examples":{"response":{"value":1}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a list of currencies","tags":["Currency"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/currencies/{code}":{"get":{"description":"This endpoint allows you to get the information about a given currency.","operationId":"currencies_get","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the currency in JSON standard format","content":{"application/json":{"schema":{"example":{"code":"EUR","enabled":true},"properties":{"code":{"description":"Currency code","type":"string","x-immutable":true},"enabled":{"description":"Whether the currency is enabled","type":"boolean"}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a currency","tags":["Currency"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/families":{"get":{"description":"This endpoint allows you to get a list of families. Families are paginated and sorted by code.","operationId":"get_families","parameters":[{"description":"Filter families, for more details see the <a href=\"/documentation/filter.html#filter-families\">Filters</a> section.","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return families paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"attribute_as_image":"picture","attribute_as_label":"name","attribute_requirements":{"ecommerce":["sku","name","description","price","color"],"tablet":["sku","name","description","price"]},"attributes":["sku","name","description","price","color","picture"],"code":"caps","labels":{"en_US":"Caps","fr_FR":"Casquettes"}},"properties":{"attribute_as_image":{"default":"null","description":"Attribute code used as the main picture in the user interface (only since v2.0)","type":"string","x-from-version":"2.0","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is `pim_catalog_image`. Since v2.1, you can also use a `pim_assets_collection` attribute type"},"attribute_as_label":{"description":"Attribute code used as label","type":"string","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is either `pim_catalog_identifier` or `pim_catalog_text`"},"attribute_requirements":{"description":"Attributes codes of the family that are required for the completeness calculation for each channel","properties":{"channelCode":{"items":{"description":"Attributes codes of the family that are required for the completeness calculation for the channel `channelCode`","type":"string"},"type":"array"}},"type":"object","x-validation-rules":"&bull; Each string of these arrays is an existing attribute code &#10;&bull; These attribute codes are in the array of the property `attributes` &#10;&bull; The `channelCode` is the code of an existing and activated channel"},"attributes":{"default":[],"description":"Attributes codes that compose the family","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code"},"code":{"description":"Family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family labels for each locale","properties":{"localeCode":{"description":"Family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code","attribute_as_label"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Families","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/families/tshirt"}},"attribute_as_image":"picture","attribute_as_label":"name","attribute_requirements":{"ecommerce":["sku","name","description","price","size","color"],"tablet":["sku","name","description","price"]},"attributes":["sku","name","description","price","size","color","picture"],"code":"tshirt","labels":{"en_US":"Tshirt","fr_FR":"Tshirt"}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/families/caps"}},"attribute_as_image":"picture","attribute_as_label":"name","attribute_requirements":{"ecommerce":["sku","name","description","price","color"],"tablet":["sku","name","description","price"]},"attributes":["sku","name","description","price","color","picture"],"code":"caps","labels":{"en_US":"Caps","fr_FR":"Casquettes"}}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/families?page=1&limit=2"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/families?page=3&limit=2"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/families?page=1&limit=2"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/families?page=2&limit=2"}}}}},"current_page":{"examples":{"response":{"value":2}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of families","tags":["Family"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several families at once.","operationId":"patch_families","requestBody":{"content":{"application/json":{"schema":{"example":{"attribute_as_image":"picture","attribute_as_label":"name","attribute_requirements":{"ecommerce":["sku","name","description","price","color"],"tablet":["sku","name","description","price"]},"attributes":["sku","name","description","price","color","picture"],"code":"caps","labels":{"en_US":"Caps","fr_FR":"Casquettes"}},"properties":{"attribute_as_image":{"default":"null","description":"Attribute code used as the main picture in the user interface (only since v2.0)","type":"string","x-from-version":"2.0","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is `pim_catalog_image`. Since v2.1, you can also use a `pim_assets_collection` attribute type"},"attribute_as_label":{"description":"Attribute code used as label","type":"string","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is either `pim_catalog_identifier` or `pim_catalog_text`"},"attribute_requirements":{"description":"Attributes codes of the family that are required for the completeness calculation for each channel","properties":{"channelCode":{"items":{"description":"Attributes codes of the family that are required for the completeness calculation for the channel `channelCode`","type":"string"},"type":"array"}},"type":"object","x-validation-rules":"&bull; Each string of these arrays is an existing attribute code &#10;&bull; These attribute codes are in the array of the property `attributes` &#10;&bull; The `channelCode` is the code of an existing and activated channel"},"attributes":{"default":[],"description":"Attributes codes that compose the family","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code"},"code":{"description":"Family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family labels for each locale","properties":{"localeCode":{"description":"Family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code","attribute_as_label"],"type":"object","x-examples":{"x-example-1":"{\"code\":\"tshirt\",\"attributes\":[\"description\",\"size\"]}","x-example-2":"{\"code\":\"cap\",\"attribute_as_label\":\"descripion\"}","x-example-3":"{\"code\":\"mug\",\"attributes\":[\"description\",\"short_description\"]}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"code\":\"tshirt\",\"status_code\":201}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"code\":\"cap\",\"status_code\":422,\"message\":\"Attribute \"descripion\" does not exist.\"}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"code\":\"mug\",\"status_code\":204}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several families","tags":["Family"],"x-body-by-line":"Contains several lines, each line is a family in JSON standard format","x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a new family.","operationId":"post_families","requestBody":{"content":{"application/json":{"schema":{"example":{"attribute_as_image":"picture","attribute_as_label":"name","attribute_requirements":{"ecommerce":["sku","name","description","price","color"],"tablet":["sku","name","description","price"]},"attributes":["sku","name","description","price","color","picture"],"code":"caps","labels":{"en_US":"Caps","fr_FR":"Casquettes"}},"properties":{"attribute_as_image":{"default":"null","description":"Attribute code used as the main picture in the user interface (only since v2.0)","type":"string","x-from-version":"2.0","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is `pim_catalog_image`. Since v2.1, you can also use a `pim_assets_collection` attribute type"},"attribute_as_label":{"description":"Attribute code used as label","type":"string","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is either `pim_catalog_identifier` or `pim_catalog_text`"},"attribute_requirements":{"description":"Attributes codes of the family that are required for the completeness calculation for each channel","properties":{"channelCode":{"items":{"description":"Attributes codes of the family that are required for the completeness calculation for the channel `channelCode`","type":"string"},"type":"array"}},"type":"object","x-validation-rules":"&bull; Each string of these arrays is an existing attribute code &#10;&bull; These attribute codes are in the array of the property `attributes` &#10;&bull; The `channelCode` is the code of an existing and activated channel"},"attributes":{"default":[],"description":"Attributes codes that compose the family","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code"},"code":{"description":"Family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family labels for each locale","properties":{"localeCode":{"description":"Family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code","attribute_as_label"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new family","tags":["Family"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/families/{code}":{"get":{"description":"This endpoint allows you to get the information about a given family.","operationId":"get_families__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the family in JSON standard format","content":{"application/json":{"schema":{"example":{"attribute_as_image":"picture","attribute_as_label":"name","attribute_requirements":{"ecommerce":["sku","name","description","price","color"],"tablet":["sku","name","description","price"]},"attributes":["sku","name","description","price","color","picture"],"code":"caps","labels":{"en_US":"Caps","fr_FR":"Casquettes"}},"properties":{"attribute_as_image":{"default":"null","description":"Attribute code used as the main picture in the user interface (only since v2.0)","type":"string","x-from-version":"2.0","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is `pim_catalog_image`. Since v2.1, you can also use a `pim_assets_collection` attribute type"},"attribute_as_label":{"description":"Attribute code used as label","type":"string","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is either `pim_catalog_identifier` or `pim_catalog_text`"},"attribute_requirements":{"description":"Attributes codes of the family that are required for the completeness calculation for each channel","properties":{"channelCode":{"items":{"description":"Attributes codes of the family that are required for the completeness calculation for the channel `channelCode`","type":"string"},"type":"array"}},"type":"object","x-validation-rules":"&bull; Each string of these arrays is an existing attribute code &#10;&bull; These attribute codes are in the array of the property `attributes` &#10;&bull; The `channelCode` is the code of an existing and activated channel"},"attributes":{"default":[],"description":"Attributes codes that compose the family","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code"},"code":{"description":"Family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family labels for each locale","properties":{"localeCode":{"description":"Family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code","attribute_as_label"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a family","tags":["Family"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given family. Know more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no family exists for the given code, it creates it.","operationId":"patch_families__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"attribute_as_image":"picture","attribute_as_label":"name","attribute_requirements":{"ecommerce":["sku","name","description","price","color"],"tablet":["sku","name","description","price"]},"attributes":["sku","name","description","price","color","picture"],"code":"caps","labels":{"en_US":"Caps","fr_FR":"Casquettes"}},"properties":{"attribute_as_image":{"default":"null","description":"Attribute code used as the main picture in the user interface (only since v2.0)","type":"string","x-from-version":"2.0","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is `pim_catalog_image`. Since v2.1, you can also use a `pim_assets_collection` attribute type"},"attribute_as_label":{"description":"Attribute code used as label","type":"string","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is either `pim_catalog_identifier` or `pim_catalog_text`"},"attribute_requirements":{"description":"Attributes codes of the family that are required for the completeness calculation for each channel","properties":{"channelCode":{"items":{"description":"Attributes codes of the family that are required for the completeness calculation for the channel `channelCode`","type":"string"},"type":"array"}},"type":"object","x-validation-rules":"&bull; Each string of these arrays is an existing attribute code &#10;&bull; These attribute codes are in the array of the property `attributes` &#10;&bull; The `channelCode` is the code of an existing and activated channel"},"attributes":{"default":[],"description":"Attributes codes that compose the family","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code"},"code":{"description":"Family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family labels for each locale","properties":{"localeCode":{"description":"Family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code","attribute_as_label"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a family","tags":["Family"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/families/{family_code}/variants":{"get":{"description":"This endpoint allows you to get a list of family variants. Family variants are paginated and sorted by code.","operationId":"get_families__family_code__variants","parameters":[{"description":"Code of the family","in":"path","name":"family_code","required":true,"schema":{"type":"string"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return family variants paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"shoesVariant","labels":{"en_US":"Shoes variant","fr_FR":"Variante de chaussures"},"variant_attribute_sets":[{"attributes":["color","material"],"axes":["color"],"level":1},{"attributes":["sku","size"],"axes":["size"],"level":2}]},"properties":{"code":{"description":"Family variant code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family variant labels for each locale","properties":{"localeCode":{"description":"Family variant label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"variant_attribute_sets":{"description":"Attributes distribution according to the enrichment level","items":{"description":"Enrichment level","properties":{"attributes":{"default":[],"description":"Codes of attributes bind to this enrichment level","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Should be an array of existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Attributes used as attribute in one level cannot be used as axes or as attributes in the other level &#10;&bull; Attributes that are `unique value` or `identifier` are automatically distributed to the lower level."},"axes":{"default":[],"description":"Codes of attributes used as variant axes","items":{"type":"string"},"type":"array","x-immutable":true,"x-validation-rules":"&bull; Should be an array of maximum 5 existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Only the following attribute types are allowed: `simple select`, `multi select`, `reference data`, `metric`, `boolean` &#10;&bull; Attributes cannot be scopable, nor localizable nor locale specific &#10;&bull; Attributes used as axes in one level cannot be used as axes or as attributes in the other level"},"level":{"description":"Enrichment level","type":"integer","x-immutable":true,"x-validation-rules":"&bull; Number representing the level of the attribute set. &#10;&bull; It should be equal to 1 or 2. &#10;&bull; If you specify the level 2, you have to specify the level 1 as well."}},"required":["level","axes"],"type":"object"},"type":"array"}},"required":["code","variant_attribute_sets"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Family Variants","type":"object"}},"code":{"examples":{"response":{"value":"shoesVariant"}}},"labels":{"examples":{"response":{"value":{"en_US":"Shoes variant","fr_FR":"Variante de chaussures"}}}},"variant_attribute_sets":{"examples":{"response":{"value":[{"attributes":["color","material"],"axes":["color"],"level":1},{"attributes":["sku","size"],"axes":["size"],"level":2}]}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of family variants","tags":["Family variant"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several family variants at once, for a given family.","operationId":"patch_families__family_code__variants","parameters":[{"description":"Code of the family","in":"path","name":"family_code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"shoesVariant","labels":{"en_US":"Shoes variant","fr_FR":"Variante de chaussures"},"variant_attribute_sets":[{"attributes":["color","material"],"axes":["color"],"level":1},{"attributes":["sku","size"],"axes":["size"],"level":2}]},"properties":{"code":{"description":"Family variant code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family variant labels for each locale","properties":{"localeCode":{"description":"Family variant label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"variant_attribute_sets":{"description":"Attributes distribution according to the enrichment level","items":{"description":"Enrichment level","properties":{"attributes":{"default":[],"description":"Codes of attributes bind to this enrichment level","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Should be an array of existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Attributes used as attribute in one level cannot be used as axes or as attributes in the other level &#10;&bull; Attributes that are `unique value` or `identifier` are automatically distributed to the lower level."},"axes":{"default":[],"description":"Codes of attributes used as variant axes","items":{"type":"string"},"type":"array","x-immutable":true,"x-validation-rules":"&bull; Should be an array of maximum 5 existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Only the following attribute types are allowed: `simple select`, `multi select`, `reference data`, `metric`, `boolean` &#10;&bull; Attributes cannot be scopable, nor localizable nor locale specific &#10;&bull; Attributes used as axes in one level cannot be used as axes or as attributes in the other level"},"level":{"description":"Enrichment level","type":"integer","x-immutable":true,"x-validation-rules":"&bull; Number representing the level of the attribute set. &#10;&bull; It should be equal to 1 or 2. &#10;&bull; If you specify the level 2, you have to specify the level 1 as well."}},"required":["level","axes"],"type":"object"},"type":"array"}},"required":["code","variant_attribute_sets"],"type":"object","x-examples":{"x-example-1":"{\"code\": \"shoes_by_size\", \"variant_attribute_sets\": [{\"level\": 1, \"axes\": [\"size\"], \"attributes\": [\"color\"]}]}","x-example-2":"{\"code\": \"shoes_by_color\",\"labels\": {\"en_US\": \"Shoes by color\"}}","x-example-3":"{\"code\": \"shoes_without_axes\", \"variant_attribute_sets\": [{\"level\": 1, \"axes\": [], \"attributes\": [\"color\"]}]}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"code\":\"shoes_by_size\",\"status_code\":201}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"code\":\"shoes_by_color\",\"status_code\":204}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"code\":\"mug\",\"status_code\":422, \"message\":\"There should be at least one attribute defined as axis for the attribute set for level \"1\"\"}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several family variants","tags":["Family variant"],"x-body-by-line":"Contains several lines, each line is a family in JSON standard format","x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a family variant.","operationId":"post_families__family_code__variants","parameters":[{"description":"Code of the family","in":"path","name":"family_code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"shoesVariant","labels":{"en_US":"Shoes variant","fr_FR":"Variante de chaussures"},"variant_attribute_sets":[{"attributes":["color","material"],"axes":["color"],"level":1},{"attributes":["sku","size"],"axes":["size"],"level":2}]},"properties":{"code":{"description":"Family variant code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family variant labels for each locale","properties":{"localeCode":{"description":"Family variant label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"variant_attribute_sets":{"description":"Attributes distribution according to the enrichment level","items":{"description":"Enrichment level","properties":{"attributes":{"default":[],"description":"Codes of attributes bind to this enrichment level","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Should be an array of existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Attributes used as attribute in one level cannot be used as axes or as attributes in the other level &#10;&bull; Attributes that are `unique value` or `identifier` are automatically distributed to the lower level."},"axes":{"default":[],"description":"Codes of attributes used as variant axes","items":{"type":"string"},"type":"array","x-immutable":true,"x-validation-rules":"&bull; Should be an array of maximum 5 existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Only the following attribute types are allowed: `simple select`, `multi select`, `reference data`, `metric`, `boolean` &#10;&bull; Attributes cannot be scopable, nor localizable nor locale specific &#10;&bull; Attributes used as axes in one level cannot be used as axes or as attributes in the other level"},"level":{"description":"Enrichment level","type":"integer","x-immutable":true,"x-validation-rules":"&bull; Number representing the level of the attribute set. &#10;&bull; It should be equal to 1 or 2. &#10;&bull; If you specify the level 2, you have to specify the level 1 as well."}},"required":["level","axes"],"type":"object"},"type":"array"}},"required":["code","variant_attribute_sets"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new family variant","tags":["Family"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/families/{family_code}/variants/{code}":{"get":{"description":"This endpoint allows you to get the information about a given family variant.","operationId":"get_families__family_code__variants__code__","parameters":[{"description":"Code of the family","in":"path","name":"family_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the family variant in JSON standard format","content":{"application/json":{"schema":{"example":{"code":"shoesVariant","labels":{"en_US":"Shoes variant","fr_FR":"Variante de chaussures"},"variant_attribute_sets":[{"attributes":["color","material"],"axes":["color"],"level":1},{"attributes":["sku","size"],"axes":["size"],"level":2}]},"properties":{"code":{"description":"Family variant code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family variant labels for each locale","properties":{"localeCode":{"description":"Family variant label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"variant_attribute_sets":{"description":"Attributes distribution according to the enrichment level","items":{"description":"Enrichment level","properties":{"attributes":{"default":[],"description":"Codes of attributes bind to this enrichment level","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Should be an array of existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Attributes used as attribute in one level cannot be used as axes or as attributes in the other level &#10;&bull; Attributes that are `unique value` or `identifier` are automatically distributed to the lower level."},"axes":{"default":[],"description":"Codes of attributes used as variant axes","items":{"type":"string"},"type":"array","x-immutable":true,"x-validation-rules":"&bull; Should be an array of maximum 5 existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Only the following attribute types are allowed: `simple select`, `multi select`, `reference data`, `metric`, `boolean` &#10;&bull; Attributes cannot be scopable, nor localizable nor locale specific &#10;&bull; Attributes used as axes in one level cannot be used as axes or as attributes in the other level"},"level":{"description":"Enrichment level","type":"integer","x-immutable":true,"x-validation-rules":"&bull; Number representing the level of the attribute set. &#10;&bull; It should be equal to 1 or 2. &#10;&bull; If you specify the level 2, you have to specify the level 1 as well."}},"required":["level","axes"],"type":"object"},"type":"array"}},"required":["code","variant_attribute_sets"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a family variant","tags":["Family variant"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given family variant. Know more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no family variant exists for the given code, it creates it.","operationId":"patch_families__family_code__variants__code__","parameters":[{"description":"Code of the family","in":"path","name":"family_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"shoesVariant","labels":{"en_US":"Shoes variant","fr_FR":"Variante de chaussures"},"variant_attribute_sets":[{"attributes":["color","material"],"axes":["color"],"level":1},{"attributes":["sku","size"],"axes":["size"],"level":2}]},"properties":{"code":{"description":"Family variant code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family variant labels for each locale","properties":{"localeCode":{"description":"Family variant label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"variant_attribute_sets":{"description":"Attributes distribution according to the enrichment level","items":{"description":"Enrichment level","properties":{"attributes":{"default":[],"description":"Codes of attributes bind to this enrichment level","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Should be an array of existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Attributes used as attribute in one level cannot be used as axes or as attributes in the other level &#10;&bull; Attributes that are `unique value` or `identifier` are automatically distributed to the lower level."},"axes":{"default":[],"description":"Codes of attributes used as variant axes","items":{"type":"string"},"type":"array","x-immutable":true,"x-validation-rules":"&bull; Should be an array of maximum 5 existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Only the following attribute types are allowed: `simple select`, `multi select`, `reference data`, `metric`, `boolean` &#10;&bull; Attributes cannot be scopable, nor localizable nor locale specific &#10;&bull; Attributes used as axes in one level cannot be used as axes or as attributes in the other level"},"level":{"description":"Enrichment level","type":"integer","x-immutable":true,"x-validation-rules":"&bull; Number representing the level of the attribute set. &#10;&bull; It should be equal to 1 or 2. &#10;&bull; If you specify the level 2, you have to specify the level 1 as well."}},"required":["level","axes"],"type":"object"},"type":"array"}},"required":["code","variant_attribute_sets"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a family variant","tags":["Family variant"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/locales":{"get":{"description":"This endpoint allows you to get a list of locales. Locales are paginated and sorted by code.","operationId":"get_locales","parameters":[{"description":"Filter locales, for more details see the <a href=\"/documentation/filter.html\">Filters</a> section","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return locales paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"en_US","enable":true},"properties":{"code":{"description":"Locale code","type":"string","x-immutable":true},"enabled":{"default":false,"description":"Whether the locale is enabled","type":"boolean"}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Locales","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/locales/en_US"}},"code":"en_US","enabled":true},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/locales/fr_FR"}},"code":"fr_FR","enabled":true},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/locales/de_DE"}},"code":"de_DE","enabled":true},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/locales/af_ZA"}},"code":"af_ZA","enabled":false}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/locales?page=1&limit=4"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/locales?page=2&limit=4"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/locales?page=1&limit=4"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/locales?page=2&limit=4"}}}}},"current_page":{"examples":{"response":{"value":2}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a list of locales","tags":["Locale"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/locales/{code}":{"get":{"description":"This endpoint allows you to get the information about a given locale.","operationId":"get_locales__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the locale in JSON standard format","content":{"application/json":{"schema":{"example":{"code":"en_US","enable":true},"properties":{"code":{"description":"Locale code","type":"string","x-immutable":true},"enabled":{"default":false,"description":"Whether the locale is enabled","type":"boolean"}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a locale","tags":["Locale"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/measure-families":{"get":{"description":"This endpoint allows you to get a list of measure families. Measure families are paginated and sorted by code.","operationId":"measure_families_get_list","responses":{"200":{"description":"Return measure families paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"Area","standard":"SQUARE_METER","units":[{"code":"SQUARE_MILLIMETER","convert":{"mul":"0.001"},"symbol":"mm²"},{"code":"SQUARE_CENTIMETER","convert":{"mul":"0.001"},"symbol":"cm²"}]},"properties":{"code":{"description":"Measure family code","type":"string","x-immutable":true},"standard":{"description":"Measure family standard","type":"string","x-immutable":true},"units":{"description":"Family units","items":{"properties":{"code":{"description":"Measure code","type":"string","x-immutable":true},"convert":{"description":"Mathematic operation to convert the unit into the standard unit","type":"object"},"symbol":{"description":"Measure symbol","type":"string","x-immutable":true}},"type":"object"},"type":"array"}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Measure Families","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/measure-families/Area"}},"code":"Area","standard":"SQUARE_METER","units":[{"code":"SQUARE_MILLIMETER","convert":{"mul":"0.000001"},"symbol":"mm²"},{"code":"SQUARE_CENTIMETER","convert":{"mul":"0.0001"},"symbol":"cm²"},{"code":"SQUARE_DECIMETER","convert":{"mul":"0.01"},"symbol":"dm²"},{"code":"SQUARE_METER","convert":{"mul":"1"},"symbol":"m²"},{"code":"CENTIARE","convert":{"mul":"1"},"symbol":"ca"},{"code":"SQUARE_DEKAMETER","convert":{"mul":"100"},"symbol":"dam²"},{"code":"ARE","convert":{"mul":"100"},"symbol":"a"},{"code":"SQUARE_HECTOMETER","convert":{"mul":"10000"},"symbol":"hm²"}]}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/measure-families?page=1&limit=1"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/measure-families?page=1&limit=1"}}}}},"current_page":{"examples":{"response":{"value":1}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of measure familiy","tags":["Measure family"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/measure-families/{code}":{"get":{"description":"This endpoint allows you to get the information about a given measure family.","operationId":"measure_families_get","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the measure family in JSON standard format","content":{"application/json":{"schema":{"example":{"code":"Area","standard":"SQUARE_METER","units":[{"code":"SQUARE_MILLIMETER","convert":{"mul":"0.001"},"symbol":"mm²"},{"code":"SQUARE_CENTIMETER","convert":{"mul":"0.001"},"symbol":"cm²"}]},"properties":{"code":{"description":"Measure family code","type":"string","x-immutable":true},"standard":{"description":"Measure family standard","type":"string","x-immutable":true},"units":{"description":"Family units","items":{"properties":{"code":{"description":"Measure code","type":"string","x-immutable":true},"convert":{"description":"Mathematic operation to convert the unit into the standard unit","type":"object"},"symbol":{"description":"Measure symbol","type":"string","x-immutable":true}},"type":"object"},"type":"array"}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a measure family","tags":["Measure family"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/measurement-families":{"get":{"description":"This endpoint allows you to get a list of measurement families.","operationId":"measurement_families_get_list","responses":{"200":{"description":"Return the measurement families","x-examples":[{"code":"AREA","labels":{"en_US":"Area","fr_FR":"Surface"},"standard_unit_code":"SQUARE_METER","units":{"SQUARE_CENTIMETER":{"code":"SQUARE_CENTIMETER","convert_from_standard":[{"operator":"mul","value":"0.0001"}],"labels":{"en_US":"Square centimeter","fr_FR":"Centimètre carré"},"symbol":"cm²"},"SQUARE_METER":{"code":"SQUARE_METER","convert_from_standard":[{"operator":"mul","value":"1"}],"labels":{"en_US":"Square meter","fr_FR":"Mètre carré"},"symbol":"m²"},"SQUARE_MILLIMETER":{"code":"SQUARE_MILLIMETER","convert_from_standard":[{"operator":"mul","value":"0.000001"}],"labels":{"en_US":"Square millimeter","fr_FR":"Millimètre carré"},"symbol":"mm²"}}}],"x-no-entity":true,"content":{"application/json":{"schema":{"example":{"code":"AREA","labels":{"en_US":"Area","fr_FR":"Surface"},"standard_unit_code":"SQUARE_METER","units":{"SQUARE_CENTIMETER":{"code":"SQUARE_CENTIMETER","convert_from_standard":[{"operator":"mul","value":"0.0001"}],"labels":{"en_US":"Square centimeter","fr_FR":"Centimètre carré"},"symbol":"cm²"},"SQUARE_METER":{"code":"SQUARE_METER","convert_from_standard":[{"operator":"mul","value":"1"}],"labels":{"en_US":"Square meter","fr_FR":"Mètre carré"},"symbol":"m²"},"SQUARE_MILLIMETER":{"code":"SQUARE_MILLIMETER","convert_from_standard":[{"operator":"mul","value":"0.000001"}],"labels":{"en_US":"Square millimeter","fr_FR":"Millimètre carré"},"symbol":"mm²"}}},"properties":{"code":{"description":"Measurement family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Measurement family labels for each locale","properties":{"localeCode":{"description":"Measurement family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"standard_unit_code":{"description":"Unit code used as the standard unit for this measurement family","type":"string","x-immutable":true,"x-validation-rules":"The unit code exists in the list of the property `units`"},"units":{"description":"Measurement units for this family with their conversion operations. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","properties":{"unitCode":{"properties":{"code":{"description":"Measurement unit code. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","type":"string","x-immutable":true},"convert_from_standard":{"description":"Calculation to convert the unit from the standard unit. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","items":{"properties":{"operator":{"description":"Operator for a conversion operation to convert the unit in the standard unit","enum":["mul","div","add","sub"],"type":"string","x-validation-rules":"The operator is one of the following values"},"value":{"description":"Value for a conversion operation to convert the unit in the standard unit","type":"string"}},"type":"object"},"type":"array","x-validation-rules":"&bull; The conversion operations can't be updated when a product attribute is linked to this measurement family &#10;&bull; At least one conversion operation per unit is required"},"labels":{"default":{},"description":"Unit labels for each locale. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","properties":{"localeCode":{"description":"Unit label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"symbol":{"description":"Measurement unit symbol. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","type":"string"}},"type":"object"}},"type":"object","x-validation-rules":"A unit can't be added when a product attribute is linked to this measurement family"}},"required":["code","standard_unit_code","units"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of measurement families","tags":["Measurement family"],"x-versions":["5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several measurement families at once.","operationId":"patch_measurement_families","requestBody":{"content":{"application/json":{"schema":{"example":[{"code":"AREA","labels":{"en_US":"Area","fr_FR":"Surface"},"standard_unit_code":"SQUARE_METER","units":{"SQUARE_CENTIMETER":{"code":"SQUARE_CENTIMETER","convert_from_standard":[{"operator":"mul","value":"0.0001"}],"labels":{"en_US":"Square centimeter","fr_FR":"Centimètre carré"},"symbol":"cm²"},"SQUARE_METER":{"code":"SQUARE_METER","convert_from_standard":[{"operator":"mul","value":"1"}],"labels":{"en_US":"Square meter","fr_FR":"Mètre carré"},"symbol":"m²"},"SQUARE_MILLIMETER":{"code":"SQUARE_MILLIMETER","convert_from_standard":[{"operator":"mul","value":"0.000001"}],"labels":{"en_US":"Square millimeter","fr_FR":"Millimètre carré"},"symbol":"mm²"}}}],"items":{"example":{"code":"AREA","labels":{"en_US":"Area","fr_FR":"Surface"},"standard_unit_code":"SQUARE_METER","units":{"SQUARE_CENTIMETER":{"code":"SQUARE_CENTIMETER","convert_from_standard":[{"operator":"mul","value":"0.0001"}],"labels":{"en_US":"Square centimeter","fr_FR":"Centimètre carré"},"symbol":"cm²"},"SQUARE_METER":{"code":"SQUARE_METER","convert_from_standard":[{"operator":"mul","value":"1"}],"labels":{"en_US":"Square meter","fr_FR":"Mètre carré"},"symbol":"m²"},"SQUARE_MILLIMETER":{"code":"SQUARE_MILLIMETER","convert_from_standard":[{"operator":"mul","value":"0.000001"}],"labels":{"en_US":"Square millimeter","fr_FR":"Millimètre carré"},"symbol":"mm²"}}},"properties":{"code":{"description":"Measurement family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Measurement family labels for each locale","properties":{"localeCode":{"description":"Measurement family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"standard_unit_code":{"description":"Unit code used as the standard unit for this measurement family","type":"string","x-immutable":true,"x-validation-rules":"The unit code exists in the list of the property `units`"},"units":{"description":"Measurement units for this family with their conversion operations. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","properties":{"unitCode":{"properties":{"code":{"description":"Measurement unit code. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","type":"string","x-immutable":true},"convert_from_standard":{"description":"Calculation to convert the unit from the standard unit. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","items":{"properties":{"operator":{"description":"Operator for a conversion operation to convert the unit in the standard unit","enum":["mul","div","add","sub"],"type":"string","x-validation-rules":"The operator is one of the following values"},"value":{"description":"Value for a conversion operation to convert the unit in the standard unit","type":"string"}},"type":"object"},"type":"array","x-validation-rules":"&bull; The conversion operations can't be updated when a product attribute is linked to this measurement family &#10;&bull; At least one conversion operation per unit is required"},"labels":{"default":{},"description":"Unit labels for each locale. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","properties":{"localeCode":{"description":"Unit label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"symbol":{"description":"Measurement unit symbol. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","type":"string"}},"type":"object"}},"type":"object","x-validation-rules":"A unit can't be added when a product attribute is linked to this measurement family"}},"required":["code","standard_unit_code","units"],"type":"object"},"type":"array"}}}},"responses":{"200":{"description":"OK","x-details":"Returns a JSON containing the status of each update or creation","x-examples":[{"code":"Angle","status_code":201},{"code":"Force","status_code":204},{"code":"Area","errors":[{"message":"The standard unit code of the \"Angle\" measurement family cannot be changed","property":"standard_unit_code"}],"message":"The measurement family has data that does not comply with the business rules.","status_code":422}],"x-no-entity":true,"content":{"application/json":{"schema":{"items":{"properties":{"code":{"description":"Resource code","type":"string"},"errors":{"description":"List of errors","items":{"properties":{"message":{"type":"string"},"property":{"type":"string"}},"type":"object"},"type":"array"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"},"type":"array"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several measurement families","tags":["Measurement family"],"x-versions":["5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/media-files":{"get":{"description":"This endpoint allows you to get a list of media files that are used as attribute values in products or product models.","operationId":"get_media_files","parameters":[{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return media files paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"download":{"properties":{"href":{"description":"URI to download the binaries of the media file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI to get the metadata of the media file","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg","extension":"jpg","mime_type":"image/jpeg","original_filename":"10806799-1356.jpg","size":16070},"properties":{"code":{"description":"Media file code","type":"string","x-immutable":true},"extension":{"description":"Extension of the media file","type":"string","x-read-only":true},"mime_type":{"description":"Mime type of the media file","type":"string","x-read-only":true},"original_filename":{"description":"Original filename of the media file","type":"string"},"size":{"description":"Size of the media file","type":"integer","x-read-only":true}},"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"MediaFiles","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/media-files/7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/media-files/7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg"}},"code":"7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg","extension":"jpg","mime_type":"image/jpeg","original_filename":"10806799-1356.jpg","size":16070},{"_links":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/media-files/d/0/3/2/d032a92d994df3ef67ee6746b7b7a795c2964e7c_10734346_1480.jpg/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/media-files/d/0/3/2/d032a92d994df3ef67ee6746b7b7a795c2964e7c_10734346_1480.jpg"}},"code":"d/0/3/2/d032a92d994df3ef67ee6746b7b7a795c2964e7c_10734346_1480.jpg","extension":"jpg","mime_type":"image/jpeg","original_filename":"10734346-1480.jpg","size":16454},{"_links":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/media-files/5/1/d/8/51d81dc778ba1501a8f998f3ab5797569f3b9e25_12431976_8797.jpg/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/media-files/5/1/d/8/51d81dc778ba1501a8f998f3ab5797569f3b9e25_12431976_8797.jpg"}},"code":"5/1/d/8/51d81dc778ba1501a8f998f3ab5797569f3b9e25_12431976_8797.jpg","extension":"jpg","mime_type":"image/jpeg","original_filename":"12431976-8797.jpg","size":19725},{"_links":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/media-files/0/c/b/0/0cb0c0e115dedba676f8d1ad8343e6207ab54c7b_107406_9841.jpg/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/media-files/0/c/b/0/0cb0c0e115dedba676f8d1ad8343e6207ab54c7b_107406_9841.jpg"}},"code":"0/c/b/0/0cb0c0e115dedba676f8d1ad8343e6207ab54c7b_107406_9841.jpg","extension":"jpg","mime_type":"image/jpeg","original_filename":"107406-9841.jpg","size":17639}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/media-files?page=1&limit=4"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/media-files?page=2&limit=4"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/media-files?page=1&limit=4"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/media-files?page=2&limit=4"}}}}},"current_page":{"examples":{"response":{"value":2}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a list of product media files","tags":["Product media file"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a new media file and associate it to an attribute value of a given product or product model.","operationId":"post_media_files","parameters":[{"description":"Equal to 'multipart/form-data', no other value allowed","in":"header","name":"Content-type","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"file":{"description":"The binaries of the file","format":"binary","type":"string"},"product":{"description":"The product to which the media file will be associated. It is a JSON string that follows this format '{\"identifier\":\"product_identifier\", \"attribute\":\"attribute_code\", \"scope\":\"channel_code\",\"locale\":\"locale_code\"}'. You have to either use this field or the `product_model` field, but not both at the same time.","type":"string"},"product_model":{"description":"The product model to which the media file will be associated. It is a JSON string that follows this format '{\"code\":\"product_model_code\", \"attribute\":\"attribute_code\", \"scope\":\"channel_code\",\"locale\":\"locale_code\"}'. You have to either use this field or the `product` field, but not both at the same time.","type":"string"}},"required":["file"]}}},"x-form-data":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `multipart/form-data`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘multipart/form-data’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new product media file","tags":["Product media file"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/media-files/{code}":{"get":{"description":"This endpoint allows you to get the information about a given media file that is used as an attribute value of a product or a product model.","operationId":"get_media_files__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the media file in JSON standard format","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"download":{"properties":{"href":{"description":"URI to download the binaries of the media file","type":"string"}},"type":"object"}},"type":"object","x-read-only":true}},"type":"object"},{"example":{"code":"7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg","extension":"jpg","mime_type":"image/jpeg","original_filename":"10806799-1356.jpg","size":16070},"properties":{"code":{"description":"Media file code","type":"string","x-immutable":true},"extension":{"description":"Extension of the media file","type":"string","x-read-only":true},"mime_type":{"description":"Mime type of the media file","type":"string","x-read-only":true},"original_filename":{"description":"Original filename of the media file","type":"string"},"size":{"description":"Size of the media file","type":"integer","x-read-only":true}},"type":"object"}],"example":{"_links":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/media-files/7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg/download"}},"code":"7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg","extension":"jpg","mime_type":"image/jpeg","original_filename":"10806799-1356.jpg","size":16070}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a product media file","tags":["Product media file"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/media-files/{code}/download":{"get":{"description":"This endpoint allows you to download a given media file that is used as an attribute value of a product or a product model.","operationId":"get_media_files__code__download","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-content-type":"Mime-type of the media file","x-details":"Returns the binary of the media file"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}}},"summary":"Download a product media file","tags":["Product media file"],"x-content-type":"Mime-type of the media file","x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/product-models":{"get":{"description":"This endpoint allows you to get a list of product models. Product models are paginated. In the Enterprise Edition, since the 2.0, permissions based on your user groups are applied to the set of products you request.","operationId":"get_product_models","parameters":[{"description":"Filter product models, for more details see the <a href=\"/documentation/filter.html\">Filters</a> section","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Filter product values to return scopable attributes for the given channel as well as the non localizable/non scopable attributes, for more details see the <a href=\"/documentation/filter.html#via-channel\">Filter product values via channel</a> section","in":"query","name":"scope","required":false,"schema":{"type":"string"}},{"description":"Filter product values to return localizable attributes for the given locales as well as the non localizable/non scopable attributes, for more details see the <a href=\"/documentation/filter.html#via-locale\">Filter product values via locale</a> section","in":"query","name":"locales","required":false,"schema":{"type":"string"}},{"description":"Filter product values to only return those concerning the given attributes, for more details see the <a href=\"/documentation/filter.html#filter-product-values\">Filter on product values</a> section and the <a href=\"/documentation/filter.html#filter-on-product-model-properties\">Filter on product model properties</a> section","in":"query","name":"attributes","required":false,"schema":{"type":"string"}},{"description":"Pagination method type, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"pagination_type","required":false,"x-validation-rules":"One of the following values","schema":{"type":"string","enum":["page","search_after"],"default":"page"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}},{"description":"Return product model quality scores in the response. <strong>(Only available since the 6.0 version)</strong>","in":"query","name":"with_quality_scores","required":false,"x-from-version":"6.0","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Return product models paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"code":"model-biker-jacket-leather","created":"2025-08-15T13:52:10.893Z","family":"clothing","family_variant":"clothing_material_size","parent":"model-biker-jacket","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"code":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"top","quantity":2},{"identifier":"cap","quantity":1}]}},"updated":"2025-08-15T13:52:10.893Z","values":{"collection":[{"data":["summer_2017"],"locale":null,"scope":null}],"color":[{"data":"antique_white","locale":null,"scope":null}],"description":[{"data":"Biker jacket","locale":"en_US","scope":"ecommerce"}],"material":[{"data":"leather","locale":null,"scope":null}],"name":[{"data":"Biker jacket","locale":"en_US","scope":null}],"variation_name":[{"data":"Biker jacket leather","locale":"en_US","scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product and/or other product models, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product model is categorized","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"code":{"description":"Product model code","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"family":{"description":"<a href='api-reference.html#Family'>Family</a> code  from which the product inherits its attributes and attributes requirements (since the 3.2)","type":"string","x-from-version":"3.2","x-immutable":true,"x-validation-rules":"It is equal to an existing family code"},"family_variant":{"description":"Family variant code from which the product model inherits its attributes and variant attributes","type":"string","x-immutable":true,"x-validation-rules":"It is equal to an existing family variant code that belong to the family given in the `family` field"},"metadata":{"description":"More information around the product model (only available since the v2.3 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product model regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.3","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a>. This parent can be modified since the 2.3.","type":"string","x-from-version":"2.3","x-validation-rules":"&bull; It is equal to an existing product model code&#10;&bull; This product model has the same family variant as the one given in the `family_variant field`"},"quality_scores":{"description":"Product model quality scores for each channel/locale combination (<strong>only available since the 7.0 version</strong> and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product model is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product model is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it. &#10;&bull; Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Product model attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["code","family_variant"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Product Models","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"http://demo.akeneo.com/api/rest/v1/product-models/amarisshoe"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["clothing","shoes"],"code":"amarisshoe","created":"2025-08-15T13:52:10.893Z","family":"shoes","family_variant":"shoes_VariantA1","parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.893Z","values":{"description":[{"data":"I like shoes!","locale":"en_US","scope":"ecommerce"}],"price":[{"data":[{"amount":"50.00","currency":"EUR"}],"locale":null,"scope":null}]}},{"_links":{"self":{"href":"http://demo.akeneo.com/api/rest/v1/product-models/Abiloitshirt"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["clothing","tshirt"],"code":"Abiloitshirt","created":"2025-08-15T13:52:10.893Z","family":"clothing","family_variant":"clothing_VariantA1","parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[],"products":[{"identifier":"cap","quantity":2}]}},"updated":"2025-08-15T13:52:10.893Z","values":{"description":[{"data":"I like tshirt!","locale":"en_US","scope":"ecommerce"}],"price":[{"data":[{"amount":"50.00","currency":"EUR"}],"locale":null,"scope":null}]}},{"_links":{"self":{"href":"http://demo.akeneo.com/api/rest/v1/product-models/Astertrousers"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["clothing","trousers"],"code":"Astertrousers","created":"2025-08-15T13:52:10.893Z","family":"clothing","family_variant":"clothing_VariantA1","parent":null,"quantified_associations":{},"updated":"2025-08-15T13:52:10.893Z","values":{"description":[{"data":"I like trousers!","locale":"en_US","scope":"ecommerce"}],"price":[{"data":[{"amount":"50.00","currency":"EUR"}],"locale":null,"scope":null}]}}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"http://demo.akeneo.com/api/rest/v1/product-models?pagination_type=search_after&limit=3"},"next":{"href":"http://demo.akeneo.com/api/rest/v1/product-models?pagination_type=search_after&limit=3&search_after=rw%3D%3D"},"self":{"href":"http://demo.akeneo.com/api/rest/v1/product-models?pagination_type=search_after&limit=3&search_after=qg%3D%3D"}}}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Get list of product models","tags":["Product model"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several product models at once. Learn more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no product models exists for the given code, it creates it. In the Enterprise Edition, since the v2.3, permissions based on your user groups are applied to the product models you try to update. It may result in the creation of drafts if you only have edit rights through the product model's categories.","operationId":"patch_product_models","requestBody":{"content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"code":"model-biker-jacket-leather","created":"2025-08-15T13:52:10.893Z","family":"clothing","family_variant":"clothing_material_size","parent":"model-biker-jacket","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"code":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"top","quantity":2},{"identifier":"cap","quantity":1}]}},"updated":"2025-08-15T13:52:10.893Z","values":{"collection":[{"data":["summer_2017"],"locale":null,"scope":null}],"color":[{"data":"antique_white","locale":null,"scope":null}],"description":[{"data":"Biker jacket","locale":"en_US","scope":"ecommerce"}],"material":[{"data":"leather","locale":null,"scope":null}],"name":[{"data":"Biker jacket","locale":"en_US","scope":null}],"variation_name":[{"data":"Biker jacket leather","locale":"en_US","scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product and/or other product models, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product model is categorized","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"code":{"description":"Product model code","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"family":{"description":"<a href='api-reference.html#Family'>Family</a> code  from which the product inherits its attributes and attributes requirements (since the 3.2)","type":"string","x-from-version":"3.2","x-immutable":true,"x-validation-rules":"It is equal to an existing family code"},"family_variant":{"description":"Family variant code from which the product model inherits its attributes and variant attributes","type":"string","x-immutable":true,"x-validation-rules":"It is equal to an existing family variant code that belong to the family given in the `family` field"},"metadata":{"description":"More information around the product model (only available since the v2.3 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product model regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.3","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a>. This parent can be modified since the 2.3.","type":"string","x-from-version":"2.3","x-validation-rules":"&bull; It is equal to an existing product model code&#10;&bull; This product model has the same family variant as the one given in the `family_variant field`"},"quality_scores":{"description":"Product model quality scores for each channel/locale combination (<strong>only available since the 7.0 version</strong> and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product model is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product model is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it. &#10;&bull; Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Product model attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["code","family_variant"],"type":"object","x-examples":{"x-example-1":"{\"code\": \"sub_sweat_option_a\", \"parent\": \"sweat\", \"values\": {\"a_simple_select\": [{\"locale\": null, \"scope\": null, \"data\": \"optionA\"}]}}","x-example-2":"{\"code\": \"sub_sweat_option_b\", \"parent\": \"sweat\", \"values\": {\"a_simple_select\": [{\"locale\": null, \"scope\": null, \"data\": \"optionA\"}]}}","x-example-3":"{\"code\":\"tshirt\", \"parent\": \"root_tshirt\", \"family_variant\":\"clothesvariant\",\"values\":{\"description\":[{\"scope\":\"ecommerce\",\"locale\":\"en_US\",\"data\":\"My amazing tshirt\"}]}}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"code\":\"sub_sweat_option_a\",\"status_code\":204}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"code\":\"sub_sweat_option_b\",\"status_code\":422,\"message\":\"Validation failed.\",\"errors\":[{\"property\":\"attribute\",\"message\":\"Cannot set value \\\"Option A\\\" for the attribute axis \\\"a_simple_select\\\", as another sibling entity already has this value\"}]}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"code\":\"tshirt\",\"status_code\":201}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several product models","tags":["Product model"],"x-body-by-line":"Contains several lines, each line is a product model in JSON standard format","x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a new product model. In the Enterprise Edition, since the v2.3, permissions based on your user groups are applied to the product model you try to create.","operationId":"post_product_models","requestBody":{"content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"code":"model-biker-jacket-leather","created":"2025-08-15T13:52:10.893Z","family":"clothing","family_variant":"clothing_material_size","parent":"model-biker-jacket","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"code":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"top","quantity":2},{"identifier":"cap","quantity":1}]}},"updated":"2025-08-15T13:52:10.893Z","values":{"collection":[{"data":["summer_2017"],"locale":null,"scope":null}],"color":[{"data":"antique_white","locale":null,"scope":null}],"description":[{"data":"Biker jacket","locale":"en_US","scope":"ecommerce"}],"material":[{"data":"leather","locale":null,"scope":null}],"name":[{"data":"Biker jacket","locale":"en_US","scope":null}],"variation_name":[{"data":"Biker jacket leather","locale":"en_US","scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product and/or other product models, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product model is categorized","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"code":{"description":"Product model code","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"family":{"description":"<a href='api-reference.html#Family'>Family</a> code  from which the product inherits its attributes and attributes requirements (since the 3.2)","type":"string","x-from-version":"3.2","x-immutable":true,"x-validation-rules":"It is equal to an existing family code"},"family_variant":{"description":"Family variant code from which the product model inherits its attributes and variant attributes","type":"string","x-immutable":true,"x-validation-rules":"It is equal to an existing family variant code that belong to the family given in the `family` field"},"metadata":{"description":"More information around the product model (only available since the v2.3 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product model regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.3","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a>. This parent can be modified since the 2.3.","type":"string","x-from-version":"2.3","x-validation-rules":"&bull; It is equal to an existing product model code&#10;&bull; This product model has the same family variant as the one given in the `family_variant field`"},"quality_scores":{"description":"Product model quality scores for each channel/locale combination (<strong>only available since the 7.0 version</strong> and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product model is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product model is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it. &#10;&bull; Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Product model attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["code","family_variant"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new product model","tags":["Product model"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/product-models/{code}":{"delete":{"description":"This endpoint allows you to delete a given product model. All its children, product models and variant products, will be also deleted. In the Enterprise Edition, the permissions based on your connection user group are applied to the product model you try to delete.","operationId":"delete_product_models__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No content to return","x-details":"Means that the deletion was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}}},"summary":"Delete a product model","tags":["Product model"],"x-versions":["6.0","7.0","SaaS"]},"get":{"description":"This endpoint allows you to get the information about a given product model. In the Entreprise Edition, since the v2.0, permissions based on your user groups are applied to the product model you request.","operationId":"get_product_models__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}},{"description":"Return product model quality scores in the response. <strong>(Only available since the 6.0 version)</strong>","in":"query","name":"with_quality_scores","required":false,"x-from-version":"6.0","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the product model in JSON standard format.","content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"code":"model-biker-jacket-leather","created":"2025-08-15T13:52:10.893Z","family":"clothing","family_variant":"clothing_material_size","parent":"model-biker-jacket","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"code":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"top","quantity":2},{"identifier":"cap","quantity":1}]}},"updated":"2025-08-15T13:52:10.893Z","values":{"collection":[{"data":["summer_2017"],"locale":null,"scope":null}],"color":[{"data":"antique_white","locale":null,"scope":null}],"description":[{"data":"Biker jacket","locale":"en_US","scope":"ecommerce"}],"material":[{"data":"leather","locale":null,"scope":null}],"name":[{"data":"Biker jacket","locale":"en_US","scope":null}],"variation_name":[{"data":"Biker jacket leather","locale":"en_US","scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product and/or other product models, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product model is categorized","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"code":{"description":"Product model code","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"family":{"description":"<a href='api-reference.html#Family'>Family</a> code  from which the product inherits its attributes and attributes requirements (since the 3.2)","type":"string","x-from-version":"3.2","x-immutable":true,"x-validation-rules":"It is equal to an existing family code"},"family_variant":{"description":"Family variant code from which the product model inherits its attributes and variant attributes","type":"string","x-immutable":true,"x-validation-rules":"It is equal to an existing family variant code that belong to the family given in the `family` field"},"metadata":{"description":"More information around the product model (only available since the v2.3 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product model regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.3","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a>. This parent can be modified since the 2.3.","type":"string","x-from-version":"2.3","x-validation-rules":"&bull; It is equal to an existing product model code&#10;&bull; This product model has the same family variant as the one given in the `family_variant field`"},"quality_scores":{"description":"Product model quality scores for each channel/locale combination (<strong>only available since the 7.0 version</strong> and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product model is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product model is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it. &#10;&bull; Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Product model attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["code","family_variant"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a product model","tags":["Product model"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given product model. Learn more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no product model exists for the given code, it creates it. In the Enterprise Edition PIM since the 2.3, permissions based on your user groups are applied to the product model you try to update. It may result in the creation of a draft if you only have edit rights through the product model's categories.","operationId":"patch_product_models__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"code":"model-biker-jacket-leather","created":"2025-08-15T13:52:10.894Z","family":"clothing","family_variant":"clothing_material_size","parent":"model-biker-jacket","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"code":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"top","quantity":2},{"identifier":"cap","quantity":1}]}},"updated":"2025-08-15T13:52:10.894Z","values":{"collection":[{"data":["summer_2017"],"locale":null,"scope":null}],"color":[{"data":"antique_white","locale":null,"scope":null}],"description":[{"data":"Biker jacket","locale":"en_US","scope":"ecommerce"}],"material":[{"data":"leather","locale":null,"scope":null}],"name":[{"data":"Biker jacket","locale":"en_US","scope":null}],"variation_name":[{"data":"Biker jacket leather","locale":"en_US","scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product and/or other product models, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product model is categorized","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"code":{"description":"Product model code","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"family":{"description":"<a href='api-reference.html#Family'>Family</a> code  from which the product inherits its attributes and attributes requirements (since the 3.2)","type":"string","x-from-version":"3.2","x-immutable":true,"x-validation-rules":"It is equal to an existing family code"},"family_variant":{"description":"Family variant code from which the product model inherits its attributes and variant attributes","type":"string","x-immutable":true,"x-validation-rules":"It is equal to an existing family variant code that belong to the family given in the `family` field"},"metadata":{"description":"More information around the product model (only available since the v2.3 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product model regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.3","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a>. This parent can be modified since the 2.3.","type":"string","x-from-version":"2.3","x-validation-rules":"&bull; It is equal to an existing product model code&#10;&bull; This product model has the same family variant as the one given in the `family_variant field`"},"quality_scores":{"description":"Product model quality scores for each channel/locale combination (<strong>only available since the 7.0 version</strong> and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product model is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product model is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it. &#10;&bull; Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Product model attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["code","family_variant"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a product model","tags":["Product model"],"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/product-models/{code}/draft":{"get":{"description":"This endpoint allows you to get the information about a given product model draft.","operationId":"get_product_model_draft__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the draft in JSON standard format","content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"code":"model-biker-jacket-leather","created":"2025-08-15T13:52:10.894Z","family":"clothing","family_variant":"clothing_material_size","parent":"model-biker-jacket","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"code":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"top","quantity":2},{"identifier":"cap","quantity":1}]}},"updated":"2025-08-15T13:52:10.894Z","values":{"collection":[{"data":["summer_2017"],"locale":null,"scope":null}],"color":[{"data":"antique_white","locale":null,"scope":null}],"description":[{"data":"Biker jacket","locale":"en_US","scope":"ecommerce"}],"material":[{"data":"leather","locale":null,"scope":null}],"name":[{"data":"Biker jacket","locale":"en_US","scope":null}],"variation_name":[{"data":"Biker jacket leather","locale":"en_US","scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product and/or other product models, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product model is categorized","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"code":{"description":"Product model code","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"family":{"description":"<a href='api-reference.html#Family'>Family</a> code  from which the product inherits its attributes and attributes requirements (since the 3.2)","type":"string","x-from-version":"3.2","x-immutable":true,"x-validation-rules":"It is equal to an existing family code"},"family_variant":{"description":"Family variant code from which the product model inherits its attributes and variant attributes","type":"string","x-immutable":true,"x-validation-rules":"It is equal to an existing family variant code that belong to the family given in the `family` field"},"metadata":{"description":"More information around the product model (only available since the v2.3 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product model regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.3","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a>. This parent can be modified since the 2.3.","type":"string","x-from-version":"2.3","x-validation-rules":"&bull; It is equal to an existing product model code&#10;&bull; This product model has the same family variant as the one given in the `family_variant field`"},"quality_scores":{"description":"Product model quality scores for each channel/locale combination (<strong>only available since the 7.0 version</strong> and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product model is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product model is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it. &#10;&bull; Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Product model attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["code","family_variant"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a draft","tags":["Product model"],"x-ee":true,"x-versions":["2.3","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/product-models/{code}/proposal":{"post":{"description":"This endpoint allows you to submit a product model draft for approval.","operationId":"post_product_model_proposal","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Submitted","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the draft submission was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Submit a draft for approval","tags":["Product model"],"x-ee":true,"x-versions":["2.3","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/products":{"get":{"description":"This endpoint allows you to get a list of products. Products are paginated and they can be filtered. In the Enterprise Edition, since the 2.0, permissions based on your user groups are applied to the set of products you request.","operationId":"get_products","parameters":[{"description":"Filter products, for more details see the <a href=\"/documentation/filter.html\">Filters</a> section","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Filter product values to return scopable attributes for the given channel as well as the non localizable/non scopable attributes, for more details see the <a href=\"/documentation/filter.html#via-channel\">Filter product values via channel</a> section","in":"query","name":"scope","required":false,"schema":{"type":"string"}},{"description":"Filter product values to return localizable attributes for the given locales as well as the non localizable/non scopable attributes, for more details see the <a href=\"/documentation/filter.html#via-locale\">Filter product values via locale</a> section","in":"query","name":"locales","required":false,"schema":{"type":"string"}},{"description":"Filter product values to only return those concerning the given attributes, for more details see the <a href=\"/documentation/filter.html#filter-product-values\">Filter on product values</a> section","in":"query","name":"attributes","required":false,"schema":{"type":"string"}},{"description":"Pagination method type, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"pagination_type","required":false,"x-validation-rules":"One of the following values","schema":{"type":"string","enum":["page","search_after"],"default":"page"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}},{"description":"Return labels of attribute options in the response. (Only available since the 5.0 version)","in":"query","name":"with_attribute_options","required":false,"x-from-version":"5.0","schema":{"type":"boolean","default":false}},{"description":"Return product quality scores in the response. (Only available since the 5.0 version)","in":"query","name":"with_quality_scores","required":false,"x-from-version":"5.0","schema":{"type":"boolean","default":false}},{"description":"Return product completenesses in the response. (Only available since the 6.0 version)","in":"query","name":"with_completenesses","required":false,"x-from-version":"6.0","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return products paginated","x-examples-per-version":[{"x-example":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/top"}},"associations":{"PACK":{"groups":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.894Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","quantified_associations":{"PRODUCT_SET":{"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.894Z","values":{"collection":[{"data":["winter_2016"]}],"color":[{"data":"black"}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/cap"}},"associations":{"PACK":{"groups":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.894Z","enabled":true,"family":"caps","groups":[],"identifier":"cap","quantified_associations":{},"updated":"2025-08-15T13:52:10.894Z","values":{"color":[{"data":"black"}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/sweat"}},"associations":{},"categories":["winter_collection"],"created":"2025-08-15T13:52:10.894Z","enabled":true,"groups":[],"identifier":"sweat","quantified_associations":{},"updated":"2025-08-15T13:52:10.894Z","values":{}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=4&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=2&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=3&limit=3"}},"current_page":3},"x-version":"1.7"},{"x-example":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/top"}},"associations":{"PACK":{"groups":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.894Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","quantified_associations":{"PRODUCT_SET":{"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.894Z","values":{"collection":[{"data":["winter_2016"]}],"color":[{"data":"black"}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/cap"}},"associations":{"PACK":{"groups":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.894Z","enabled":true,"family":"caps","groups":[],"identifier":"cap","quantified_associations":{},"updated":"2025-08-15T13:52:10.894Z","values":{"color":[{"data":"black"}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/sweat"}},"associations":{},"categories":["winter_collection"],"created":"2025-08-15T13:52:10.894Z","enabled":true,"groups":[],"identifier":"sweat","quantified_associations":{},"updated":"2025-08-15T13:52:10.894Z","values":{}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=4&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=2&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=3&limit=3"}},"current_page":3},"x-version":"2.0"},{"x-example":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/top"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.894Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.894Z","values":{"collection":[{"data":["winter_2016"]}],"color":[{"data":"black"}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/cap"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.895Z","enabled":true,"family":"caps","groups":[],"identifier":"cap","quantified_associations":{},"updated":"2025-08-15T13:52:10.895Z","values":{"color":[{"data":"black"}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/sweat"}},"associations":{},"categories":["winter_collection"],"created":"2025-08-15T13:52:10.895Z","enabled":true,"groups":[],"identifier":"sweat","quantified_associations":{},"updated":"2025-08-15T13:52:10.895Z","values":{}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=4&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=2&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=3&limit=3"}},"current_page":3},"x-version":"2.1"},{"x-example":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/top"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.895Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.895Z","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}}}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}}}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/cap"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.895Z","enabled":true,"family":"caps","groups":[],"identifier":"cap","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{},"updated":"2025-08-15T13:52:10.895Z","values":{"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/sweat"}},"associations":{},"categories":["winter_collection"],"created":"2025-08-15T13:52:10.895Z","enabled":true,"groups":[],"identifier":"sweat","quality_scores":{},"quantified_associations":{},"updated":"2025-08-15T13:52:10.895Z","values":{}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=1&limit=3&with_quality_scores=true&with_attribute_options=true"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=4&limit=3&with_quality_scores=true&with_attribute_options=true"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=2&limit=3&with_quality_scores=true&with_attribute_options=true"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=3&limit=3&with_quality_scores=true&with_attribute_options=true"}},"current_page":3},"x-version":"5.0"},{"x-example":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/top"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"completenesses":[{"data":20,"locale":"en_US","scope":"ecommerce"},{"data":30,"locale":"fr_FR","scope":"ecommerce"},{"data":55,"locale":"en_US","scope":"tablet"},{"data":70,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.895Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.895Z","uuid":"aaf518b2-f91e-40f1-a53a-78ce5e81a6f9","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}}}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}}}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/cap"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"completenesses":[{"data":20,"locale":"en_US","scope":"ecommerce"},{"data":30,"locale":"fr_FR","scope":"ecommerce"},{"data":55,"locale":"en_US","scope":"tablet"},{"data":70,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.895Z","enabled":true,"family":"caps","groups":[],"identifier":"cap","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{},"updated":"2025-08-15T13:52:10.895Z","uuid":"aec6780b-c813-4bd7-8e24-1a8574471576","values":{"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/sweat"}},"associations":{},"categories":["winter_collection"],"completenesses":[],"created":"2025-08-15T13:52:10.895Z","enabled":true,"groups":[],"identifier":"sweat","quality_scores":{},"quantified_associations":{},"updated":"2025-08-15T13:52:10.895Z","uuid":"93f14b03-5ed3-4f23-87c6-ae3806041b6a","values":{}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=1&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=4&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=2&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=3&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"}},"current_page":3},"x-version":"SaaS"}],"content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.894Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.894Z","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product UUID","type":"string","x-from-version":"7.0"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Products","type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Get list of products","tags":["Product [identifier]"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several products at once. Learn more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no product exists for the given identifier, it creates it. In the Enterprise Edition, since the v2.0, permissions based on your user groups are applied to the products you try to update. It may result in the creation of drafts if you only have edit rights through the product's categories.","operationId":"patch_products","requestBody":{"content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.895Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.895Z","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product UUID","type":"string","x-from-version":"7.0"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object","x-examples":{"x-example-1":"{\"identifier\":\"cap\",\"values\":{\"description\":[{\"scope\":\"ecommerce\",\"locale\":\"en_US\",\"data\":\"My amazing cap\"}]}}","x-example-2":"{\"identifier\":\"mug\",\"group\":[\"promotion\"]}","x-example-3":"{\"identifier\":\"tshirt\",\"family\":\"clothes\"}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"identifier\":\"cap\",\"status_code\":204}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"identifier\":\"mug\",\"status_code\":422,\"message\":\"Property \"group\" does not exist.\"}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"identifier\":\"tshirt\",\"status_code\":201}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several products","tags":["Product [identifier]"],"x-body-by-line":"Contains several lines, each line is a product in JSON standard format","x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a new product. In the Enterprise Edition, since the v2.0, permissions based on your user groups are applied to the product you try to create.","operationId":"post_products","requestBody":{"content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.895Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.895Z","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product UUID","type":"string","x-from-version":"7.0"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new product","tags":["Product [identifier]"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/products-uuid":{"get":{"description":"This endpoint allows you to get a list of products. Products are paginated and they can be filtered. In the Enterprise Edition, permissions based on your user groups are applied to the set of products you request.","operationId":"get_products_uuid","parameters":[{"description":"Filter products, for more details see the <a href=\"/documentation/filter.html\">Filters</a> section","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Filter product values to return scopable attributes for the given channel as well as the non localizable/non scopable attributes, for more details see the <a href=\"/documentation/filter.html#via-channel\">Filter product values via channel</a> section","in":"query","name":"scope","required":false,"schema":{"type":"string"}},{"description":"Filter product values to return localizable attributes for the given locales as well as the non localizable/non scopable attributes, for more details see the <a href=\"/documentation/filter.html#via-locale\">Filter product values via locale</a> section","in":"query","name":"locales","required":false,"schema":{"type":"string"}},{"description":"Filter product values to only return those concerning the given attributes, for more details see the <a href=\"/documentation/filter.html#filter-product-values\">Filter on product values</a> section","in":"query","name":"attributes","required":false,"schema":{"type":"string"}},{"description":"Pagination method type, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"pagination_type","required":false,"x-validation-rules":"One of the following values","schema":{"type":"string","enum":["page","search_after"],"default":"page"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}},{"description":"Return labels of attribute options in the response. (Only available since the 5.0 version)","in":"query","name":"with_attribute_options","required":false,"x-from-version":"5.0","schema":{"type":"boolean","default":false}},{"description":"Return product quality scores in the response. (Only available since the 5.0 version)","in":"query","name":"with_quality_scores","required":false,"x-from-version":"5.0","schema":{"type":"boolean","default":false}},{"description":"Return product completenesses in the response. (Only available since the 6.0 version)","in":"query","name":"with_completenesses","required":false,"x-from-version":"6.0","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return products paginated","x-examples-per-version":[{"x-example":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product-uuid/25566245-55c3-42ce-86d9-8610ac459fa8"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":20,"locale":"en_US","scope":"ecommerce"},{"data":30,"locale":"fr_FR","scope":"ecommerce"},{"data":55,"locale":"en_US","scope":"tablet"},{"data":70,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.896Z","enabled":true,"family":"tshirt","groups":[],"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"quantity":2,"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5"},{"quantity":1,"uuid":"a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc"}]}},"updated":"2025-08-15T13:52:10.896Z","uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}}}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}}}],"sku":[{"data":"top"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/fc24e6c3-933c-4a93-8a81-e5c703d134d5"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":20,"locale":"en_US","scope":"ecommerce"},{"data":30,"locale":"fr_FR","scope":"ecommerce"},{"data":55,"locale":"en_US","scope":"tablet"},{"data":70,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.896Z","enabled":true,"family":"caps","groups":[],"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{},"updated":"2025-08-15T13:52:10.896Z","uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5","values":{"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}],"sku":[{"data":"cap"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product-uuid/fa0b115e-46ec-4527-beab-7207452f1b47"}},"associations":{},"categories":["winter_collection"],"completenesses":[],"created":"2025-08-15T13:52:10.896Z","enabled":true,"groups":[],"quality_scores":{},"quantified_associations":{},"updated":"2025-08-15T13:52:10.896Z","uuid":"fa0b115e-46ec-4527-beab-7207452f1b47","values":{"sku":[{"data":"sweat"}]}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products-uuid?page=1&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products-uuid?page=4&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products-uuid?page=2&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products-uuid?page=3&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"}},"current_page":3},"x-version":"SaaS"}],"content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.896Z","enabled":true,"family":"tshirt","groups":[],"parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"quantity":2,"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5"},{"quantity":1,"uuid":"a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc"}]}},"updated":"2025-08-15T13:52:10.896Z","uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}],"sku":[{"data":"top","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product uuids with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the uuid of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product uuids and quantities with which the product is in relation","items":{"properties":{"quantity":{"type":"integer"},"uuid":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product uuid","type":"string"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Products","type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Get list of products","tags":["Product [uuid]"],"x-versions":["7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several products at once. Learn more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no product exists for the given uuid, it creates it. In the Enterprise Edition, permissions based on your user groups are applied to the products you try to update. It may result in the creation of drafts if you only have edit rights through the product's categories.","operationId":"patch_products_uuid","requestBody":{"content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.896Z","enabled":true,"family":"tshirt","groups":[],"parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"quantity":2,"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5"},{"quantity":1,"uuid":"a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc"}]}},"updated":"2025-08-15T13:52:10.896Z","uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}],"sku":[{"data":"top","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product uuids with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the uuid of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product uuids and quantities with which the product is in relation","items":{"properties":{"quantity":{"type":"integer"},"uuid":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product uuid","type":"string"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["uuid"],"type":"object","x-examples":{"x-example-1":"{\"uuid\":\"fc24e6c3-933c-4a93-8a81-e5c703d134d5\",\"values\":{\"description\":[{\"scope\":\"ecommerce\",\"locale\":\"en_US\",\"data\":\"My amazing cap\"}]}}","x-example-2":"{\"uuid\":\"573dd613-0c7f-4143-83d5-63cc5e535966\",\"values\":{\"sku\":[{\"data\":\"updated_sku\",\"locale\":null,\"scope\":null}]}, \"group\":[\"promotion\"]}","x-example-3":"{\"uuid\":\"25566245-55c3-42ce-86d9-8610ac459fa8\",\"values\":{\"sku\":[{\"data\":\"new_product\",\"locale\":null,\"scope\":null}]},\"family\":\"clothes\"}"}}}}},"responses":{"200":{"description":"OK","x-details":"Returns a plain text response whose lines are JSON containing the status of each update or creation","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"},"uuid":{"description":"Product uuid","type":"string"}},"type":"object"}},"x-example-1":{"examples":{"response":{"value":"{\"line\":1,\"uuid\":\"fc24e6c3-933c-4a93-8a81-e5c703d134d5\",\"status_code\":204}"}}},"x-example-2":{"examples":{"response":{"value":"{\"line\":2,\"uuid\":\"573dd613-0c7f-4143-83d5-63cc5e535966\",\"status_code\":422,\"message\":\"Property \"group\" does not exist.\"}"}}},"x-example-3":{"examples":{"response":{"value":"{\"line\":3,\"uuid\":\"25566245-55c3-42ce-86d9-8610ac459fa8\",\"status_code\":201}"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create several products","tags":["Product [uuid]"],"x-body-by-line":"Contains several lines, each line is a product in JSON standard format","x-versions":["7.0","SaaS"]},"post":{"description":"This endpoint allows you to create a new product. In the Enterprise Edition, permissions based on your user groups are applied to the product you try to create. If no uuid is provided, the PIM will generate one for you.","operationId":"post_products_uuid","requestBody":{"content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.896Z","enabled":true,"family":"tshirt","groups":[],"parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"quantity":2,"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5"},{"quantity":1,"uuid":"a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc"}]}},"updated":"2025-08-15T13:52:10.896Z","uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}],"sku":[{"data":"top","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product uuids with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the uuid of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product uuids and quantities with which the product is in relation","items":{"properties":{"quantity":{"type":"integer"},"uuid":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product uuid","type":"string"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"type":"object"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new product","tags":["Product [uuid]"],"x-versions":["7.0","SaaS"]}},"/api/rest/v1/products-uuid/{uuid}":{"delete":{"description":"This endpoint allows you to delete a given product. In the Enterprise Edition, permissions based on your user groups are applied to the product you try to delete.","operationId":"delete_products_uuid__uuid_","parameters":[{"description":"Uuid of the resource","in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No content to return","x-details":"Means that the deletion was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}}},"summary":"Delete a product","tags":["Product [uuid]"],"x-versions":["7.0","SaaS"]},"get":{"description":"This endpoint allows you to get the information about a given product. In the Entreprise Edition, permissions based on your user groups are applied to the product you request.","operationId":"get_products_uuid__uuid_","parameters":[{"description":"Uuid of the resource","in":"path","name":"uuid","required":true,"schema":{"type":"string"}},{"description":"Return labels of attribute options in the response. (Only available since the 5.0 version)","in":"query","name":"with_attribute_options","required":false,"x-from-version":"5.0","schema":{"type":"boolean","default":false}},{"description":"Return product quality scores in the response. (Only available since the 5.0 version)","in":"query","name":"with_quality_scores","required":false,"x-from-version":"5.0","schema":{"type":"boolean","default":false}},{"description":"Return product completenesses in the response. (Only available since the 6.0 version)","in":"query","name":"with_completenesses","required":false,"x-from-version":"6.0","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the product in JSON standard format","content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.897Z","enabled":true,"family":"tshirt","groups":[],"parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"quantity":2,"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5"},{"quantity":1,"uuid":"a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc"}]}},"updated":"2025-08-15T13:52:10.897Z","uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}],"sku":[{"data":"top","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product uuids with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the uuid of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product uuids and quantities with which the product is in relation","items":{"properties":{"quantity":{"type":"integer"},"uuid":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product uuid","type":"string"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a product","tags":["Product [uuid]"],"x-versions":["7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given product. Learn more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no product exists for the given uuid, it creates it. In the Entreprise Edition, permissions based on your user groups are applied to the product you try to update. It may result in the creation of a draft if you only have edit rights through the product's categories.","operationId":"patch_products_uuid__uuid_","parameters":[{"description":"Uuid of the resource","in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.897Z","enabled":true,"family":"tshirt","groups":[],"parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"quantity":2,"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5"},{"quantity":1,"uuid":"a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc"}]}},"updated":"2025-08-15T13:52:10.897Z","uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}],"sku":[{"data":"top","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product uuids with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the uuid of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product uuids and quantities with which the product is in relation","items":{"properties":{"quantity":{"type":"integer"},"uuid":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product uuid","type":"string"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a product","tags":["Product [uuid]"],"x-versions":["7.0","SaaS"]}},"/api/rest/v1/products-uuid/{uuid}/draft":{"get":{"description":"This endpoint allows you to get the information about a given draft.","operationId":"get_draft_uuid__uuid_","parameters":[{"description":"Uuid of the resource","in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the draft in JSON standard format","content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.897Z","enabled":true,"family":"tshirt","groups":[],"parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"quantity":2,"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5"},{"quantity":1,"uuid":"a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc"}]}},"updated":"2025-08-15T13:52:10.897Z","uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}],"sku":[{"data":"top","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product uuids with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the uuid of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product uuids and quantities with which the product is in relation","items":{"properties":{"quantity":{"type":"integer"},"uuid":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product uuid","type":"string"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a draft","tags":["Product [uuid]"],"x-ee":true,"x-versions":["7.0","SaaS"]}},"/api/rest/v1/products-uuid/{uuid}/proposal":{"post":{"description":"This endpoint allows you to submit a draft for approval.","operationId":"post_proposal_uuid","parameters":[{"description":"Uuid of the resource","in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Submitted","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the draft submission was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Submit a draft for approval","tags":["Product [uuid]"],"x-ee":true,"x-versions":["7.0","SaaS"]}},"/api/rest/v1/products/{code}":{"delete":{"description":"This endpoint allows you to delete a given product. In the Enterprise Edition, since the 2.0, permissions based on your user groups are applied to the product you try to delete.","operationId":"delete_products__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No content to return","x-details":"Means that the deletion was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}}},"summary":"Delete a product","tags":["Product [identifier]"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"get":{"description":"This endpoint allows you to get the information about a given product. In the Entreprise Edition, since the v2.0, permissions based on your user groups are applied to the product you request.","operationId":"get_products__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}},{"description":"Return labels of attribute options in the response. (Only available since the 5.0 version)","in":"query","name":"with_attribute_options","required":false,"x-from-version":"5.0","schema":{"type":"boolean","default":false}},{"description":"Return product quality scores in the response. (Only available since the 5.0 version)","in":"query","name":"with_quality_scores","required":false,"x-from-version":"5.0","schema":{"type":"boolean","default":false}},{"description":"Return product completenesses in the response. (Only available since the 6.0 version)","in":"query","name":"with_completenesses","required":false,"x-from-version":"6.0","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the product in JSON standard format","content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.898Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.898Z","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product UUID","type":"string","x-from-version":"7.0"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a product","tags":["Product [identifier]"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given product. Learn more about <a href=\"/documentation/update.html#update-behavior\">Update behavior</a>. Note that if no product exists for the given identifier, it creates it. In the Entreprise Edition, since the v2.0, permissions based on your user groups are applied to the product you try to update. It may result in the creation of a draft if you only have edit rights through the product's categories.","operationId":"patch_products__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.898Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.898Z","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product UUID","type":"string","x-from-version":"7.0"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a product","tags":["Product [identifier]"],"x-versions":["1.7","2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/products/{code}/draft":{"get":{"description":"This endpoint allows you to get the information about a given draft.","operationId":"get_draft__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the draft in JSON standard format","content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.898Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.898Z","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product UUID","type":"string","x-from-version":"7.0"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a draft","tags":["Product [identifier]"],"x-ee":true,"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/products/{code}/proposal":{"post":{"description":"This endpoint allows you to submit a draft for approval.","operationId":"post_proposal","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Submitted","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the draft submission was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Submit a draft for approval","tags":["Product [identifier]"],"x-ee":true,"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/published-products":{"get":{"description":"This endpoint allows you to get a list of published products. Published products are paginated and they can be filtered.","operationId":"get_published_products","parameters":[{"description":"Filter published products, for more details see the <a href=\"/documentation/filter.html\">Filters</a> section","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Filter published product values to return scopable attributes for the given channel as well as the non localizable/non scopable attributes, for more details see the <a href=\"/documentation/filter.html#filter-published-product-values\">Filter on published product values</a> section","in":"query","name":"scope","required":false,"schema":{"type":"string"}},{"description":"Filter published product values to return localizable attributes for the given locales as well as the non localizable/non scopable attributes, for more details see the <a href=\"/documentation/filter.html#filter-published-product-values\">Filter on published product values</a> section","in":"query","name":"locales","required":false,"schema":{"type":"string"}},{"description":"Filter published product values to only return those concerning the given attributes, for more details see the <a href=\"/documentation/filter.html#filter-product-values\">Filter on product values</a> section","in":"query","name":"attributes","required":false,"schema":{"type":"string"}},{"description":"Pagination method type, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"pagination_type","required":false,"x-validation-rules":"One of the following values","schema":{"type":"string","enum":["page","search_after"],"default":"page"}},{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}},{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Return published products paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.898Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","updated":"2025-08-15T13:52:10.898Z","values":{"color":[{"data":"black","locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups and/or other published products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the published product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of published product identifiers with which the published product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Identifiers used in the array of the property `products` cannot be equal to the published product identifier."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the published product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the published product is enable","type":"boolean"},"family":{"default":"null","description":"<a href='api-reference.html#Family'>Family</a> code from which the published product inherits its attributes and attributes requirements","type":"string","x-validation-rules":"It is equal to an existing family code"},"groups":{"default":[],"description":"Codes of the groups to which the published product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Published product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"quantified_associations":{"description":"Warning: associations with quantities are not compatible with the published products. The response will always be empty.","type":"object"},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Published product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Published products","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/published-products/top"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.898Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","updated":"2025-08-15T13:52:10.898Z","values":{"color":[{"data":"black","locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","locale":null,"scope":null}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/published-products/cap"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.898Z","enabled":true,"family":"caps","groups":[],"identifier":"cap","updated":"2025-08-15T13:52:10.898Z","values":{"color":[{"data":"black","locale":null,"scope":null}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US","scope":null},{"data":"Casquette","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}],"locale":null,"scope":null}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/published-products/sweat"}},"associations":{},"categories":["winter_collection"],"created":"2025-08-15T13:52:10.898Z","enabled":true,"family":null,"groups":[],"identifier":"sweat","updated":"2025-08-15T13:52:10.898Z","values":{}}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/published-products?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/published-products?page=4&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/published-products?page=2&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/published-products?page=3&limit=3"}}}}},"current_page":{"examples":{"response":{"value":3}}}}},"400":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Get list of published products","tags":["Published product"],"x-ee":true,"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/published-products/{code}":{"get":{"description":"This endpoint allows you to get the information about a given published product.","operationId":"get_published_products__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the published product in JSON standard format","content":{"application/json":{"schema":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.900Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","updated":"2025-08-15T13:52:10.900Z","values":{"color":[{"data":"black","locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups and/or other published products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the published product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of published product identifiers with which the published product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Identifiers used in the array of the property `products` cannot be equal to the published product identifier."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the published product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the published product is enable","type":"boolean"},"family":{"default":"null","description":"<a href='api-reference.html#Family'>Family</a> code from which the published product inherits its attributes and attributes requirements","type":"string","x-validation-rules":"It is equal to an existing family code"},"groups":{"default":[],"description":"Codes of the groups to which the published product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Published product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"quantified_associations":{"description":"Warning: associations with quantities are not compatible with the published products. The response will always be empty.","type":"object"},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Published product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a published product","tags":["Published product"],"x-ee":true,"x-versions":["2.x","3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/reference-entities":{"get":{"description":"This endpoint allows you to get a list of reference entities. Reference entities are paginated.","operationId":"get_reference_entities","parameters":[{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}}],"responses":{"200":{"description":"Return reference entities paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"image_download":{"properties":{"href":{"description":"URI to download the binaries of the reference entity image file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"brands","image":"0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png","labels":{"en_US":"Brands","fr_FR":"Marques"}},"properties":{"code":{"description":"Reference entity code","type":"string","x-immutable":true},"image":{"default":null,"description":"Code of the reference entity image","type":"string"},"labels":{"default":{},"description":"Reference entity labels for each locale","properties":{"localeCode":{"description":"Reference entity label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Reference Entities","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"image_download":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities-media-files/0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities/brands"}},"code":"brands","image":"0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png","labels":{"en_US":"Brands","fr_FR":"Marque"}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities/designers"}},"code":"designers","image":null,"labels":{"en_US":"Designers","fr_FR":"Designers"}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities/colors"}},"code":"colors","image":null,"labels":{"en_US":"Colors","fr_FR":"Couleurs"}}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities?search_after=2x055w%3D%3D"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities"}}}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get list of reference entities","tags":["Reference entity"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/reference-entities-media-files":{"post":{"description":"This endpoint allows you to create a new media file and associate it to the image of a reference entity, or to the main image or to an attribute value of a record.","operationId":"post_reference_entity_media_files","parameters":[{"description":"Equal to 'multipart/form-data', no other value allowed","in":"header","name":"Content-type","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/post_asset_media_filesBody"},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}},"Reference-entities-media-file-code":{"description":"Code of the media file","schema":{"type":"string"}}},"x-details":"Means that the media file creation was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `multipart/form-data`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘multipart/form-data’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Create a new media file for a reference entity or a record","tags":["Reference entity media file"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/reference-entities-media-files/{code}":{"get":{"description":"This endpoint allows you to download a given media file that is associated with a reference entity or a record.","operationId":"get_reference_entity_media_files__code","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-content-type":"Mime-type of the media file","x-details":"Returns the binary of the media file"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}}},"summary":"Download the media file associated to a reference entity or a record","tags":["Reference entity media file"],"x-content-type":"Mime-type of the media file","x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/reference-entities/{code}":{"get":{"description":"This endpoint allows you to get the information about a given reference entity.","operationId":"get_reference_entities__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the reference entity in JSON format.","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"image_download":{"properties":{"href":{"description":"URI to download the binaries of the reference entity image file","type":"string"}},"type":"object"}},"type":"object","x-read-only":true}},"type":"object"},{"example":{"code":"brands","image":"0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png","labels":{"en_US":"Brands","fr_FR":"Marques"}},"properties":{"code":{"description":"Reference entity code","type":"string","x-immutable":true},"image":{"default":null,"description":"Code of the reference entity image","type":"string"},"labels":{"default":{},"description":"Reference entity labels for each locale","properties":{"localeCode":{"description":"Reference entity label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}],"example":{"_links":{"image_download":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities-media-files/0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png"}},"code":"brands","image":"0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png","labels":{"en_US":"Brands","fr_FR":"Marques"}},"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a reference entity","tags":["Reference entity"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given reference entity. Note that if the reference entity does not already exist, it creates it.","operationId":"patch_reference_entity__code_","parameters":[{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"brands","image":"0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png","labels":{"en_US":"Brands","fr_FR":"Marques"}},"properties":{"code":{"description":"Reference entity code","type":"string","x-immutable":true},"image":{"default":null,"description":"Code of the reference entity image","type":"string"},"labels":{"default":{},"description":"Reference entity labels for each locale","properties":{"localeCode":{"description":"Reference entity label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a reference entity","tags":["Reference entity"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/reference-entities/{reference_entity_code}/attributes":{"get":{"description":"This endpoint allows you to get the list of attributes of a given reference entity.","operationId":"get_reference_entities__code__attributes","parameters":[{"description":"Code of the reference entity","in":"path","name":"reference_entity_code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the attributes of the given reference entity","x-examples":[{"code":"description","is_required_for_completeness":true,"is_rich_text_editor":true,"is_textarea":true,"labels":{"en_US":"Description","fr_FR":"Description"},"type":"text","validation_rule":"none","value_per_channel":false,"value_per_locale":true},{"code":"country","is_required_for_completeness":false,"labels":{"en_US":"Country","fr_FR":"Pays"},"type":"text","value_per_channel":false,"value_per_locale":false},{"code":"creation_year","decimals_allowed":false,"is_required_for_completeness":false,"labels":{"en_US":"Creation year","fr_FR":"Année de création"},"max_value":"2100","min_value":"1800","type":"number","value_per_channel":false,"value_per_locale":false},{"allowed_extensions":["png"],"code":"collection_overview","is_required_for_completeness":true,"labels":{"en_US":"Collection overview","fr_FR":"Aperçu de la collection"},"max_file_size":"1000","type":"image","value_per_channel":false,"value_per_locale":true}],"x-no-entity":true,"content":{"application/json":{"schema":{"items":{"example":{"code":"description","is_required_for_completeness":true,"is_rich_text_editor":true,"is_textarea":true,"labels":{"en_US":"Description","fr_FR":"Description"},"max_characters":null,"type":"text","validation_regexp":null,"validation_rule":"none","value_per_channel":false,"value_per_locale":true},"properties":{"allowed_extensions":{"default":[],"description":"Extensions allowed when the attribute type is `image`","items":{"type":"string"},"type":"array","x-warning":"Only for `image` attribute type"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"decimals_allowed":{"default":false,"description":"Whether decimals are allowed when the attribute type is `number`","type":"boolean","x-warning":"Only for `number` attribute type"},"is_required_for_completeness":{"default":false,"description":"Whether the attribute should be part of the record's completeness calculation","type":"boolean"},"is_rich_text_editor":{"description":"Whether the UI should display a rich text editor instead of a simple text area when the attribute type is `text`","type":"boolean","x-validation-rules":"Required when the property `is_textarea` is equal to `true`","x-warning":"Only for `text` attribute type"},"is_textarea":{"default":false,"description":"Whether the UI should display a text area instead of a simple field when the attribute type is `text`","type":"boolean","x-warning":"Only for `text` attribute type"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"max_characters":{"description":"Maximum number of characters allowed for the value of the attribute when the attribute type is `text`","type":"integer","x-warning":"Only for `text` attribute type"},"max_file_size":{"default":null,"description":"Max file size in MB when the attribute type is `image`","type":"string","x-warning":"Only for `image` attribute type"},"max_value":{"default":null,"description":"Maximum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The maximum value must be greater than the minimum value","x-warning":"Only for `number` attribute type"},"min_value":{"default":null,"description":"Minimum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The minimum value must be lower than the maximum value","x-warning":"Only for `number` attribute type"},"reference_entity_code":{"default":null,"description":"Code of the linked reference entity when the attribute type is `reference_entity_single_link` or `reference_entity_multiple_links`","type":"string","x-immutable":true,"x-validation-rules":"Required when the attribute type is either `reference_entity_single_link` or `reference_entity_multiple_links`","x-warning":"Only for `reference_entity_single_link` and `reference_entity_multiple_links` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/reference-entities.html#reference-entity-attribute'>type</a> section for more details.","enum":["text","image","number","single_option","multiple_options","reference_entity_single_link","reference_entity_multiple_links"],"type":"string","x-immutable":true},"validation_regexp":{"default":null,"description":"Regexp expression used to validate the attribute value when the attribute type is `text`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `text` attribute type"},"validation_rule":{"default":"none","description":"Validation rule type used to validate the attribute value when the attribute type is `text`","enum":["email","url","regexp","none"],"type":"string","x-warning":"Only for `text` attribute type"},"value_per_channel":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"value_per_locale":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true}},"required":["code","type"],"type":"object"},"type":"array"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get the list of attributes of a given reference entity","tags":["Reference entity attribute"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/reference-entities/{reference_entity_code}/attributes/{attribute_code}/options":{"get":{"description":"This endpoint allows you to get a list of attribute options for a given reference entity.","operationId":"get_reference_entity_attributes__attribute_code__options","parameters":[{"description":"Code of the reference entity","in":"path","name":"reference_entity_code","required":true,"schema":{"type":"string"}},{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the options of the given attributes of the given reference entity","x-examples":[{"code":"woodland_retreat","labels":{"en_US":"Woodland Retreat","fr_FR":"Retraite dans les Bois"}},{"code":"new_nordic","labels":{"en_US":"New Nordic","fr_FR":"Renouveau Scandinave"}},{"code":"global_nomad","labels":{"en_US":"Global Nomad","fr_FR":"Nomade du Monde"}}],"x-no-entity":true,"content":{"application/json":{"schema":{"items":{"example":{"code":"global_nomad","labels":{"en_US":"Global Nomad","fr_FR":"Nomade du Monde"}},"properties":{"code":{"description":"Attribute's option code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"},"type":"array"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a list of attribute options of a given attribute for a given reference entity","tags":["Reference entity attribute option"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/reference-entities/{reference_entity_code}/attributes/{attribute_code}/options/{code}":{"get":{"description":"This endpoint allows you to get the information about a given attribute option.","operationId":"get_reference_entity_attributes__attribute_code__options__code_","parameters":[{"description":"Code of the reference entity","in":"path","name":"reference_entity_code","required":true,"schema":{"type":"string"}},{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the reference entity attribute option in JSON format","content":{"application/json":{"schema":{"example":{"code":"global_nomad","labels":{"en_US":"Global Nomad","fr_FR":"Nomade du Monde"}},"properties":{"code":{"description":"Attribute's option code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get an attribute option for a given attribute of a given reference entity","tags":["Reference entity attribute option"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given option for a given attribute and a given reference entity. Learn more about <a href=\"/documentation/update.html#patch-reference-entity-record-values\">Update behavior</a>. Note that if the option does not already exist for the given attribute of the given reference entity, it creates it.","operationId":"patch_reference_entity_attributes__attribute_code__options__code_","parameters":[{"description":"Code of the reference entity","in":"path","name":"reference_entity_code","required":true,"schema":{"type":"string"}},{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"global_nomad","labels":{"en_US":"Global Nomad","fr_FR":"Nomade du Monde"}},"properties":{"code":{"description":"Attribute's option code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a reference entity attribute option","tags":["Reference entity attribute option"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/reference-entities/{reference_entity_code}/attributes/{code}":{"get":{"description":"This endpoint allows you to get the information about a given attribute for a given reference entity.","operationId":"get_reference_entity_attributes__code_","parameters":[{"description":"Code of the reference entity","in":"path","name":"reference_entity_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the reference entity attribute in JSON format","content":{"application/json":{"schema":{"example":{"code":"description","is_required_for_completeness":true,"is_rich_text_editor":true,"is_textarea":true,"labels":{"en_US":"Description","fr_FR":"Description"},"max_characters":null,"type":"text","validation_regexp":null,"validation_rule":"none","value_per_channel":false,"value_per_locale":true},"properties":{"allowed_extensions":{"default":[],"description":"Extensions allowed when the attribute type is `image`","items":{"type":"string"},"type":"array","x-warning":"Only for `image` attribute type"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"decimals_allowed":{"default":false,"description":"Whether decimals are allowed when the attribute type is `number`","type":"boolean","x-warning":"Only for `number` attribute type"},"is_required_for_completeness":{"default":false,"description":"Whether the attribute should be part of the record's completeness calculation","type":"boolean"},"is_rich_text_editor":{"description":"Whether the UI should display a rich text editor instead of a simple text area when the attribute type is `text`","type":"boolean","x-validation-rules":"Required when the property `is_textarea` is equal to `true`","x-warning":"Only for `text` attribute type"},"is_textarea":{"default":false,"description":"Whether the UI should display a text area instead of a simple field when the attribute type is `text`","type":"boolean","x-warning":"Only for `text` attribute type"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"max_characters":{"description":"Maximum number of characters allowed for the value of the attribute when the attribute type is `text`","type":"integer","x-warning":"Only for `text` attribute type"},"max_file_size":{"default":null,"description":"Max file size in MB when the attribute type is `image`","type":"string","x-warning":"Only for `image` attribute type"},"max_value":{"default":null,"description":"Maximum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The maximum value must be greater than the minimum value","x-warning":"Only for `number` attribute type"},"min_value":{"default":null,"description":"Minimum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The minimum value must be lower than the maximum value","x-warning":"Only for `number` attribute type"},"reference_entity_code":{"default":null,"description":"Code of the linked reference entity when the attribute type is `reference_entity_single_link` or `reference_entity_multiple_links`","type":"string","x-immutable":true,"x-validation-rules":"Required when the attribute type is either `reference_entity_single_link` or `reference_entity_multiple_links`","x-warning":"Only for `reference_entity_single_link` and `reference_entity_multiple_links` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/reference-entities.html#reference-entity-attribute'>type</a> section for more details.","enum":["text","image","number","single_option","multiple_options","reference_entity_single_link","reference_entity_multiple_links"],"type":"string","x-immutable":true},"validation_regexp":{"default":null,"description":"Regexp expression used to validate the attribute value when the attribute type is `text`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `text` attribute type"},"validation_rule":{"default":"none","description":"Validation rule type used to validate the attribute value when the attribute type is `text`","enum":["email","url","regexp","none"],"type":"string","x-warning":"Only for `text` attribute type"},"value_per_channel":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"value_per_locale":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true}},"required":["code","type"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get an attribute of a given reference entity","tags":["Reference entity attribute"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given attribute for a given renference entity. Note that if the attribute does not already exist for the given reference entity, it creates it.","operationId":"patch_reference_entity_attributes__code_","parameters":[{"description":"Code of the reference entity","in":"path","name":"reference_entity_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"description","is_required_for_completeness":true,"is_rich_text_editor":true,"is_textarea":true,"labels":{"en_US":"Description","fr_FR":"Description"},"max_characters":null,"type":"text","validation_regexp":null,"validation_rule":"none","value_per_channel":false,"value_per_locale":true},"properties":{"allowed_extensions":{"default":[],"description":"Extensions allowed when the attribute type is `image`","items":{"type":"string"},"type":"array","x-warning":"Only for `image` attribute type"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"decimals_allowed":{"default":false,"description":"Whether decimals are allowed when the attribute type is `number`","type":"boolean","x-warning":"Only for `number` attribute type"},"is_required_for_completeness":{"default":false,"description":"Whether the attribute should be part of the record's completeness calculation","type":"boolean"},"is_rich_text_editor":{"description":"Whether the UI should display a rich text editor instead of a simple text area when the attribute type is `text`","type":"boolean","x-validation-rules":"Required when the property `is_textarea` is equal to `true`","x-warning":"Only for `text` attribute type"},"is_textarea":{"default":false,"description":"Whether the UI should display a text area instead of a simple field when the attribute type is `text`","type":"boolean","x-warning":"Only for `text` attribute type"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"max_characters":{"description":"Maximum number of characters allowed for the value of the attribute when the attribute type is `text`","type":"integer","x-warning":"Only for `text` attribute type"},"max_file_size":{"default":null,"description":"Max file size in MB when the attribute type is `image`","type":"string","x-warning":"Only for `image` attribute type"},"max_value":{"default":null,"description":"Maximum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The maximum value must be greater than the minimum value","x-warning":"Only for `number` attribute type"},"min_value":{"default":null,"description":"Minimum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The minimum value must be lower than the maximum value","x-warning":"Only for `number` attribute type"},"reference_entity_code":{"default":null,"description":"Code of the linked reference entity when the attribute type is `reference_entity_single_link` or `reference_entity_multiple_links`","type":"string","x-immutable":true,"x-validation-rules":"Required when the attribute type is either `reference_entity_single_link` or `reference_entity_multiple_links`","x-warning":"Only for `reference_entity_single_link` and `reference_entity_multiple_links` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/reference-entities.html#reference-entity-attribute'>type</a> section for more details.","enum":["text","image","number","single_option","multiple_options","reference_entity_single_link","reference_entity_multiple_links"],"type":"string","x-immutable":true},"validation_regexp":{"default":null,"description":"Regexp expression used to validate the attribute value when the attribute type is `text`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `text` attribute type"},"validation_rule":{"default":"none","description":"Validation rule type used to validate the attribute value when the attribute type is `text`","enum":["email","url","regexp","none"],"type":"string","x-warning":"Only for `text` attribute type"},"value_per_channel":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"value_per_locale":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true}},"required":["code","type"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create an attribute of a given reference entity","tags":["Reference entity attribute"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/reference-entities/{reference_entity_code}/records":{"get":{"description":"This endpoint allows you to get a list of records of a given reference entity. Records are paginated and can be filtered.","operationId":"get_reference_entity_records","parameters":[{"description":"Filter records of the reference entity, for more details see the <a href=\"/documentation/filter.html#filter-reference-entity-records\">Filters</a> section","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Filter attribute values to return scopable attributes for the given channel as well as the non localizable/non scopable attributes, for more details see the <a href=\"/documentation/filter.html#record-values-by-channel\">Filter attribute values by channel</a> section","in":"query","name":"channel","required":false,"schema":{"type":"string"}},{"description":"Filter attribute values to return localizable attributes for the given locales as well as the non localizable/non scopable attributes, for more details see the <a href=\"/documentation/filter.html#record-values-by-locale\">Filter attribute values by locale</a> section","in":"query","name":"locales","required":false,"schema":{"type":"string"}},{"description":"Code of the reference entity","in":"path","name":"reference_entity_code","required":true,"schema":{"type":"string"}},{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}}],"responses":{"200":{"description":"Return the records of the given reference entity paginated","content":{"application/json":{"schema":{"allOf":[{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"properties":{"_embedded":{"properties":{"items":{"items":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"kartell","created":"2025-08-15T13:52:10.901Z","updated":"2025-08-15T13:52:10.901Z","values":{"collection_overview":[{"channel":null,"data":"5/1/d/8/51d81dc778ba1501a8f998f3ab5797569f3b9e25_img.png","locale":null}],"country":[{"channel":null,"data":"italy","locale":null}],"creation_year":[{"channel":null,"data":"1949","locale":null}],"description":[{"channel":null,"data":"Kartell, the Italian furniture company that sells modern and remarkable pieces of furnitures.","locale":"en_US"},{"channel":null,"data":"Kartell, l'éditeur de meuble italien spécialisé dans la signature de belle pièces au design contemporain.","locale":"fr_FR"}],"image":[{"channel":null,"data":"0/c/b/0/0cb0c0e115dedba676f8d1ad8343ec207ab54c7b_image.jpg","locale":null}],"label":[{"channel":null,"data":"Kartell","locale":"en_US"}]}},"properties":{"code":{"description":"Code of the record","type":"string","x-immutable":true},"created":{"default":null,"description":"Date of creation.","format":"dateTime","type":"string","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"updated":{"default":null,"description":"Date of the last update.","format":"dateTime","type":"string","x-from-version":"5.0","x-read-only":true},"values":{"description":"Record attributes values, see <a href='/concepts/reference-entities.html#focus-on-the-reference-entity-record-values'>Reference entity record values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"channel":{"description":"Channel code of the reference entity record value","type":"string"},"data":{"description":"Reference entity record value. See <a href='/concepts/reference-entities.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"locale":{"description":"Locale code of the reference entity record value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Reference entity record values section"}},"required":["code"],"type":"object"}],"type":"object"},"type":"array"}},"type":"object"}}}],"title":"Reference entity record","type":"object"}},"_embedded":{"examples":{"response":{"value":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities/brands/records/kartell"}},"code":"kartell","created":"2025-08-15T13:52:10.901Z","updated":"2025-08-15T13:52:10.901Z","values":{"country":[{"channel":null,"data":"italy","locale":null}],"description":[{"channel":null,"data":"The contemporary Italian furniture brand","locale":"en_US"},{"channel":null,"data":"L'éditeur de meubles comtemporain italien","locale":"fr_FR"}],"image":[{"channel":null,"data":"0/c/b/0/0cb0c0e115dedba676f8d1ad8343ec207ab54c7b_image.jpg","locale":null}],"label":[{"channel":null,"data":"Kartell","locale":"en_US"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities/brands/records/usm"}},"code":"usm","created":"2025-08-15T13:52:10.901Z","updated":"2025-08-15T13:52:10.901Z","values":{"country":[{"channel":null,"data":"switzerland","locale":null}],"description":[{"channel":null,"data":"Modular furniture from Switzerland for your home and office","locale":"en_US"},{"channel":null,"data":"L'éditeur de meubles modulaires suisse pour votre intérieur et pour les entreprises","locale":"fr_FR"}],"image":[{"channel":null,"data":"9/c/g/1/0cb0c0e115dedba76f8d1ad8343ec897abc43bv4_image.jpg","locale":null}],"label":[{"channel":null,"data":"USM","locale":"en_US"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities/brands/records/ligneroset"}},"code":"ligneroset","created":"2025-08-15T13:52:10.901Z","updated":"2025-08-15T13:52:10.901Z","values":{"country":[{"channel":null,"data":"france","locale":null}],"description":[{"channel":null,"data":"Very well known French brand of modern and luxury furniture","locale":"en_US"},{"channel":null,"data":"La marque renommée des meubles de luxe à la française","locale":"fr_FR"}],"image":[{"channel":null,"data":"4/b/0/1/0cb0c0e115dedde78b8d1ad8343ec980cd5daa54_image.jpg","locale":null}],"label":[{"channel":null,"data":"Ligne Roset","locale":"en_US"}]}}]}}}},"_links":{"examples":{"response":{"value":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities/brands/records"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities/brands/records?search_after=2x088w%3D%3D"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities/brands/records"}}}}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get the list of the records of a reference entity","tags":["Reference entity record"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update and/or create several records of one given reference entity at once. Learn more about <a href=\"/documentation/update.html#patch-reference-entity-record-values\">Update behavior</a>. Note that if the record does not already exist for the given reference entity, it creates it.","operationId":"patch_reference_entity_records","parameters":[{"description":"Code of the reference entity","in":"path","name":"reference_entity_code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":[{"code":"kartell","values":{"collection_overview":[{"channel":null,"data":"5/1/d/8/51d81dc778ba1501a8f998f3ab5797569f3b9e25_img.png","locale":null}],"country":[{"channel":null,"data":"italy","locale":null}],"creation_year":[{"channel":null,"data":"1949","locale":null}],"description":[{"channel":null,"data":"Kartell, the Italian furniture company that sells modern and remarkable pieces of furnitures.","locale":"en_US"},{"channel":null,"data":"Kartell, l'éditeur de meuble italien spécialisé dans la signature de belle pièces au design contemporain.","locale":"fr_FR"}],"image":[{"channel":null,"data":"0/c/b/0/0cb0c0e115dedba676f8d1ad8343ec207ab54c7b_image.jpg","locale":null}],"label":[{"channel":null,"data":"Kartell","locale":"en_US"}]}},{"code":"ligneroset","values":{"country":[{"channel":null,"data":"france","locale":null}],"creation_year":[{"channel":null,"data":"1860","locale":null}],"description":[{"channel":null,"data":"Very well known French brand of modern and luxury furniture","locale":"en_US"},{"channel":null,"data":"La marque renommée des meubles de luxe à la française","locale":"fr_FR"}],"image":[{"channel":null,"data":"4/b/0/1/0cb0c0e115dedde78b8d1ad8343ec980cd5daa54_image.jpg","locale":null}],"label":[{"channel":null,"data":"Ligne Roset","locale":"en_US"}]}},{"code":"usm","values":{"country":[{"channel":null,"data":"switzerland","locale":null}],"creation_year":[{"channel":null,"data":"1885","locale":null}],"description":[{"channel":null,"data":"Modular furniture from Switzerland for your home and office","locale":"en_US"},{"channel":null,"data":"L'éditeur de meubles modulaires suisse pour votre intérieur et pour les entreprises","locale":"fr_FR"}],"image":[{"channel":null,"data":"9/c/g/1/0cb0c0e115dedba76f8d1ad8343ec897abc43bv4_image.jpg","locale":null}],"label":[{"channel":null,"data":"USM","locale":"en_US"}]}}],"items":{"example":{"code":"kartell","created":"2025-08-15T13:52:10.901Z","updated":"2025-08-15T13:52:10.901Z","values":{"collection_overview":[{"channel":null,"data":"5/1/d/8/51d81dc778ba1501a8f998f3ab5797569f3b9e25_img.png","locale":null}],"country":[{"channel":null,"data":"italy","locale":null}],"creation_year":[{"channel":null,"data":"1949","locale":null}],"description":[{"channel":null,"data":"Kartell, the Italian furniture company that sells modern and remarkable pieces of furnitures.","locale":"en_US"},{"channel":null,"data":"Kartell, l'éditeur de meuble italien spécialisé dans la signature de belle pièces au design contemporain.","locale":"fr_FR"}],"image":[{"channel":null,"data":"0/c/b/0/0cb0c0e115dedba676f8d1ad8343ec207ab54c7b_image.jpg","locale":null}],"label":[{"channel":null,"data":"Kartell","locale":"en_US"}]}},"properties":{"code":{"description":"Code of the record","type":"string","x-immutable":true},"created":{"default":null,"description":"Date of creation.","format":"dateTime","type":"string","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"updated":{"default":null,"description":"Date of the last update.","format":"dateTime","type":"string","x-from-version":"5.0","x-read-only":true},"values":{"description":"Record attributes values, see <a href='/concepts/reference-entities.html#focus-on-the-reference-entity-record-values'>Reference entity record values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"channel":{"description":"Channel code of the reference entity record value","type":"string"},"data":{"description":"Reference entity record value. See <a href='/concepts/reference-entities.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"locale":{"description":"Locale code of the reference entity record value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Reference entity record values section"}},"required":["code"],"type":"object"},"type":"array"}}},"required":true},"responses":{"200":{"description":"OK","x-details":"Returns an JSON array in which each object gives you the status of each record creation or update","x-examples":[{"code":"kartell","status_code":204},{"code":"ligneroset","message":"Property 'group' does not exist.","status_code":422},{"code":"usm","status_code":201}],"x-no-entity":true,"content":{"application/json":{"schema":{"items":{"properties":{"code":{"description":"Resource code","type":"string"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"},"type":"array"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"413":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}}},"summary":"Update/create several reference entity records","tags":["Reference entity record"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/reference-entities/{reference_entity_code}/records/{code}":{"get":{"description":"This endpoint allows you to get the information about a given record for a given reference entity.","operationId":"get_reference_entity_records__code_","parameters":[{"description":"Code of the reference entity","in":"path","name":"reference_entity_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","x-details":"Returns the content of the product in JSON standard format","content":{"application/json":{"schema":{"example":{"code":"kartell","created":"2025-08-15T13:52:10.901Z","updated":"2025-08-15T13:52:10.901Z","values":{"collection_overview":[{"channel":null,"data":"5/1/d/8/51d81dc778ba1501a8f998f3ab5797569f3b9e25_img.png","locale":null}],"country":[{"channel":null,"data":"italy","locale":null}],"creation_year":[{"channel":null,"data":"1949","locale":null}],"description":[{"channel":null,"data":"Kartell, the Italian furniture company that sells modern and remarkable pieces of furnitures.","locale":"en_US"},{"channel":null,"data":"Kartell, l'éditeur de meuble italien spécialisé dans la signature de belle pièces au design contemporain.","locale":"fr_FR"}],"image":[{"channel":null,"data":"0/c/b/0/0cb0c0e115dedba676f8d1ad8343ec207ab54c7b_image.jpg","locale":null}],"label":[{"channel":null,"data":"Kartell","locale":"en_US"}]}},"properties":{"code":{"description":"Code of the record","type":"string","x-immutable":true},"created":{"default":null,"description":"Date of creation.","format":"dateTime","type":"string","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"updated":{"default":null,"description":"Date of the last update.","format":"dateTime","type":"string","x-from-version":"5.0","x-read-only":true},"values":{"description":"Record attributes values, see <a href='/concepts/reference-entities.html#focus-on-the-reference-entity-record-values'>Reference entity record values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"channel":{"description":"Channel code of the reference entity record value","type":"string"},"data":{"description":"Reference entity record value. See <a href='/concepts/reference-entities.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"locale":{"description":"Locale code of the reference entity record value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Reference entity record values section"}},"required":["code"],"type":"object"}}}},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"404":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get a record of a given reference entity","tags":["Reference entity record"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]},"patch":{"description":"This endpoint allows you to update a given record of a given renference entity. Learn more about <a href=\"/documentation/update.html#patch-reference-entity-record-values\">Update behavior</a>. Note that if the record does not already exist for the given reference entity, it creates it.","operationId":"patch_reference_entity_records__code_","parameters":[{"description":"Code of the reference entity","in":"path","name":"reference_entity_code","required":true,"schema":{"type":"string"}},{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"code":"kartell","values":{"collection_overview":[{"channel":null,"data":"5/1/d/8/51d81dc778ba1501a8f998f3ab5797569f3b9e25_img.png","locale":null}],"country":[{"channel":null,"data":"italy","locale":null}],"creation_year":[{"channel":null,"data":"1949","locale":null}],"description":[{"channel":null,"data":"Kartell, the Italian furniture company that sells modern and remarkable pieces of furnitures.","locale":"en_US"},{"channel":null,"data":"Kartell, l'éditeur de meuble italien spécialisé dans la signature de belle pièces au design contemporain.","locale":"fr_FR"}],"image":[{"channel":null,"data":"0/c/b/0/0cb0c0e115dedba676f8d1ad8343ec207ab54c7b_image.jpg","locale":null}],"label":[{"channel":null,"data":"Kartell","locale":"en_US"}]}},"properties":{"code":{"description":"Code of the record","type":"string","x-immutable":true},"created":{"default":null,"description":"Date of creation.","format":"dateTime","type":"string","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"updated":{"default":null,"description":"Date of the last update.","format":"dateTime","type":"string","x-from-version":"5.0","x-read-only":true},"values":{"description":"Record attributes values, see <a href='/concepts/reference-entities.html#focus-on-the-reference-entity-record-values'>Reference entity record values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"channel":{"description":"Channel code of the reference entity record value","type":"string"},"data":{"description":"Reference entity record value. See <a href='/concepts/reference-entities.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"locale":{"description":"Locale code of the reference entity record value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Reference entity record values section"}},"required":["code"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"204":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"401":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"415":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"422":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}}},"summary":"Update/create a record of a given reference entity","tags":["Reference entity record"],"x-ee":true,"x-versions":["3.x","4.0","5.0","6.0","7.0","SaaS"]}},"/api/rest/v1/system-information":{"get":{"description":"This endpoint allows you to get the version and the edition of the PIM. Example of what you can get <table class=\"description-table\"> <thead> <tr> <th align=\"center\">Environment</th> <th align=\"center\">Edition</th> <th align=\"center\">Version</th> </tr> </thead> <tbody> <tr> <td align=\"center\">SaaS EE</td> <td align=\"center\">Serenity</td> <td align=\"center\">v20230112013744</td> </tr> <tr> <td align=\"center\">SaaS CE</td> <td align=\"center\">GE</td> <td align=\"center\">v20210526040645</td> </tr> <tr> <td align=\"center\">PaaS or onPrem EE</td> <td align=\"center\">EE</td> <td align=\"center\">5.0.28</td> </tr> <tr> <td align=\"center\">PaaS or onPrem CE</td> <td align=\"center\">CE</td> <td align=\"center\">5.0.28</td> </tr> </tbody> </table>","operationId":"get_system_information","responses":{"200":{"description":"Return the version and the edition of the PIM.","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"edition":{"description":"Edition of the PIM","type":"string"},"version":{"description":"Version of the PIM","type":"string"}},"type":"object"}},"edition":{"examples":{"response":{"value":"Serenity"}}},"version":{"examples":{"response":{"value":"20210521041041"}}}}},"406":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}}},"summary":"Get system information","tags":["System"],"x-no-token":true,"x-versions":["6.0","7.0","SaaS"]}}},"servers":[{"url":"http://demo.akeneo.com"}],"components":{"parameters":{"asset_code":{"description":"Code of the asset","in":"path","name":"asset_code","required":true,"schema":{"type":"string"}},"asset_family_code":{"description":"Code of the asset family","in":"path","name":"asset_family_code","required":true,"schema":{"type":"string"}},"attribute_code":{"description":"Code of the attribute","in":"path","name":"attribute_code","required":true,"schema":{"type":"string"}},"channel_code":{"description":"Code of the channel","in":"path","name":"channel_code","required":true,"schema":{"type":"string"}},"code":{"description":"Code of the resource","in":"path","name":"code","required":true,"schema":{"type":"string"}},"family_code":{"description":"Code of the family","in":"path","name":"family_code","required":true,"schema":{"type":"string"}},"limit":{"description":"Number of results by page, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},"locale_code":{"description":"Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable","in":"path","name":"locale_code","required":true,"schema":{"type":"string"}},"page":{"description":"Number of the page to retrieve when using the `page` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html#pagination\">Pagination</a> section","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},"pagination_type":{"description":"Pagination method type, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"pagination_type","required":false,"x-validation-rules":"One of the following values","schema":{"type":"string","enum":["page","search_after"],"default":"page"}},"reference_entity_code":{"description":"Code of the reference entity","in":"path","name":"reference_entity_code","required":true,"schema":{"type":"string"}},"search_after":{"description":"Cursor when using the `search_after` pagination method type. <strong>Should never be set manually</strong>, see <a href=\"/documentation/pagination.html\">Pagination</a> section","in":"query","name":"search_after","required":false,"schema":{"type":"string","default":"cursor to the first page"}},"updated_after":{"description":"Filter products that have been updated AFTER the provided date (Only available on Catalogs endpoints)","in":"query","name":"updated_after","required":false,"x-from-version":"SaaS","schema":{"type":"string","format":"date"}},"updated_before":{"description":"Filter products that have been updated BEFORE the provided date (Only available on Catalogs endpoints)","in":"query","name":"updated_before","required":false,"x-from-version":"SaaS","schema":{"type":"string","format":"date"}},"uuid":{"description":"Uuid of the resource","in":"path","name":"uuid","required":true,"schema":{"type":"string"}},"with_attribute_options":{"description":"Return labels of attribute options in the response. (Only available since the 5.0 version)","in":"query","name":"with_attribute_options","required":false,"x-from-version":"5.0","schema":{"type":"boolean","default":false}},"with_completenesses":{"description":"Return product completenesses in the response. (Only available since the 6.0 version)","in":"query","name":"with_completenesses","required":false,"x-from-version":"6.0","schema":{"type":"boolean","default":false}},"with_count":{"description":"Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way","in":"query","name":"with_count","required":false,"schema":{"type":"boolean","default":false}},"with_enriched_attributes":{"description":"Return attribute values of the category (only available on SaaS platforms)","in":"query","name":"with_enriched_attributes","required":false,"x-from-version":"SaaS","schema":{"type":"boolean"}},"with_position":{"description":"Return information about category position into its category tree (only available since the 7.0 version)","in":"query","name":"with_position","required":false,"x-from-version":"7.0","schema":{"type":"boolean"}},"with_quality_scores__product_models":{"description":"Return product model quality scores in the response. <strong>(Only available since the 6.0 version)</strong>","in":"query","name":"with_quality_scores","required":false,"x-from-version":"6.0","schema":{"type":"boolean"}},"with_quality_scores__products":{"description":"Return product quality scores in the response. (Only available since the 5.0 version)","in":"query","name":"with_quality_scores","required":false,"x-from-version":"5.0","schema":{"type":"boolean","default":false}},"with_table_select_options":{"description":"Return the options of 'select' column types (of a table attribute) in the response. (Only available since the 7.0 version)","in":"query","name":"with_table_select_options","required":false,"x-from-version":"7.0","schema":{"type":"boolean","default":false}}},"responses":{"400Error":{"description":"Bad request","x-details":"Can be caused by a malformed JSON request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":400}}},"message":{"examples":{"response":{"value":"Invalid JSON message received"}}}}},"401Error":{"description":"Authentication required","x-details":"Can be caused by a missing or expired token","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":401}}},"message":{"examples":{"response":{"value":"Authentication is required"}}}}},"403CatalogError":{"description":"Access forbidden","x-details":"The app does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list catalogs."}}}}},"403Error":{"description":"Access forbidden","x-details":"The user does not have the permission to execute this request","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":403}}},"message":{"examples":{"response":{"value":"Access forbidden. You are not allowed to list categories."}}}}},"404CatalogError":{"description":"Catalog not found","x-details":"The catalog id given in the URI does not exist","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Catalog \"65f5a521-e65c-4d7b-8be8-1f267fa2729c\" does not exist or you can't access it."}}}}},"404Error":{"description":"Resource not found","x-details":"The resource code given in the URI does not correspond to any existing PIM resource","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":404}}},"message":{"examples":{"response":{"value":"Resource `my_resource_code` does not exist."}}}}},"406Error":{"description":"Not Acceptable","x-details":"The `Accept` header is not `application/json` but it should","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":406}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Accept‘ header is not valid. Only ‘application/json‘ is allowed."}}}}},"413Error":{"description":"Request Entity Too Large","x-details":"There are too many resources to process (max 100) or the line of JSON is too long (max 1 000 000 characters)","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":413}}},"message":{"examples":{"response":{"value":"Too many resources to process, 100 is the maximum allowed."}}}}},"415Error":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/json’ is allowed."}}}}},"415ErrorMultipart":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `multipart/form-data`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘multipart/form-data’ is allowed."}}}}},"415ErrorStream":{"description":"Unsupported Media type","x-details":"The `Content-type` header has to be `application/vnd.akeneo.collection+json`","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"code":{"examples":{"response":{"value":415}}},"message":{"examples":{"response":{"value":"‘xxx’ in ‘Content-type’ header is not valid.  Only ‘application/vnd.akeneo.collection+json’ is allowed."}}}}},"422Error":{"description":"Unprocessable entity","x-details":"The validation of the entity given in the body of the request failed","content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"}},"_links":{"examples":{"response":{"value":{"documentation":{"href":"http://api.akeneo.com/api-reference.html"}}}}},"code":{"examples":{"response":{"value":422}}},"message":{"examples":{"response":{"value":"Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation."}}}}},"AssetMediaFileUploaded":{"description":"Created","headers":{"Asset-media-file-code":{"description":"Code of the media file","schema":{"type":"string"}},"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the media file creation was successful"},"Created":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the creation was successful"},"DeprecatedAssetReferenceFileUploaded":{"description":"Uploaded","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the reference file upload was successful. Beware that even if the reference file upload is complete, some variation files generations could have failed. If so, you will see a warning message in the response body.","x-no-entity":true,"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"channel":{"description":"Channel for which the variation file generation failed","type":"string"},"locale":{"description":"Locale for which the variation file generation failed","type":"string"},"message":{"description":"Message explaining why the variation file generation failed","type":"string"}},"type":"object"},"type":"array"},"message":{"description":"Message explaining the warning","type":"string"}},"type":"object"}}}},"NoContent":{"description":"No content to return","headers":{"Location":{"description":"URI of the updated resource","schema":{"type":"string"}}},"x-details":"Means that the update was successful"},"ReferenceEntityMediaFileUploaded":{"description":"Created","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}},"Reference-entities-media-file-code":{"description":"Code of the media file","schema":{"type":"string"}}},"x-details":"Means that the media file creation was successful"},"Submitted":{"description":"Submitted","headers":{"Location":{"description":"URI of the created resource","schema":{"type":"string"}}},"x-details":"Means that the draft submission was successful"}},"requestBodies":{"post_asset_media_filesBody":{"content":{"application/json":{"schema":{"properties":{"file":{"description":"The binary of the media file","format":"binary","type":"string"}},"required":["file"]}}},"x-form-data":true},"post_reference_files__locale_code_Body":{"content":{"application/json":{"schema":{"properties":{"file":{"description":"The binaries of the file","format":"binary","type":"string"}},"required":["file"]}}},"x-form-data":true},"post_app_catalogBody":{"content":{"application/json":{"schema":{"example":{"name":"My app catalog"},"properties":{"name":{"description":"Catalog name","type":"string"}},"required":["name"],"type":"object"}}}}},"schemas":{"AppCatalogList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"enabled":false,"id":"12351d98-200e-4bbc-aa19-7fdda1bd14f2","name":"My app catalog"},"properties":{"enabled":{"default":false,"description":"Whether the catalog is enabled or not","type":"boolean"},"id":{"description":"Catalog id","type":"string","x-immutable":true},"name":{"description":"Catalog name","type":"string"}},"type":"object"}],"type":"object"},"AssetAttributeList":{"items":{"example":{"code":"model_is_wearing_size","is_required_for_completeness":true,"labels":{"en_US":"Model is wearing size","fr_FR":"Le mannequin porte la taille"},"type":"single_option","value_per_channel":false,"value_per_locale":false},"properties":{"allowed_extensions":{"default":[],"description":"Extensions allowed when the attribute type is `media_file`","items":{"type":"string"},"type":"array","x-warning":"Only for `media_file` attribute type"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"decimals_allowed":{"default":false,"description":"Whether decimals are allowed when the attribute type is `number`","type":"boolean","x-warning":"Only for `number` attribute type"},"is_read_only":{"default":false,"description":"Whether the attribute should be in read only mode only in the UI, but you can still update it with the API","type":"boolean"},"is_required_for_completeness":{"default":false,"description":"Whether the attribute should be part of the record's completeness calculation","type":"boolean"},"is_rich_text_editor":{"description":"Whether the UI should display a rich text editor instead of a simple text area when the attribute type is `text`","type":"boolean","x-validation-rules":"Required when the property `is_textarea` is equal to `true`","x-warning":"Only for `text` attribute type"},"is_textarea":{"default":false,"description":"Whether the UI should display a text area instead of a simple field when the attribute type is `text`","type":"boolean","x-warning":"Only for `text` attribute type"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"max_characters":{"description":"Maximum number of characters allowed for the value of the attribute when the attribute type is `text`","type":"integer","x-warning":"Only for `text` attribute type"},"max_file_size":{"default":null,"description":"Max file size in MB when the attribute type is `media_file`","type":"string","x-warning":"Only for `media_file` attribute type"},"max_value":{"default":null,"description":"Maximum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The maximum value must be greater than the minimum value","x-warning":"Only for `number` attribute type"},"media_type":{"description":"For the `media_link` attribute type, it is the type of the media behind the url, to allow its preview in the PIM. For the `media_file` attribute type, it is the type of the file.","enum":["image","pdf","youtube","vimeo","other"],"type":"string","x-warning":"Only required for `media_link` and `media_file` attribute types"},"min_value":{"default":null,"description":"Minimum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The minimum value must be lower than the maximum value","x-warning":"Only for `number` attribute type"},"prefix":{"default":null,"description":"Prefix of the `media_link` attribute type. The common url root that prefixes the link to the media","type":"string","x-warning":"Only for `media_link` attribute type"},"suffix":{"default":null,"description":"Suffix of the `media_link` attribute type. The common url suffix for the media","type":"string","x-warning":"Only for `media_link` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/asset-manager.html#asset-attribute'>type</a> section for more details.","enum":["text","media_link","number","media_file","single_option","multiple_options","reference_entity_single_link","reference_entity_multiple_links","boolean"],"type":"string","x-immutable":true},"validation_regexp":{"default":null,"description":"Regexp expression used to validate the attribute value when the attribute type is `text`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `text` attribute type"},"validation_rule":{"default":"none","description":"Validation rule type used to validate the attribute value when the attribute type is `text`","enum":["email","url","regexp","none"],"type":"string","x-warning":"Only for `text` attribute type"},"value_per_channel":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"value_per_locale":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true}},"required":["code","type","media_type"],"type":"object"},"type":"array"},"AssetAttributeOptionList":{"items":{"example":{"code":"small","labels":{"en_US":"S","fr_FR":"S"}},"properties":{"code":{"description":"Attribute's option code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"},"type":"array"},"AssetFamilyItemList":{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"AssetFamilyList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"attribute_as_main_media":"main_image","code":"model_pictures","labels":{"en_US":"Model pictures","fr_FR":"Photographies en pied"},"naming_convention":{"abort_asset_creation_on_error":true,"pattern":"/(?P<product_ref>.*)-.*/","source":{"channel":null,"locale":null,"property":"code"}},"product_link_rules":[{"assign_assets_to":[{"attribute":"model_pictures","mode":"replace"}],"product_selections":[{"field":"sku","operator":"EQUALS","value":"{{product_ref}}"}]}],"transformations":[{"filename_suffix":"_thumbnailBW","label":"Thumbnail plus black and white transformation","operations":[{"parameters":{"height":150,"width":150},"type":"thumbnail"},{"parameters":{"colorspace":"grey"},"type":"colorspace"}],"source":{"attribute":"main_image","channel":null,"locale":null},"target":{"attribute":"thumbnail","channel":null,"locale":null}}]},"properties":{"attribute_as_main_media":{"default":"First media file or media link attribute that was created","description":"Attribute code that is used as the main media of the asset family.","type":"string","x-validation-rules":"It should be the code of an attribute that belongs to this family, and it must be a media file or a media link attribute type."},"code":{"description":"Asset family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Asset family labels for each locale","properties":{"localeCode":{"description":"Asset family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"naming_convention":{"default":{},"description":"The naming convention ran over the asset code or the main media filename upon each asset creation, in order to automatically set several values in asset attributes. To learn more and see the format of this property, take a look at <a href='/concepts/asset-manager.html#focus-on-the-naming-convention'>here</a>.","properties":{"abort_asset_creation_on_error":{"description":"Whether the asset should be created if the naming convention failed to apply. More details <a href='/concepts/asset-manager.html#abort-asset-creation-on-error'>here</a>.","type":"boolean"},"pattern":{"description":"The regular expression that should be applied on the source. More details <a href='/concepts/asset-manager.html#pattern'>here</a>.","type":"string"},"source":{"description":"The string on which the naming convention should be applied. More details <a href='/concepts/asset-manager.html#source'>here</a>.","type":"object"}},"type":"object","x-validation-rules":"To know more about the validation of this property, take a look at our naming convention format."},"product_link_rules":{"default":[],"description":"The rules that will be run after the asset creation, in order to automatically link the assets of this family to a set of products. To understand the format of this property, see <a href='/concepts/asset-manager.html#focus-on-the-product-link-rule'>here</a>.","items":{"properties":{"assign_assets_to":{"description":"The product value in which your assets will be assigned. More details <a href='/concepts/asset-manager.html#product-value-assignment'>here</a>.","items":{"properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"},"mode":{"type":"string"}},"required":["attribute","mode"],"type":"object"},"type":"array"},"product_selections":{"description":"The product selection to which the assets of the asset family to be automatically linked. More details <a href='/concepts/asset-manager.html#product-selection'>here</a>.","items":{"properties":{"channel":{"type":"string"},"field":{"type":"string"},"locale":{"type":"string"},"operator":{"type":"string"},"value":{"type":"string"}},"required":["field","operator","value"],"type":"object"},"type":"array"}},"type":"object"},"type":"array","x-validation-rules":"To know more about the validation of this property, take a look at our product link rule format."},"transformations":{"default":[],"description":"The transformations to perform on source files in order to generate new files into your asset attributes (only available since v4.0). To understand the format of this property, see <a href='/concepts/asset-manager.html#focus-on-the-transformations'>here</a>.","items":{"properties":{"filename_prefix":{"description":"The prefix that will be prepended to the source filename to generate the target filename. More details <a href='/concepts/asset-manager.html#target-filename'>here</a>.","type":"string"},"filename_suffix":{"description":"The suffix that will be appended to the source filename to generate the target filename. More details <a href='/concepts/asset-manager.html#target-filename'>here</a>.","type":"string"},"label":{"description":"The name of the transformation","type":"string"},"operations":{"description":"The transformations that should be applied to your source file to generate the target file. More details <a href='/concepts/asset-manager.html#transformation-operations'>here</a>.","properties":{"parameters":{"properties":{"colorspace":{"type":"string"},"height":{"type":"integer"},"quality":{"type":"integer"},"ratio":{"type":"integer"},"resolution-unit":{"type":"string"},"resolution-x":{"type":"integer"},"resolution-y":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"type":{"type":"string"}},"type":"object","x-validation-rules":"Should contain at least one operation"},"source":{"description":"The attribute value in which is stored the media file you want to use as the source file for your transformation. More details <a href='/concepts/asset-manager.html#source-file'>here</a>.","properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"}},"required":["attribute","channel","locale"],"type":"object"},"target":{"description":"The attribute value in which the PIM will generate the new transformed file, aka the target file. More details <a href='/concepts/asset-manager.html#target-file'>here</a>.","properties":{"attribute":{"type":"string"},"channel":{"type":"string"},"locale":{"type":"string"}},"required":["attribute","channel","locale"],"type":"object"}},"required":["label","target","source","operations"],"type":"object"},"type":"array","x-from-version":"4.0","x-validation-rules":"To know more about the validation of this property, take a look at our transformation format."}},"required":["code"],"type":"object"}],"type":"object"},"AssetItemList":{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"AssetList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"sku_54628_picture1","created":"2025-08-15T13:52:10.902Z","updated":"2025-08-15T13:52:10.902Z","values":{"end_of_use_date":[{"channel":null,"data":"02/03/2021","locale":null}],"main_colors":[{"channel":null,"data":["red","purple"],"locale":null}],"media_preview":[{"channel":null,"data":"sku_54628_picture1.jpg","locale":null}],"model_wears_size":[{"channel":null,"data":"s","locale":null}],"photographer":[{"channel":null,"data":"ben_levy","locale":null}]}},"properties":{"code":{"description":"Code of the asset","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-from-version":"6.0","x-immutable":true,"x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-from-version":"6.0","x-read-only":true},"values":{"description":"Asset attributes values, see the <a href='/concepts/asset-manager.html#focus-on-the-asset-values'>Focus on the asset values</a> section for more details.","properties":{"attributeCode":{"items":{"properties":{"channel":{"description":"Channel code of the asset attribute value","type":"string"},"data":{"description":"Asset attribute value. See <a href='/concepts/asset-manager.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"locale":{"description":"Locale code of the asset attribute value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Asset attribute values section"}},"required":["code"],"type":"object"}],"type":"object"},"AssociationType":{"example":{"code":"upsell","is_quantified":false,"is_two_way":false,"labels":{"en_US":"Upsell","fr_FR":"Vente incitative"}},"properties":{"code":{"description":"Association type code","type":"string","x-immutable":true},"is_quantified":{"default":false,"description":"When true, the association is a quantified association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"is_two_way":{"default":false,"description":"When true, the association is a two-way association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"labels":{"default":{},"description":"Association type labels for each locale","properties":{"localeCode":{"description":"Association type label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"},"AssociationTypeList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"upsell","is_quantified":false,"is_two_way":false,"labels":{"en_US":"Upsell","fr_FR":"Vente incitative"}},"properties":{"code":{"description":"Association type code","type":"string","x-immutable":true},"is_quantified":{"default":false,"description":"When true, the association is a quantified association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"is_two_way":{"default":false,"description":"When true, the association is a two-way association (Only available in the PIM Serenity version.)","type":"boolean","x-immutable":true},"labels":{"default":{},"description":"Association type labels for each locale","properties":{"localeCode":{"description":"Association type label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}],"type":"object"},"Attribute":{"example":{"allowed_extensions":[],"available_locales":[],"code":"release_date","date_max":"2025-08-15T13:52:10.902Z","date_min":"2025-08-15T13:52:10.902Z","decimals_allowed":null,"default_metric_unit":null,"default_value":null,"group":"marketing","group_labels":{"en_US":"Marketing","fr_FR":"Marketing"},"labels":{"en_US":"Sale date","fr_FR":"Date des soldes"},"localizable":false,"max_characters":null,"max_file_size":null,"metric_family":null,"minimum_input_length":null,"negative_allowed":null,"number_max":null,"number_min":null,"reference_data_name":null,"scopable":false,"sort_order":1,"type":"pim_catalog_date","unique":false,"useable_as_grid_filter":true,"validation_regexp":null,"validation_rule":null,"wysiwyg_enabled":null},"properties":{"allowed_extensions":{"description":"Extensions allowed when the attribute type is `pim_catalog_file` or `pim_catalog_image`","items":{"type":"string"},"type":"array","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"available_locales":{"description":"To make the attribute locale specfic, specify here for which locales it is specific","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing and activated locale"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"date_max":{"description":"Maximum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"date_min":{"description":"Minimum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"decimals_allowed":{"description":"Whether decimals are allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"default_metric_unit":{"description":"Default metric unit when the attribute type is `pim_catalog_metric`","type":"string","x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"default_value":{"description":"Default value for a Yes/No attribute, applied when creating a new product or product model (only available since the 5.0)","type":"boolean","x-from-version":"5.0","x-warning":"Only for `pim_catalog_boolean` attribute type"},"group":{"description":"Attribute group","type":"string","x-validation-rules":"It is the code of an existing group"},"group_labels":{"default":{},"description":"Group labels for each locale","properties":{"localeCode":{"description":"Group label for the locale `localeCode`","type":"string"}},"type":"object","x-read-only":true,"x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"localizable":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true},"max_characters":{"description":"Number maximum of characters allowed for the value of the attribute when the attribute type is `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier`","type":"integer","x-warning":"Only for `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier` attribute types"},"max_file_size":{"description":"Max file size in MB when the attribute type is `pim_catalog_file` or `pim_catalog_image`","type":"string","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"metric_family":{"description":"Metric family when the attribute type is `pim_catalog_metric`","type":"string","x-immutable":true,"x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"negative_allowed":{"description":"Whether negative values are allowed when the attribute type is `pim_catalog_metric` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric` or `pim_catalog_number` attribute types"},"number_max":{"description":"Maximum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"number_min":{"description":"Minimum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"reference_data_name":{"description":"Reference entity code when the attribute type is `akeneo_reference_entity` or `akeneo_reference_entity_collection` OR Asset family code when the attribute type is `pim_catalog_asset_collection`","type":"string","x-validation-rules":"Required only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types","x-warning":"Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types"},"scopable":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"sort_order":{"default":0,"description":"Order of the attribute in its group","type":"integer","x-validation-rules":"It is a positive integer"},"table_configuration":{"description":"Configuration of the Table attribute (columns)","items":{"properties":{"code":{"description":"Column code","type":"string"},"data_type":{"description":"Column data type","enum":["select","text","number","boolean"],"type":"string"},"is_required_for_completeness":{"default":false,"description":"Defines if the column should be entirely filled for the attribute to be considered complete","type":"boolean","x-warning":"This value is always true for the first column in a table configuration"},"labels":{"default":{},"description":"Column labels for each locale","properties":{"localeCode":{"description":"Column label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"validations":{"default":{},"description":"User defined validation constraints on the cell content","properties":{"decimals_allowed":{"description":"whether the value of a numeric cell can hold a decimal part","type":"boolean","x-validation-rules":"only for `number` data type columns"},"max":{"description":"maximum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"},"max_length":{"description":"maximum length of a text cell","type":"number","x-validation-rules":"only for `text` data type columns"},"min":{"description":"minimum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"}},"type":"object"}},"required":["code","data_type"],"type":"object"},"type":"array","x-validation-rules":"Required only for `pim_catalog_table` attribute type","x-warning":"Only for `pim_catalog_table` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/catalog-structure.html#attribute'>type</a> section for more details.","enum":["pim_catalog_identifier","pim_catalog_metric","pim_catalog_number","pim_catalog_reference_data_multi_select","pim_catalog_reference_data_simple_select","pim_catalog_simpleselect","pim_catalog_multiselect","pim_catalog_date","pim_catalog_textarea","pim_catalog_text","pim_catalog_file","pim_catalog_image","pim_catalog_price_collection","pim_catalog_boolean","akeneo_reference_entity","akeneo_reference_entity_collection","pim_catalog_asset_collection"],"type":"string","x-immutable":true,"x-validation-rules":"The type is one of the following values"},"unique":{"description":"Whether two values for the attribute cannot be the same","type":"boolean","x-immutable":true},"useable_as_grid_filter":{"description":"Whether the attribute can be used as a filter for the product grid in the PIM user interface","type":"boolean"},"validation_regexp":{"description":"Regexp expression used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"validation_rule":{"description":"Validation rule type used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Equal to `regexp` when the attribute type is equal to `pim_catalog_identifier`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"wysiwyg_enabled":{"description":"Whether the WYSIWYG interface is shown when the attribute type is `pim_catalog_textarea`","type":"boolean","x-warning":"Only for `pim_catalog_textarea` attribute type"}},"required":["code","type","group"],"type":"object"},"AttributeGroup":{"example":{"attributes":["sku","name","description","response_time","release_date","price"],"code":"marketing","labels":{"en_US":"Marketing","fr_FR":"Marketing"},"sort_order":4},"properties":{"attributes":{"default":[],"description":"Attribute codes that compose the attribute group","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code, an attribute can only be in one attribute group"},"code":{"description":"Attribute group code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute group labels for each locale","properties":{"localeCode":{"description":"Attribute group label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"default":0,"description":"Attribute group order among other attribute groups","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"},"AttributeGroupList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"attributes":["sku","name","description","response_time","release_date","price"],"code":"marketing","labels":{"en_US":"Marketing","fr_FR":"Marketing"},"sort_order":4},"properties":{"attributes":{"default":[],"description":"Attribute codes that compose the attribute group","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code, an attribute can only be in one attribute group"},"code":{"description":"Attribute group code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute group labels for each locale","properties":{"localeCode":{"description":"Attribute group label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"default":0,"description":"Attribute group order among other attribute groups","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"}],"type":"object"},"AttributeList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"allowed_extensions":[],"available_locales":[],"code":"release_date","date_max":"2025-08-15T13:52:10.902Z","date_min":"2025-08-15T13:52:10.902Z","decimals_allowed":null,"default_metric_unit":null,"default_value":null,"group":"marketing","group_labels":{"en_US":"Marketing","fr_FR":"Marketing"},"labels":{"en_US":"Sale date","fr_FR":"Date des soldes"},"localizable":false,"max_characters":null,"max_file_size":null,"metric_family":null,"minimum_input_length":null,"negative_allowed":null,"number_max":null,"number_min":null,"reference_data_name":null,"scopable":false,"sort_order":1,"type":"pim_catalog_date","unique":false,"useable_as_grid_filter":true,"validation_regexp":null,"validation_rule":null,"wysiwyg_enabled":null},"properties":{"allowed_extensions":{"description":"Extensions allowed when the attribute type is `pim_catalog_file` or `pim_catalog_image`","items":{"type":"string"},"type":"array","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"available_locales":{"description":"To make the attribute locale specfic, specify here for which locales it is specific","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing and activated locale"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"date_max":{"description":"Maximum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"date_min":{"description":"Minimum date allowed when the attribute type is `pim_catalog_date`","format":"date-time","type":"string","x-validation-rules":"The datetime format follows the ISO-8601 norm","x-warning":"Only for `pim_catalog_date` attribute type"},"decimals_allowed":{"description":"Whether decimals are allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"default_metric_unit":{"description":"Default metric unit when the attribute type is `pim_catalog_metric`","type":"string","x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"default_value":{"description":"Default value for a Yes/No attribute, applied when creating a new product or product model (only available since the 5.0)","type":"boolean","x-from-version":"5.0","x-warning":"Only for `pim_catalog_boolean` attribute type"},"group":{"description":"Attribute group","type":"string","x-validation-rules":"It is the code of an existing group"},"group_labels":{"default":{},"description":"Group labels for each locale","properties":{"localeCode":{"description":"Group label for the locale `localeCode`","type":"string"}},"type":"object","x-read-only":true,"x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"localizable":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true},"max_characters":{"description":"Number maximum of characters allowed for the value of the attribute when the attribute type is `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier`","type":"integer","x-warning":"Only for `pim_catalog_text`, `pim_catalog_textarea` or `pim_catalog_identifier` attribute types"},"max_file_size":{"description":"Max file size in MB when the attribute type is `pim_catalog_file` or `pim_catalog_image`","type":"string","x-warning":"Only for `pim_catalog_file` or `pim_catalog_image` attribute types"},"metric_family":{"description":"Metric family when the attribute type is `pim_catalog_metric`","type":"string","x-immutable":true,"x-validation-rules":"Required for `pim_catalog_metric` attribute type","x-warning":"Only for `pim_catalog_metric` attribute type"},"negative_allowed":{"description":"Whether negative values are allowed when the attribute type is `pim_catalog_metric` or `pim_catalog_number`","type":"boolean","x-warning":"Only for `pim_catalog_metric` or `pim_catalog_number` attribute types"},"number_max":{"description":"Maximum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"number_min":{"description":"Minimum integer value allowed when the attribute type is `pim_catalog_metric`, `pim_catalog_price` or `pim_catalog_number`","type":"string","x-warning":"Only for `pim_catalog_metric`, `pim_catalog_price_collection` or `pim_catalog_number` attribute types"},"reference_data_name":{"description":"Reference entity code when the attribute type is `akeneo_reference_entity` or `akeneo_reference_entity_collection` OR Asset family code when the attribute type is `pim_catalog_asset_collection`","type":"string","x-validation-rules":"Required only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types","x-warning":"Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types"},"scopable":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"sort_order":{"default":0,"description":"Order of the attribute in its group","type":"integer","x-validation-rules":"It is a positive integer"},"table_configuration":{"description":"Configuration of the Table attribute (columns)","items":{"properties":{"code":{"description":"Column code","type":"string"},"data_type":{"description":"Column data type","enum":["select","text","number","boolean"],"type":"string"},"is_required_for_completeness":{"default":false,"description":"Defines if the column should be entirely filled for the attribute to be considered complete","type":"boolean","x-warning":"This value is always true for the first column in a table configuration"},"labels":{"default":{},"description":"Column labels for each locale","properties":{"localeCode":{"description":"Column label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"validations":{"default":{},"description":"User defined validation constraints on the cell content","properties":{"decimals_allowed":{"description":"whether the value of a numeric cell can hold a decimal part","type":"boolean","x-validation-rules":"only for `number` data type columns"},"max":{"description":"maximum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"},"max_length":{"description":"maximum length of a text cell","type":"number","x-validation-rules":"only for `text` data type columns"},"min":{"description":"minimum value of a numeric cell","type":"number","x-validation-rules":"only for `number` data type columns"}},"type":"object"}},"required":["code","data_type"],"type":"object"},"type":"array","x-validation-rules":"Required only for `pim_catalog_table` attribute type","x-warning":"Only for `pim_catalog_table` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/catalog-structure.html#attribute'>type</a> section for more details.","enum":["pim_catalog_identifier","pim_catalog_metric","pim_catalog_number","pim_catalog_reference_data_multi_select","pim_catalog_reference_data_simple_select","pim_catalog_simpleselect","pim_catalog_multiselect","pim_catalog_date","pim_catalog_textarea","pim_catalog_text","pim_catalog_file","pim_catalog_image","pim_catalog_price_collection","pim_catalog_boolean","akeneo_reference_entity","akeneo_reference_entity_collection","pim_catalog_asset_collection"],"type":"string","x-immutable":true,"x-validation-rules":"The type is one of the following values"},"unique":{"description":"Whether two values for the attribute cannot be the same","type":"boolean","x-immutable":true},"useable_as_grid_filter":{"description":"Whether the attribute can be used as a filter for the product grid in the PIM user interface","type":"boolean"},"validation_regexp":{"description":"Regexp expression used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"validation_rule":{"description":"Validation rule type used to validate any attribute value when the attribute type is `pim_catalog_text` or `pim_catalog_identifier`","type":"string","x-validation-rules":"Equal to `regexp` when the attribute type is equal to `pim_catalog_identifier`","x-warning":"Only for `pim_catalog_text` or `pim_catalog_identifier` attribute types"},"wysiwyg_enabled":{"description":"Whether the WYSIWYG interface is shown when the attribute type is `pim_catalog_textarea`","type":"boolean","x-warning":"Only for `pim_catalog_textarea` attribute type"}},"required":["code","type","group"],"type":"object"}],"type":"object"},"AttributeOption":{"example":{"attribute":"a_simple_select","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"},"sort_order":2},"properties":{"attribute":{"description":"Code of attribute related to the attribute option","type":"string","x-validation-rules":"It is the same attribute code as the one given as path parameter"},"code":{"description":"Code of option","type":"string"},"labels":{"default":{},"description":"Attribute option labels for each locale","properties":{"localeCode":{"description":"Attribute option label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"description":"Order of attribute option","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"},"AttributeOptionList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"attribute":"a_simple_select","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"},"sort_order":2},"properties":{"attribute":{"description":"Code of attribute related to the attribute option","type":"string","x-validation-rules":"It is the same attribute code as the one given as path parameter"},"code":{"description":"Code of option","type":"string"},"labels":{"default":{},"description":"Attribute option labels for each locale","properties":{"localeCode":{"description":"Attribute option label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"sort_order":{"description":"Order of attribute option","type":"integer","x-validation-rules":"It is a positive integer"}},"required":["code"],"type":"object"}],"type":"object"},"Category":{"example":{"code":"winter_collection","labels":{"en_US":"Winter collection","fr_FR":"Collection hiver"},"parent":null,"position":1,"updated":"2025-08-15T13:52:10.903Z","values":{"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US":{"attribute_code":"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26","channel":"ecommerce","data":"<p>Winter collection description</p>\n","locale":"en_US","type":"textarea"}}},"properties":{"code":{"description":"Category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Category labels for each locale","properties":{"localeCode":{"description":"Category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"Category code of the parent's category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing category code. &#10;&bull; If equal to an existing category code, it cannot reference itself."},"position":{"description":"Position of the category in its level, start from 1 (only available since the 7.0 version and when query parameter \"with_position\" is set to \"true\")","type":"integer","x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"default":null,"description":"Attribute values","properties":{"attributeCode|attributeUuid|channelCode|localeCode":{"items":{"properties":{"attribute_code":{"description":"The attribute code with its uuid (attributeCode|attributeUuid)","type":"string"},"channel":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the attribute value","type":"string"},"data":{"description":"Attribute value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the attribute value","type":"string"},"type":{"description":"The attribute type","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-read-only":true}},"required":["code"],"type":"object"},"CategoryList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"winter_collection","labels":{"en_US":"Winter collection","fr_FR":"Collection hiver"},"parent":null,"position":1,"updated":"2025-08-15T13:52:10.903Z","values":{"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US":{"attribute_code":"description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26","channel":"ecommerce","data":"<p>Winter collection description</p>\n","locale":"en_US","type":"textarea"}}},"properties":{"code":{"description":"Category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Category labels for each locale","properties":{"localeCode":{"description":"Category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"Category code of the parent's category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing category code. &#10;&bull; If equal to an existing category code, it cannot reference itself."},"position":{"description":"Position of the category in its level, start from 1 (only available since the 7.0 version and when query parameter \"with_position\" is set to \"true\")","type":"integer","x-read-only":true},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"default":null,"description":"Attribute values","properties":{"attributeCode|attributeUuid|channelCode|localeCode":{"items":{"properties":{"attribute_code":{"description":"The attribute code with its uuid (attributeCode|attributeUuid)","type":"string"},"channel":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the attribute value","type":"string"},"data":{"description":"Attribute value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the attribute value","type":"string"},"type":{"description":"The attribute type","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-read-only":true}},"required":["code"],"type":"object"}],"type":"object"},"Channel":{"example":{"category_tree":"master","code":"ecommerce","conversion_units":{"weight":"KILOGRAM"},"currencies":["USD","EUR"],"labels":{"de_DE":"Ecommerce","en_US":"Ecommerce","fr_FR":"Ecommerce"},"locales":["de_DE","en_US","fr_FR"]},"properties":{"category_tree":{"description":"Code of the category tree linked to the channel","type":"string","x-validation-rules":"It is the code of an existing category code that is a tree (a category without parent)"},"code":{"description":"Channel code","type":"string","x-immutable":true},"conversion_units":{"description":"Units to which the given metric attributes should be converted when exporting products","properties":{"attributeCode":{"description":"Conversion unit code used to convert the values of the attribute `attributeCode` when exporting via the channel","type":"string"}},"type":"object","x-validation-rules":"&bull; The `attributeCode` is the code of an existing attribute whose type is `pim_catalog_metric` &#10;&bull; The strings are existing unit codes."},"currencies":{"description":"Codes of activated currencies for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing currency code &#10;&bull; At least one currency in the array"},"labels":{"default":{},"description":"Channel labels for each locale","properties":{"localeCode":{"description":"Channel label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"locales":{"description":"Codes of activated locales for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing locale code &#10;&bull; At least one locale in the array"}},"required":["code","category_tree","locales","currencies"],"type":"object"},"ChannelList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"category_tree":"master","code":"ecommerce","conversion_units":{"weight":"KILOGRAM"},"currencies":["USD","EUR"],"labels":{"de_DE":"Ecommerce","en_US":"Ecommerce","fr_FR":"Ecommerce"},"locales":["de_DE","en_US","fr_FR"]},"properties":{"category_tree":{"description":"Code of the category tree linked to the channel","type":"string","x-validation-rules":"It is the code of an existing category code that is a tree (a category without parent)"},"code":{"description":"Channel code","type":"string","x-immutable":true},"conversion_units":{"description":"Units to which the given metric attributes should be converted when exporting products","properties":{"attributeCode":{"description":"Conversion unit code used to convert the values of the attribute `attributeCode` when exporting via the channel","type":"string"}},"type":"object","x-validation-rules":"&bull; The `attributeCode` is the code of an existing attribute whose type is `pim_catalog_metric` &#10;&bull; The strings are existing unit codes."},"currencies":{"description":"Codes of activated currencies for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing currency code &#10;&bull; At least one currency in the array"},"labels":{"default":{},"description":"Channel labels for each locale","properties":{"localeCode":{"description":"Channel label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"locales":{"description":"Codes of activated locales for the channel","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Each string of the array is an existing locale code &#10;&bull; At least one locale in the array"}},"required":["code","category_tree","locales","currencies"],"type":"object"}],"type":"object"},"Currency":{"example":{"code":"EUR","enabled":true},"properties":{"code":{"description":"Currency code","type":"string","x-immutable":true},"enabled":{"description":"Whether the currency is enabled","type":"boolean"}},"required":["code"],"type":"object"},"CurrencyList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"EUR","enabled":true},"properties":{"code":{"description":"Currency code","type":"string","x-immutable":true},"enabled":{"description":"Whether the currency is enabled","type":"boolean"}},"required":["code"],"type":"object"}],"type":"object"},"DeprecatedAsset":{"example":{"categories":["tshirts_assets"],"code":"tshirt_artemis_main_picture","description":"The main picture of the Artemis t-shirt","end_of_use":"2019-09-01T00:00:00+0200","localizable":false,"reference_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture.jpg","locale":null}],"tags":["tshirts","red","summer"],"variation_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale"}},"code":"7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_ecommerce.jpg","locale":null,"scope":"e_commerce"},{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_print.jpg","locale":null,"scope":"print"}]},"properties":{"categories":{"default":[],"description":"Codes of the PAM asset categories in which the asset is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing asset category code"},"code":{"description":"PAM asset code","type":"string","x-immutable":true},"description":{"default":null,"description":"Description of the PAM asset","type":"string"},"end_of_use":{"default":null,"description":"Date on which the PAM asset expire","format":"dateTime","type":"string","x-validation-rules":"The date follows the ISO 8601 format"},"localizable":{"default":false,"description":"Whether the asset is localized or not, meaning if you want to have different reference files for each of your locale","type":"boolean","x-immutable":true},"reference_files":{"description":"Reference files of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the reference file","properties":{"download":{"properties":{"href":{"description":"URI to download the reference file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the reference file entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the reference file","type":"string"},"locale":{"description":"Locale code of the reference file","type":"string"}},"type":"object"},"type":"array","x-read-only":true},"tags":{"default":[],"description":"Tags of the PAM asset","items":{"type":"string"},"type":"array"},"variation_files":{"description":"Variations of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the variation file","properties":{"download":{"properties":{"href":{"description":"URI to download the variation file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the variation entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the variation","type":"string"},"locale":{"description":"Locale code of the variation","type":"string"},"scope":{"description":"Channel code of the variation","type":"string"}},"type":"object"},"type":"array","x-read-only":true}},"required":["code"],"type":"object"},"DeprecatedAssetCategory":{"example":{"code":"front_views","labels":{"en_US":"Front views","fr_FR":"Vues de face"},"parent":"pictures"},"properties":{"code":{"description":"PAM asset category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"PAM asset category labels for each locale","properties":{"localeCode":{"description":"PAM asset category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"PAM ssset category code of the parent's asset category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing asset category code. &#10;&bull; If equal to an existing asset category code, it cannot reference itself."}},"required":["code"],"type":"object"},"DeprecatedAssetCategoryList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"front_views","labels":{"en_US":"Front views","fr_FR":"Vues de face"},"parent":"pictures"},"properties":{"code":{"description":"PAM asset category code","type":"string","x-immutable":true},"labels":{"default":{},"description":"PAM asset category labels for each locale","properties":{"localeCode":{"description":"PAM asset category label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"parent":{"default":"null","description":"PAM ssset category code of the parent's asset category","type":"string","x-validation-rules":"&bull; It is either equal to `null` or to an existing asset category code. &#10;&bull; If equal to an existing asset category code, it cannot reference itself."}},"required":["code"],"type":"object"}],"type":"object"},"DeprecatedAssetList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"categories":["tshirts_assets"],"code":"tshirt_artemis_main_picture","description":"The main picture of the Artemis t-shirt","end_of_use":"2019-09-01T00:00:00+0200","localizable":false,"reference_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture.jpg","locale":null}],"tags":["tshirts","red","summer"],"variation_files":[{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale"}},"code":"7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_ecommerce.jpg","locale":null,"scope":"e_commerce"},{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale/download"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/print/no_locale"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_print.jpg","locale":null,"scope":"print"}]},"properties":{"categories":{"default":[],"description":"Codes of the PAM asset categories in which the asset is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing asset category code"},"code":{"description":"PAM asset code","type":"string","x-immutable":true},"description":{"default":null,"description":"Description of the PAM asset","type":"string"},"end_of_use":{"default":null,"description":"Date on which the PAM asset expire","format":"dateTime","type":"string","x-validation-rules":"The date follows the ISO 8601 format"},"localizable":{"default":false,"description":"Whether the asset is localized or not, meaning if you want to have different reference files for each of your locale","type":"boolean","x-immutable":true},"reference_files":{"description":"Reference files of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the reference file","properties":{"download":{"properties":{"href":{"description":"URI to download the reference file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the reference file entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the reference file","type":"string"},"locale":{"description":"Locale code of the reference file","type":"string"}},"type":"object"},"type":"array","x-read-only":true},"tags":{"default":[],"description":"Tags of the PAM asset","items":{"type":"string"},"type":"array"},"variation_files":{"description":"Variations of the PAM asset","items":{"properties":{"_link":{"description":"Links to get and download the variation file","properties":{"download":{"properties":{"href":{"description":"URI to download the variation file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the variation entity","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the variation","type":"string"},"locale":{"description":"Locale code of the variation","type":"string"},"scope":{"description":"Channel code of the variation","type":"string"}},"type":"object"},"type":"array","x-read-only":true}},"required":["code"],"type":"object"}],"type":"object"},"DeprecatedAssetReferenceFile":{"example":{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/reference-files/no_locale/download"}},"code":"7/5/8/e/759e39d48va7b42a55002434fd3d7b6cf3189b7f_tshirt_artemis_main_picture.jpg","locale":null},"properties":{"_link":{"description":"Links to get and download the reference file","properties":{"download":{"properties":{"href":{"description":"URI to download the reference file","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the PAM asset reference file","type":"string","x-immutable":true},"locale":{"description":"Locale of the PAM asset reference file, equal to `null` if the asset is not localizable","type":"string"}},"type":"object"},"DeprecatedAssetReferenceFileUploadWarning":{"properties":{"errors":{"items":{"properties":{"channel":{"description":"Channel for which the variation file generation failed","type":"string"},"locale":{"description":"Locale for which the variation file generation failed","type":"string"},"message":{"description":"Message explaining why the variation file generation failed","type":"string"}},"type":"object"},"type":"array"},"message":{"description":"Message explaining the warning","type":"string"}},"type":"object"},"DeprecatedAssetTag":{"example":{"code":"tshirt"},"properties":{"code":{"description":"PAM asset tag code","type":"string","x-immutable":true}},"required":["code"],"type":"object"},"DeprecatedAssetTagList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"tshirt"},"properties":{"code":{"description":"PAM asset tag code","type":"string","x-immutable":true}},"required":["code"],"type":"object"}],"type":"object"},"DeprecatedAssetVariationFile":{"example":{"_link":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/assets/tshirt_artemis_main_picture/variation-files/ecommerce/no_locale/download"}},"code":"7/5/8/e/758e39d48va7b42a55001434fd3d7b6cf3189b7f_tshirt_artemis_main_picture_ecommerce.jpg","locale":null,"scope":"ecommerce"},"properties":{"_link":{"description":"Links to get and download the reference file","properties":{"download":{"properties":{"href":{"description":"URI to download the variation file","type":"string"}},"type":"object"}},"type":"object"},"code":{"description":"Code of the PAM asset variation file","type":"string","x-immutable":true},"locale":{"description":"Locale of the PAM asset variation file, equal to `null` if the asset is not localizable","type":"string"},"scope":{"description":"Channel of the PAM asset variation file","type":"string"}},"type":"object"},"Error":{"properties":{"code":{"description":"HTTP status code","type":"integer"},"message":{"description":"Message explaining the error","type":"string"}},"type":"object"},"ErrorByLine":{"properties":{"code":{"description":"Resource code, only filled when the resource is not a product","type":"string"},"identifier":{"description":"Resource identifier, only filled when the resource is a product","type":"string"},"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"},"ErrorByLineProductUuid":{"properties":{"line":{"description":"Line number","type":"integer"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"},"uuid":{"description":"Product uuid","type":"string"}},"type":"object"},"ErrorByObject":{"items":{"properties":{"code":{"description":"Resource code","type":"string"},"message":{"description":"Message explaining the error","type":"string"},"status_code":{"description":"HTTP status code, see <a href=\"/documentation/responses.html#client-errors\">Client errors</a> to understand the meaning of each code","type":"integer"}},"type":"object"},"type":"array"},"Family":{"example":{"attribute_as_image":"picture","attribute_as_label":"name","attribute_requirements":{"ecommerce":["sku","name","description","price","color"],"tablet":["sku","name","description","price"]},"attributes":["sku","name","description","price","color","picture"],"code":"caps","labels":{"en_US":"Caps","fr_FR":"Casquettes"}},"properties":{"attribute_as_image":{"default":"null","description":"Attribute code used as the main picture in the user interface (only since v2.0)","type":"string","x-from-version":"2.0","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is `pim_catalog_image`. Since v2.1, you can also use a `pim_assets_collection` attribute type"},"attribute_as_label":{"description":"Attribute code used as label","type":"string","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is either `pim_catalog_identifier` or `pim_catalog_text`"},"attribute_requirements":{"description":"Attributes codes of the family that are required for the completeness calculation for each channel","properties":{"channelCode":{"items":{"description":"Attributes codes of the family that are required for the completeness calculation for the channel `channelCode`","type":"string"},"type":"array"}},"type":"object","x-validation-rules":"&bull; Each string of these arrays is an existing attribute code &#10;&bull; These attribute codes are in the array of the property `attributes` &#10;&bull; The `channelCode` is the code of an existing and activated channel"},"attributes":{"default":[],"description":"Attributes codes that compose the family","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code"},"code":{"description":"Family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family labels for each locale","properties":{"localeCode":{"description":"Family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code","attribute_as_label"],"type":"object"},"FamilyList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"attribute_as_image":"picture","attribute_as_label":"name","attribute_requirements":{"ecommerce":["sku","name","description","price","color"],"tablet":["sku","name","description","price"]},"attributes":["sku","name","description","price","color","picture"],"code":"caps","labels":{"en_US":"Caps","fr_FR":"Casquettes"}},"properties":{"attribute_as_image":{"default":"null","description":"Attribute code used as the main picture in the user interface (only since v2.0)","type":"string","x-from-version":"2.0","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is `pim_catalog_image`. Since v2.1, you can also use a `pim_assets_collection` attribute type"},"attribute_as_label":{"description":"Attribute code used as label","type":"string","x-validation-rules":"&bull; It is equal to an existing attribute code &#10;&bull; This attribute code is in the array of the property `attributes` &#10;&bull; The type of this attribute is either `pim_catalog_identifier` or `pim_catalog_text`"},"attribute_requirements":{"description":"Attributes codes of the family that are required for the completeness calculation for each channel","properties":{"channelCode":{"items":{"description":"Attributes codes of the family that are required for the completeness calculation for the channel `channelCode`","type":"string"},"type":"array"}},"type":"object","x-validation-rules":"&bull; Each string of these arrays is an existing attribute code &#10;&bull; These attribute codes are in the array of the property `attributes` &#10;&bull; The `channelCode` is the code of an existing and activated channel"},"attributes":{"default":[],"description":"Attributes codes that compose the family","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is an existing attribute code"},"code":{"description":"Family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family labels for each locale","properties":{"localeCode":{"description":"Family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code","attribute_as_label"],"type":"object"}],"type":"object"},"FamilyVariant":{"example":{"code":"shoesVariant","labels":{"en_US":"Shoes variant","fr_FR":"Variante de chaussures"},"variant_attribute_sets":[{"attributes":["color","material"],"axes":["color"],"level":1},{"attributes":["sku","size"],"axes":["size"],"level":2}]},"properties":{"code":{"description":"Family variant code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family variant labels for each locale","properties":{"localeCode":{"description":"Family variant label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"variant_attribute_sets":{"description":"Attributes distribution according to the enrichment level","items":{"description":"Enrichment level","properties":{"attributes":{"default":[],"description":"Codes of attributes bind to this enrichment level","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Should be an array of existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Attributes used as attribute in one level cannot be used as axes or as attributes in the other level &#10;&bull; Attributes that are `unique value` or `identifier` are automatically distributed to the lower level."},"axes":{"default":[],"description":"Codes of attributes used as variant axes","items":{"type":"string"},"type":"array","x-immutable":true,"x-validation-rules":"&bull; Should be an array of maximum 5 existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Only the following attribute types are allowed: `simple select`, `multi select`, `reference data`, `metric`, `boolean` &#10;&bull; Attributes cannot be scopable, nor localizable nor locale specific &#10;&bull; Attributes used as axes in one level cannot be used as axes or as attributes in the other level"},"level":{"description":"Enrichment level","type":"integer","x-immutable":true,"x-validation-rules":"&bull; Number representing the level of the attribute set. &#10;&bull; It should be equal to 1 or 2. &#10;&bull; If you specify the level 2, you have to specify the level 1 as well."}},"required":["level","axes"],"type":"object"},"type":"array"}},"required":["code","variant_attribute_sets"],"type":"object"},"FamilyVariantList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"shoesVariant","labels":{"en_US":"Shoes variant","fr_FR":"Variante de chaussures"},"variant_attribute_sets":[{"attributes":["color","material"],"axes":["color"],"level":1},{"attributes":["sku","size"],"axes":["size"],"level":2}]},"properties":{"code":{"description":"Family variant code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Family variant labels for each locale","properties":{"localeCode":{"description":"Family variant label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"variant_attribute_sets":{"description":"Attributes distribution according to the enrichment level","items":{"description":"Enrichment level","properties":{"attributes":{"default":[],"description":"Codes of attributes bind to this enrichment level","items":{"type":"string"},"type":"array","x-validation-rules":"&bull; Should be an array of existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Attributes used as attribute in one level cannot be used as axes or as attributes in the other level &#10;&bull; Attributes that are `unique value` or `identifier` are automatically distributed to the lower level."},"axes":{"default":[],"description":"Codes of attributes used as variant axes","items":{"type":"string"},"type":"array","x-immutable":true,"x-validation-rules":"&bull; Should be an array of maximum 5 existing attribute codes &#10;&bull; These attributes should belong to the family of the family variant &#10;&bull; Only the following attribute types are allowed: `simple select`, `multi select`, `reference data`, `metric`, `boolean` &#10;&bull; Attributes cannot be scopable, nor localizable nor locale specific &#10;&bull; Attributes used as axes in one level cannot be used as axes or as attributes in the other level"},"level":{"description":"Enrichment level","type":"integer","x-immutable":true,"x-validation-rules":"&bull; Number representing the level of the attribute set. &#10;&bull; It should be equal to 1 or 2. &#10;&bull; If you specify the level 2, you have to specify the level 1 as well."}},"required":["level","axes"],"type":"object"},"type":"array"}},"required":["code","variant_attribute_sets"],"type":"object"}],"type":"object"},"ItemList":{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"Locale":{"example":{"code":"en_US","enable":true},"properties":{"code":{"description":"Locale code","type":"string","x-immutable":true},"enabled":{"default":false,"description":"Whether the locale is enabled","type":"boolean"}},"required":["code"],"type":"object"},"LocaleList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"en_US","enable":true},"properties":{"code":{"description":"Locale code","type":"string","x-immutable":true},"enabled":{"default":false,"description":"Whether the locale is enabled","type":"boolean"}},"required":["code"],"type":"object"}],"type":"object"},"MeasureFamily":{"example":{"code":"Area","standard":"SQUARE_METER","units":[{"code":"SQUARE_MILLIMETER","convert":{"mul":"0.001"},"symbol":"mm²"},{"code":"SQUARE_CENTIMETER","convert":{"mul":"0.001"},"symbol":"cm²"}]},"properties":{"code":{"description":"Measure family code","type":"string","x-immutable":true},"standard":{"description":"Measure family standard","type":"string","x-immutable":true},"units":{"description":"Family units","items":{"properties":{"code":{"description":"Measure code","type":"string","x-immutable":true},"convert":{"description":"Mathematic operation to convert the unit into the standard unit","type":"object"},"symbol":{"description":"Measure symbol","type":"string","x-immutable":true}},"type":"object"},"type":"array"}},"required":["code"],"type":"object"},"MeasureFamilyList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"Area","standard":"SQUARE_METER","units":[{"code":"SQUARE_MILLIMETER","convert":{"mul":"0.001"},"symbol":"mm²"},{"code":"SQUARE_CENTIMETER","convert":{"mul":"0.001"},"symbol":"cm²"}]},"properties":{"code":{"description":"Measure family code","type":"string","x-immutable":true},"standard":{"description":"Measure family standard","type":"string","x-immutable":true},"units":{"description":"Family units","items":{"properties":{"code":{"description":"Measure code","type":"string","x-immutable":true},"convert":{"description":"Mathematic operation to convert the unit into the standard unit","type":"object"},"symbol":{"description":"Measure symbol","type":"string","x-immutable":true}},"type":"object"},"type":"array"}},"required":["code"],"type":"object"}],"type":"object"},"MeasurementFamily":{"example":{"code":"AREA","labels":{"en_US":"Area","fr_FR":"Surface"},"standard_unit_code":"SQUARE_METER","units":{"SQUARE_CENTIMETER":{"code":"SQUARE_CENTIMETER","convert_from_standard":[{"operator":"mul","value":"0.0001"}],"labels":{"en_US":"Square centimeter","fr_FR":"Centimètre carré"},"symbol":"cm²"},"SQUARE_METER":{"code":"SQUARE_METER","convert_from_standard":[{"operator":"mul","value":"1"}],"labels":{"en_US":"Square meter","fr_FR":"Mètre carré"},"symbol":"m²"},"SQUARE_MILLIMETER":{"code":"SQUARE_MILLIMETER","convert_from_standard":[{"operator":"mul","value":"0.000001"}],"labels":{"en_US":"Square millimeter","fr_FR":"Millimètre carré"},"symbol":"mm²"}}},"properties":{"code":{"description":"Measurement family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Measurement family labels for each locale","properties":{"localeCode":{"description":"Measurement family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"standard_unit_code":{"description":"Unit code used as the standard unit for this measurement family","type":"string","x-immutable":true,"x-validation-rules":"The unit code exists in the list of the property `units`"},"units":{"description":"Measurement units for this family with their conversion operations. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","properties":{"unitCode":{"properties":{"code":{"description":"Measurement unit code. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","type":"string","x-immutable":true},"convert_from_standard":{"description":"Calculation to convert the unit from the standard unit. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","items":{"properties":{"operator":{"description":"Operator for a conversion operation to convert the unit in the standard unit","enum":["mul","div","add","sub"],"type":"string","x-validation-rules":"The operator is one of the following values"},"value":{"description":"Value for a conversion operation to convert the unit in the standard unit","type":"string"}},"type":"object"},"type":"array","x-validation-rules":"&bull; The conversion operations can't be updated when a product attribute is linked to this measurement family &#10;&bull; At least one conversion operation per unit is required"},"labels":{"default":{},"description":"Unit labels for each locale. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","properties":{"localeCode":{"description":"Unit label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"symbol":{"description":"Measurement unit symbol. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","type":"string"}},"type":"object"}},"type":"object","x-validation-rules":"A unit can't be added when a product attribute is linked to this measurement family"}},"required":["code","standard_unit_code","units"],"type":"object"},"MeasurementFamilyList":{"example":{"code":"AREA","labels":{"en_US":"Area","fr_FR":"Surface"},"standard_unit_code":"SQUARE_METER","units":{"SQUARE_CENTIMETER":{"code":"SQUARE_CENTIMETER","convert_from_standard":[{"operator":"mul","value":"0.0001"}],"labels":{"en_US":"Square centimeter","fr_FR":"Centimètre carré"},"symbol":"cm²"},"SQUARE_METER":{"code":"SQUARE_METER","convert_from_standard":[{"operator":"mul","value":"1"}],"labels":{"en_US":"Square meter","fr_FR":"Mètre carré"},"symbol":"m²"},"SQUARE_MILLIMETER":{"code":"SQUARE_MILLIMETER","convert_from_standard":[{"operator":"mul","value":"0.000001"}],"labels":{"en_US":"Square millimeter","fr_FR":"Millimètre carré"},"symbol":"mm²"}}},"properties":{"code":{"description":"Measurement family code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Measurement family labels for each locale","properties":{"localeCode":{"description":"Measurement family label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"standard_unit_code":{"description":"Unit code used as the standard unit for this measurement family","type":"string","x-immutable":true,"x-validation-rules":"The unit code exists in the list of the property `units`"},"units":{"description":"Measurement units for this family with their conversion operations. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","properties":{"unitCode":{"properties":{"code":{"description":"Measurement unit code. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","type":"string","x-immutable":true},"convert_from_standard":{"description":"Calculation to convert the unit from the standard unit. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","items":{"properties":{"operator":{"description":"Operator for a conversion operation to convert the unit in the standard unit","enum":["mul","div","add","sub"],"type":"string","x-validation-rules":"The operator is one of the following values"},"value":{"description":"Value for a conversion operation to convert the unit in the standard unit","type":"string"}},"type":"object"},"type":"array","x-validation-rules":"&bull; The conversion operations can't be updated when a product attribute is linked to this measurement family &#10;&bull; At least one conversion operation per unit is required"},"labels":{"default":{},"description":"Unit labels for each locale. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","properties":{"localeCode":{"description":"Unit label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"symbol":{"description":"Measurement unit symbol. More details <a href='/concepts/target-market-settings.html#focus-on-the-units'>here</a>.","type":"string"}},"type":"object"}},"type":"object","x-validation-rules":"A unit can't be added when a product attribute is linked to this measurement family"}},"required":["code","standard_unit_code","units"],"type":"object"},"MediaFile":{"allOf":[{"properties":{"_links":{"properties":{"download":{"properties":{"href":{"description":"URI to download the binaries of the media file","type":"string"}},"type":"object"}},"type":"object","x-read-only":true}},"type":"object"},{"example":{"code":"7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg","extension":"jpg","mime_type":"image/jpeg","original_filename":"10806799-1356.jpg","size":16070},"properties":{"code":{"description":"Media file code","type":"string","x-immutable":true},"extension":{"description":"Extension of the media file","type":"string","x-read-only":true},"mime_type":{"description":"Mime type of the media file","type":"string","x-read-only":true},"original_filename":{"description":"Original filename of the media file","type":"string"},"size":{"description":"Size of the media file","type":"integer","x-read-only":true}},"type":"object"}],"example":{"_links":{"download":{"href":"https://demo.akeneo.com/api/rest/v1/media-files/7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg/download"}},"code":"7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg","extension":"jpg","mime_type":"image/jpeg","original_filename":"10806799-1356.jpg","size":16070}},"MediaFileItemList":{"properties":{"_links":{"properties":{"download":{"properties":{"href":{"description":"URI to download the binaries of the media file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI to get the metadata of the media file","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"MediaFileList":{"allOf":[{"properties":{"_links":{"properties":{"download":{"properties":{"href":{"description":"URI to download the binaries of the media file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI to get the metadata of the media file","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"7/5/8/e/758e39d48ea7b42a55091434fd3d8b6cf3189b7f_10806799_1356.jpg","extension":"jpg","mime_type":"image/jpeg","original_filename":"10806799-1356.jpg","size":16070},"properties":{"code":{"description":"Media file code","type":"string","x-immutable":true},"extension":{"description":"Extension of the media file","type":"string","x-read-only":true},"mime_type":{"description":"Mime type of the media file","type":"string","x-read-only":true},"original_filename":{"description":"Original filename of the media file","type":"string"},"size":{"description":"Size of the media file","type":"integer","x-read-only":true}},"type":"object"}],"type":"object"},"Pagination":{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"previous":{"properties":{"href":{"description":"URI of the previous page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"},"current_page":{"description":"Current page number","type":"integer"}},"type":"object"},"Product":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.904Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.904Z","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product UUID","type":"string","x-from-version":"7.0"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object"},"ProductExamples":{"x-1.7":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/top"}},"associations":{"PACK":{"groups":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","quantified_associations":{"PRODUCT_SET":{"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.904Z","values":{"collection":[{"data":["winter_2016"]}],"color":[{"data":"black"}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/cap"}},"associations":{"PACK":{"groups":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"family":"caps","groups":[],"identifier":"cap","quantified_associations":{},"updated":"2025-08-15T13:52:10.904Z","values":{"color":[{"data":"black"}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/sweat"}},"associations":{},"categories":["winter_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"groups":[],"identifier":"sweat","quantified_associations":{},"updated":"2025-08-15T13:52:10.904Z","values":{}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=4&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=2&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=3&limit=3"}},"current_page":3},"x-2.0":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/top"}},"associations":{"PACK":{"groups":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","quantified_associations":{"PRODUCT_SET":{"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.904Z","values":{"collection":[{"data":["winter_2016"]}],"color":[{"data":"black"}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/cap"}},"associations":{"PACK":{"groups":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"family":"caps","groups":[],"identifier":"cap","quantified_associations":{},"updated":"2025-08-15T13:52:10.904Z","values":{"color":[{"data":"black"}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/sweat"}},"associations":{},"categories":["winter_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"groups":[],"identifier":"sweat","quantified_associations":{},"updated":"2025-08-15T13:52:10.904Z","values":{}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=4&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=2&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=3&limit=3"}},"current_page":3},"x-2.1":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/top"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.904Z","values":{"collection":[{"data":["winter_2016"]}],"color":[{"data":"black"}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/cap"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"family":"caps","groups":[],"identifier":"cap","quantified_associations":{},"updated":"2025-08-15T13:52:10.904Z","values":{"color":[{"data":"black"}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/sweat"}},"associations":{},"categories":["winter_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"groups":[],"identifier":"sweat","quantified_associations":{},"updated":"2025-08-15T13:52:10.904Z","values":{}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=1&limit=3"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=4&limit=3"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=2&limit=3"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=3&limit=3"}},"current_page":3},"x-5.0":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/top"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.904Z","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}}}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}}}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/cap"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"family":"caps","groups":[],"identifier":"cap","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{},"updated":"2025-08-15T13:52:10.904Z","values":{"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/sweat"}},"associations":{},"categories":["winter_collection"],"created":"2025-08-15T13:52:10.904Z","enabled":true,"groups":[],"identifier":"sweat","quality_scores":{},"quantified_associations":{},"updated":"2025-08-15T13:52:10.904Z","values":{}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=1&limit=3&with_quality_scores=true&with_attribute_options=true"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=4&limit=3&with_quality_scores=true&with_attribute_options=true"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=2&limit=3&with_quality_scores=true&with_attribute_options=true"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=3&limit=3&with_quality_scores=true&with_attribute_options=true"}},"current_page":3},"x-SaaS":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/top"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"completenesses":[{"data":20,"locale":"en_US","scope":"ecommerce"},{"data":30,"locale":"fr_FR","scope":"ecommerce"},{"data":55,"locale":"en_US","scope":"tablet"},{"data":70,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.904Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.905Z","uuid":"aaf518b2-f91e-40f1-a53a-78ce5e81a6f9","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}}}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}}}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/cap"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglasses"]}},"categories":["summer_collection"],"completenesses":[{"data":20,"locale":"en_US","scope":"ecommerce"},{"data":30,"locale":"fr_FR","scope":"ecommerce"},{"data":55,"locale":"en_US","scope":"tablet"},{"data":70,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.905Z","enabled":true,"family":"caps","groups":[],"identifier":"cap","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{},"updated":"2025-08-15T13:52:10.905Z","uuid":"aec6780b-c813-4bd7-8e24-1a8574471576","values":{"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/sweat"}},"associations":{},"categories":["winter_collection"],"completenesses":[],"created":"2025-08-15T13:52:10.905Z","enabled":true,"groups":[],"identifier":"sweat","quality_scores":{},"quantified_associations":{},"updated":"2025-08-15T13:52:10.905Z","uuid":"93f14b03-5ed3-4f23-87c6-ae3806041b6a","values":{}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=1&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=4&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=2&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products?page=3&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"}},"current_page":3}},"ProductList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.905Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"cap","quantity":2},{"identifier":"shoes","quantity":1}]}},"updated":"2025-08-15T13:52:10.905Z","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product UUID","type":"string","x-from-version":"7.0"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object"}],"type":"object"},"ProductModel":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"code":"model-biker-jacket-leather","created":"2025-08-15T13:52:10.905Z","family":"clothing","family_variant":"clothing_material_size","parent":"model-biker-jacket","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"code":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"top","quantity":2},{"identifier":"cap","quantity":1}]}},"updated":"2025-08-15T13:52:10.905Z","values":{"collection":[{"data":["summer_2017"],"locale":null,"scope":null}],"color":[{"data":"antique_white","locale":null,"scope":null}],"description":[{"data":"Biker jacket","locale":"en_US","scope":"ecommerce"}],"material":[{"data":"leather","locale":null,"scope":null}],"name":[{"data":"Biker jacket","locale":"en_US","scope":null}],"variation_name":[{"data":"Biker jacket leather","locale":"en_US","scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product and/or other product models, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product model is categorized","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"code":{"description":"Product model code","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"family":{"description":"<a href='api-reference.html#Family'>Family</a> code  from which the product inherits its attributes and attributes requirements (since the 3.2)","type":"string","x-from-version":"3.2","x-immutable":true,"x-validation-rules":"It is equal to an existing family code"},"family_variant":{"description":"Family variant code from which the product model inherits its attributes and variant attributes","type":"string","x-immutable":true,"x-validation-rules":"It is equal to an existing family variant code that belong to the family given in the `family` field"},"metadata":{"description":"More information around the product model (only available since the v2.3 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product model regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.3","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a>. This parent can be modified since the 2.3.","type":"string","x-from-version":"2.3","x-validation-rules":"&bull; It is equal to an existing product model code&#10;&bull; This product model has the same family variant as the one given in the `family_variant field`"},"quality_scores":{"description":"Product model quality scores for each channel/locale combination (<strong>only available since the 7.0 version</strong> and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product model is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product model is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it. &#10;&bull; Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Product model attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["code","family_variant"],"type":"object"},"ProductModelList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"code":"model-biker-jacket-leather","created":"2025-08-15T13:52:10.905Z","family":"clothing","family_variant":"clothing_material_size","parent":"model-biker-jacket","quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"code":"model-biker-jacket-leather","quantity":2}],"products":[{"identifier":"top","quantity":2},{"identifier":"cap","quantity":1}]}},"updated":"2025-08-15T13:52:10.905Z","values":{"collection":[{"data":["summer_2017"],"locale":null,"scope":null}],"color":[{"data":"antique_white","locale":null,"scope":null}],"description":[{"data":"Biker jacket","locale":"en_US","scope":"ecommerce"}],"material":[{"data":"leather","locale":null,"scope":null}],"name":[{"data":"Biker jacket","locale":"en_US","scope":null}],"variation_name":[{"data":"Biker jacket leather","locale":"en_US","scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product and/or other product models, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product identifiers with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product model is categorized","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"code":{"description":"Product model code","type":"string","x-immutable":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"family":{"description":"<a href='api-reference.html#Family'>Family</a> code  from which the product inherits its attributes and attributes requirements (since the 3.2)","type":"string","x-from-version":"3.2","x-immutable":true,"x-validation-rules":"It is equal to an existing family code"},"family_variant":{"description":"Family variant code from which the product model inherits its attributes and variant attributes","type":"string","x-immutable":true,"x-validation-rules":"It is equal to an existing family variant code that belong to the family given in the `family` field"},"metadata":{"description":"More information around the product model (only available since the v2.3 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product model regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.3","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a>. This parent can be modified since the 2.3.","type":"string","x-from-version":"2.3","x-validation-rules":"&bull; It is equal to an existing product model code&#10;&bull; This product model has the same family variant as the one given in the `family_variant field`"},"quality_scores":{"description":"Product model quality scores for each channel/locale combination (<strong>only available since the 7.0 version</strong> and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product model is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product identifiers and quantities with which the product model is in relation","items":{"properties":{"identifier":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the identifier of an existing product and the quantity of it. &#10;&bull; Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Product model attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["code","family_variant"],"type":"object"}],"type":"object"},"ProductUuid":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.905Z","enabled":true,"family":"tshirt","groups":[],"parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"quantity":2,"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5"},{"quantity":1,"uuid":"a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc"}]}},"updated":"2025-08-15T13:52:10.905Z","uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}],"sku":[{"data":"top","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product uuids with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the uuid of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product uuids and quantities with which the product is in relation","items":{"properties":{"quantity":{"type":"integer"},"uuid":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product uuid","type":"string"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"type":"object"},"ProductUuidExamples":{"x-SaaS":{"_embedded":{"items":[{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product-uuid/25566245-55c3-42ce-86d9-8610ac459fa8"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":20,"locale":"en_US","scope":"ecommerce"},{"data":30,"locale":"fr_FR","scope":"ecommerce"},{"data":55,"locale":"en_US","scope":"tablet"},{"data":70,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.905Z","enabled":true,"family":"tshirt","groups":[],"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"quantity":2,"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5"},{"quantity":1,"uuid":"a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc"}]}},"updated":"2025-08-15T13:52:10.905Z","uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}}}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US"},{"data":"Débardeur","locale":"fr_FR"}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}]}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}}}],"sku":[{"data":"top"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product/fc24e6c3-933c-4a93-8a81-e5c703d134d5"}},"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":20,"locale":"en_US","scope":"ecommerce"},{"data":30,"locale":"fr_FR","scope":"ecommerce"},{"data":55,"locale":"en_US","scope":"tablet"},{"data":70,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.906Z","enabled":true,"family":"caps","groups":[],"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{},"updated":"2025-08-15T13:52:10.906Z","uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5","values":{"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}}}],"description":[{"data":"Cap unisex","locale":"en_US","scope":"ecommerce"},{"data":"Cap unisex","locale":"en_US","scope":"tablet"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"ecommerce"},{"data":"Casquette unisexe","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Cap","locale":"en_US"},{"data":"Casquette","locale":"fr_FR"}],"price":[{"data":[{"amount":"20","currency":"EUR"},{"amount":"20","currency":"USD"}]}],"sku":[{"data":"cap"}]}},{"_links":{"self":{"href":"https://demo.akeneo.com/api/rest/v1/product-uuid/fa0b115e-46ec-4527-beab-7207452f1b47"}},"associations":{},"categories":["winter_collection"],"completenesses":[],"created":"2025-08-15T13:52:10.906Z","enabled":true,"groups":[],"quality_scores":{},"quantified_associations":{},"updated":"2025-08-15T13:52:10.906Z","uuid":"fa0b115e-46ec-4527-beab-7207452f1b47","values":{"sku":[{"data":"sweat"}]}}]},"_links":{"first":{"href":"https://demo.akeneo.com/api/rest/v1/products-uuid?page=1&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"next":{"href":"https://demo.akeneo.com/api/rest/v1/products-uuid?page=4&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"previous":{"href":"https://demo.akeneo.com/api/rest/v1/products-uuid?page=2&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"},"self":{"href":"https://demo.akeneo.com/api/rest/v1/products-uuid?page=3&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true"}},"current_page":3}},"ProductUuidList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["d055527c-0698-4967-8f16-8a5f23f4e5cf"]}},"categories":["summer_collection"],"completenesses":[{"data":10,"locale":"en_US","scope":"ecommerce"},{"data":20,"locale":"fr_FR","scope":"ecommerce"},{"data":30,"locale":"en_US","scope":"tablet"},{"data":40,"locale":"fr_FR","scope":"tablet"}],"created":"2025-08-15T13:52:10.906Z","enabled":true,"family":"tshirt","groups":[],"parent":null,"quality_scores":[{"data":"A","locale":"en_US","scope":"ecommerce"},{"data":"B","locale":"fr_FR","scope":"ecommerce"},{"data":"D","locale":"en_US","scope":"tablet"},{"data":"E","locale":"fr_FR","scope":"tablet"}],"quantified_associations":{"PRODUCT_SET":{"product_models":[{"identifier":"model-biker-jacket-leather","quantity":2}],"products":[{"quantity":2,"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5"},{"quantity":1,"uuid":"a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc"}]}},"updated":"2025-08-15T13:52:10.906Z","uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","values":{"collection":[{"data":["winter_2016"],"linked_data":{"winter_2016":{"attribute":"collection","code":"winter_2016","labels":{"en_US":"Winter 2016","fr_FR":"Hiver 2016"}}},"locale":null,"scope":null}],"color":[{"data":"black","linked_data":{"attribute":"color","code":"black","labels":{"en_US":"Black","fr_FR":"Noir"}},"locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","linked_data":{"attribute":"size","code":"m","labels":{"en_US":"M","fr_FR":"M"}},"locale":null,"scope":null}],"sku":[{"data":"top","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups, product models and/or other products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of product uuids with which the product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the uuid of an existing product. &#10;&bull; Each string in the array of the property `product_models` is the code of an existing product model."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"completenesses":{"description":"Product completenesses for each channel/locale combination (only available since the 7.0 version, and when the \"with_completenesses\" query parameter is set to \"true\")","items":{"properties":{"data":{"type":"integer"},"locale":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"type":"array","x-from-version":"7.0","x-immutable":true,"x-read-only":true},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the product is enabled","type":"boolean"},"family":{"default":"null only in the case of a non variant product","description":"<a href='api-reference.html#Family'>Family</a> code from which the product inherits its attributes and attributes requirements.","type":"string","x-validation-rules":"It is equal to an existing family code. In the case of variant product, the given family should be the same as the product model family."},"groups":{"default":[],"description":"Codes of the groups to which the product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"metadata":{"description":"More information around the product (only available since the v2.0 in the Enterprise Edition)","properties":{"workflow_status":{"description":"Status of the product regarding the user permissions","enum":["read_only","draft_in_progress","proposal_waiting_for_approval","working_copy"],"type":"string"}},"type":"object","x-from-version":"2.0","x-immutable":true,"x-read-only":true},"parent":{"default":"null","description":"Code of the parent <a href='api-reference.html#Productmodel'>product model</a> when the product is a variant (only available since the 2.0). This parent can be modified since the 2.3.","type":"string","x-from-version":"2.0","x-validation-rules":"It is equal to an existing product model code only if the product is variant otherwise it's equal to null"},"quality_scores":{"description":"Product quality scores for each channel/locale combination (only available since the 5.0 and when the \"with_quality_scores\" query parameter is set to \"true\")","type":"object","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"quantified_associations":{"description":"Several quantified associations related to products and/or product models, grouped by quantified association types (only available since the 5.0)","properties":{"quantifiedAssociationTypeCode":{"properties":{"product_models":{"description":"Array of objects containing product model codes and quantities with which the product is in relation","items":{"properties":{"code":{"type":"string"},"quantity":{"type":"integer"}},"type":"object"},"type":"array"},"products":{"description":"Array of objects containing product uuids and quantities with which the product is in relation","items":{"properties":{"quantity":{"type":"integer"},"uuid":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object","x-from-version":"5.0","x-validation-rules":"&bull; The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. &#10;&bull; Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it."},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"uuid":{"description":"Product uuid","type":"string"},"values":{"description":"Product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"Product value. See <a href='/concepts/products.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"linked_data":{"description":"Object containing labels of attribute options (only available since the 5.0 and when query parameter \"with_attribute_options\" is set to \"true\"). See <a href='/concepts/products.html#the-linked_data-format'>the `linked_data` format</a> section for more details.","properties":{"attribute":{"type":"string"},"code":{"type":"string"},"labels":{"type":"object"}},"type":"object","x-from-version":"5.0","x-read-only":true},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"type":"object"}],"type":"object"},"PublishedProduct":{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.906Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","updated":"2025-08-15T13:52:10.906Z","values":{"color":[{"data":"black","locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups and/or other published products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the published product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of published product identifiers with which the published product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Identifiers used in the array of the property `products` cannot be equal to the published product identifier."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the published product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the published product is enable","type":"boolean"},"family":{"default":"null","description":"<a href='api-reference.html#Family'>Family</a> code from which the published product inherits its attributes and attributes requirements","type":"string","x-validation-rules":"It is equal to an existing family code"},"groups":{"default":[],"description":"Codes of the groups to which the published product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Published product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"quantified_associations":{"description":"Warning: associations with quantities are not compatible with the published products. The response will always be empty.","type":"object"},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Published product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object"},"PublishedProductList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"associations":{"PACK":{"groups":[],"product_models":[],"products":["sunglass"]}},"categories":["summer_collection"],"created":"2025-08-15T13:52:10.906Z","enabled":true,"family":"tshirt","groups":[],"identifier":"top","updated":"2025-08-15T13:52:10.906Z","values":{"color":[{"data":"black","locale":null,"scope":null}],"description":[{"data":"Summer top","locale":"en_US","scope":"ecommerce"},{"data":"Top","locale":"en_US","scope":"tablet"},{"data":"Débardeur pour l'été","locale":"fr_FR","scope":"ecommerce"},{"data":"Débardeur","locale":"fr_FR","scope":"tablet"}],"name":[{"data":"Top","locale":"en_US","scope":null},{"data":"Débardeur","locale":"fr_FR","scope":null}],"price":[{"data":[{"amount":"15.5","currency":"EUR"},{"amount":"15","currency":"USD"}],"locale":null,"scope":null}],"size":[{"data":"m","locale":null,"scope":null}]}},"properties":{"associations":{"description":"Several associations related to groups and/or other published products, grouped by association types","properties":{"associationTypeCode":{"properties":{"groups":{"description":"Array of groups codes with which the published product is in relation","items":{"type":"string"},"type":"array"},"product_models":{"description":"Array of product model codes with which the product is in relation (only available since the v2.1)","items":{"type":"string"},"type":"array","x-from-version":"2.1"},"products":{"description":"Array of published product identifiers with which the published product is in relation","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object","x-validation-rules":"&bull; The `associationTypeCode` is the code of an existing association type. &#10;&bull; Each string in the array of the property `groups` is the code of an existing group. &#10;&bull; Each string in the array of the property `products` is the identifier of an existing product. &#10;&bull; Identifiers used in the array of the property `products` cannot be equal to the published product identifier."},"categories":{"default":[],"description":"Codes of the <a href='api-reference.html#Category'>categories</a> in which the published product is classified","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing category code"},"created":{"description":"Date of creation","format":"dateTime","type":"string","x-immutable":true,"x-read-only":true},"enabled":{"default":true,"description":"Whether the published product is enable","type":"boolean"},"family":{"default":"null","description":"<a href='api-reference.html#Family'>Family</a> code from which the published product inherits its attributes and attributes requirements","type":"string","x-validation-rules":"It is equal to an existing family code"},"groups":{"default":[],"description":"Codes of the groups to which the published product belong","items":{"type":"string"},"type":"array","x-validation-rules":"Each string of the array is equal to an existing group code"},"identifier":{"description":"Published product identifier, i.e. the value of the only `pim_catalog_identifier` attribute","type":"string"},"quantified_associations":{"description":"Warning: associations with quantities are not compatible with the published products. The response will always be empty.","type":"object"},"updated":{"description":"Date of the last update","format":"dateTime","type":"string","x-read-only":true},"values":{"description":"Published product attributes values, see <a href='/concepts/products.html#focus-on-the-product-values'>Product values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"data":{"description":"<a href='api-reference.html#Productuuid'>Product</a> value","type":"object"},"locale":{"description":"<a href='api-reference.html#Locale'>Locale</a> code of the product value","type":"string"},"scope":{"description":"<a href='api-reference.html#Channel'>Channel</a> code of the product value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Product values section"}},"required":["identifier"],"type":"object"}],"type":"object"},"ReferenceEntity":{"allOf":[{"properties":{"_links":{"properties":{"image_download":{"properties":{"href":{"description":"URI to download the binaries of the reference entity image file","type":"string"}},"type":"object"}},"type":"object","x-read-only":true}},"type":"object"},{"example":{"code":"brands","image":"0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png","labels":{"en_US":"Brands","fr_FR":"Marques"}},"properties":{"code":{"description":"Reference entity code","type":"string","x-immutable":true},"image":{"default":null,"description":"Code of the reference entity image","type":"string"},"labels":{"default":{},"description":"Reference entity labels for each locale","properties":{"localeCode":{"description":"Reference entity label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}],"example":{"_links":{"image_download":{"href":"https://demo.akeneo.com/api/rest/v1/reference-entities-media-files/0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png"}},"code":"brands","image":"0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png","labels":{"en_US":"Brands","fr_FR":"Marques"}},"type":"object"},"ReferenceEntityAttribute":{"example":{"code":"description","is_required_for_completeness":true,"is_rich_text_editor":true,"is_textarea":true,"labels":{"en_US":"Description","fr_FR":"Description"},"max_characters":null,"type":"text","validation_regexp":null,"validation_rule":"none","value_per_channel":false,"value_per_locale":true},"properties":{"allowed_extensions":{"default":[],"description":"Extensions allowed when the attribute type is `image`","items":{"type":"string"},"type":"array","x-warning":"Only for `image` attribute type"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"decimals_allowed":{"default":false,"description":"Whether decimals are allowed when the attribute type is `number`","type":"boolean","x-warning":"Only for `number` attribute type"},"is_required_for_completeness":{"default":false,"description":"Whether the attribute should be part of the record's completeness calculation","type":"boolean"},"is_rich_text_editor":{"description":"Whether the UI should display a rich text editor instead of a simple text area when the attribute type is `text`","type":"boolean","x-validation-rules":"Required when the property `is_textarea` is equal to `true`","x-warning":"Only for `text` attribute type"},"is_textarea":{"default":false,"description":"Whether the UI should display a text area instead of a simple field when the attribute type is `text`","type":"boolean","x-warning":"Only for `text` attribute type"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"max_characters":{"description":"Maximum number of characters allowed for the value of the attribute when the attribute type is `text`","type":"integer","x-warning":"Only for `text` attribute type"},"max_file_size":{"default":null,"description":"Max file size in MB when the attribute type is `image`","type":"string","x-warning":"Only for `image` attribute type"},"max_value":{"default":null,"description":"Maximum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The maximum value must be greater than the minimum value","x-warning":"Only for `number` attribute type"},"min_value":{"default":null,"description":"Minimum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The minimum value must be lower than the maximum value","x-warning":"Only for `number` attribute type"},"reference_entity_code":{"default":null,"description":"Code of the linked reference entity when the attribute type is `reference_entity_single_link` or `reference_entity_multiple_links`","type":"string","x-immutable":true,"x-validation-rules":"Required when the attribute type is either `reference_entity_single_link` or `reference_entity_multiple_links`","x-warning":"Only for `reference_entity_single_link` and `reference_entity_multiple_links` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/reference-entities.html#reference-entity-attribute'>type</a> section for more details.","enum":["text","image","number","single_option","multiple_options","reference_entity_single_link","reference_entity_multiple_links"],"type":"string","x-immutable":true},"validation_regexp":{"default":null,"description":"Regexp expression used to validate the attribute value when the attribute type is `text`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `text` attribute type"},"validation_rule":{"default":"none","description":"Validation rule type used to validate the attribute value when the attribute type is `text`","enum":["email","url","regexp","none"],"type":"string","x-warning":"Only for `text` attribute type"},"value_per_channel":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"value_per_locale":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true}},"required":["code","type"],"type":"object"},"ReferenceEntityAttributeList":{"items":{"example":{"code":"description","is_required_for_completeness":true,"is_rich_text_editor":true,"is_textarea":true,"labels":{"en_US":"Description","fr_FR":"Description"},"max_characters":null,"type":"text","validation_regexp":null,"validation_rule":"none","value_per_channel":false,"value_per_locale":true},"properties":{"allowed_extensions":{"default":[],"description":"Extensions allowed when the attribute type is `image`","items":{"type":"string"},"type":"array","x-warning":"Only for `image` attribute type"},"code":{"description":"Attribute code","type":"string","x-immutable":true},"decimals_allowed":{"default":false,"description":"Whether decimals are allowed when the attribute type is `number`","type":"boolean","x-warning":"Only for `number` attribute type"},"is_required_for_completeness":{"default":false,"description":"Whether the attribute should be part of the record's completeness calculation","type":"boolean"},"is_rich_text_editor":{"description":"Whether the UI should display a rich text editor instead of a simple text area when the attribute type is `text`","type":"boolean","x-validation-rules":"Required when the property `is_textarea` is equal to `true`","x-warning":"Only for `text` attribute type"},"is_textarea":{"default":false,"description":"Whether the UI should display a text area instead of a simple field when the attribute type is `text`","type":"boolean","x-warning":"Only for `text` attribute type"},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"},"max_characters":{"description":"Maximum number of characters allowed for the value of the attribute when the attribute type is `text`","type":"integer","x-warning":"Only for `text` attribute type"},"max_file_size":{"default":null,"description":"Max file size in MB when the attribute type is `image`","type":"string","x-warning":"Only for `image` attribute type"},"max_value":{"default":null,"description":"Maximum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The maximum value must be greater than the minimum value","x-warning":"Only for `number` attribute type"},"min_value":{"default":null,"description":"Minimum value allowed when the attribute type is `number`","type":"string","x-validation-rules":"The minimum value must be lower than the maximum value","x-warning":"Only for `number` attribute type"},"reference_entity_code":{"default":null,"description":"Code of the linked reference entity when the attribute type is `reference_entity_single_link` or `reference_entity_multiple_links`","type":"string","x-immutable":true,"x-validation-rules":"Required when the attribute type is either `reference_entity_single_link` or `reference_entity_multiple_links`","x-warning":"Only for `reference_entity_single_link` and `reference_entity_multiple_links` attribute type"},"type":{"description":"Attribute type. See <a href='/concepts/reference-entities.html#reference-entity-attribute'>type</a> section for more details.","enum":["text","image","number","single_option","multiple_options","reference_entity_single_link","reference_entity_multiple_links"],"type":"string","x-immutable":true},"validation_regexp":{"default":null,"description":"Regexp expression used to validate the attribute value when the attribute type is `text`","type":"string","x-validation-rules":"Required when the property `validation_rule` is equal to `regexp`","x-warning":"Only for `text` attribute type"},"validation_rule":{"default":"none","description":"Validation rule type used to validate the attribute value when the attribute type is `text`","enum":["email","url","regexp","none"],"type":"string","x-warning":"Only for `text` attribute type"},"value_per_channel":{"default":false,"description":"Whether the attribute is scopable, i.e. can have one value by channel","type":"boolean","x-immutable":true},"value_per_locale":{"default":false,"description":"Whether the attribute is localizable, i.e. can have one value by locale","type":"boolean","x-immutable":true}},"required":["code","type"],"type":"object"},"type":"array"},"ReferenceEntityAttributeOption":{"example":{"code":"global_nomad","labels":{"en_US":"Global Nomad","fr_FR":"Nomade du Monde"}},"properties":{"code":{"description":"Attribute's option code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"},"ReferenceEntityAttributeOptionList":{"items":{"example":{"code":"global_nomad","labels":{"en_US":"Global Nomad","fr_FR":"Nomade du Monde"}},"properties":{"code":{"description":"Attribute's option code","type":"string","x-immutable":true},"labels":{"default":{},"description":"Attribute labels for each locale","properties":{"localeCode":{"description":"Attribute label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"},"type":"array"},"ReferenceEntityItemList":{"properties":{"_links":{"properties":{"image_download":{"properties":{"href":{"description":"URI to download the binaries of the reference entity image file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"ReferenceEntityList":{"allOf":[{"properties":{"_links":{"properties":{"image_download":{"properties":{"href":{"description":"URI to download the binaries of the reference entity image file","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"brands","image":"0/2/d/6/54d81dc888ba1501a8g765f3ab5797569f3bv756c_ref_img.png","labels":{"en_US":"Brands","fr_FR":"Marques"}},"properties":{"code":{"description":"Reference entity code","type":"string","x-immutable":true},"image":{"default":null,"description":"Code of the reference entity image","type":"string"},"labels":{"default":{},"description":"Reference entity labels for each locale","properties":{"localeCode":{"description":"Reference entity label for the locale `localeCode`","type":"string"}},"type":"object","x-validation-rules":"The `localeCode` is the code of an existing and activated locale"}},"required":["code"],"type":"object"}],"type":"object"},"ReferenceEntityRecord":{"example":{"code":"kartell","created":"2025-08-15T13:52:10.906Z","updated":"2025-08-15T13:52:10.906Z","values":{"collection_overview":[{"channel":null,"data":"5/1/d/8/51d81dc778ba1501a8f998f3ab5797569f3b9e25_img.png","locale":null}],"country":[{"channel":null,"data":"italy","locale":null}],"creation_year":[{"channel":null,"data":"1949","locale":null}],"description":[{"channel":null,"data":"Kartell, the Italian furniture company that sells modern and remarkable pieces of furnitures.","locale":"en_US"},{"channel":null,"data":"Kartell, l'éditeur de meuble italien spécialisé dans la signature de belle pièces au design contemporain.","locale":"fr_FR"}],"image":[{"channel":null,"data":"0/c/b/0/0cb0c0e115dedba676f8d1ad8343ec207ab54c7b_image.jpg","locale":null}],"label":[{"channel":null,"data":"Kartell","locale":"en_US"}]}},"properties":{"code":{"description":"Code of the record","type":"string","x-immutable":true},"created":{"default":null,"description":"Date of creation.","format":"dateTime","type":"string","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"updated":{"default":null,"description":"Date of the last update.","format":"dateTime","type":"string","x-from-version":"5.0","x-read-only":true},"values":{"description":"Record attributes values, see <a href='/concepts/reference-entities.html#focus-on-the-reference-entity-record-values'>Reference entity record values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"channel":{"description":"Channel code of the reference entity record value","type":"string"},"data":{"description":"Reference entity record value. See <a href='/concepts/reference-entities.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"locale":{"description":"Locale code of the reference entity record value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Reference entity record values section"}},"required":["code"],"type":"object"},"ReferenceEntityRecordItemList":{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"ReferenceEntityRecordList":{"allOf":[{"properties":{"_links":{"properties":{"self":{"properties":{"href":{"description":"URI of the resource","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},{"example":{"code":"kartell","created":"2025-08-15T13:52:10.906Z","updated":"2025-08-15T13:52:10.906Z","values":{"collection_overview":[{"channel":null,"data":"5/1/d/8/51d81dc778ba1501a8f998f3ab5797569f3b9e25_img.png","locale":null}],"country":[{"channel":null,"data":"italy","locale":null}],"creation_year":[{"channel":null,"data":"1949","locale":null}],"description":[{"channel":null,"data":"Kartell, the Italian furniture company that sells modern and remarkable pieces of furnitures.","locale":"en_US"},{"channel":null,"data":"Kartell, l'éditeur de meuble italien spécialisé dans la signature de belle pièces au design contemporain.","locale":"fr_FR"}],"image":[{"channel":null,"data":"0/c/b/0/0cb0c0e115dedba676f8d1ad8343ec207ab54c7b_image.jpg","locale":null}],"label":[{"channel":null,"data":"Kartell","locale":"en_US"}]}},"properties":{"code":{"description":"Code of the record","type":"string","x-immutable":true},"created":{"default":null,"description":"Date of creation.","format":"dateTime","type":"string","x-from-version":"5.0","x-immutable":true,"x-read-only":true},"updated":{"default":null,"description":"Date of the last update.","format":"dateTime","type":"string","x-from-version":"5.0","x-read-only":true},"values":{"description":"Record attributes values, see <a href='/concepts/reference-entities.html#focus-on-the-reference-entity-record-values'>Reference entity record values</a> section for more details","properties":{"attributeCode":{"items":{"properties":{"channel":{"description":"Channel code of the reference entity record value","type":"string"},"data":{"description":"Reference entity record value. See <a href='/concepts/reference-entities.html#the-data-format'>the `data` format</a> section for more details.","type":"object"},"locale":{"description":"Locale code of the reference entity record value","type":"string"}},"type":"object"},"type":"array"}},"type":"object","x-validation-rules":"Validation rules detailed in Reference entity record values section"}},"required":["code"],"type":"object"}],"type":"object"},"SearchAfterPagination":{"properties":{"_links":{"properties":{"first":{"properties":{"href":{"description":"URI of the first page of resources","type":"string"}},"type":"object"},"next":{"properties":{"href":{"description":"URI of the next page of resources","type":"string"}},"type":"object"},"self":{"properties":{"href":{"description":"URI of the current page of resources","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"}}}}