openapi: 3.2.0 info: title: Akeneo API REFERENCE Category API version: 1.0.0 description: 'This is the reference documentation for the Akeneo PIM REST API. It provides detailed information about the available endpoints, request and response formats, and authentication methods. For more information, visit the Akeneo PIM documentation.' license: name: Open Software License 3.0 url: http://opensource.org/licenses/OSL-3.0 contact: name: Akeneo Support url: https://www.akeneo.com/support-help-center/ email: contact@akeneo.com servers: - url: '{your-pim-url}' variables: your-pim-url: default: '' description: 'Set the PIM url you want to target ex: https://my-pim.cloud.akeneo.com or https://localhost:8443' tags: - name: Category description: 'A category is a way of classifying products. Categories constitute category trees and in Akeneo, you can have multiple category trees with an unlimited number of levels (categories, subcategories, subsubcategories..).' paths: /api/rest/v1/categories: get: operationId: get_categories x-visibility: public summary: Get the list of categories description: 'This endpoint allows you to get a list of categories. Categories are paginated and sorted by `root/left`. You can filter the categories by using the `search` query parameter, which supports searching by category code or label. The response includes the category''s code, parent code, labels, values, and channel requirements. You can also specify the `with_position` query parameter to include the position of the category in its level. The `with_enriched_attributes` query parameter allows you to include enriched attributes.' tags: - Category security: - bearerToken: [] parameters: - name: search in: query description: 'The `search` query parameter allows you to filter categories based on specific criteria. For more details see the [Filters section](https://api.akeneo.com/documentation/filter.html#filter-categories). ' required: false schema: type: string examples: getOnlyRootCategories: summary: Filter the categories to get only root categories value: '{"is_root":[{"operator":"=","value":true}]}' getCategoriesByParent: summary: Filter the categories by parent value: '{"parent":[{"operator":"=","value":"categoryA"}]}' getCategoriesByCode: summary: Filter the categories by their code value: '{"code":[{"operator":"IN","value":["category_code1","category_code2"]}]}' getCategoriesByUpdatedDate: summary: Filter the categories by their update date value: '{"updated":[{"operator":">","value":"2021-05-17T10:00:00Z"}]}' - in: query name: page description: 'Specify which page of results to retrieve when using pagination. It is useful for navigating through large datasets by breaking them into smaller, manageable pages. See [Pagination](https://api.akeneo.com/documentation/pagination.html) section for more details. ' required: false schema: type: integer default: 1 example: 1 - in: query name: limit description: 'Specify the maximum number of results to return per page. It is useful for controlling the amount of data returned in a single request, especially when dealing with large datasets. See [Pagination](https://api.akeneo.com/documentation/pagination.html) section for more details. ' required: false schema: type: integer default: 10 minimum: 1 maximum: 100 example: 100 - in: query name: with_count description: 'Return the count of items in the response. Be careful with that, on a big catalog, it can decrease performance in a significant way. It is useful for understanding the size of the dataset being returned, especially when dealing with large collections. Use it judiciously to avoid performance issues. ' required: false schema: type: boolean default: false example: true - in: query name: with_position description: 'Return information about the category''s position within its category tree. When set to `true`, the response will include the position of the category in its level, which can be useful for understanding the hierarchy and order of categories. If set to `false`, the response will not include this information, which can improve performance. ' required: false schema: type: boolean default: false example: true - in: query name: with_enriched_attributes description: 'Return the attribute values of the category. When set to `true`, the response will include the values of all attributes associated with the category. This is useful for retrieving detailed information about the category''s attributes, such as their values and configurations. If set to `false`, the response will not include attribute values, which can improve performance ' required: false schema: type: boolean default: false example: true responses: '200': description: 'Return categories paginated. The response is paginated and includes links to navigate through the pages. ' content: application/json: schema: title: Categories type: object allOf: - type: object properties: _links: type: object properties: self: type: object properties: href: type: string description: URI of the current page of resources example: https://demo.akeneo.com/api/rest/v1/categories?page=2&limit=5 first: type: object properties: href: type: string description: URI of the first page of resources example: https://demo.akeneo.com/api/rest/v1/categories?page=1&limit=5 previous: type: object properties: href: type: string description: URI of the previous page of resources example: https://demo.akeneo.com/api/rest/v1/categories?page=1&limit=5 next: type: object properties: href: type: string description: URI of the next page of resources example: https://demo.akeneo.com/api/rest/v1/categories?page=3&limit=5 - type: object properties: current_page: type: integer description: Current page number example: 2 items_count: type: integer description: Total number of items (only if `with_count` parameter is set to true) example: 5 _embedded: type: object properties: items: type: array items: allOf: - type: object properties: _links: type: object properties: self: type: object properties: href: type: string description: URI of the resource example: https://demo.akeneo.com/api/rest/v1/categories/winter_collection - type: object properties: code: type: string description: Category code x-immutable: true example: winter_collection parent: type: - string - 'null' description: Category code of the parent's category x-validation-rules: '- It is either equal to `null` or to an existing category code. - If equal to an existing category code, it cannot reference itself. ' example: root_category updated: type: string description: Date of the last update format: date-time readOnly: true example: '2021-05-21T11:32:00+02:00' position: type: integer description: Position of the category in its level, start from 1 (only available when query parameter `with_position` is set to `true`) readOnly: true example: 1 labels: type: object default: {} patternProperties: ^[a-zA-Z]{2,}_[a-zA-Z0-9_]{2,}$: description: Category label for the specified locale type: - string - 'null' example: winter collection x-validation-rules: The `localeCode` is the code of an existing and activated locale example: en_US: Winter collection fr_FR: Collection hiver de_DE: Winter-Kollektion channel_requirements: type: array description: 'List of Channel codes on which the category is required for products completeness. Only category trees can be required, not child categories. ' items: type: string default: [] example: - ecommerce - mobile values: type: object description: Attribute values additionalProperties: type: object properties: type: type: string description: The attribute type example: textarea locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the attribute value' example: en_US channel: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the attribute value' example: ecommerce attribute_code: type: string description: The attribute code with its uuid (attributeCode|attributeUuid) example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 data: description: Attribute value oneOf: - type: string example:

Winter collection description

- type: boolean example: false - type: array items: oneOf: - type: string example: noticeA - type: object properties: product_uuid: type: string example: 12951d98-210e-4b1c-ab18-7fdgf1bd14f3 product_model_code: type: string example: test_model_1 - type: object properties: size: type: integer description: Size of the file in bytes example: 1401359 extension: type: string description: File extension example: jpg file_path: type: string description: Path to the file in the storage example: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: type: string description: MIME type of the file example: image/jpeg original_filename: type: string description: Original filename before upload example: IMG_7860.jpg example:

Winter collection description

example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US: data:

Winter collection description

type: textarea channel: ecommerce locale: en_US attribute_code: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7|ecommerce|en_US: data: size: 1401359 extension: jpg file_path: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: image/jpeg original_filename: IMG_7860.jpg type: image channel: ecommerce locale: en_US attribute_code: image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7 validations: type: object description: Category validations x-validation-rules: Only applicable to root category default: {} properties: max_categories_per_product: type: integer description: Maximum number of categories per product only_leaves: type: boolean description: Categorization restricted to the lowest level is_mandatory: type: boolean description: Category is mandatory for every product example: max_categories_per_product: 5 only_leaves: true is_mandatory: false example: items: - _links: self: href: https://demo.akeneo.com/api/rest/v1/categories/winter_collection code: winter_collection parent: null updated: '2021-05-21T11:32:00+02:00' position: 1 labels: en_US: Winter collection fr_FR: Collection hiver de_DE: Winter-Kollektion values: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US: data:

Winter collection description

\n type: textarea channel: ecommerce locale: en_US attribute_code: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 channel_requirements: - ecommerce - mobile example: _links: self: href: https://demo.akeneo.com/api/rest/v1/categories?page=2&limit=5&with_count=true first: href: https://demo.akeneo.com/api/rest/v1/categories?page=1&limit=5&with_count=true previous: href: https://demo.akeneo.com/api/rest/v1/categories?page=1&limit=5&with_count=true next: href: https://demo.akeneo.com/api/rest/v1/categories?page=3&limit=5&with_count=true current_page: 2 items_count: 10 _embedded: items: - _links: self: href: https://demo.akeneo.com/api/rest/v1/categories/winter_collection code: winter_collection parent: null updated: '2021-05-21T11:32:00+02:00' position: 1 labels: en_US: Winter collection fr_FR: Collection hiver de_DE: Winter-Kollektion values: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US: data:

Winter collection description

\n type: textarea channel: ecommerce locale: en_US attribute_code: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7|ecommerce|en_US: data: size: 1401359 extension: jpg file_path: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: image/jpeg original_filename: IMG_7860.jpg type: image channel: ecommerce locale: en_US attribute_code: image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7 channel_requirements: - ecommerce - mobile - _links: self: href: https://demo.akeneo.com/api/rest/v1/categories/woman code: woman parent: winter_collection updated: '2021-04-21T10:41:02+02:00' position: 1 labels: en_US: Woman fr_FR: Femme de_DE: Damen values: {} channel_requirements: - ecommerce - mobile - _links: self: href: https://demo.akeneo.com/api/rest/v1/categories/man code: man parent: winter_collection updated: '2021-03-02T12:59:59+02:00' position: 2 labels: en_US: Man fr_FR: Homme de_DE: Herren values: {} channel_requirements: [] - _links: self: href: https://demo.akeneo.com/api/rest/v1/categories/kids code: kids parent: winter_collection updated: '2021-01-03T12:40:00+02:00' position: 3 labels: en_US: kids fr_FR: Enfant de_DE: Kinder values: {} channel_requirements: [] - _links: self: href: https://demo.akeneo.com/api/rest/v1/categories/summer_collection code: summer_collection parent: null updated: '2021-04-04T09:42:00+02:00' position: 1 labels: en_US: Summer collection fr_FR: Collection été de_DE: Sommer-Kollektion values: {} channel_requirements: - print '400': description: 'This response indicates that the server cannot process the request due to a client error, such as malformed request syntax, invalid request message framing, or deceptive request routing. It is typically used when the server cannot understand the request due to invalid JSON or other client-side issues. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 400 message: Invalid JSON message received '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '406': description: 'This response indicates that the server cannot produce a response matching the list of acceptable values defined in the request''s `Accept` header. It is typically used when the requested resource is not available in the requested format. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 406 message: xxx in `Accept` header is not valid. Only `application/json` is allowed. post: operationId: post_category x-visibility: public summary: Create a new category description: 'This endpoint allows you to create a new category. You can specify the category''s code, parent category, labels, values, validations, and channel requirements. The request body should be in JSON format and include the necessary fields for the category.' tags: - Category security: - bearerToken: [] requestBody: description: The category to be created content: application/json: schema: required: - code type: object properties: code: type: string description: Category code x-immutable: true example: winter_collection parent: type: - string - 'null' description: Category code of the parent's category x-validation-rules: '- It is either equal to `null` or to an existing category code. - If equal to an existing category code, it cannot reference itself. ' example: root_category updated: type: string description: Date of the last update format: date-time readOnly: true example: '2021-05-21T11:32:00+02:00' position: type: integer description: Position of the category in its level, start from 1 (only available when query parameter `with_position` is set to `true`) readOnly: true example: 1 labels: type: object default: {} patternProperties: ^[a-zA-Z]{2,}_[a-zA-Z0-9_]{2,}$: description: Category label for the specified locale type: - string - 'null' example: winter collection x-validation-rules: The `localeCode` is the code of an existing and activated locale example: en_US: Winter collection fr_FR: Collection hiver de_DE: Winter-Kollektion channel_requirements: type: array description: 'List of Channel codes on which the category is required for products completeness. Only category trees can be required, not child categories. ' items: type: string default: [] example: - ecommerce - mobile values: description: Attribute values default: [] oneOf: - type: array description: Array format for attribute values items: type: object properties: locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the attribute value' example: en_US channel: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the attribute value' example: ecommerce attribute_code: type: string description: The attribute code with its uuid (attributeCode|attributeUuid) example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 data: description: 'Attribute value. It should be a `string` for Text and Text Area attributes, a `boolean` for Yes/No attribute and for Image attribute use the [create category media file endpoint](https://api.akeneo.com/api-reference.html#post_category_media_files). It can also be `null` to remove the value. ' oneOf: - type: string example:

Winter collection description

- type: boolean example: false - type: array description: Array of strings for asset collections or array of objects for product/product model sort items: oneOf: - type: string example: noticeA - type: object properties: product_uuid: type: string example: 12951d98-210e-4b1c-ab18-7fdgf1bd14f3 product_model_code: type: string example: test_model_1 - type: object properties: size: type: integer description: Size of the file in bytes example: 1401359 extension: type: string description: File extension example: jpg file_path: type: string description: Path to the file in the storage example: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: type: string description: MIME type of the file example: image/jpeg original_filename: type: string description: Original filename before upload example: IMG_7860.jpg example:

Winter collection description

example: - data:

Winter collection description

channel: ecommerce locale: en_US attribute_code: a_text_area_attribute - data: false channel: ecommerce locale: null attribute_code: a_boolean_attribute - type: object description: Object format for attribute values (legacy format) additionalProperties: type: object properties: type: type: string description: The attribute type example: textarea locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the attribute value' example: en_US channel: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the attribute value' example: ecommerce attribute_code: type: string description: The attribute code with its uuid (attributeCode|attributeUuid) example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 data: description: 'Attribute value. It should be a `string` for Text and Text Area attributes, a `boolean` for Yes/No attribute and for Image attribute use the [create category media file endpoint](https://api.akeneo.com/api-reference.html#post_category_media_files). It can also be `null` to remove the value. ' oneOf: - type: string example:

Winter collection description

- type: boolean example: false - type: array description: Array of strings for asset collections or array of objects for product/product model sort items: oneOf: - type: string example: noticeA - type: object properties: product_uuid: type: string example: 12951d98-210e-4b1c-ab18-7fdgf1bd14f3 product_model_code: type: string example: test_model_1 - type: object properties: size: type: integer description: Size of the file in bytes example: 1401359 extension: type: string description: File extension example: jpg file_path: type: string description: Path to the file in the storage example: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: type: string description: MIME type of the file example: image/jpeg original_filename: type: string description: Original filename before upload example: IMG_7860.jpg example:

Winter collection description

example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US: data:

Winter collection description

type: textarea channel: ecommerce locale: en_US attribute_code: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7|ecommerce|en_US: data: size: 1401359 extension: jpg file_path: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: image/jpeg original_filename: IMG_7860.jpg type: image channel: ecommerce locale: en_US attribute_code: image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7 example: - data:

Winter collection description

channel: ecommerce locale: en_US attribute_code: a_text_area_attribute - data: false channel: ecommerce locale: null attribute_code: a_boolean_attribute validations: type: object description: Category validations x-validation-rules: Only applicable to root category default: {} properties: max_categories_per_product: type: integer description: Set maximum number of categories per product only_leaves: type: boolean description: Restrict categorization to the lowest level is_mandatory: type: boolean description: Set category as mandatory for every product example: max_categories_per_product: 5 only_leaves: true is_mandatory: false examples: categoryWithValuesAndValidations: summary: Example of creating a category with values and validations value: code: winter_collection parent: null labels: en_US: Winter collection fr_FR: Collection hiver values: - data:

Winter collection description

channel: ecommerce locale: en_US attribute_code: a_text_area_attribute - data: true channel: ecommerce locale: en_US attribute_code: a_boolean_attribute validations: max_categories_per_product: 42 only_leaves: false is_mandatory: true channel_requirements: - ecommerce - mobile rootCategory: summary: Example of creating a root category value: code: root_category parent: null categoryWithParent: summary: Example of creating a category with a parent value: code: category_1, parent: root_category categoryWithLabels: summary: Example of creating a category with labels value: code: category_2 parent: root_category, labels: en_US: Category two fr_FR: Catégorie deux required: false responses: '201': description: 'This response indicates that the entity was successfully created. The server has fulfilled the request and created a new resource. The response includes a `Location` header that contains the URI of the newly created resource. ' headers: Location: description: URI of the created resource schema: type: string '400': description: 'This response indicates that the server cannot process the request due to a client error, such as malformed request syntax, invalid request message framing, or deceptive request routing. It is typically used when the server cannot understand the request due to invalid JSON or other client-side issues. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 400 message: Invalid JSON message received '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '415': description: 'This response indicates that the `Content-type` header of the request is not supported by the server. The server expects the `Content-type` header to be `application/json`, and any other value will result in this error. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 415 message: xxx in `Content-type` header is not valid. Only `application/json` is allowed." '422': description: 'This response indicates that the validation of the entity given in the body of the request failed. It occurs when the data provided does not meet the required format or constraints defined by the API, and includes a link to the documentation for reference. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation. _links: type: object properties: documentation: type: object properties: href: type: string example: http://api.akeneo.com/api-reference.html example: code: 422 message: Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation. _links: documentation: href: http://api.akeneo.com/api-reference.html patch: operationId: patch_categories x-visibility: public summary: Create or update several categories description: This endpoint allows you to update and/or create several categories at once. tags: - Category security: - bearerToken: [] x-body-by-line: Contains several lines, each line is a category in JSON standard format requestBody: description: "Body containing the categories to update or create.\nEach line is a JSON object representing a category.\nEach object contains the following properties:\n - `code`: Category code (string) (mandatory)\n - `parent`: Category code of the parent's category (string) (optional, null for root categories)\n - `updated`: Date of the last update (string) (read-only)\n - `position`: Position of the category in its level, start from 1 (only available when query parameter \"with_position\" is set to \"true\") (integer) (read-only)\n - `labels`: Category label for the specified locale (object) (optional)\n - `values`: Attribute values (array) (optional)\n - `validations`: the validations for products in this category (object) (optional)\n - `channel_requirements`: List of Channel codes on which the category is required for products completeness. Only category trees can be required, not child categories (array of strings) (optional)\n" content: application/vnd.akeneo.collection+json: schema: type: string x-body-by-line-schema: type: object properties: code: type: string description: Category code x-immutable: true example: winter_collection parent: type: - string - 'null' description: Category code of the parent's category x-validation-rules: '- It is either equal to `null` or to an existing category code. - If equal to an existing category code, it cannot reference itself. ' example: root_category updated: type: string description: Date of the last update format: date-time readOnly: true example: '2021-05-21T11:32:00+02:00' position: type: integer description: Position of the category in its level, start from 1 (only available when query parameter `with_position` is set to `true`) readOnly: true example: 1 labels: type: object default: {} patternProperties: ^[a-zA-Z]{2,}_[a-zA-Z0-9_]{2,}$: description: Category label for the specified locale type: - string - 'null' example: winter collection x-validation-rules: The `localeCode` is the code of an existing and activated locale example: en_US: Winter collection fr_FR: Collection hiver de_DE: Winter-Kollektion channel_requirements: type: array description: 'List of Channel codes on which the category is required for products completeness. Only category trees can be required, not child categories. ' items: type: string default: [] example: - ecommerce - mobile values: description: Attribute values default: [] oneOf: - type: array description: Array format for attribute values items: type: object properties: locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the attribute value' example: en_US channel: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the attribute value' example: ecommerce attribute_code: type: string description: The attribute code with its uuid (attributeCode|attributeUuid) example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 data: description: 'Attribute value. It should be a `string` for Text and Text Area attributes, a `boolean` for Yes/No attribute and for Image attribute use the [create category media file endpoint](https://api.akeneo.com/api-reference.html#post_category_media_files). It can also be `null` to remove the value. ' oneOf: - type: string example:

Winter collection description

- type: boolean example: false - type: array description: Array of strings for asset collections or array of objects for product/product model sort items: oneOf: - type: string example: noticeA - type: object properties: product_uuid: type: string example: 12951d98-210e-4b1c-ab18-7fdgf1bd14f3 product_model_code: type: string example: test_model_1 - type: object properties: size: type: integer description: Size of the file in bytes example: 1401359 extension: type: string description: File extension example: jpg file_path: type: string description: Path to the file in the storage example: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: type: string description: MIME type of the file example: image/jpeg original_filename: type: string description: Original filename before upload example: IMG_7860.jpg example:

Winter collection description

example: - data:

Winter collection description

channel: ecommerce locale: en_US attribute_code: a_text_area_attribute - data: false channel: ecommerce locale: null attribute_code: a_boolean_attribute - type: object description: Object format for attribute values (legacy format) additionalProperties: type: object properties: type: type: string description: The attribute type example: textarea locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the attribute value' example: en_US channel: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the attribute value' example: ecommerce attribute_code: type: string description: The attribute code with its uuid (attributeCode|attributeUuid) example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 data: description: 'Attribute value. It should be a `string` for Text and Text Area attributes, a `boolean` for Yes/No attribute and for Image attribute use the [create category media file endpoint](https://api.akeneo.com/api-reference.html#post_category_media_files). It can also be `null` to remove the value. ' oneOf: - type: string example:

Winter collection description

- type: boolean example: false - type: array description: Array of strings for asset collections or array of objects for product/product model sort items: oneOf: - type: string example: noticeA - type: object properties: product_uuid: type: string example: 12951d98-210e-4b1c-ab18-7fdgf1bd14f3 product_model_code: type: string example: test_model_1 - type: object properties: size: type: integer description: Size of the file in bytes example: 1401359 extension: type: string description: File extension example: jpg file_path: type: string description: Path to the file in the storage example: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: type: string description: MIME type of the file example: image/jpeg original_filename: type: string description: Original filename before upload example: IMG_7860.jpg example:

Winter collection description

example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US: data:

Winter collection description

type: textarea channel: ecommerce locale: en_US attribute_code: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7|ecommerce|en_US: data: size: 1401359 extension: jpg file_path: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: image/jpeg original_filename: IMG_7860.jpg type: image channel: ecommerce locale: en_US attribute_code: image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7 example: - data:

Winter collection description

channel: ecommerce locale: en_US attribute_code: a_text_area_attribute - data: false channel: ecommerce locale: null attribute_code: a_boolean_attribute validations: type: object description: Category validations x-validation-rules: Only applicable to root category default: {} properties: max_categories_per_product: type: integer description: Set maximum number of categories per product only_leaves: type: boolean description: Restrict categorization to the lowest level is_mandatory: type: boolean description: Set category as mandatory for every product example: max_categories_per_product: 5 only_leaves: true is_mandatory: false example: '{"code":"spring_collection","parent":null} {"code":"woman","parent":"spring_collectionn"} {"code":"man","parent":"spring_collection"} ' required: false responses: '200': description: Returns a plain text response whose lines are JSON containing the status of each update or creation x-no-entity: true content: application/vnd.akeneo.collection+json: schema: type: string x-body-by-line-schema: type: object properties: line: type: integer description: Line number example: 10 code: type: string description: Resource code example: my_code status_code: type: integer description: HTTP status code, see [Client errors](https://api.akeneo.com/documentation/responses.html#client-errors) to understand the meaning of each code example: 422 message: type: string description: Message explaining the error example: Property "name" expects a string as data, "NULL" given. Check the API reference documentation. example: '{"line":1,"code":"spring_collection","status_code":201} {"line":2,"code":"woman","status_code":422,"message":"Category \"spring_collectionn\" does not exist."} {"line":3,"code":"man","status_code":204} ' '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '413': description: 'This response indicates that the request entity is larger than the server is willing or able to process. It can occur when the number of resources in a batch request exceeds the maximum allowed limit. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 413 message: Too many resources to process, 100 is the maximum allowed. '415': description: 'This response indicates that the `Content-type` header of the request is not supported by the server. The server expects the `Content-type` header to be `application/json`, and any other value will result in this error. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 415 message: xxx in `Content-type` header is not valid. Only `application/json` is allowed." /api/rest/v1/categories/{code}: get: operationId: get_category_by_code x-visibility: public summary: Get a category description: 'This endpoint allows you to retrieve a category by its code. The response includes the category''s details such as its labels, values, and channel requirements. You can also specify the `with_position` query parameter to include the position of the category in its level. The `with_enriched_attributes` query parameter allows you to include enriched attributes.' tags: - Category security: - bearerToken: [] parameters: - in: path name: code description: 'This path parameter is used to specify the unique identifier of the entity you want to retrieve or manipulate. It is essential for identifying the specific entity in the API requests. Ensure that the code is correctly formatted and corresponds to an existing entity in the system. ' required: true schema: type: string example: my_entity_code - in: query name: with_position description: 'Return information about the category''s position within its category tree. When set to `true`, the response will include the position of the category in its level, which can be useful for understanding the hierarchy and order of categories. If set to `false`, the response will not include this information, which can improve performance. ' required: false schema: type: boolean default: false example: true - in: query name: with_enriched_attributes description: 'Return the attribute values of the category. When set to `true`, the response will include the values of all attributes associated with the category. This is useful for retrieving detailed information about the category''s attributes, such as their values and configurations. If set to `false`, the response will not include attribute values, which can improve performance ' required: false schema: type: boolean default: false example: true responses: '200': description: 'This endpoint allows you to retrieve a category by its code. The response includes the category''s details such as its labels, values, and channel requirements. You can also specify the `with_position` query parameter to include the position of the category in its level. ' content: application/json: schema: type: object properties: code: type: string description: Category code x-immutable: true example: winter_collection parent: type: - string - 'null' description: Category code of the parent's category x-validation-rules: '- It is either equal to `null` or to an existing category code. - If equal to an existing category code, it cannot reference itself. ' example: root_category updated: type: string description: Date of the last update format: date-time readOnly: true example: '2021-05-21T11:32:00+02:00' position: type: integer description: Position of the category in its level, start from 1 (only available when query parameter `with_position` is set to `true`) readOnly: true example: 1 labels: type: object default: {} patternProperties: ^[a-zA-Z]{2,}_[a-zA-Z0-9_]{2,}$: description: Category label for the specified locale type: - string - 'null' example: winter collection x-validation-rules: The `localeCode` is the code of an existing and activated locale example: en_US: Winter collection fr_FR: Collection hiver de_DE: Winter-Kollektion channel_requirements: type: array description: 'List of Channel codes on which the category is required for products completeness. Only category trees can be required, not child categories. ' items: type: string default: [] example: - ecommerce - mobile values: type: object description: Attribute values additionalProperties: type: object properties: type: type: string description: The attribute type example: textarea locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the attribute value' example: en_US channel: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the attribute value' example: ecommerce attribute_code: type: string description: The attribute code with its uuid (attributeCode|attributeUuid) example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 data: description: Attribute value oneOf: - type: string example:

Winter collection description

- type: boolean example: false - type: array items: oneOf: - type: string example: noticeA - type: object properties: product_uuid: type: string example: 12951d98-210e-4b1c-ab18-7fdgf1bd14f3 product_model_code: type: string example: test_model_1 - type: object properties: size: type: integer description: Size of the file in bytes example: 1401359 extension: type: string description: File extension example: jpg file_path: type: string description: Path to the file in the storage example: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: type: string description: MIME type of the file example: image/jpeg original_filename: type: string description: Original filename before upload example: IMG_7860.jpg example:

Winter collection description

example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US: data:

Winter collection description

type: textarea channel: ecommerce locale: en_US attribute_code: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7|ecommerce|en_US: data: size: 1401359 extension: jpg file_path: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: image/jpeg original_filename: IMG_7860.jpg type: image channel: ecommerce locale: en_US attribute_code: image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7 validations: type: object description: Category validations x-validation-rules: Only applicable to root category default: {} properties: max_categories_per_product: type: integer description: Maximum number of categories per product only_leaves: type: boolean description: Categorization restricted to the lowest level is_mandatory: type: boolean description: Category is mandatory for every product example: max_categories_per_product: 5 only_leaves: true is_mandatory: false example: code: winter_collection parent: null updated: '2021-05-22T12:48:00+02:00' position: 1 labels: en_US: Winter collection fr_FR: Collection hiver values: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US: data:

Winter collection description

type: textarea channel: ecommerce locale: en_US attribute_code: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7|ecommerce|en_US: data: size: 1401359 extension: jpg file_path: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: image/jpeg original_filename: IMG_7860.jpg type: image channel: ecommerce locale: en_US attribute_code: image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7 channel_requirements: - ecommerce - mobile '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '404': description: 'This response indicates that the requested resource could not be found on the server. It can occur when the resource code given in the URI does not correspond to any existing PIM resource. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 404 message: Resource `my_resource_code` does not exist. '406': description: 'This response indicates that the server cannot produce a response matching the list of acceptable values defined in the request''s `Accept` header. It is typically used when the requested resource is not available in the requested format. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 406 message: xxx in `Accept` header is not valid. Only `application/json` is allowed. patch: operationId: patch_category_by_code x-visibility: public summary: Create or update a category description: 'This endpoint allows you to update a given category. Note that if no category exists for the given code, it creates it. You can specify the category''s code, parent category, labels, values, validations, and channel requirements. The request body should be in JSON format and include the necessary fields for the category.' tags: - Category security: - bearerToken: [] parameters: - in: path name: code description: 'This path parameter is used to specify the unique identifier of the entity you want to retrieve or manipulate. It is essential for identifying the specific entity in the API requests. Ensure that the code is correctly formatted and corresponds to an existing entity in the system. ' required: true schema: type: string example: my_entity_code requestBody: description: 'The category to update or create. If the category does not exist, it will be created. ' content: application/json: schema: type: object properties: code: type: string description: Category code x-immutable: true example: winter_collection parent: type: - string - 'null' description: Category code of the parent's category x-validation-rules: '- It is either equal to `null` or to an existing category code. - If equal to an existing category code, it cannot reference itself. ' example: root_category updated: type: string description: Date of the last update format: date-time readOnly: true example: '2021-05-21T11:32:00+02:00' position: type: integer description: Position of the category in its level, start from 1 (only available when query parameter `with_position` is set to `true`) readOnly: true example: 1 labels: type: object default: {} patternProperties: ^[a-zA-Z]{2,}_[a-zA-Z0-9_]{2,}$: description: Category label for the specified locale type: - string - 'null' example: winter collection x-validation-rules: The `localeCode` is the code of an existing and activated locale example: en_US: Winter collection fr_FR: Collection hiver de_DE: Winter-Kollektion channel_requirements: type: array description: 'List of Channel codes on which the category is required for products completeness. Only category trees can be required, not child categories. ' items: type: string default: [] example: - ecommerce - mobile values: description: Attribute values default: [] oneOf: - type: array description: Array format for attribute values items: type: object properties: locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the attribute value' example: en_US channel: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the attribute value' example: ecommerce attribute_code: type: string description: The attribute code with its uuid (attributeCode|attributeUuid) example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 data: description: 'Attribute value. It should be a `string` for Text and Text Area attributes, a `boolean` for Yes/No attribute and for Image attribute use the [create category media file endpoint](https://api.akeneo.com/api-reference.html#post_category_media_files). It can also be `null` to remove the value. ' oneOf: - type: string example:

Winter collection description

- type: boolean example: false - type: array description: Array of strings for asset collections or array of objects for product/product model sort items: oneOf: - type: string example: noticeA - type: object properties: product_uuid: type: string example: 12951d98-210e-4b1c-ab18-7fdgf1bd14f3 product_model_code: type: string example: test_model_1 - type: object properties: size: type: integer description: Size of the file in bytes example: 1401359 extension: type: string description: File extension example: jpg file_path: type: string description: Path to the file in the storage example: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: type: string description: MIME type of the file example: image/jpeg original_filename: type: string description: Original filename before upload example: IMG_7860.jpg example:

Winter collection description

example: - data:

Winter collection description

channel: ecommerce locale: en_US attribute_code: a_text_area_attribute - data: false channel: ecommerce locale: null attribute_code: a_boolean_attribute - type: object description: Object format for attribute values (legacy format) additionalProperties: type: object properties: type: type: string description: The attribute type example: textarea locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the attribute value' example: en_US channel: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the attribute value' example: ecommerce attribute_code: type: string description: The attribute code with its uuid (attributeCode|attributeUuid) example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 data: description: 'Attribute value. It should be a `string` for Text and Text Area attributes, a `boolean` for Yes/No attribute and for Image attribute use the [create category media file endpoint](https://api.akeneo.com/api-reference.html#post_category_media_files). It can also be `null` to remove the value. ' oneOf: - type: string example:

Winter collection description

- type: boolean example: false - type: array description: Array of strings for asset collections or array of objects for product/product model sort items: oneOf: - type: string example: noticeA - type: object properties: product_uuid: type: string example: 12951d98-210e-4b1c-ab18-7fdgf1bd14f3 product_model_code: type: string example: test_model_1 - type: object properties: size: type: integer description: Size of the file in bytes example: 1401359 extension: type: string description: File extension example: jpg file_path: type: string description: Path to the file in the storage example: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: type: string description: MIME type of the file example: image/jpeg original_filename: type: string description: Original filename before upload example: IMG_7860.jpg example:

Winter collection description

example: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26|ecommerce|en_US: data:

Winter collection description

type: textarea channel: ecommerce locale: en_US attribute_code: description|96b88bf4-c2b7-4b64-a1f9-5d4876c02c26 image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7|ecommerce|en_US: data: size: 1401359 extension: jpg file_path: 2/d/c/7/2dc791671d726e7438219d5dc7fd51a53d6bf2bb_IMG_7860.jpg mime_type: image/jpeg original_filename: IMG_7860.jpg type: image channel: ecommerce locale: en_US attribute_code: image_1|871b8686-79b5-415c-9c6f-a38f8732dfb7 example: - data:

Winter collection description

channel: ecommerce locale: en_US attribute_code: a_text_area_attribute - data: false channel: ecommerce locale: null attribute_code: a_boolean_attribute validations: type: object description: Category validations x-validation-rules: Only applicable to root category default: {} properties: max_categories_per_product: type: integer description: Set maximum number of categories per product only_leaves: type: boolean description: Restrict categorization to the lowest level is_mandatory: type: boolean description: Set category as mandatory for every product example: max_categories_per_product: 5 only_leaves: true is_mandatory: false examples: categoryWithValuesAndValidations: summary: Example of creating a category with values and validations value: code: winter_collection parent: null labels: en_US: Winter collection fr_FR: Collection hiver values: - data:

Winter collection description

channel: ecommerce locale: en_US attribute_code: a_text_area_attribute - data: true channel: ecommerce locale: en_US attribute_code: a_boolean_attribute validations: max_categories_per_product: 42 only_leaves: false is_mandatory: true channel_requirements: - ecommerce - mobile rootCategory: summary: Example of creating a root category value: code: root_category parent: null categoryWithParent: summary: Example of creating a category with a parent value: code: category_1, parent: root_category categoryWithLabels: summary: Example of creating a category with labels value: code: category_2 parent: root_category labels: en_US: Category two fr_FR: Catégorie deux required: true responses: '201': description: 'This response indicates that the entity was successfully created. The server has fulfilled the request and created a new resource. The response includes a `Location` header that contains the URI of the newly created resource. ' headers: Location: description: URI of the created resource schema: type: string '204': description: 'This response indicates that the request was successful and that there is no content to return. It is typically used in response to a successful update operation where the server does not need to return any data to the client. ' headers: Location: description: URI of the updated resource schema: type: string '400': description: 'This response indicates that the server cannot process the request due to a client error, such as malformed request syntax, invalid request message framing, or deceptive request routing. It is typically used when the server cannot understand the request due to invalid JSON or other client-side issues. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 400 message: Invalid JSON message received '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '415': description: 'This response indicates that the `Content-type` header of the request is not supported by the server. The server expects the `Content-type` header to be `application/json`, and any other value will result in this error. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 415 message: xxx in `Content-type` header is not valid. Only `application/json` is allowed." '422': description: 'This response indicates that the validation of the entity given in the body of the request failed. It occurs when the data provided does not meet the required format or constraints defined by the API, and includes a link to the documentation for reference. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation. _links: type: object properties: documentation: type: object properties: href: type: string example: http://api.akeneo.com/api-reference.html example: code: 422 message: Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation. _links: documentation: href: http://api.akeneo.com/api-reference.html /api/rest/v1/category-templates: get: operationId: get_category_templates x-visibility: public summary: Get a list of category templates description: 'This endpoint allows you to retrieve category templates and the attributes they define. Filter with the `category` query parameter to get the templates that apply to a given category.' tags: - Category security: - bearerToken: [] parameters: - name: category in: query description: 'Code of a category. Returns only the templates that apply to that category''s tree; any category code is accepted, not only a tree root. Responds with a 404 when the category does not exist, and with an empty list when it exists but its tree has no template. Omit it to list every template. ' required: false schema: type: string responses: '200': description: 'This endpoint allows you to retrieve category templates. Filter by category code to find the templates that apply to a given category, and the attributes each of them defines. ' content: application/json: schema: title: Category templates type: array items: type: object properties: uuid: type: string format: uuid description: UUID of the category template example: 8f2b1c44-3d5e-4a71-b9c2-1e3f5a7b9d11 code: type: string description: Code of the category template example: master_men_template attributes: type: array description: 'Attributes of the template, ordered as they appear in the PIM. Deactivated attributes are not listed, and their values are stripped from category reads as well. A category''s `values` may still reference an attribute absent from this list if that attribute has been deleted rather than deactivated; such values are historical and cannot be written. ' example: - code: seo_meta_title uuid: 783d4957-a29b-4281-a9f5-c4621014dcfa type: text labels: en_US: SEO meta title order: 1 is_required: false is_localizable: true is_scopable: false items: type: object properties: code: type: string description: 'Code of the attribute. Send this in the `attribute_code` field of a category value. Note that reading a category returns the composite form `{code}|{uuid}` instead; both are accepted on write. ' example: seo_meta_title uuid: type: string format: uuid description: UUID of the attribute, the second half of the composite `{code}|{uuid}` example: 783d4957-a29b-4281-a9f5-c4621014dcfa type: type: string description: Type of the attribute example: text enum: - text - textarea - richtext - image - boolean - simple_select - multi_select - asset_collection - product_and_product_model_sort - datetime - reference_entity - reference_entity_collection labels: type: object description: 'Labels of the attribute, per locale. A locale whose label has been cleared is returned with a `null` value. ' additionalProperties: type: - string - 'null' example: en_US: SEO meta title order: type: integer description: Position of the attribute in the template example: 1 is_required: type: boolean description: Whether a value is required for this attribute example: false is_localizable: type: boolean description: Whether the attribute holds one value per locale example: true is_scopable: type: boolean description: Whether the attribute holds one value per channel example: false options: type: array description: Allowed options. Present only for `simple_select` and `multi_select`. items: type: object properties: code: type: string example: summer labels: type: object additionalProperties: type: - string - 'null' example: en_US: Summer default_value: description: 'Default value applied when a category is created. Present only when one is set. Returned as stored, so it is not re-validated against `options`. ' oneOf: - type: string example: summer - type: boolean example: false - type: array items: type: string example: - summer - type: object additionalProperties: true - type: 'null' reference_entity: type: string description: 'Identifier of the referenced entity. Present only for `reference_entity` and `reference_entity_collection`. ' example: designer asset_family: type: string description: 'Identifier of the asset family the asset codes must belong to. Present only for `asset_collection`. ' example: packshots example: - uuid: 8f2b1c44-3d5e-4a71-b9c2-1e3f5a7b9d11 code: master_men_template attributes: - code: seo_meta_title uuid: 783d4957-a29b-4281-a9f5-c4621014dcfa type: text labels: en_US: SEO meta title order: 1 is_required: false is_localizable: true is_scopable: false '400': description: 'This response indicates that the server cannot process the request due to a client error, such as malformed request syntax, invalid request message framing, or deceptive request routing. It is typically used when the server cannot understand the request due to invalid JSON or other client-side issues. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 400 message: Invalid JSON message received '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '404': description: 'This response indicates that the requested resource could not be found on the server. It can occur when the resource code given in the URI does not correspond to any existing PIM resource. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 404 message: Resource `my_resource_code` does not exist. '406': description: 'This response indicates that the server cannot produce a response matching the list of acceptable values defined in the request''s `Accept` header. It is typically used when the requested resource is not available in the requested format. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 406 message: xxx in `Accept` header is not valid. Only `application/json` is allowed. /api/rest/v1/category-media-files: post: operationId: post_category_media_file x-visibility: public summary: Create a category media file description: 'This endpoint allows you to create a new media file and associate it to anattribute value of a given enriched category. It is used to upload media files that are linked to categories, such as images or documents. The request body should include the category information and the binary file data.' tags: - Category security: - bearerToken: [] parameters: - in: header name: Content-Type description: 'Equal to ''multipart/form-data'' (with [boundary value](https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2)), no other value allowed. ' required: true schema: type: string example: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW x-form-data: true requestBody: description: Body of the request to create a new category media file content: multipart/form-data: schema: type: object properties: category: type: string description: 'The category to which the media file will be associated. It is a JSON string that follows this format: ''{"code":"category code", "attribute_code":"attribute code", "channel":"channel code or null", "locale":"locale code or null"}''. ' example: '{"code":"ecomm", "attribute_code":"image_1", "channel":"ecommerce", "locale":"en_US"}' file: type: string description: 'The media file to be uploaded. It should be provided as a binary file. Ensure that the file format is supported by the system. ' format: binary example: '' required: - category - file example: category: '{"code":"ecomm", "attribute_code":"image_1", "channel":"ecommerce", "locale":"en_US"}' file: '' responses: '201': description: 'This response indicates that the entity was successfully created. The server has fulfilled the request and created a new resource. The response includes a `Location` header that contains the URI of the newly created resource. ' headers: Location: description: URI of the created resource schema: type: string '400': description: 'This response indicates that the server cannot process the request due to a client error, such as malformed request syntax, invalid request message framing, or deceptive request routing. It is typically used when the server cannot understand the request due to invalid JSON or other client-side issues. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 400 message: Invalid JSON message received '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '415': description: 'This response indicates that the `Content-type` header of the request is not supported by the server. The server expects the `Content-type` header to be `application/json`, and any other value will result in this error. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 415 message: xxx in `Content-type` header is not valid. Only `application/json` is allowed." '422': description: 'This response indicates that the validation of the entity given in the body of the request failed. It occurs when the data provided does not meet the required format or constraints defined by the API, and includes a link to the documentation for reference. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation. _links: type: object properties: documentation: type: object properties: href: type: string example: http://api.akeneo.com/api-reference.html example: code: 422 message: Property \"labels\" expects an array as data, \"NULL\" given. Check the API reference documentation. _links: documentation: href: http://api.akeneo.com/api-reference.html /api/rest/v1/category-media-files/{file_path}/download: get: operationId: get_category_media_file_by_file_path x-visibility: public summary: Download a category media file description: 'This endpoint allows you to download a given media file that is used as an attribute value of a enriched category. The media file is identified by its path, which is provided in the request.' tags: - Category security: - bearerToken: [] parameters: - in: path name: file_path description: 'This path parameter is used to specify the unique identifier of the media file you want to download. It is essential for identifying the specific media file in the API requests. Ensure that the file path is correctly formatted and corresponds to an existing media file in the system. ' required: true schema: type: string example: my_resource_code x-content-type: Mime-type of the media file responses: '200': description: Returns the binary of the media file '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '404': description: 'This response indicates that the requested resource could not be found on the server. It can occur when the resource code given in the URI does not correspond to any existing PIM resource. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 404 message: Resource `my_resource_code` does not exist. components: securitySchemes: basicToken: scheme: basic type: http description: 'HTTP Basic authentication using user credentials. [More information here](https://api.akeneo.com/documentation/authentication.html) ' bearerToken: scheme: bearer type: http description: 'Bearer token obtained via the "Password Grant" flow. This token authenticates a user, is valid for one hour, and can be refreshed using a refresh token. [More information here](https://api.akeneo.com/documentation/authentication.html) ' appToken: scheme: bearer type: http description: 'Bearer token for Apps, obtained via the OAuth 2.0 flow. This permanent token allows an application to make requests on behalf of a user. [More information here](https://api.akeneo.com/apps/authentication-and-authorization.html) ' x-provenance: method: harvested publisher: Akeneo source: https://storage.googleapis.com/akecld-prd-pim-saas-shared-openapi-spec/openapi.yaml note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json); stamped by stamp-openapi-provenance.py (roadmap#793)