openapi: 3.2.0 info: title: Akeneo API REFERENCE Product [uuid] 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: Product [uuid] description: 'A product is a single item that can be managed in the PIM. It can have various attributes and values, and can be associated with product models, categories, and other entities. Products are the core entities in the PIM and are used to manage the product information. We strongly recommend using this endpoint for its reliability and flexibility. UUIDs, or Universally Unique Identifiers, are guaranteed to be unique and never change, even if other product identifiers like SKUs are modified. This ensures consistent product identification regardless of future changes. Additionally, UUIDs allow interaction with products that lack a traditional identifier.' paths: /api/rest/v1/products-uuid: get: operationId: get_products_uuid x-visibility: public summary: Get list of products description: 'This endpoint allows you to get a list of products. Products are paginated and they can be filtered. Permissions based on your user groups are applied to the set of products you request.' tags: - Product [uuid] security: - bearerToken: [] parameters: - name: search in: query description: Filter products, for more details see the [Filters](https://api.akeneo.com/documentation/filter.html) section required: false schema: type: string examples: getProductsByProductUuid: summary: Filter the products by their uuid value: '{"uuid":[{"operator":"IN","value":["8945388d-cf5b-49af-8799-05d1ed6e296f", "941fe892-99dd-440f-b2a9-8eccb94248f0"]}]}' getProductsByCategory: summary: Filter the products by their category value: '{"categories":[{"operator":"IN","value":["winter_collection"]}]}' getProductsByCategoryButNotInAnother: summary: Filter the products categorized on the Winter Collection category and that are not categorized on the Accessories category value: '{"categories":[{"operator":"IN","value":["winter_collection"]},{"operator":"NOT IN","value":["accessories"]}]}' getProductsByStatus: summary: Filter the products by their status value: '{"enabled":[{"operator":"=","value":false}]}' getProductsByCompleteness: summary: Filter the products by their completeness value: '{"completeness":[{"operator":"=","value":50,"scope":"ecommerce"}]}' getProducts100PercentComplete: summary: Filter the products that are 100% complete on both the en_US and fr_FR locales for the ecommerce channel value: '{"completeness":[{"operator":"GREATER OR EQUALS THAN ON ALL LOCALES","value":100,"locales":["en_US","fr_FR"],"scope":"ecommerce"}]}' getProductsByGroup: summary: Filter the products by their group value: '{"groups":[{"operator":"IN","value":["promotion"]}]}' getProductsByFamily: summary: Filter the products by their family value: '{"family":[{"operator":"NOT IN","value":["camcorders","digital_cameras"]}]}' getProductsByCreationDate: summary: Filter the products by their creation date value: '{"created":[{"operator":"=","value":"2016-07-04 10:00:00"}]}' getProductsByUpdatedDate: summary: Filter the products updated since X days value: '{"updated":[{"operator":"SINCE LAST N DAYS","value":4}]}' getProductsUpdatedIncludingLinkedEntities: summary: Filter the products by their update date including linked entity changes value: '{"updated_including_linked_entities":[{"operator":">","value":"2025-01-01 00:00:00"}]}' getProductsUpdatedIncludingLinkedEntitiesSinceLastNDays: summary: Filter the products updated (including linked entity changes) since N days value: '{"updated_including_linked_entities":[{"operator":"SINCE LAST N DAYS","value":7}]}' getProductsUpdatedIncludingLinkedEntitiesWithSpecificTypes: summary: Filter the products by update date including only specific linked entity types value: '{"updated_including_linked_entities":[{"operator":">","value":"2025-01-01 00:00:00"}],"updated_including_linked_type":[{"operator":"IN","value":["asset","reference_entity_record"]}]}' getProductsUpdatedIncludingLinkedEntitiesAssetsOnly: summary: Filter the products by update date including only asset changes value: '{"updated_including_linked_entities":[{"operator":"SINCE LAST N DAYS","value":7}],"updated_including_linked_type":[{"operator":"IN","value":["asset"]}]}' getVariantProductsByProductModelCode: summary: Filter the variant products by their parent value: '{"parent":[{"operator":"IN","value":["tops"]}]}' getVariantProductsBySubProductModelCodes: summary: Filter the variant products by their sub product model value: '{"parent":[{"operator":"IN","value":["tshirt_armor_blue","tshirt_armor_red"]}]}' getAllVariantProducts: summary: Get all variant products value: '{"parent":[{"operator":"NOT EMPTY"}]}' getAllSimpleProducts: summary: Get all simple products value: '{"parent":[{"operator":"EMPTY"}]}' getProductsByQualityScore: summary: Filter the products with a "D" for the ecommerce channel and en_US locale value: '{"quality_score":[{"operator":"IN","value":["D"],"scope":"ecommerce","locale":"en_US"}]}' getProductsWithMultipleQualityScores: summary: Filter the products with an "A" or "B" for the mobile channel and en_GB locale value: '{"quality_score":[{"operator":"IN","value":["A","B"],"scope":"mobile","locale":"en_GB"}]}' getProductsByReadinessAt100PercentOnAGivenChannelAndLocale: summary: Filter the products by their readiness score for a given readiness configuration and channel/locale value: '{"readiness":[{"operator":"=","value":100,"readiness_code":"camcorders_ecommerce","scope":"ecommerce","locale":"en_US"}]}' getProductByReadinessGreaterThan50PercentOnGivenLocales: summary: Filter the products by their readiness score for a given readiness configuration, channel and list of locales value: '{"readiness":[{"operator":"GREATER THAN ON ALL LOCALES","value":50,"readiness_code":"camcorders_ecommerce","scope":"ecommerce","locales":["en_US","fr_FR"]}]}' getEnabledProducts: summary: Get only enabled products value: '{"enabled":[{"operator":"=","value":true}]}' getEnabledProductsCompleteAtLeast70Percent: summary: Get only enabled products that are at least 70% complete on the ecommerce channel value: '{"enabled":[{"operator":"=","value":true}],"completeness":[{"operator":">","value":70,"scope":"ecommerce"}]}' getProductsByAttributeValue: summary: Filter the products by an attribute value value: '{"main_color":[{"operator":"IN","value":["purple"]}]}' getProductsWithSpecificDescription: summary: Filter the products having a description begining with Amazing on the en_US locale value: '{"description":[{"operator":"STARTS WITH","value":"Amazing","locale":"en_US"}]}' getProductsWithSpecificReleaseDate: summary: Filter the products that have a release date due after the 4th of July 2016 for the ecommerce channel value: '{"release_date":[{"operator":">","value":"2016-07-04","scope":"ecommerce"}]}' getProductsByDateOnly: summary: Filter products on a `pim_catalog_date` attribute using a full-day range (date-only) value: '{"release_date":[{"operator":"=","value":"2024-06-15","scope":"ecommerce"}]}' getProductsByIso8601DateTime: summary: Filter products on a `pim_catalog_date` attribute with `display_time` enabled using ISO 8601 value: '{"release_date":[{"operator":"=","value":"2024-06-15T08:00:00Z","scope":"ecommerce"}]}' getProductsByDateRange: summary: Filter products on a `pim_catalog_date` attribute with a date-only range value: '{"release_date":[{"operator":"BETWEEN","value":["2024-06-01","2024-06-30"],"scope":"ecommerce"}]}' getProductsByIso8601DateTimeRange: summary: Filter products on a `pim_catalog_date` attribute with `display_time` enabled with an ISO 8601 range value: '{"release_date":[{"operator":"BETWEEN","value":["2024-06-15T08:00:00+00:00","2024-06-15T18:00:00+00:00"],"scope":"ecommerce"}]}' getProductsByNumberRange: summary: Filter products on a `pim_catalog_number` attribute with a range value: '{"weight":[{"operator":"BETWEEN","value":[10,20]}]}' getProductsByNumberOutsideRange: summary: Filter products on a `pim_catalog_number` attribute outside a range value: '{"weight":[{"operator":"NOT BETWEEN","value":[10,20]}]}' getProductsByPriceRange: summary: Filter products on a `pim_catalog_price_collection` attribute with a range value: '{"price":[{"operator":"BETWEEN","value":{"amounts":[10,20],"currency":"EUR"}}]}' getProductsByPriceOutsideRange: summary: Filter products on a `pim_catalog_price_collection` attribute outside a range value: '{"price":[{"operator":"NOT BETWEEN","value":{"amounts":[10,20],"currency":"EUR"}}]}' getProductsByMetricRange: summary: Filter products on a `pim_catalog_metric` attribute with a range value: '{"weight":[{"operator":"BETWEEN","value":{"amounts":[10,20],"unit":"KILOGRAM"}}]}' getProductsByMetricOutsideRange: summary: Filter products on a `pim_catalog_metric` attribute outside a range value: '{"weight":[{"operator":"NOT BETWEEN","value":{"amounts":[10,20],"unit":"KILOGRAM"}}]}' getProductsContainingText: summary: Filter the products containing a text in the name attribute value: '{"name":[{"operator":"CONTAINS","value":"shirt","locale":"en_US","scope":"mobile"}]}' getProductsByMultipleAttributeValues: summary: Filter the products by multiple attribute values value: '{"description":[{"operator":"STARTS WITH","value":"Amazing","locale":"en_US","scope":"ecommerce"}],"main_color":[{"operator":"IN","value":["purple"]}]}' getProductsByMultipleAttributeConditions: summary: Filter the products by multiple attribute conditions value: '{"description":[{"operator":"NOT EMPTY","locale":"en_US","scope":"ecommerce"},{"operator":"EMPTY","locale":"fr_FR","scope":"ecommerce"}]}' - in: query name: scope description: 'Filter product values to return scopable attributes for the given channel as well as the non localizable/non scopable attributes. It is useful for retrieving product information specific to a particular sales channel, which is essential for channel-specific applications. For more details see the [Filter product values via channel](https://api.akeneo.com/documentation/filter.html#via-channel) section. ' required: false schema: type: string example: ecommerce - in: query name: locales description: 'Filter product values to return localizable attributes for the given locales as well as the non localizable/non scopable attributes. It is useful for retrieving product information in specific languages, which is essential for multi-locale applications. For more details see the [Filter product values via locale](https://api.akeneo.com/documentation/filter.html#via-locale) section. ' required: false schema: type: string example: en_US,fr_FR - in: query name: attributes description: 'Filter product values to only return those concerning the given attributes. It is useful for limiting the response to specific attributes, reducing payload size and improving performance. For more details see the [Filter product values via attributes](https://api.akeneo.com/documentation/filter.html#via-attributes) section. ' required: false schema: type: string example: name,description - in: query name: pagination_type description: 'Specify which pagination method to use for navigating through large datasets. It is useful for choosing between different pagination strategies based on your specific use case and performance requirements. See [Pagination](https://api.akeneo.com/documentation/pagination.html) section for more details. ' required: false schema: type: string enum: - page - search_after default: page example: page - 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: search_after description: 'Cursor when using the `search_after` pagination method type. It is essential for navigating through pages in cursor-based pagination, providing more efficient pagination for large datasets. Should never be set manually, see [Pagination](https://api.akeneo.com/documentation/pagination.html) section for more details. ' required: false schema: type: string default: cursor to the first page example: qaXbcde - 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: search_scope description: 'Filter scopes based on specific criteria. If you need to filter on several attributes on the same scope, you can use this parameter, to avoid repeating yourself for each attribute. For more details see the [Filters](https://api.akeneo.com/documentation/filter.html#search_scope-query-parameter) section. ' required: false schema: type: string example: ecommerce - in: query name: search_locale description: 'Filter locales based on specific criteria. If you need to filter on several attributes on the same locale, you can use this parameter, to avoid repeating yourself for each attribute. For more details see the [Filters](https://api.akeneo.com/documentation/filter.html#search_locale-query-parameter) section. ' required: false schema: type: string example: en_US - in: query name: convert_measurements description: 'Convert measurement attribute values to the appropriate unit for the channel provided by the `scope` parameter. When set to `true`, the `scope` parameter is required. ' schema: type: boolean default: false required: false example: true - 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_attribute_options description: 'Return labels of attribute options in the response. When set to `true`, the response will include human-readable labels for attribute options alongside their codes. This is useful for displaying human-readable labels instead of just option codes, which improves the user experience in frontend applications. If set to `false`, the response will only include option codes, which can improve performance. See [the `linked_data` format](https://api.akeneo.com/concepts/products.html#the-linked_data-format) section for more details. ' required: false schema: type: boolean default: false example: true - in: query name: with_asset_share_links description: 'Return asset collection share link URLs in the response. When set to `true`, the response will include direct URLs to asset collections for sharing purposes. This is useful for accessing direct links to asset collections, which can be used for sharing or external integrations. If set to `false`, the response will not include share links, which can improve performance. See [the `linked_data` format](https://api.akeneo.com/concepts/products.html#the-linked_data-format) for more details. ' required: false schema: type: boolean default: false example: true - in: query name: with_enabled_assets_only description: 'When set to `true`, disabled assets are excluded from asset collection values in the response. Only assets with `status: "enabled"` are returned. When set to `false` (default), all assets are returned regardless of their status. ' required: false schema: type: boolean default: false example: true - in: query name: with_quality_scores description: 'Return product quality scores in the response. When set to `true`, the response will include quality score information for each product. This is useful for assessing and monitoring product data quality, which is essential for maintaining high data standards and improving product information. If set to `false`, the response will not include quality scores, which can improve performance. ' required: false schema: type: boolean default: false example: true - in: query name: with_completenesses description: 'Return product completenesses information in the response. When set to `true`, the response will include detailed completeness information for each product. This is useful for understanding the data quality and completeness of products, which is essential for product management and quality assurance. If set to `false`, the response will not include completeness information, which can improve performance. ' required: false schema: type: boolean default: false example: true - in: query name: with_readiness x-visibility: public description: 'Return readiness information in the response. - `scores_only`: include readiness percentage scores only. - `detailed`: include readiness percentage scores together with the list of unmet requirements. When omitted, no readiness information is returned. Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager. ' required: false schema: type: string enum: - scores_only - detailed example: scores_only - in: query name: with_root_parent description: 'Return the root parent product model code of a variant in the response. When set to `true`, the response will include the root parent product model code for each variant product. This is useful for understanding the hierarchical relationship between product variants and their parent models, which is essential for product catalog navigation. If set to `false`, the response will not include parent model information, which can improve performance. ' required: false schema: type: boolean default: false example: true - in: query name: with_workflow_execution_statuses description: 'Return an array of workflow_execution_statuses directly associated with the requested entity (product or product model) in the response. Statuses are level-specific and are not inherited from parent models. For a complete overview of a variant product, you must query the variant itself and its parent model(s) in separate requests. Each workflow object contains: - The overall execution status (e.g., in_progress, completed). - A list of all associated tasks. ' required: false schema: type: boolean default: false example: true responses: '200': description: 'Returns products paginated. The response is paginated and includes links to navigate through the pages. ' content: application/json: schema: title: Products 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: 3 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/products-uuid/top - type: object properties: uuid: type: string description: Product UUID example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 enabled: type: boolean description: Whether the product is enabled default: true example: true family: type: - string - 'null' description: '[Family](https://api.akeneo.com/api-reference.html#Family) code from which the product inherits its attributes and attributes requirements. In the case of variant product, the given family should be the same as the product model family. ' default: null only in the case of a non variant product x-validation-rules: It is equal to an existing family code example: smartphone categories: type: array description: Codes of the [categories](https://api.akeneo.com/api-reference.html#Category) in which the product is classified items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing category code example: - smartphones - electronics groups: type: array description: 'Codes of the groups to which the product belong. Each string of the array is equal to an existing group code. ' items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing group code example: - summer_collection - sale parent: type: - string - 'null' description: Code of the parent [product model](https://api.akeneo.com/api-reference.html#Productmodel) when the product is a variant default: null x-validation-rules: '- It is equal to an existing product model. - This product model has the same family variant as the one given in the `family_variant field`. ' example: my_super_battery root_parent: type: string readOnly: true description: 'Code of the root parent product model when the product is a variant (only available when the `with_root_parent` is set to `true`). ' default: 'null' x-validation-rules: It is equal to an existing product model code only if the product is variant; otherwise, the property does not appear example: my_super_battery values: type: object description: 'Product attributes values. Each key is an attribute code, and the value is an array of value objects for that attribute. See [documentation](https://api.akeneo.com/concepts/products.html#focus-on-the-product-values) for details. ' patternProperties: ^\w+$: type: array items: type: object required: - data description: 'A value for a given attribute, for a given locale/scope combination. - locale: Locale code, or null if not localizable. - scope: Channel code, or null if not scopable. - data: The value for this attribute/locale/scope. Type and format depend on the attribute type (see Akeneo docs). - linked_data: Additional data for select/multiselect/asset attributes. Read-only. - attribute_type: The type of the value''s attribute. Read-only. - reference_data_name: Reference entity code or asset family code. Read-only. ' properties: locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the product value' example: en_US scope: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the product value' example: ecommerce data: description: 'The value for this attribute/locale/scope. Type and format depend on the attribute type. - String for text, textarea, file, image, date, simple select, reference data simple select, reference entity. - Array of strings for multi select, reference data multi select, reference entity collection, asset collection, PAM asset collection. - Integer or string for number (depending on decimals_allowed). - Boolean for boolean attributes. - Object for metric, containing an "amount" (int), "unit" (string), and "symbol" (string, read-only) key. - Object for product link, containing a "type" (string) and "id" (string) key. - Object for table, containing different keys (int, boolean or string). - Object for price, with a "amount" (int) and a "currency" (string) key. ' anyOf: - type: string description: 'A reference entity value. The string is the code of the reference entity. ' example: designer_ref - type: array description: 'A reference entity collection value. The array contains codes of reference entities. ' items: type: string example: - designer_ref_1 - designer_ref_2 - type: array description: 'An asset collection value. The array contains asset codes ' items: type: string example: - left_side - right_side - type: boolean description: 'A boolean value. Used for attributes of type `pim_catalog_boolean`. ' example: true - type: string description: "A date value for attributes of type `pim_catalog_date`.\n\nTwo input formats are accepted:\n - **Date only** (`YYYY-MM-DD`), for example `2021-04-29`.\n - **ISO 8601 date-time**, either with a UTC offset (`YYYY-MM-DDTHH:MM:SS+00:00`) or in Zulu form (`YYYY-MM-DDTHH:MM:SSZ`), for example `2021-04-29T08:58:00Z`.\n\nThe ISO 8601 date-time form is only meaningful on attributes where `display_time` is enabled.\nOn attributes where `display_time` is `false`, the time component is ignored and the filter behaves as if a date-only value was provided.\n\nSpace-separated date-times (for example `2021-04-29 08:58:00`) are not supported and will be rejected.\n" example: '2021-04-29T08:58:00Z' - type: string description: 'A file value. The string is a file key referencing the uploaded file. ' example: f/2/e/6/f2e6674e0766acdc70f814_myFile.pdf - type: string description: 'An identifier value. Used for attributes of type `pim_catalog_identifier`. ' example: SKU-12345 - type: string description: 'An image value. The string is a file key referencing the uploaded image. ' example: 1/d/7/f/1d7f0987000cea4d14908fe679af4e36ea3632ef_10806799_1356.jpg - type: object description: 'A metric value. Object with amount, unit, and symbol. ' properties: amount: description: 'The amount of the metric. - String representing a number if allowed on attribute settings ("decimals_allowed" parameter). - Integer if the attribute does not allow decimals. ' oneOf: - type: string example: '800.0000' - type: integer example: 800 unit: type: string description: The unit of the metric example: GRAM symbol: type: string description: The symbol of the unit, resolved from the measurement family definition. Read-only. readOnly: true example: g required: - amount - unit example: amount: '800.0000' unit: GRAM symbol: g - type: array description: 'A multi select value. The array contains option codes. ' items: type: string example: - summer_2017 - winter_2016 - anyOf: - type: number - type: string pattern: ^\\d+(\\.\\d+)?$ description: 'A number value. Used for attributes of type `pim_catalog_number`. Can be integer or decimal, depending on attribute settings (`decimals_allowed` parameter). ' example: 42.5 - type: array description: 'A price collection value. The array contains objects with amount and currency. ' items: type: object required: - amount - currency properties: amount: description: 'The amount of the price. - String representing a number if the attribute allows decimals. - Integer if the attribute does not allow decimals. ' oneOf: - type: string example: '12.50' - type: integer example: 10 currency: type: string description: The currency code example: USD example: - amount: '12.50' currency: USD - amount: 10 currency: EUR - type: object oneOf: - type: object description: Link to a product by UUID or identifier required: - type - id properties: type: type: string enum: - product description: The type of the linked entity example: product id: type: string description: The UUID of the linked product example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 additionalProperties: false - type: object description: Link to a product by identifier required: - type - identifier properties: type: type: string enum: - product description: The type of the linked entity example: product identifier: type: - string - 'null' description: The identifier of the linked product example: bl1850b additionalProperties: false - type: object description: Link to a product model by code required: - type - id properties: type: type: string enum: - product_model description: The type of the linked entity example: product_model id: type: string description: The code of the linked product model example: my_super_battery additionalProperties: false description: "A product link value. Object with:\n - type: 'product' or 'product_model'\n - id: UUID (for product) or code (for product_model)\n - identifier: identifier (for product)\nOnly one of id or identifier is present, depending on the type and linking method.\n" example: type: product id: fc24e6c3-933c-4a93-8a81-e5c703d134d5 - type: string description: 'A simple select value. The string is the option code. ' example: black - type: array description: "A table value. Each item in the array is a row, represented as an object.\nEach key in the row object is a column code, and the value depends on the column type:\n - string (for text, select, reference entity, date)\n - integer or number (for number, depending on decimals_allowed)\n - boolean (for yes/no)\n - object (for product link, measurement, etc.)\nThe first column is always a select, reference entity, incremental number, or product link.\nThe table structure (columns and types) is defined in the attribute configuration.\n" items: type: object description: 'The value for the column identified by the key. The type of the value depends on the column type defined in the attribute configuration. ' patternProperties: ^\w+$: oneOf: - type: string description: Text, select, reference entity, or date value example: value1 - type: number description: Decimal value (number column, with or without decimals) example: 3.14 - type: boolean description: Boolean value (yes/no column) example: true - type: object description: Product link value (see pim_catalog_product_link) required: - type properties: type: type: string enum: - product - product_model description: The type of the linked entity example: product id: type: string description: The UUID (for product) or code (for product_model) example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 identifier: type: string description: The identifier of the linked product (alternative to id for product) example: bl1850b additionalProperties: false - type: object description: Measurement value (metric column) required: - amount - unit properties: amount: oneOf: - type: string pattern: ^-?\d+\.\d+$ example: '12.50' - type: integer example: 10 description: The amount of the measurement unit: type: string description: The unit of the measurement example: GRAM additionalProperties: false example: - ingredient: Sugar quantity: 10 organic: true best_before: '2024-12-31' included_product: type: product id: fc24e6c3-933c-4a93-8a81-e5c703d134d5 weight: amount: '12.50' unit: GRAM - type: string description: 'A text value. Used for attributes of type `pim_catalog_text`. ' example: T-shirt long sleeves Winter special, 100% wool - type: string description: 'A textarea value. Used for attributes of type `pim_catalog_textarea`. ' example: This is a long product description with multiple lines. - type: 'null' description: Null value used to clear/remove attribute values example: T-shirt long sleeves Winter special, 100% wool linked_data: type: - object - 'null' description: 'Object containing additional data when a related query parameter is enabled. See [the `linked_data` format](https://api.akeneo.com/concepts/products.html#the-linked_data-format) section for more details. ' example: attribute: main_color code: black labels: en_US: Black fr_FR: Noir attribute_type: type: string description: The type of the value's attribute. See [type](https://api.akeneo.com/concepts/catalog-structure.html#attribute) section for more details. readOnly: true enum: - pim_catalog_identifier - pim_catalog_text - pim_catalog_textarea - pim_catalog_simpleselect - pim_catalog_multiselect - pim_catalog_boolean - pim_catalog_date - pim_catalog_number - pim_catalog_metric - pim_catalog_price_collection - pim_catalog_image - pim_catalog_file - pim_catalog_asset_collection - akeneo_reference_entity - akeneo_reference_entity_collection - pim_reference_data_simpleselect - pim_reference_data_multiselect - pim_catalog_table - pim_catalog_product_link example: pim_catalog_text reference_data_name: type: string 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`. ' readOnly: true x-warning: Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types example: designer_ref _links: type: - object - 'null' description: 'Object containing download links for media files (images, files). Only present for file and image attribute types. ' readOnly: true properties: download: type: object properties: href: type: string description: URL for downloading the media file example: http://localhost/api/rest/v1/media-files/path/to/file/download example: download: href: http://localhost/api/rest/v1/media-files/5/d/b/1/5db16b5800314d8bc6358fb80b75f0fb0dedc6d0_akeneo.jpg/download x-validation-rules: Validation rules detailed in Product values section example: description: - data: T-shirt long sleeves Winter special, 100% wool locale: null scope: null associations: type: object description: Several associations related to groups, product models and/or other products, grouped by association types patternProperties: ^\w+$: type: object properties: groups: type: array description: Array of groups codes with which the product is in relation items: type: string products: type: array description: Array of product identifiers with which the product is in relation items: type: string product_models: type: array description: Array of product model codes with which the product is in relation items: type: string additionalProperties: false x-validation-rules: '- The `associationTypeCode` is the code of an existing association type. - Each string in the array of the property `groups` is the code of an existing group. - Each string in the array of the property `products` is the identifier of an existing product. - Each string in the array of the property `product_models` is the code of an existing product model. ' example: X_SELL: groups: [] products: - product_1 - product_2 product_models: - product_model_1 UPSELL: groups: - group_1 products: [] product_models: [] quantified_associations: type: object description: Several quantified associations related to products and/or product models, grouped by quantified association types patternProperties: ^\w+$: type: object properties: products: type: array description: Array of objects containing product uuids and quantities with which the product is in relation items: type: object properties: uuid: type: string quantity: type: integer product_models: type: array description: Array of objects containing product model codes and quantities with which the product is in relation items: type: object properties: identifier: type: string quantity: type: integer x-validation-rules: '- The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. - Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it. - Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it. ' example: PACK: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: aaf518b2-f91e-40f1-a53a-78ce5e81a6f9 quantity: 3 product_models: - identifier: product_model_1 quantity: 1 created: type: string description: Date of creation format: date-time readOnly: true x-immutable: true example: '2022-03-14T15:25:45+00:00' updated: type: string description: Date of the last update format: date-time readOnly: true example: '2022-06-24T12:54:58+00:00' metadata: type: object description: More information around the product readOnly: true properties: workflow_status: description: Status of the product regarding the user permissions type: string enum: - read_only - draft_in_progress - proposal_waiting_for_approval - working_copy x-immutable: true example: workflow_status: read_only proposal_review_status: type: object description: 'Review status of each change carried by the draft, grouped like the `values` property so that a change can be matched on its attribute code, locale and scope (only available on the draft endpoints when the `with_proposal_review_status` query parameter is set to `true`). While `metadata.workflow_status` is `proposal_waiting_for_approval`, a change with the `draft` review status is one that was submitted and then rejected by a reviewer (or edited by the author after submission), whereas a change with the `to_review` review status is still pending. Clients must treat unknown `review_status` values as opaque. ' readOnly: true x-immutable: true properties: values: type: object description: Review status of each attribute value changed in the draft. Each key is an attribute code. patternProperties: ^\w+$: type: array items: type: object properties: locale: type: - string - 'null' description: Locale code of the changed value, null if the attribute is not localizable scope: type: - string - 'null' description: Channel code of the changed value, null if the attribute is not scopable review_status: type: string description: Review status stored for the change enum: - draft - to_review example: values: description: - locale: fr_FR scope: ecommerce review_status: draft - locale: de_DE scope: ecommerce review_status: to_review weight: - locale: null scope: null review_status: to_review quality_scores: type: array items: type: object properties: scope: type: string description: Channel code for which the quality score is calculated locale: type: string description: Locale code for which the quality score is calculated data: type: string enum: - A - B - C - D - E description: Quality score value for the given channel/locale combination description: 'Product quality scores for each channel/locale combination (only available when the `with_quality_scores` query parameter is set to `true`). ' readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: A completenesses: type: array description: 'Product completenesses for each channel/locale combination (only available when the `with_completenesses` query parameter is set to `true`). ' items: type: object properties: scope: type: string description: Channel code for which the completenesses score is calculated locale: type: string description: Channel code for which the completenesses score is calculated data: type: integer description: Completenesses score value for the given channel/locale combination readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: 100 readiness: type: object x-visibility: public description: 'Readiness scores (only available when the `with_readiness` query parameter is set to `scores_only` or `detailed`). Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager. ' properties: aggregated_scores_by_scope: type: array description: 'Aggregated readiness score per channel: the average of the per-locale scores within each readiness, then averaged across the readiness configurations that apply to that channel (equal weight) and rounded. ' items: type: object properties: scope: type: string description: Channel code for which the aggregated readiness score is calculated score: type: integer description: Aggregated readiness percentage score (0-100) for the given channel scores_by_scope_and_locale: type: object description: Readiness scores grouped by readiness code, for each channel/locale combination additionalProperties: type: array items: type: object properties: scope: type: string description: Channel code for which the readiness score is calculated locale: type: string description: Locale code for which the readiness score is calculated score: type: integer description: Readiness percentage score (0-100) for the given channel/locale combination unmet_requirements: type: array description: 'Requirements not yet met (only available when `with_readiness` is set to `detailed`). ' items: type: object properties: field: type: string description: Attribute code or product field the requirement applies to (e.g. `name`, `family`, `categories`) operator: type: string description: Comparison operator applied to the field to evaluate the requirement (e.g. `NOT EMPTY`, `=`, `IN`) value: description: Expected value for the requirement; type depends on the operator and may be null nullable: true readOnly: true x-immutable: true example: aggregated_scores_by_scope: - scope: ecommerce score: 88 scores_by_scope_and_locale: camcorders_ecommerce: - scope: ecommerce locale: en_US score: 75 unmet_requirements: - field: name operator: NOT EMPTY value: null - scope: ecommerce locale: fr_FR score: 100 unmet_requirements: [] workflow_execution_statuses: type: array description: 'Workflow execution statuses of the product (only available when the `with_workflow_execution_statuses` query parameter is set to `true`) ' items: type: object properties: uuid: type: string description: Workflow execution UUID status: type: string description: Status of the workflow execution enum: - in_progress - completed started_at: type: string format: date-time description: Date and time when the workflow execution was started completed_at: type: - string - 'null' format: date-time description: Date and time when the workflow execution was completed, null if still in progress workflow: type: object description: Workflow associated with the workflow execution properties: uuid: type: string description: Workflow UUID code: type: string description: Workflow code labels: type: object description: Workflow labels for each locale additionalProperties: type: string tasks: type: array description: Tasks associated with the workflow execution items: type: object properties: uuid: type: string description: Task UUID status: type: string description: Status of the task enum: - in_progress created_at: type: string format: date-time description: Date and time when the task was created step: type: object properties: uuid: type: string description: Step UUID code: type: string description: Step code labels: type: object description: Step labels for each locale additionalProperties: type: string readOnly: true x-immutable: true example: - uuid: 8c0fe59f-4d29-4faa-b4c3-d327e7f3cc52 status: in_progress started_at: '2024-02-22T17:31:00Z' completed_at: null workflow: uuid: 6f37476a-04c2-46c0-b6d0-e18316959068 code: enrichment_workflow labels: en_US: Enrichment workflow fr_FR: Workflow d'enrichissement tasks: - uuid: 8f6c2d18-fbd4-4f7e-81df-cb3dc368fe07 status: in_progress created_at: '2024-02-22T17:31:00Z' step: uuid: f626d0e5-84a5-41fc-8215-65508c253edb code: review_step labels: en_US: Marketing review fr_FR: Revue marketing - uuid: fc66ab46-3362-4000-862b-bd825f35f735 status: completed started_at: '2024-02-22T17:31:00Z' completed_at: '2024-03-20T00:31:00Z' workflow: uuid: 71b777a3-c2c2-4237-8d39-8bf13ec81755 code: compliance_workflow labels: {} tasks: [] example: items: - _links: self: href: https://demo.akeneo.com/api/rest/v1/products-uuid/top uuid: aaf518b2-f91e-40f1-a53a-78ce5e81a6f9 identifier: top family: tshirt groups: [] categories: - summer_collection enabled: true values: name: - data: Débardeur locale: fr_FR scope: null attribute_type: pim_catalog_text example: _links: self: href: https://demo.akeneo.com/api/rest/v1/products-uuid?page=3&with_count=true&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true&with_workflow_execution_statuses=true first: href: https://demo.akeneo.com/api/rest/v1/products-uuid?page=1&with_count=true&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true&with_workflow_execution_statuses=true previous: href: https://demo.akeneo.com/api/rest/v1/products-uuid?page=2&with_count=true&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true&with_workflow_execution_statuses=true next: href: https://demo.akeneo.com/api/rest/v1/products-uuid?page=4&with_count=true&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true&with_workflow_execution_statuses=true current_page: 3 items_count: 3 _embedded: items: - _links: self: href: https://demo.akeneo.com/api/rest/v1/products/top uuid: 3fa85f64-5717-4562-b3fc-2c963f66afa6 enabled: true family: tshirt categories: - summer_collection groups: [] parent: null root_parent: 'null' values: sku: - data: top locale: null scope: null attribute_type: pim_catalog_identifier name: - data: Top locale: en_US scope: null attribute_type: pim_catalog_text - data: Débardeur locale: fr_FR scope: null attribute_type: pim_catalog_text description: - data: Summer top locale: en_US scope: ecommerce attribute_type: pim_catalog_textarea - data: Top locale: en_US scope: tablet attribute_type: pim_catalog_textarea - data: Débardeur pour l'été locale: fr_FR scope: ecommerce attribute_type: pim_catalog_textarea - data: Débardeur locale: fr_FR scope: tablet attribute_type: pim_catalog_textarea price: - data: - amount: '15.5' currency: EUR - amount: '15' currency: USD locale: null scope: null attribute_type: pim_catalog_price_collection color: - data: black locale: null scope: null linked_data: attribute: color code: black labels: en_US: Black fr_FR: Noir attribute_type: pim_catalog_simpleselect size: - data: m locale: null scope: null linked_data: attribute: size code: m labels: en_US: M fr_FR: M attribute_type: pim_catalog_simpleselect collection: - data: - winter_2016 locale: null scope: null linked_data: winter_2016: attribute: collection code: winter_2016 labels: en_US: Winter 2016 fr_FR: Hiver 2016 attribute_type: pim_catalog_multiselect created: '2016-06-23T18:24:44+02:00' updated: '2016-06-25T17:56:12+02:00' associations: PACK: products: - d055527c-0698-4967-8f16-8a5f23f4e5cf product_models: [] groups: [] quantified_associations: PRODUCT_SET: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc quantity: 1 product_models: - identifier: model-biker-jacket-leather quantity: 2 quality_scores: - scope: ecommerce locale: en_US data: A - scope: ecommerce locale: fr_FR data: B - scope: tablet locale: en_US data: D - scope: tablet locale: fr_FR data: E completenesses: - scope: ecommerce locale: en_US data: 10 - scope: ecommerce locale: fr_FR data: 20 - scope: tablet locale: en_US data: 30 - scope: tablet locale: fr_FR data: 40 workflow_execution_statuses: - uuid: 8c0fe59f-4d29-4faa-b4c3-d327e7f3cc52 status: in_progress started_at: '2024-02-22T17:31:00Z' completed_at: null workflow: uuid: 6f37476a-04c2-46c0-b6d0-e18316959068 code: enrichment_workflow labels: en_US: Enrichment workflow fr_FR: Workflow d'enrichissement tasks: - uuid: 8f6c2d18-fbd4-4f7e-81df-cb3dc368fe07 status: in_progress created_at: '2024-02-22T17:31:00Z' step: uuid: f626d0e5-84a5-41fc-8215-65508c253edb code: review_step labels: en_US: Marketing review fr_FR: Revue marketing - uuid: 59169984-6d6c-4fa7-b925-68b8e9d31ddb status: completed started_at: '2024-02-22T17:31:00Z' completed_at: '2024-02-22T17:31:00Z' workflow: uuid: b69ee158-a421-4680-bec0-a71bc73b8e31 code: compliance_workflow labels: {} tasks: [] - _links: self: href: https://demo.akeneo.com/api/rest/v1/products/cap uuid: aec6780b-c813-4bd7-8e24-1a8574471576 family: caps groups: [] parent: null root_parent: 'null' categories: - summer_collection enabled: true values: sku: - data: cap locale: null scope: null attribute_type: pim_catalog_identifier name: - data: Cap locale: en_US scope: null attribute_type: pim_catalog_text - data: Casquette locale: fr_FR scope: null attribute_type: pim_catalog_text description: - data: Cap unisex locale: en_US scope: ecommerce attribute_type: pim_catalog_textarea - data: Cap unisex locale: en_US scope: tablet attribute_type: pim_catalog_textarea - data: Casquette unisexe locale: fr_FR scope: ecommerce attribute_type: pim_catalog_textarea - data: Casquette unisexe locale: fr_FR scope: tablet attribute_type: pim_catalog_textarea price: - data: - amount: '20' currency: EUR - amount: '20' currency: USD locale: null scope: null attribute_type: pim_catalog_price_collection color: - data: black locale: null scope: null linked_data: attribute: color code: black labels: en_US: Black fr_FR: Noir attribute_type: pim_catalog_simpleselect created: '2016-06-23T18:24:44+02:00' updated: 2016-06-25T17:56:12+02:0 associations: PACK: products: - d055527c-0698-4967-8f16-8a5f23f4e5cf product_models: [] groups: [] quantified_associations: {} quality_scores: - scope: ecommerce locale: en_US data: A - scope: ecommerce locale: fr_FR data: B - scope: tablet locale: en_US data: D - scope: tablet locale: fr_FR data: E completenesses: - scope: ecommerce locale: en_US data: 20 - scope: ecommerce locale: fr_FR data: 30 - scope: tablet locale: en_US data: 55 - scope: tablet locale: fr_FR data: 70 workflow_execution_statuses: [] - _links: self: href: https://demo.akeneo.com/api/rest/v1/products/sweat uuid: 93f14b03-5ed3-4f23-87c6-ae3806041b6a family: null groups: [] parent: null root_parent: 'null' categories: - winter_collection enabled: true values: sku: - data: sweat locale: null scope: null attribute_type: pim_catalog_identifier created: '2016-06-23T11:24:44+02:00' updated: '2016-06-23T11:24:44+02:00' associations: {} quantified_associations: {} quality_scores: [] completenesses: [] workflow_execution_statuses: [] '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. '422': description: 'This response indicates that the validation of the entity given in the body of the request failed. It occurs when the server understands the request but cannot process it due to validation errors in the provided data. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 422 message: type: string description: Message explaining the error example: Validation failed. errors: type: array description: A list of validation error messages (optional) items: type: object properties: property: type: string description: Name of the invalid property message: type: string description: Human-readable error message attribute: type: - string - 'null' description: Attribute code (if the error is on an attribute) locale: type: - string - 'null' description: Locale code involved in the error, if any scope: type: - string - 'null' description: Channel code involved in the error, if any example: - property: family message: The tshirts family does not exist in your PIM. _links: type: object properties: documentation: type: object properties: href: type: string example: documentation: href: http://api.akeneo.com/api-reference.html example: code: 422 message: Validation failed. errors: - property: family message: The tshirts family does not exist in your PIM. - property: categories message: The "tvs_projectors" category does not exist. - property: associations.SUBSTITUTION.groups message: You should associate existing groups. The "promotion" group does not exist. - property: values message: The "description" attribute requires a channel. attribute: description locale: en_US scope: null - property: values message: The "name" attribute requires a locale. attribute: name locale: null scope: null _links: documentation: href: http://api.akeneo.com/api-reference.html post: operationId: post_product_uuid x-visibility: public summary: Create a new product description: 'This endpoint allows you to create a new product. 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.' tags: - Product [uuid] security: - bearerToken: [] parameters: - in: query name: create_missing_options description: 'When present in the query string (regardless of value), automatically creates missing attribute options during product/product model creation or update. This only works for simple select and multi select attributes that have the `enable_option_creation_during_import` property set to `true` (configurable via the Attribute API). ' required: false schema: type: string example: '' requestBody: description: Body of a product creation request content: application/json: schema: type: object properties: uuid: type: string description: Product UUID example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 enabled: type: boolean description: Whether the product is enabled default: true example: true family: type: - string - 'null' description: '[Family](https://api.akeneo.com/api-reference.html#Family) code from which the product inherits its attributes and attributes requirements. In the case of variant product, the given family should be the same as the product model family. ' default: null only in the case of a non variant product x-validation-rules: It is equal to an existing family code example: smartphone categories: type: array description: Codes of the [categories](https://api.akeneo.com/api-reference.html#Category) in which the product is classified items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing category code example: - smartphones - electronics groups: type: array description: Codes of the groups to which the product belong items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing group code example: - summer_collection - sale parent: type: - string - 'null' description: Code of the parent [product model](https://api.akeneo.com/api-reference.html#Productmodel) when the product is a variant default: null x-validation-rules: It is equal to an existing product model code only if the product is variant otherwise it's equal to null example: my_super_battery values: type: object description: 'Product attributes values. Each key is an attribute code, and the value is an array of value objects for that attribute. See [documentation](https://api.akeneo.com/concepts/products.html#focus-on-the-product-values) for details. ' patternProperties: ^\w+$: type: array items: type: object required: - data description: 'A value for a given attribute, for a given locale/scope combination. - locale: Locale code, or null if not localizable. - scope: Channel code, or null if not scopable. - data: The value for this attribute/locale/scope. Type and format depend on the attribute type (see Akeneo docs). - linked_data: Additional data for select/multiselect/asset attributes. Read-only. - attribute_type: The type of the value''s attribute. Read-only. - reference_data_name: Reference entity code or asset family code. Read-only. ' properties: locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the product value' example: en_US scope: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the product value' example: ecommerce data: description: 'The value for this attribute/locale/scope. Type and format depend on the attribute type. - String for text, textarea, file, image, date, simple select, reference data simple select, reference entity. - Array of strings for multi select, reference data multi select, reference entity collection, asset collection, PAM asset collection. - Integer or string for number (depending on decimals_allowed). - Boolean for boolean attributes. - Object for metric, containing an "amount" (int), "unit" (string), and "symbol" (string, read-only) key. - Object for product link, containing a "type" (string) and "id" (string) key. - Object for table, containing different keys (int, boolean or string). - Object for price, with a "amount" (int) and a "currency" (string) key. ' anyOf: - type: string description: 'A reference entity value. The string is the code of the reference entity. ' example: designer_ref - type: array description: 'A reference entity collection value. The array contains codes of reference entities. ' items: type: string example: - designer_ref_1 - designer_ref_2 - type: array description: 'An asset collection value. The array contains asset codes ' items: type: string example: - left_side - right_side - type: boolean description: 'A boolean value. Used for attributes of type `pim_catalog_boolean`. ' example: true - type: string description: "A date value for attributes of type `pim_catalog_date`.\n\nTwo input formats are accepted:\n - **Date only** (`YYYY-MM-DD`), for example `2021-04-29`.\n - **ISO 8601 date-time**, either with a UTC offset (`YYYY-MM-DDTHH:MM:SS+00:00`) or in Zulu form (`YYYY-MM-DDTHH:MM:SSZ`), for example `2021-04-29T08:58:00Z`.\n\nThe ISO 8601 date-time form is only meaningful on attributes where `display_time` is enabled.\nOn attributes where `display_time` is `false`, the time component is ignored and the filter behaves as if a date-only value was provided.\n\nSpace-separated date-times (for example `2021-04-29 08:58:00`) are not supported and will be rejected.\n" example: '2021-04-29T08:58:00Z' - type: string description: 'A file value. The string is a file key referencing the uploaded file. ' example: f/2/e/6/f2e6674e0766acdc70f814_myFile.pdf - type: string description: 'An identifier value. Used for attributes of type `pim_catalog_identifier`. ' example: SKU-12345 - type: string description: 'An image value. The string is a file key referencing the uploaded image. ' example: 1/d/7/f/1d7f0987000cea4d14908fe679af4e36ea3632ef_10806799_1356.jpg - type: object description: 'A metric value. Object with amount, unit, and symbol. ' properties: amount: description: 'The amount of the metric. - String representing a number if allowed on attribute settings ("decimals_allowed" parameter). - Integer if the attribute does not allow decimals. ' oneOf: - type: string example: '800.0000' - type: integer example: 800 unit: type: string description: The unit of the metric example: GRAM symbol: type: string description: The symbol of the unit, resolved from the measurement family definition. Read-only. readOnly: true example: g required: - amount - unit example: amount: '800.0000' unit: GRAM symbol: g - type: array description: 'A multi select value. The array contains option codes. ' items: type: string example: - summer_2017 - winter_2016 - anyOf: - type: number - type: string pattern: ^\\d+(\\.\\d+)?$ description: 'A number value. Used for attributes of type `pim_catalog_number`. Can be integer or decimal, depending on attribute settings (`decimals_allowed` parameter). ' example: 42.5 - type: array description: 'A price collection value. The array contains objects with amount and currency. ' items: type: object required: - amount - currency properties: amount: description: 'The amount of the price. - String representing a number if the attribute allows decimals. - Integer if the attribute does not allow decimals. ' oneOf: - type: string example: '12.50' - type: integer example: 10 currency: type: string description: The currency code example: USD example: - amount: '12.50' currency: USD - amount: 10 currency: EUR - type: object oneOf: - type: object description: Link to a product by UUID or identifier required: - type - id properties: type: type: string enum: - product description: The type of the linked entity example: product id: type: string description: The UUID of the linked product example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 additionalProperties: false - type: object description: Link to a product by identifier required: - type - identifier properties: type: type: string enum: - product description: The type of the linked entity example: product identifier: type: - string - 'null' description: The identifier of the linked product example: bl1850b additionalProperties: false - type: object description: Link to a product model by code required: - type - id properties: type: type: string enum: - product_model description: The type of the linked entity example: product_model id: type: string description: The code of the linked product model example: my_super_battery additionalProperties: false description: "A product link value. Object with:\n - type: 'product' or 'product_model'\n - id: UUID (for product) or code (for product_model)\n - identifier: identifier (for product)\nOnly one of id or identifier is present, depending on the type and linking method.\n" example: type: product id: fc24e6c3-933c-4a93-8a81-e5c703d134d5 - type: string description: 'A simple select value. The string is the option code. ' example: black - type: array description: "A table value. Each item in the array is a row, represented as an object.\nEach key in the row object is a column code, and the value depends on the column type:\n - string (for text, select, reference entity, date)\n - integer or number (for number, depending on decimals_allowed)\n - boolean (for yes/no)\n - object (for product link, measurement, etc.)\nThe first column is always a select, reference entity, incremental number, or product link.\nThe table structure (columns and types) is defined in the attribute configuration.\n" items: type: object description: 'The value for the column identified by the key. The type of the value depends on the column type defined in the attribute configuration. ' patternProperties: ^\w+$: oneOf: - type: string description: Text, select, reference entity, or date value example: value1 - type: number description: Decimal value (number column, with or without decimals) example: 3.14 - type: boolean description: Boolean value (yes/no column) example: true - type: object description: Product link value (see pim_catalog_product_link) required: - type properties: type: type: string enum: - product - product_model description: The type of the linked entity example: product id: type: string description: The UUID (for product) or code (for product_model) example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 identifier: type: string description: The identifier of the linked product (alternative to id for product) example: bl1850b additionalProperties: false - type: object description: Measurement value (metric column) required: - amount - unit properties: amount: oneOf: - type: string pattern: ^-?\d+\.\d+$ example: '12.50' - type: integer example: 10 description: The amount of the measurement unit: type: string description: The unit of the measurement example: GRAM additionalProperties: false example: - ingredient: Sugar quantity: 10 organic: true best_before: '2024-12-31' included_product: type: product id: fc24e6c3-933c-4a93-8a81-e5c703d134d5 weight: amount: '12.50' unit: GRAM - type: string description: 'A text value. Used for attributes of type `pim_catalog_text`. ' example: T-shirt long sleeves Winter special, 100% wool - type: string description: 'A textarea value. Used for attributes of type `pim_catalog_textarea`. ' example: This is a long product description with multiple lines. - type: 'null' description: Null value used to clear/remove attribute values example: T-shirt long sleeves Winter special, 100% wool linked_data: type: - object - 'null' description: 'Object containing additional data when a related query parameter is enabled. See [the `linked_data` format](https://api.akeneo.com/concepts/products.html#the-linked_data-format) section for more details. ' example: attribute: main_color code: black labels: en_US: Black fr_FR: Noir attribute_type: type: string description: The type of the value's attribute. See [type](https://api.akeneo.com/concepts/catalog-structure.html#attribute) section for more details. readOnly: true enum: - pim_catalog_identifier - pim_catalog_text - pim_catalog_textarea - pim_catalog_simpleselect - pim_catalog_multiselect - pim_catalog_boolean - pim_catalog_date - pim_catalog_number - pim_catalog_metric - pim_catalog_price_collection - pim_catalog_image - pim_catalog_file - pim_catalog_asset_collection - akeneo_reference_entity - akeneo_reference_entity_collection - pim_reference_data_simpleselect - pim_reference_data_multiselect - pim_catalog_table - pim_catalog_product_link example: pim_catalog_text reference_data_name: type: string 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`. ' readOnly: true x-warning: Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types example: designer_ref _links: type: - object - 'null' description: 'Object containing download links for media files (images, files). Only present for file and image attribute types. ' readOnly: true properties: download: type: object properties: href: type: string description: URL for downloading the media file example: http://localhost/api/rest/v1/media-files/path/to/file/download example: download: href: http://localhost/api/rest/v1/media-files/5/d/b/1/5db16b5800314d8bc6358fb80b75f0fb0dedc6d0_akeneo.jpg/download x-validation-rules: Validation rules detailed in Product values section example: description: - data: T-shirt long sleeves Winter special, 100% wool locale: null scope: null associations: type: object description: Several associations related to groups, product models and/or other products, grouped by association types patternProperties: ^\w+$: type: object properties: groups: type: array description: Array of groups codes with which the product is in relation items: type: string products: type: array description: Array of product identifiers with which the product is in relation items: type: string product_models: type: array description: Array of product model codes with which the product is in relation items: type: string additionalProperties: false x-validation-rules: '- The `associationTypeCode` is the code of an existing association type. - Each string in the array of the property `groups` is the code of an existing group. - Each string in the array of the property `products` is the identifier of an existing product. - Each string in the array of the property `product_models` is the code of an existing product model. ' example: X_SELL: groups: [] products: - product_1 - product_2 product_models: - product_model_1 UPSELL: groups: - group_1 products: [] product_models: [] quantified_associations: type: object description: Several quantified associations related to products and/or product models, grouped by quantified association types patternProperties: ^\w+$: type: object properties: products: type: array description: Array of objects containing product uuids and quantities with which the product is in relation items: type: object properties: uuid: type: string quantity: type: integer product_models: type: array description: Array of objects containing product model codes and quantities with which the product is in relation items: type: object properties: identifier: type: string quantity: type: integer x-validation-rules: '- The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. - Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it. - Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it. ' example: PACK: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: aaf518b2-f91e-40f1-a53a-78ce5e81a6f9 quantity: 3 product_models: - identifier: product_model_1 quantity: 1 example: uuid: 25566245-55c3-42ce-86d9-8610ac459fa8 enabled: true family: tshirt categories: - summer_collection groups: [] parent: null values: sku: - data: top locale: null scope: null name: - data: Top locale: en_US scope: null - data: Débardeur locale: fr_FR 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 price: - data: - amount: '15.5' currency: EUR - amount: '15' currency: USD locale: null scope: null color: - data: black locale: null scope: null linked_data: attribute: color code: black labels: en_US: Black fr_FR: Noir size: - data: m locale: null scope: null linked_data: attribute: size code: m labels: en_US: M fr_FR: M collection: - data: - winter_2016 locale: null scope: null linked_data: winter_2016: attribute: collection code: winter_2016 labels: en_US: Winter 2016 fr_FR: Hiver 2016 associations: PACK: products: - d055527c-0698-4967-8f16-8a5f23f4e5cf product_models: [] groups: [] quantified_associations: PRODUCT_SET: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc quantity: 1 product_models: - identifier: model-biker-jacket-leather quantity: 2 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 server understands the request but cannot process it due to validation errors in the provided data. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 422 message: type: string description: Message explaining the error example: Validation failed. errors: type: array description: A list of validation error messages (optional) items: type: object properties: property: type: string description: Name of the invalid property message: type: string description: Human-readable error message attribute: type: - string - 'null' description: Attribute code (if the error is on an attribute) locale: type: - string - 'null' description: Locale code involved in the error, if any scope: type: - string - 'null' description: Channel code involved in the error, if any example: - property: family message: The tshirts family does not exist in your PIM. _links: type: object properties: documentation: type: object properties: href: type: string example: documentation: href: http://api.akeneo.com/api-reference.html example: code: 422 message: Validation failed. errors: - property: family message: The tshirts family does not exist in your PIM. - property: categories message: The "tvs_projectors" category does not exist. - property: associations.SUBSTITUTION.groups message: You should associate existing groups. The "promotion" group does not exist. - property: values message: The "description" attribute requires a channel. attribute: description locale: en_US scope: null - property: values message: The "name" attribute requires a locale. attribute: name locale: null scope: null _links: documentation: href: http://api.akeneo.com/api-reference.html patch: operationId: patch_products_uuid x-visibility: public summary: Update/create several products description: 'This endpoint allows you to update and/or create several products at once. Learn more about Update behavior. Note that if no product exists for the given uuid, it creates it. 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.' tags: - Product [uuid] security: - bearerToken: [] parameters: - in: query name: create_missing_options description: 'When present in the query string (regardless of value), automatically creates missing attribute options during product/product model creation or update. This only works for simple select and multi select attributes that have the `enable_option_creation_during_import` property set to `true` (configurable via the Attribute API). ' required: false schema: type: string example: '' x-body-by-line: 'Contains several lines, each line is a product in JSON standard format. Modifications to existing products can be specified using additional keys such as `add_categories` and `remove_categories`. ' requestBody: description: "Body containing the products to update or create using UUIDs.\nEach line is a JSON object representing a product.\nEach object contains the following properties:\n - `uuid`: Product UUID (string) (mandatory)\n - `enabled`: Whether the product is enabled (boolean) (optional)\n - `family`: Family code from which the product inherits its attributes and attributes requirements (string) (optional)\n - `categories`: Codes of the categories in which the product is classified (array) (optional)\n - `add_categories`: Codes of the categories to add to the product (array) (optional)\n - `remove_categories`: Codes of the categories to remove from the product (array) (optional)\n - `groups`: Codes of the groups to which the product belong (array) (optional)\n - `parent`: Code of the parent product model when the product is a variant (string) (optional)\n - `values`: Product attributes values. Each key is an attribute code, and the value is an array of value objects for that attribute (object) (optional)\n - `associations`: Several associations related to groups, product models and/or other products, grouped by association types (object) (optional)\n - `quantified_associations`: Several quantified associations related to products and/or product models, grouped by quantified association types (object) (optional)\n - `created`: Date of creation (string) (read-only)\n - `updated`: Date of the last update (string) (read-only)\n - `metadata`: More information around the product (object) (read-only)\n - `quality_scores`: Product quality scores for each channel/locale combination (only available when the `with_quality_scores` query parameter is set to `true`) (object) (read-only)\n - `completenesses`: Product completenesses for each channel/locale combination (only available when the `with_completenesses` query parameter is set to `true`) (object) (read-only)\n" content: application/vnd.akeneo.collection+json: schema: type: string x-body-by-line-schema: type: object properties: uuid: type: string description: Product UUID example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 enabled: type: boolean description: Whether the product is enabled default: true example: true family: type: - string - 'null' description: '[Family](https://api.akeneo.com/api-reference.html#Family) code from which the product inherits its attributes and attributes requirements. In the case of variant product, the given family should be the same as the product model family. ' default: null only in the case of a non variant product x-validation-rules: It is equal to an existing family code example: smartphone categories: type: array description: Codes of the [categories](https://api.akeneo.com/api-reference.html#Category) in which the product is classified items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing category code example: - smartphones - electronics add_categories: type: array description: 'Codes of the [categories](https://api.akeneo.com/api-reference.html#Category) to add to the product. Existing categories will be preserved. ' items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing category code. Cannot be used with the `categories` key example: - clothing - shoes remove_categories: type: array description: 'Codes of the [categories](https://api.akeneo.com/api-reference.html#Category) to remove from the product. Other categories will be preserved.d ' items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing category code. Cannot be used with the `categories` key example: - shirts - trousers groups: type: array description: Codes of the groups to which the product belong items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing group code example: - summer_collection - sale parent: type: - string - 'null' description: Code of the parent [product model](https://api.akeneo.com/api-reference.html#Productmodel) when the product is a variant default: null x-validation-rules: It is equal to an existing product model code only if the product is variant otherwise it's equal to null example: my_super_battery values: type: object description: 'Product attributes values. Each key is an attribute code, and the value is an array of value objects for that attribute. See [documentation](https://api.akeneo.com/concepts/products.html#focus-on-the-product-values) for details. ' x-validation-rules: Validation rules detailed in Product values section example: description: - data: T-shirt long sleeves Winter special, 100% wool locale: null scope: null associations: type: object description: Several associations related to groups, product models and/or other products, grouped by association types patternProperties: ^\w+$: type: object properties: groups: type: array description: Array of groups codes with which the product is in relation items: type: string products: type: array description: Array of product identifiers with which the product is in relation items: type: string product_models: type: array description: Array of product model codes with which the product is in relation items: type: string additionalProperties: false x-validation-rules: '- The `associationTypeCode` is the code of an existing association type. - Each string in the array of the property `groups` is the code of an existing group. - Each string in the array of the property `products` is the identifier of an existing product. - Each string in the array of the property `product_models` is the code of an existing product model. ' example: X_SELL: groups: [] products: - product_1 - product_2 product_models: - product_model_1 UPSELL: groups: - group_1 products: [] product_models: [] quantified_associations: type: object description: Several quantified associations related to products and/or product models, grouped by quantified association types patternProperties: ^\w+$: type: object properties: products: type: array description: Array of objects containing product uuids and quantities with which the product is in relation items: type: object properties: uuid: type: string quantity: type: integer product_models: type: array description: Array of objects containing product model codes and quantities with which the product is in relation items: type: object properties: identifier: type: string quantity: type: integer x-validation-rules: '- The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. - Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it. - Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it. ' example: PACK: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: aaf518b2-f91e-40f1-a53a-78ce5e81a6f9 quantity: 3 product_models: - identifier: product_model_1 quantity: 1 created: type: string description: Date of creation format: date-time readOnly: true x-immutable: true example: '2022-03-14T15:25:45+00:00' updated: type: string description: Date of the last update format: date-time readOnly: true example: '2022-06-24T12:54:58+00:00' metadata: type: object description: More information around the product readOnly: true properties: workflow_status: description: Status of the product regarding the user permissions type: string enum: - read_only - draft_in_progress - proposal_waiting_for_approval - working_copy x-immutable: true example: workflow_status: read_only quality_scores: type: array description: 'Product quality scores for each channel/locale combination (only available when the `with_quality_scores` query parameter is set to `true`). ' items: type: object properties: scope: type: string description: Channel code for which the quality score is calculated locale: type: string description: Locale code for which the quality score is calculated data: type: string enum: - A - B - C - D - E description: Quality score value for the given channel/locale combination readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: A completenesses: type: array description: 'Product completenesses for each channel/locale combination (only available when the `with_completenesses` query parameter is set to `true`). ' items: type: object properties: scope: type: string description: Channel code for which the completenesses score is calculated locale: type: string description: Channel code for which the completenesses score is calculated data: type: integer description: Completenesses score value for the given channel/locale combination readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: 100 workflow_execution_statuses: type: array description: 'Workflow execution statuses of the product (only available when the `with_workflow_execution_statuses` query parameter is set to `true`) ' items: type: object properties: uuid: type: string description: Workflow execution UUID status: type: string description: Status of the workflow execution enum: - in_progress - completed started_at: type: string format: date-time description: Date and time when the workflow execution was started completed_at: type: - string - 'null' format: date-time description: Date and time when the workflow execution was completed, null if still in progress workflow: type: object description: Workflow associated with the workflow execution properties: uuid: type: string description: Workflow UUID code: type: string description: Workflow code labels: type: object description: Workflow labels for each locale additionalProperties: type: string tasks: type: array description: Tasks associated with the workflow execution items: type: object properties: uuid: type: string description: Task UUID status: type: string description: Status of the task enum: - in_progress created_at: type: string format: date-time description: Date and time when the task was created step: type: object properties: uuid: type: string description: Step UUID code: type: string description: Step code labels: type: object description: Step labels for each locale additionalProperties: type: string readOnly: true x-immutable: true example: - uuid: 8c0fe59f-4d29-4faa-b4c3-d327e7f3cc52 status: in_progress started_at: '2024-02-22T17:31:00Z' completed_at: null workflow: uuid: 6f37476a-04c2-46c0-b6d0-e18316959068 code: enrichment_workflow labels: en_US: Enrichment workflow fr_FR: Workflow d'enrichissement tasks: - uuid: 8f6c2d18-fbd4-4f7e-81df-cb3dc368fe07 status: in_progress created_at: '2024-02-22T17:31:00Z' step: uuid: f626d0e5-84a5-41fc-8215-65508c253edb code: review_step labels: en_US: Marketing review fr_FR: Revue marketing - uuid: fc66ab46-3362-4000-862b-bd825f35f735 status: completed started_at: '2024-02-22T17:31:00Z' completed_at: '2024-03-20T00:31:00Z' workflow: uuid: 71b777a3-c2c2-4237-8d39-8bf13ec81755 code: compliance_workflow labels: {} tasks: [] example: '{"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5","values":{"description":[{"scope":"ecommerce","locale":"en_US","data":"My amazing cap"}]}} {"uuid":"573dd613-0c7f-4143-83d5-63cc5e535966","values":{"sku":[{"data":"updated_sku","locale":null,"scope":null}]}, "group":["promotion"]} {"uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","values":{"sku":[{"data":"new_product","locale":null,"scope":null}]},"family":"clothes"} ' 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 uuid: type: string description: Product uuid example: 00073089-1310-4340-bcf0-9e33e4019b79 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,"uuid":"fc24e6c3-933c-4a93-8a81-e5c703d134d5","status_code":204} {"line":2,"uuid":"573dd613-0c7f-4143-83d5-63cc5e535966","status_code":422,"message":"Property \"group\" does not exist."} {"line":3,"uuid":"25566245-55c3-42ce-86d9-8610ac459fa8","status_code":201} ' '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." '422': description: 'This response indicates that the validation of the entity given in the body of the request failed. It occurs when the server understands the request but cannot process it due to validation errors in the provided data. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 422 message: type: string description: Message explaining the error example: Validation failed. errors: type: array description: A list of validation error messages (optional) items: type: object properties: property: type: string description: Name of the invalid property message: type: string description: Human-readable error message attribute: type: - string - 'null' description: Attribute code (if the error is on an attribute) locale: type: - string - 'null' description: Locale code involved in the error, if any scope: type: - string - 'null' description: Channel code involved in the error, if any example: - property: family message: The tshirts family does not exist in your PIM. _links: type: object properties: documentation: type: object properties: href: type: string example: documentation: href: http://api.akeneo.com/api-reference.html example: code: 422 message: Validation failed. errors: - property: family message: The tshirts family does not exist in your PIM. - property: categories message: The "tvs_projectors" category does not exist. - property: associations.SUBSTITUTION.groups message: You should associate existing groups. The "promotion" group does not exist. - property: values message: The "description" attribute requires a channel. attribute: description locale: en_US scope: null - property: values message: The "name" attribute requires a locale. attribute: name locale: null scope: null _links: documentation: href: http://api.akeneo.com/api-reference.html /api/rest/v1/products-uuid/search: post: operationId: post_products_uuid_search x-visibility: public summary: Search list of products description: 'This endpoint allows you to search for products that match the filters provided in the request body. Products are paginated and can be filtered by scope, locales, attributes, and other criteria. User-group-based permissions are applied to the products you request. Important limitations - The maximum number of attributes in the request body is 800. - The maximum number of search criteria is 20. - The maximum number of items in an array (e.g., values for filters like `IN` or `NOT IN`) is 800.' tags: - Product [uuid] security: - bearerToken: [] parameters: - in: query name: pagination_type description: 'Specify which pagination method to use for navigating through large datasets. It is useful for choosing between different pagination strategies based on your specific use case and performance requirements. See [Pagination](https://api.akeneo.com/documentation/pagination.html) section for more details. ' required: false schema: type: string enum: - page - search_after default: page example: page - 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: search_after description: 'Cursor when using the `search_after` pagination method type. It is essential for navigating through pages in cursor-based pagination, providing more efficient pagination for large datasets. Should never be set manually, see [Pagination](https://api.akeneo.com/documentation/pagination.html) section for more details. ' required: false schema: type: string default: cursor to the first page example: qaXbcde - 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 requestBody: description: Body of the request to search for products content: application/json: schema: type: object properties: search: type: string description: 'Stringified JSON to filter products, for more details see the [Filters](https://api.akeneo.com/documentation/filter.html) section. ' example: '{"completeness":[{"operator": "=", "value": 100, "scope":"ecommerce"}]}' scope: 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 [Filter product values via channel](https://api.akeneo.com/documentation/filter.html#via-channel) section. ' example: ecommerce locales: 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 [Filter product values via locale](https://api.akeneo.com/documentation/filter.html#via-locale) section. ' example: en_US,fr_FR attributes: type: string description: 'Filter product values to only return those concerning the given attributes, for more details see the [Filter product values via attributes](https://api.akeneo.com/documentation/filter.html#via-attributes) section. ' example: name,description convert_measurements: type: boolean description: 'Convert measurement attribute values to the appropriate unit for the channel provided by the "scope" parameter. ' default: false example: true with_attribute_options: type: boolean description: 'Return labels of attribute options in the response. See [the `linked_data` format](https://api.akeneo.com/concepts/products.html#the-linked_data-format) section for more details. ' example: true with_asset_share_links: type: boolean description: 'Whether to return asset collection share link URLs in the response. See [the `linked_data` format](https://api.akeneo.com/concepts/products.html#the-linked_data-format) for more details. ' example: true with_quality_scores__products: type: boolean description: Return product quality scores in the response example: true with_readiness: type: string enum: - scores_only - detailed description: 'Return product readiness in the response. `scores_only` returns percentage scores only; `detailed` also returns unmet requirements. Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager. ' example: detailed with_completenesses: type: boolean description: Return product completenesses in the response example: true with_workflow_execution_statuses: type: boolean description: Return an array of workflow_execution_statuses in the response example: true examples: searchProductsWithCriteria: summary: Search for products with specific criteria on scope, locale and completeness value: scope: ecommerce locales: en_US search: '{"completeness":[{"operator": "=","value": 100,"scope":"ecommerce"}]}' attributes: description, name with_attribute_options: false with_asset_share_links: true with_quality_scores__products: true with_completenesses: true searchProductsWithAttributeValues: summary: Search for products with value for specific attributes value: attributes: sku, colors, a_localized_and_scopable_text_area scope: tablet searchProductsByReadiness: summary: Search for products by their readiness score for a a given readiness configuration and channel/locale value: scope: ecommerce search: '{"readiness":[{"operator":"=","value":100,"readiness_code":"camcorders_ecommerce","scope":"ecommerce","locale":"en_US"}]}' required: false responses: '200': description: 'Returns products paginated. The response is paginated and includes links to navigate through the pages. ' content: application/json: schema: title: Products 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: 3 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/products-uuid/top - type: object properties: uuid: type: string description: Product UUID example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 enabled: type: boolean description: Whether the product is enabled default: true example: true family: type: - string - 'null' description: '[Family](https://api.akeneo.com/api-reference.html#Family) code from which the product inherits its attributes and attributes requirements. In the case of variant product, the given family should be the same as the product model family. ' default: null only in the case of a non variant product x-validation-rules: It is equal to an existing family code example: smartphone categories: type: array description: Codes of the [categories](https://api.akeneo.com/api-reference.html#Category) in which the product is classified items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing category code example: - smartphones - electronics groups: type: array description: 'Codes of the groups to which the product belong. Each string of the array is equal to an existing group code. ' items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing group code example: - summer_collection - sale parent: type: - string - 'null' description: Code of the parent [product model](https://api.akeneo.com/api-reference.html#Productmodel) when the product is a variant default: null x-validation-rules: '- It is equal to an existing product model. - This product model has the same family variant as the one given in the `family_variant field`. ' example: my_super_battery root_parent: type: string readOnly: true description: 'Code of the root parent product model when the product is a variant (only available when the `with_root_parent` is set to `true`). ' default: 'null' x-validation-rules: It is equal to an existing product model code only if the product is variant; otherwise, the property does not appear example: my_super_battery values: type: object description: 'Product attributes values. Each key is an attribute code, and the value is an array of value objects for that attribute. See [documentation](https://api.akeneo.com/concepts/products.html#focus-on-the-product-values) for details. ' patternProperties: ^\w+$: type: array items: type: object required: - data description: 'A value for a given attribute, for a given locale/scope combination. - locale: Locale code, or null if not localizable. - scope: Channel code, or null if not scopable. - data: The value for this attribute/locale/scope. Type and format depend on the attribute type (see Akeneo docs). - linked_data: Additional data for select/multiselect/asset attributes. Read-only. - attribute_type: The type of the value''s attribute. Read-only. - reference_data_name: Reference entity code or asset family code. Read-only. ' properties: locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the product value' example: en_US scope: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the product value' example: ecommerce data: description: 'The value for this attribute/locale/scope. Type and format depend on the attribute type. - String for text, textarea, file, image, date, simple select, reference data simple select, reference entity. - Array of strings for multi select, reference data multi select, reference entity collection, asset collection, PAM asset collection. - Integer or string for number (depending on decimals_allowed). - Boolean for boolean attributes. - Object for metric, containing an "amount" (int), "unit" (string), and "symbol" (string, read-only) key. - Object for product link, containing a "type" (string) and "id" (string) key. - Object for table, containing different keys (int, boolean or string). - Object for price, with a "amount" (int) and a "currency" (string) key. ' anyOf: - type: string description: 'A reference entity value. The string is the code of the reference entity. ' example: designer_ref - type: array description: 'A reference entity collection value. The array contains codes of reference entities. ' items: type: string example: - designer_ref_1 - designer_ref_2 - type: array description: 'An asset collection value. The array contains asset codes ' items: type: string example: - left_side - right_side - type: boolean description: 'A boolean value. Used for attributes of type `pim_catalog_boolean`. ' example: true - type: string description: "A date value for attributes of type `pim_catalog_date`.\n\nTwo input formats are accepted:\n - **Date only** (`YYYY-MM-DD`), for example `2021-04-29`.\n - **ISO 8601 date-time**, either with a UTC offset (`YYYY-MM-DDTHH:MM:SS+00:00`) or in Zulu form (`YYYY-MM-DDTHH:MM:SSZ`), for example `2021-04-29T08:58:00Z`.\n\nThe ISO 8601 date-time form is only meaningful on attributes where `display_time` is enabled.\nOn attributes where `display_time` is `false`, the time component is ignored and the filter behaves as if a date-only value was provided.\n\nSpace-separated date-times (for example `2021-04-29 08:58:00`) are not supported and will be rejected.\n" example: '2021-04-29T08:58:00Z' - type: string description: 'A file value. The string is a file key referencing the uploaded file. ' example: f/2/e/6/f2e6674e0766acdc70f814_myFile.pdf - type: string description: 'An identifier value. Used for attributes of type `pim_catalog_identifier`. ' example: SKU-12345 - type: string description: 'An image value. The string is a file key referencing the uploaded image. ' example: 1/d/7/f/1d7f0987000cea4d14908fe679af4e36ea3632ef_10806799_1356.jpg - type: object description: 'A metric value. Object with amount, unit, and symbol. ' properties: amount: description: 'The amount of the metric. - String representing a number if allowed on attribute settings ("decimals_allowed" parameter). - Integer if the attribute does not allow decimals. ' oneOf: - type: string example: '800.0000' - type: integer example: 800 unit: type: string description: The unit of the metric example: GRAM symbol: type: string description: The symbol of the unit, resolved from the measurement family definition. Read-only. readOnly: true example: g required: - amount - unit example: amount: '800.0000' unit: GRAM symbol: g - type: array description: 'A multi select value. The array contains option codes. ' items: type: string example: - summer_2017 - winter_2016 - anyOf: - type: number - type: string pattern: ^\\d+(\\.\\d+)?$ description: 'A number value. Used for attributes of type `pim_catalog_number`. Can be integer or decimal, depending on attribute settings (`decimals_allowed` parameter). ' example: 42.5 - type: array description: 'A price collection value. The array contains objects with amount and currency. ' items: type: object required: - amount - currency properties: amount: description: 'The amount of the price. - String representing a number if the attribute allows decimals. - Integer if the attribute does not allow decimals. ' oneOf: - type: string example: '12.50' - type: integer example: 10 currency: type: string description: The currency code example: USD example: - amount: '12.50' currency: USD - amount: 10 currency: EUR - type: object oneOf: - type: object description: Link to a product by UUID or identifier required: - type - id properties: type: type: string enum: - product description: The type of the linked entity example: product id: type: string description: The UUID of the linked product example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 additionalProperties: false - type: object description: Link to a product by identifier required: - type - identifier properties: type: type: string enum: - product description: The type of the linked entity example: product identifier: type: - string - 'null' description: The identifier of the linked product example: bl1850b additionalProperties: false - type: object description: Link to a product model by code required: - type - id properties: type: type: string enum: - product_model description: The type of the linked entity example: product_model id: type: string description: The code of the linked product model example: my_super_battery additionalProperties: false description: "A product link value. Object with:\n - type: 'product' or 'product_model'\n - id: UUID (for product) or code (for product_model)\n - identifier: identifier (for product)\nOnly one of id or identifier is present, depending on the type and linking method.\n" example: type: product id: fc24e6c3-933c-4a93-8a81-e5c703d134d5 - type: string description: 'A simple select value. The string is the option code. ' example: black - type: array description: "A table value. Each item in the array is a row, represented as an object.\nEach key in the row object is a column code, and the value depends on the column type:\n - string (for text, select, reference entity, date)\n - integer or number (for number, depending on decimals_allowed)\n - boolean (for yes/no)\n - object (for product link, measurement, etc.)\nThe first column is always a select, reference entity, incremental number, or product link.\nThe table structure (columns and types) is defined in the attribute configuration.\n" items: type: object description: 'The value for the column identified by the key. The type of the value depends on the column type defined in the attribute configuration. ' patternProperties: ^\w+$: oneOf: - type: string description: Text, select, reference entity, or date value example: value1 - type: number description: Decimal value (number column, with or without decimals) example: 3.14 - type: boolean description: Boolean value (yes/no column) example: true - type: object description: Product link value (see pim_catalog_product_link) required: - type properties: type: type: string enum: - product - product_model description: The type of the linked entity example: product id: type: string description: The UUID (for product) or code (for product_model) example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 identifier: type: string description: The identifier of the linked product (alternative to id for product) example: bl1850b additionalProperties: false - type: object description: Measurement value (metric column) required: - amount - unit properties: amount: oneOf: - type: string pattern: ^-?\d+\.\d+$ example: '12.50' - type: integer example: 10 description: The amount of the measurement unit: type: string description: The unit of the measurement example: GRAM additionalProperties: false example: - ingredient: Sugar quantity: 10 organic: true best_before: '2024-12-31' included_product: type: product id: fc24e6c3-933c-4a93-8a81-e5c703d134d5 weight: amount: '12.50' unit: GRAM - type: string description: 'A text value. Used for attributes of type `pim_catalog_text`. ' example: T-shirt long sleeves Winter special, 100% wool - type: string description: 'A textarea value. Used for attributes of type `pim_catalog_textarea`. ' example: This is a long product description with multiple lines. - type: 'null' description: Null value used to clear/remove attribute values example: T-shirt long sleeves Winter special, 100% wool linked_data: type: - object - 'null' description: 'Object containing additional data when a related query parameter is enabled. See [the `linked_data` format](https://api.akeneo.com/concepts/products.html#the-linked_data-format) section for more details. ' example: attribute: main_color code: black labels: en_US: Black fr_FR: Noir attribute_type: type: string description: The type of the value's attribute. See [type](https://api.akeneo.com/concepts/catalog-structure.html#attribute) section for more details. readOnly: true enum: - pim_catalog_identifier - pim_catalog_text - pim_catalog_textarea - pim_catalog_simpleselect - pim_catalog_multiselect - pim_catalog_boolean - pim_catalog_date - pim_catalog_number - pim_catalog_metric - pim_catalog_price_collection - pim_catalog_image - pim_catalog_file - pim_catalog_asset_collection - akeneo_reference_entity - akeneo_reference_entity_collection - pim_reference_data_simpleselect - pim_reference_data_multiselect - pim_catalog_table - pim_catalog_product_link example: pim_catalog_text reference_data_name: type: string 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`. ' readOnly: true x-warning: Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types example: designer_ref _links: type: - object - 'null' description: 'Object containing download links for media files (images, files). Only present for file and image attribute types. ' readOnly: true properties: download: type: object properties: href: type: string description: URL for downloading the media file example: http://localhost/api/rest/v1/media-files/path/to/file/download example: download: href: http://localhost/api/rest/v1/media-files/5/d/b/1/5db16b5800314d8bc6358fb80b75f0fb0dedc6d0_akeneo.jpg/download x-validation-rules: Validation rules detailed in Product values section example: description: - data: T-shirt long sleeves Winter special, 100% wool locale: null scope: null associations: type: object description: Several associations related to groups, product models and/or other products, grouped by association types patternProperties: ^\w+$: type: object properties: groups: type: array description: Array of groups codes with which the product is in relation items: type: string products: type: array description: Array of product identifiers with which the product is in relation items: type: string product_models: type: array description: Array of product model codes with which the product is in relation items: type: string additionalProperties: false x-validation-rules: '- The `associationTypeCode` is the code of an existing association type. - Each string in the array of the property `groups` is the code of an existing group. - Each string in the array of the property `products` is the identifier of an existing product. - Each string in the array of the property `product_models` is the code of an existing product model. ' example: X_SELL: groups: [] products: - product_1 - product_2 product_models: - product_model_1 UPSELL: groups: - group_1 products: [] product_models: [] quantified_associations: type: object description: Several quantified associations related to products and/or product models, grouped by quantified association types patternProperties: ^\w+$: type: object properties: products: type: array description: Array of objects containing product uuids and quantities with which the product is in relation items: type: object properties: uuid: type: string quantity: type: integer product_models: type: array description: Array of objects containing product model codes and quantities with which the product is in relation items: type: object properties: identifier: type: string quantity: type: integer x-validation-rules: '- The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. - Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it. - Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it. ' example: PACK: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: aaf518b2-f91e-40f1-a53a-78ce5e81a6f9 quantity: 3 product_models: - identifier: product_model_1 quantity: 1 created: type: string description: Date of creation format: date-time readOnly: true x-immutable: true example: '2022-03-14T15:25:45+00:00' updated: type: string description: Date of the last update format: date-time readOnly: true example: '2022-06-24T12:54:58+00:00' metadata: type: object description: More information around the product readOnly: true properties: workflow_status: description: Status of the product regarding the user permissions type: string enum: - read_only - draft_in_progress - proposal_waiting_for_approval - working_copy x-immutable: true example: workflow_status: read_only proposal_review_status: type: object description: 'Review status of each change carried by the draft, grouped like the `values` property so that a change can be matched on its attribute code, locale and scope (only available on the draft endpoints when the `with_proposal_review_status` query parameter is set to `true`). While `metadata.workflow_status` is `proposal_waiting_for_approval`, a change with the `draft` review status is one that was submitted and then rejected by a reviewer (or edited by the author after submission), whereas a change with the `to_review` review status is still pending. Clients must treat unknown `review_status` values as opaque. ' readOnly: true x-immutable: true properties: values: type: object description: Review status of each attribute value changed in the draft. Each key is an attribute code. patternProperties: ^\w+$: type: array items: type: object properties: locale: type: - string - 'null' description: Locale code of the changed value, null if the attribute is not localizable scope: type: - string - 'null' description: Channel code of the changed value, null if the attribute is not scopable review_status: type: string description: Review status stored for the change enum: - draft - to_review example: values: description: - locale: fr_FR scope: ecommerce review_status: draft - locale: de_DE scope: ecommerce review_status: to_review weight: - locale: null scope: null review_status: to_review quality_scores: type: array items: type: object properties: scope: type: string description: Channel code for which the quality score is calculated locale: type: string description: Locale code for which the quality score is calculated data: type: string enum: - A - B - C - D - E description: Quality score value for the given channel/locale combination description: 'Product quality scores for each channel/locale combination (only available when the `with_quality_scores` query parameter is set to `true`). ' readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: A completenesses: type: array description: 'Product completenesses for each channel/locale combination (only available when the `with_completenesses` query parameter is set to `true`). ' items: type: object properties: scope: type: string description: Channel code for which the completenesses score is calculated locale: type: string description: Channel code for which the completenesses score is calculated data: type: integer description: Completenesses score value for the given channel/locale combination readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: 100 readiness: type: object x-visibility: public description: 'Readiness scores (only available when the `with_readiness` query parameter is set to `scores_only` or `detailed`). Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager. ' properties: aggregated_scores_by_scope: type: array description: 'Aggregated readiness score per channel: the average of the per-locale scores within each readiness, then averaged across the readiness configurations that apply to that channel (equal weight) and rounded. ' items: type: object properties: scope: type: string description: Channel code for which the aggregated readiness score is calculated score: type: integer description: Aggregated readiness percentage score (0-100) for the given channel scores_by_scope_and_locale: type: object description: Readiness scores grouped by readiness code, for each channel/locale combination additionalProperties: type: array items: type: object properties: scope: type: string description: Channel code for which the readiness score is calculated locale: type: string description: Locale code for which the readiness score is calculated score: type: integer description: Readiness percentage score (0-100) for the given channel/locale combination unmet_requirements: type: array description: 'Requirements not yet met (only available when `with_readiness` is set to `detailed`). ' items: type: object properties: field: type: string description: Attribute code or product field the requirement applies to (e.g. `name`, `family`, `categories`) operator: type: string description: Comparison operator applied to the field to evaluate the requirement (e.g. `NOT EMPTY`, `=`, `IN`) value: description: Expected value for the requirement; type depends on the operator and may be null nullable: true readOnly: true x-immutable: true example: aggregated_scores_by_scope: - scope: ecommerce score: 88 scores_by_scope_and_locale: camcorders_ecommerce: - scope: ecommerce locale: en_US score: 75 unmet_requirements: - field: name operator: NOT EMPTY value: null - scope: ecommerce locale: fr_FR score: 100 unmet_requirements: [] workflow_execution_statuses: type: array description: 'Workflow execution statuses of the product (only available when the `with_workflow_execution_statuses` query parameter is set to `true`) ' items: type: object properties: uuid: type: string description: Workflow execution UUID status: type: string description: Status of the workflow execution enum: - in_progress - completed started_at: type: string format: date-time description: Date and time when the workflow execution was started completed_at: type: - string - 'null' format: date-time description: Date and time when the workflow execution was completed, null if still in progress workflow: type: object description: Workflow associated with the workflow execution properties: uuid: type: string description: Workflow UUID code: type: string description: Workflow code labels: type: object description: Workflow labels for each locale additionalProperties: type: string tasks: type: array description: Tasks associated with the workflow execution items: type: object properties: uuid: type: string description: Task UUID status: type: string description: Status of the task enum: - in_progress created_at: type: string format: date-time description: Date and time when the task was created step: type: object properties: uuid: type: string description: Step UUID code: type: string description: Step code labels: type: object description: Step labels for each locale additionalProperties: type: string readOnly: true x-immutable: true example: - uuid: 8c0fe59f-4d29-4faa-b4c3-d327e7f3cc52 status: in_progress started_at: '2024-02-22T17:31:00Z' completed_at: null workflow: uuid: 6f37476a-04c2-46c0-b6d0-e18316959068 code: enrichment_workflow labels: en_US: Enrichment workflow fr_FR: Workflow d'enrichissement tasks: - uuid: 8f6c2d18-fbd4-4f7e-81df-cb3dc368fe07 status: in_progress created_at: '2024-02-22T17:31:00Z' step: uuid: f626d0e5-84a5-41fc-8215-65508c253edb code: review_step labels: en_US: Marketing review fr_FR: Revue marketing - uuid: fc66ab46-3362-4000-862b-bd825f35f735 status: completed started_at: '2024-02-22T17:31:00Z' completed_at: '2024-03-20T00:31:00Z' workflow: uuid: 71b777a3-c2c2-4237-8d39-8bf13ec81755 code: compliance_workflow labels: {} tasks: [] example: items: - _links: self: href: https://demo.akeneo.com/api/rest/v1/products-uuid/top uuid: aaf518b2-f91e-40f1-a53a-78ce5e81a6f9 identifier: top family: tshirt groups: [] categories: - summer_collection enabled: true values: name: - data: Débardeur locale: fr_FR scope: null attribute_type: pim_catalog_text example: _links: self: href: https://demo.akeneo.com/api/rest/v1/products-uuid?page=3&with_count=true&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true&with_workflow_execution_statuses=true first: href: https://demo.akeneo.com/api/rest/v1/products-uuid?page=1&with_count=true&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true&with_workflow_execution_statuses=true previous: href: https://demo.akeneo.com/api/rest/v1/products-uuid?page=2&with_count=true&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true&with_workflow_execution_statuses=true next: href: https://demo.akeneo.com/api/rest/v1/products-uuid?page=4&with_count=true&limit=3&with_quality_scores=true&with_completenesses=true&with_attribute_options=true&with_workflow_execution_statuses=true current_page: 3 items_count: 3 _embedded: items: - _links: self: href: https://demo.akeneo.com/api/rest/v1/products/top uuid: 3fa85f64-5717-4562-b3fc-2c963f66afa6 enabled: true family: tshirt categories: - summer_collection groups: [] parent: null root_parent: 'null' values: sku: - data: top locale: null scope: null attribute_type: pim_catalog_identifier name: - data: Top locale: en_US scope: null attribute_type: pim_catalog_text - data: Débardeur locale: fr_FR scope: null attribute_type: pim_catalog_text description: - data: Summer top locale: en_US scope: ecommerce attribute_type: pim_catalog_textarea - data: Top locale: en_US scope: tablet attribute_type: pim_catalog_textarea - data: Débardeur pour l'été locale: fr_FR scope: ecommerce attribute_type: pim_catalog_textarea - data: Débardeur locale: fr_FR scope: tablet attribute_type: pim_catalog_textarea price: - data: - amount: '15.5' currency: EUR - amount: '15' currency: USD locale: null scope: null attribute_type: pim_catalog_price_collection color: - data: black locale: null scope: null linked_data: attribute: color code: black labels: en_US: Black fr_FR: Noir attribute_type: pim_catalog_simpleselect size: - data: m locale: null scope: null linked_data: attribute: size code: m labels: en_US: M fr_FR: M attribute_type: pim_catalog_simpleselect collection: - data: - winter_2016 locale: null scope: null linked_data: winter_2016: attribute: collection code: winter_2016 labels: en_US: Winter 2016 fr_FR: Hiver 2016 attribute_type: pim_catalog_multiselect created: '2016-06-23T18:24:44+02:00' updated: '2016-06-25T17:56:12+02:00' associations: PACK: products: - d055527c-0698-4967-8f16-8a5f23f4e5cf product_models: [] groups: [] quantified_associations: PRODUCT_SET: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc quantity: 1 product_models: - identifier: model-biker-jacket-leather quantity: 2 quality_scores: - scope: ecommerce locale: en_US data: A - scope: ecommerce locale: fr_FR data: B - scope: tablet locale: en_US data: D - scope: tablet locale: fr_FR data: E completenesses: - scope: ecommerce locale: en_US data: 10 - scope: ecommerce locale: fr_FR data: 20 - scope: tablet locale: en_US data: 30 - scope: tablet locale: fr_FR data: 40 workflow_execution_statuses: - uuid: 8c0fe59f-4d29-4faa-b4c3-d327e7f3cc52 status: in_progress started_at: '2024-02-22T17:31:00Z' completed_at: null workflow: uuid: 6f37476a-04c2-46c0-b6d0-e18316959068 code: enrichment_workflow labels: en_US: Enrichment workflow fr_FR: Workflow d'enrichissement tasks: - uuid: 8f6c2d18-fbd4-4f7e-81df-cb3dc368fe07 status: in_progress created_at: '2024-02-22T17:31:00Z' step: uuid: f626d0e5-84a5-41fc-8215-65508c253edb code: review_step labels: en_US: Marketing review fr_FR: Revue marketing - uuid: 59169984-6d6c-4fa7-b925-68b8e9d31ddb status: completed started_at: '2024-02-22T17:31:00Z' completed_at: '2024-02-22T17:31:00Z' workflow: uuid: b69ee158-a421-4680-bec0-a71bc73b8e31 code: compliance_workflow labels: {} tasks: [] - _links: self: href: https://demo.akeneo.com/api/rest/v1/products/cap uuid: aec6780b-c813-4bd7-8e24-1a8574471576 family: caps groups: [] parent: null root_parent: 'null' categories: - summer_collection enabled: true values: sku: - data: cap locale: null scope: null attribute_type: pim_catalog_identifier name: - data: Cap locale: en_US scope: null attribute_type: pim_catalog_text - data: Casquette locale: fr_FR scope: null attribute_type: pim_catalog_text description: - data: Cap unisex locale: en_US scope: ecommerce attribute_type: pim_catalog_textarea - data: Cap unisex locale: en_US scope: tablet attribute_type: pim_catalog_textarea - data: Casquette unisexe locale: fr_FR scope: ecommerce attribute_type: pim_catalog_textarea - data: Casquette unisexe locale: fr_FR scope: tablet attribute_type: pim_catalog_textarea price: - data: - amount: '20' currency: EUR - amount: '20' currency: USD locale: null scope: null attribute_type: pim_catalog_price_collection color: - data: black locale: null scope: null linked_data: attribute: color code: black labels: en_US: Black fr_FR: Noir attribute_type: pim_catalog_simpleselect created: '2016-06-23T18:24:44+02:00' updated: 2016-06-25T17:56:12+02:0 associations: PACK: products: - d055527c-0698-4967-8f16-8a5f23f4e5cf product_models: [] groups: [] quantified_associations: {} quality_scores: - scope: ecommerce locale: en_US data: A - scope: ecommerce locale: fr_FR data: B - scope: tablet locale: en_US data: D - scope: tablet locale: fr_FR data: E completenesses: - scope: ecommerce locale: en_US data: 20 - scope: ecommerce locale: fr_FR data: 30 - scope: tablet locale: en_US data: 55 - scope: tablet locale: fr_FR data: 70 workflow_execution_statuses: [] - _links: self: href: https://demo.akeneo.com/api/rest/v1/products/sweat uuid: 93f14b03-5ed3-4f23-87c6-ae3806041b6a family: null groups: [] parent: null root_parent: 'null' categories: - winter_collection enabled: true values: sku: - data: sweat locale: null scope: null attribute_type: pim_catalog_identifier created: '2016-06-23T11:24:44+02:00' updated: '2016-06-23T11:24:44+02:00' associations: {} quantified_associations: {} quality_scores: [] completenesses: [] workflow_execution_statuses: [] '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. '422': description: 'This response indicates that the validation of the entity given in the body of the request failed. It occurs when the server understands the request but cannot process it due to validation errors in the provided data. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 422 message: type: string description: Message explaining the error example: Validation failed. errors: type: array description: A list of validation error messages (optional) items: type: object properties: property: type: string description: Name of the invalid property message: type: string description: Human-readable error message attribute: type: - string - 'null' description: Attribute code (if the error is on an attribute) locale: type: - string - 'null' description: Locale code involved in the error, if any scope: type: - string - 'null' description: Channel code involved in the error, if any example: - property: family message: The tshirts family does not exist in your PIM. _links: type: object properties: documentation: type: object properties: href: type: string example: documentation: href: http://api.akeneo.com/api-reference.html example: code: 422 message: Validation failed. errors: - property: family message: The tshirts family does not exist in your PIM. - property: categories message: The "tvs_projectors" category does not exist. - property: associations.SUBSTITUTION.groups message: You should associate existing groups. The "promotion" group does not exist. - property: values message: The "description" attribute requires a channel. attribute: description locale: en_US scope: null - property: values message: The "name" attribute requires a locale. attribute: name locale: null scope: null _links: documentation: href: http://api.akeneo.com/api-reference.html /api/rest/v1/products-uuid/{uuid}: get: operationId: get_product_uuid_by_uuid x-visibility: public summary: Get a product description: 'This endpoint allows you to get the information about a given product. Permissions based on your user groups are applied to the product you request.' tags: - Product [uuid] security: - bearerToken: [] parameters: - in: path name: uuid 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 UUID is correctly formatted and corresponds to an existing entity in the system. ' required: true schema: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - in: query name: with_attribute_options description: 'Return labels of attribute options in the response. When set to `true`, the response will include human-readable labels for attribute options alongside their codes. This is useful for displaying human-readable labels instead of just option codes, which improves the user experience in frontend applications. If set to `false`, the response will only include option codes, which can improve performance. See [the `linked_data` format](https://api.akeneo.com/concepts/products.html#the-linked_data-format) section for more details. ' required: false schema: type: boolean default: false example: true - in: query name: with_asset_share_links description: 'Return asset collection share link URLs in the response. When set to `true`, the response will include direct URLs to asset collections for sharing purposes. This is useful for accessing direct links to asset collections, which can be used for sharing or external integrations. If set to `false`, the response will not include share links, which can improve performance. See [the `linked_data` format](https://api.akeneo.com/concepts/products.html#the-linked_data-format) for more details. ' required: false schema: type: boolean default: false example: true - in: query name: with_enabled_assets_only description: 'When set to `true`, disabled assets are excluded from asset collection values in the response. Only assets with `status: "enabled"` are returned. When set to `false` (default), all assets are returned regardless of their status. ' required: false schema: type: boolean default: false example: true - in: query name: with_quality_scores description: 'Return product quality scores in the response. When set to `true`, the response will include quality score information for each product. This is useful for assessing and monitoring product data quality, which is essential for maintaining high data standards and improving product information. If set to `false`, the response will not include quality scores, which can improve performance. ' required: false schema: type: boolean default: false example: true - in: query name: with_completenesses description: 'Return product completenesses information in the response. When set to `true`, the response will include detailed completeness information for each product. This is useful for understanding the data quality and completeness of products, which is essential for product management and quality assurance. If set to `false`, the response will not include completeness information, which can improve performance. ' required: false schema: type: boolean default: false example: true - in: query name: with_readiness x-visibility: public description: 'Return readiness information in the response. - `scores_only`: include readiness percentage scores only. - `detailed`: include readiness percentage scores together with the list of unmet requirements. When omitted, no readiness information is returned. Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager. ' required: false schema: type: string enum: - scores_only - detailed example: scores_only - in: query name: with_root_parent description: 'Return the root parent product model code of a variant in the response. When set to `true`, the response will include the root parent product model code for each variant product. This is useful for understanding the hierarchical relationship between product variants and their parent models, which is essential for product catalog navigation. If set to `false`, the response will not include parent model information, which can improve performance. ' required: false schema: type: boolean default: false example: true - in: query name: with_workflow_execution_statuses description: 'Return an array of workflow_execution_statuses directly associated with the requested entity (product or product model) in the response. Statuses are level-specific and are not inherited from parent models. For a complete overview of a variant product, you must query the variant itself and its parent model(s) in separate requests. Each workflow object contains: - The overall execution status (e.g., in_progress, completed). - A list of all associated tasks. ' required: false schema: type: boolean default: false example: true responses: '200': description: Returns the content of the product in JSON standard format content: application/json: schema: type: object properties: uuid: type: string description: Product UUID example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 enabled: type: boolean description: Whether the product is enabled default: true example: true family: type: - string - 'null' description: '[Family](https://api.akeneo.com/api-reference.html#Family) code from which the product inherits its attributes and attributes requirements. In the case of variant product, the given family should be the same as the product model family. ' default: null only in the case of a non variant product x-validation-rules: It is equal to an existing family code example: smartphone categories: type: array description: Codes of the [categories](https://api.akeneo.com/api-reference.html#Category) in which the product is classified items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing category code example: - smartphones - electronics groups: type: array description: 'Codes of the groups to which the product belong. Each string of the array is equal to an existing group code. ' items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing group code example: - summer_collection - sale parent: type: - string - 'null' description: Code of the parent [product model](https://api.akeneo.com/api-reference.html#Productmodel) when the product is a variant default: null x-validation-rules: '- It is equal to an existing product model. - This product model has the same family variant as the one given in the `family_variant field`. ' example: my_super_battery root_parent: type: string readOnly: true description: 'Code of the root parent product model when the product is a variant (only available when the `with_root_parent` is set to `true`). ' default: 'null' x-validation-rules: It is equal to an existing product model code only if the product is variant; otherwise, the property does not appear example: my_super_battery values: type: object description: 'Product attributes values. Each key is an attribute code, and the value is an array of value objects for that attribute. See [documentation](https://api.akeneo.com/concepts/products.html#focus-on-the-product-values) for details. ' patternProperties: ^\w+$: type: array items: type: object required: - data description: 'A value for a given attribute, for a given locale/scope combination. - locale: Locale code, or null if not localizable. - scope: Channel code, or null if not scopable. - data: The value for this attribute/locale/scope. Type and format depend on the attribute type (see Akeneo docs). - linked_data: Additional data for select/multiselect/asset attributes. Read-only. - attribute_type: The type of the value''s attribute. Read-only. - reference_data_name: Reference entity code or asset family code. Read-only. ' properties: locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the product value' example: en_US scope: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the product value' example: ecommerce data: description: 'The value for this attribute/locale/scope. Type and format depend on the attribute type. - String for text, textarea, file, image, date, simple select, reference data simple select, reference entity. - Array of strings for multi select, reference data multi select, reference entity collection, asset collection, PAM asset collection. - Integer or string for number (depending on decimals_allowed). - Boolean for boolean attributes. - Object for metric, containing an "amount" (int), "unit" (string), and "symbol" (string, read-only) key. - Object for product link, containing a "type" (string) and "id" (string) key. - Object for table, containing different keys (int, boolean or string). - Object for price, with a "amount" (int) and a "currency" (string) key. ' anyOf: - type: string description: 'A reference entity value. The string is the code of the reference entity. ' example: designer_ref - type: array description: 'A reference entity collection value. The array contains codes of reference entities. ' items: type: string example: - designer_ref_1 - designer_ref_2 - type: array description: 'An asset collection value. The array contains asset codes ' items: type: string example: - left_side - right_side - type: boolean description: 'A boolean value. Used for attributes of type `pim_catalog_boolean`. ' example: true - type: string description: "A date value for attributes of type `pim_catalog_date`.\n\nTwo input formats are accepted:\n - **Date only** (`YYYY-MM-DD`), for example `2021-04-29`.\n - **ISO 8601 date-time**, either with a UTC offset (`YYYY-MM-DDTHH:MM:SS+00:00`) or in Zulu form (`YYYY-MM-DDTHH:MM:SSZ`), for example `2021-04-29T08:58:00Z`.\n\nThe ISO 8601 date-time form is only meaningful on attributes where `display_time` is enabled.\nOn attributes where `display_time` is `false`, the time component is ignored and the filter behaves as if a date-only value was provided.\n\nSpace-separated date-times (for example `2021-04-29 08:58:00`) are not supported and will be rejected.\n" example: '2021-04-29T08:58:00Z' - type: string description: 'A file value. The string is a file key referencing the uploaded file. ' example: f/2/e/6/f2e6674e0766acdc70f814_myFile.pdf - type: string description: 'An identifier value. Used for attributes of type `pim_catalog_identifier`. ' example: SKU-12345 - type: string description: 'An image value. The string is a file key referencing the uploaded image. ' example: 1/d/7/f/1d7f0987000cea4d14908fe679af4e36ea3632ef_10806799_1356.jpg - type: object description: 'A metric value. Object with amount, unit, and symbol. ' properties: amount: description: 'The amount of the metric. - String representing a number if allowed on attribute settings ("decimals_allowed" parameter). - Integer if the attribute does not allow decimals. ' oneOf: - type: string example: '800.0000' - type: integer example: 800 unit: type: string description: The unit of the metric example: GRAM symbol: type: string description: The symbol of the unit, resolved from the measurement family definition. Read-only. readOnly: true example: g required: - amount - unit example: amount: '800.0000' unit: GRAM symbol: g - type: array description: 'A multi select value. The array contains option codes. ' items: type: string example: - summer_2017 - winter_2016 - anyOf: - type: number - type: string pattern: ^\\d+(\\.\\d+)?$ description: 'A number value. Used for attributes of type `pim_catalog_number`. Can be integer or decimal, depending on attribute settings (`decimals_allowed` parameter). ' example: 42.5 - type: array description: 'A price collection value. The array contains objects with amount and currency. ' items: type: object required: - amount - currency properties: amount: description: 'The amount of the price. - String representing a number if the attribute allows decimals. - Integer if the attribute does not allow decimals. ' oneOf: - type: string example: '12.50' - type: integer example: 10 currency: type: string description: The currency code example: USD example: - amount: '12.50' currency: USD - amount: 10 currency: EUR - type: object oneOf: - type: object description: Link to a product by UUID or identifier required: - type - id properties: type: type: string enum: - product description: The type of the linked entity example: product id: type: string description: The UUID of the linked product example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 additionalProperties: false - type: object description: Link to a product by identifier required: - type - identifier properties: type: type: string enum: - product description: The type of the linked entity example: product identifier: type: - string - 'null' description: The identifier of the linked product example: bl1850b additionalProperties: false - type: object description: Link to a product model by code required: - type - id properties: type: type: string enum: - product_model description: The type of the linked entity example: product_model id: type: string description: The code of the linked product model example: my_super_battery additionalProperties: false description: "A product link value. Object with:\n - type: 'product' or 'product_model'\n - id: UUID (for product) or code (for product_model)\n - identifier: identifier (for product)\nOnly one of id or identifier is present, depending on the type and linking method.\n" example: type: product id: fc24e6c3-933c-4a93-8a81-e5c703d134d5 - type: string description: 'A simple select value. The string is the option code. ' example: black - type: array description: "A table value. Each item in the array is a row, represented as an object.\nEach key in the row object is a column code, and the value depends on the column type:\n - string (for text, select, reference entity, date)\n - integer or number (for number, depending on decimals_allowed)\n - boolean (for yes/no)\n - object (for product link, measurement, etc.)\nThe first column is always a select, reference entity, incremental number, or product link.\nThe table structure (columns and types) is defined in the attribute configuration.\n" items: type: object description: 'The value for the column identified by the key. The type of the value depends on the column type defined in the attribute configuration. ' patternProperties: ^\w+$: oneOf: - type: string description: Text, select, reference entity, or date value example: value1 - type: number description: Decimal value (number column, with or without decimals) example: 3.14 - type: boolean description: Boolean value (yes/no column) example: true - type: object description: Product link value (see pim_catalog_product_link) required: - type properties: type: type: string enum: - product - product_model description: The type of the linked entity example: product id: type: string description: The UUID (for product) or code (for product_model) example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 identifier: type: string description: The identifier of the linked product (alternative to id for product) example: bl1850b additionalProperties: false - type: object description: Measurement value (metric column) required: - amount - unit properties: amount: oneOf: - type: string pattern: ^-?\d+\.\d+$ example: '12.50' - type: integer example: 10 description: The amount of the measurement unit: type: string description: The unit of the measurement example: GRAM additionalProperties: false example: - ingredient: Sugar quantity: 10 organic: true best_before: '2024-12-31' included_product: type: product id: fc24e6c3-933c-4a93-8a81-e5c703d134d5 weight: amount: '12.50' unit: GRAM - type: string description: 'A text value. Used for attributes of type `pim_catalog_text`. ' example: T-shirt long sleeves Winter special, 100% wool - type: string description: 'A textarea value. Used for attributes of type `pim_catalog_textarea`. ' example: This is a long product description with multiple lines. - type: 'null' description: Null value used to clear/remove attribute values example: T-shirt long sleeves Winter special, 100% wool linked_data: type: - object - 'null' description: 'Object containing additional data when a related query parameter is enabled. See [the `linked_data` format](https://api.akeneo.com/concepts/products.html#the-linked_data-format) section for more details. ' example: attribute: main_color code: black labels: en_US: Black fr_FR: Noir attribute_type: type: string description: The type of the value's attribute. See [type](https://api.akeneo.com/concepts/catalog-structure.html#attribute) section for more details. readOnly: true enum: - pim_catalog_identifier - pim_catalog_text - pim_catalog_textarea - pim_catalog_simpleselect - pim_catalog_multiselect - pim_catalog_boolean - pim_catalog_date - pim_catalog_number - pim_catalog_metric - pim_catalog_price_collection - pim_catalog_image - pim_catalog_file - pim_catalog_asset_collection - akeneo_reference_entity - akeneo_reference_entity_collection - pim_reference_data_simpleselect - pim_reference_data_multiselect - pim_catalog_table - pim_catalog_product_link example: pim_catalog_text reference_data_name: type: string 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`. ' readOnly: true x-warning: Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types example: designer_ref _links: type: - object - 'null' description: 'Object containing download links for media files (images, files). Only present for file and image attribute types. ' readOnly: true properties: download: type: object properties: href: type: string description: URL for downloading the media file example: http://localhost/api/rest/v1/media-files/path/to/file/download example: download: href: http://localhost/api/rest/v1/media-files/5/d/b/1/5db16b5800314d8bc6358fb80b75f0fb0dedc6d0_akeneo.jpg/download x-validation-rules: Validation rules detailed in Product values section example: description: - data: T-shirt long sleeves Winter special, 100% wool locale: null scope: null associations: type: object description: Several associations related to groups, product models and/or other products, grouped by association types patternProperties: ^\w+$: type: object properties: groups: type: array description: Array of groups codes with which the product is in relation items: type: string products: type: array description: Array of product identifiers with which the product is in relation items: type: string product_models: type: array description: Array of product model codes with which the product is in relation items: type: string additionalProperties: false x-validation-rules: '- The `associationTypeCode` is the code of an existing association type. - Each string in the array of the property `groups` is the code of an existing group. - Each string in the array of the property `products` is the identifier of an existing product. - Each string in the array of the property `product_models` is the code of an existing product model. ' example: X_SELL: groups: [] products: - product_1 - product_2 product_models: - product_model_1 UPSELL: groups: - group_1 products: [] product_models: [] quantified_associations: type: object description: Several quantified associations related to products and/or product models, grouped by quantified association types patternProperties: ^\w+$: type: object properties: products: type: array description: Array of objects containing product uuids and quantities with which the product is in relation items: type: object properties: uuid: type: string quantity: type: integer product_models: type: array description: Array of objects containing product model codes and quantities with which the product is in relation items: type: object properties: identifier: type: string quantity: type: integer x-validation-rules: '- The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. - Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it. - Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it. ' example: PACK: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: aaf518b2-f91e-40f1-a53a-78ce5e81a6f9 quantity: 3 product_models: - identifier: product_model_1 quantity: 1 created: type: string description: Date of creation format: date-time readOnly: true x-immutable: true example: '2022-03-14T15:25:45+00:00' updated: type: string description: Date of the last update format: date-time readOnly: true example: '2022-06-24T12:54:58+00:00' metadata: type: object description: More information around the product readOnly: true properties: workflow_status: description: Status of the product regarding the user permissions type: string enum: - read_only - draft_in_progress - proposal_waiting_for_approval - working_copy x-immutable: true example: workflow_status: read_only proposal_review_status: type: object description: 'Review status of each change carried by the draft, grouped like the `values` property so that a change can be matched on its attribute code, locale and scope (only available on the draft endpoints when the `with_proposal_review_status` query parameter is set to `true`). While `metadata.workflow_status` is `proposal_waiting_for_approval`, a change with the `draft` review status is one that was submitted and then rejected by a reviewer (or edited by the author after submission), whereas a change with the `to_review` review status is still pending. Clients must treat unknown `review_status` values as opaque. ' readOnly: true x-immutable: true properties: values: type: object description: Review status of each attribute value changed in the draft. Each key is an attribute code. patternProperties: ^\w+$: type: array items: type: object properties: locale: type: - string - 'null' description: Locale code of the changed value, null if the attribute is not localizable scope: type: - string - 'null' description: Channel code of the changed value, null if the attribute is not scopable review_status: type: string description: Review status stored for the change enum: - draft - to_review example: values: description: - locale: fr_FR scope: ecommerce review_status: draft - locale: de_DE scope: ecommerce review_status: to_review weight: - locale: null scope: null review_status: to_review quality_scores: type: array items: type: object properties: scope: type: string description: Channel code for which the quality score is calculated locale: type: string description: Locale code for which the quality score is calculated data: type: string enum: - A - B - C - D - E description: Quality score value for the given channel/locale combination description: 'Product quality scores for each channel/locale combination (only available when the `with_quality_scores` query parameter is set to `true`). ' readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: A completenesses: type: array description: 'Product completenesses for each channel/locale combination (only available when the `with_completenesses` query parameter is set to `true`). ' items: type: object properties: scope: type: string description: Channel code for which the completenesses score is calculated locale: type: string description: Channel code for which the completenesses score is calculated data: type: integer description: Completenesses score value for the given channel/locale combination readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: 100 readiness: type: object x-visibility: public description: 'Readiness scores (only available when the `with_readiness` query parameter is set to `scores_only` or `detailed`). Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager. ' properties: aggregated_scores_by_scope: type: array description: 'Aggregated readiness score per channel: the average of the per-locale scores within each readiness, then averaged across the readiness configurations that apply to that channel (equal weight) and rounded. ' items: type: object properties: scope: type: string description: Channel code for which the aggregated readiness score is calculated score: type: integer description: Aggregated readiness percentage score (0-100) for the given channel scores_by_scope_and_locale: type: object description: Readiness scores grouped by readiness code, for each channel/locale combination additionalProperties: type: array items: type: object properties: scope: type: string description: Channel code for which the readiness score is calculated locale: type: string description: Locale code for which the readiness score is calculated score: type: integer description: Readiness percentage score (0-100) for the given channel/locale combination unmet_requirements: type: array description: 'Requirements not yet met (only available when `with_readiness` is set to `detailed`). ' items: type: object properties: field: type: string description: Attribute code or product field the requirement applies to (e.g. `name`, `family`, `categories`) operator: type: string description: Comparison operator applied to the field to evaluate the requirement (e.g. `NOT EMPTY`, `=`, `IN`) value: description: Expected value for the requirement; type depends on the operator and may be null nullable: true readOnly: true x-immutable: true example: aggregated_scores_by_scope: - scope: ecommerce score: 88 scores_by_scope_and_locale: camcorders_ecommerce: - scope: ecommerce locale: en_US score: 75 unmet_requirements: - field: name operator: NOT EMPTY value: null - scope: ecommerce locale: fr_FR score: 100 unmet_requirements: [] workflow_execution_statuses: type: array description: 'Workflow execution statuses of the product (only available when the `with_workflow_execution_statuses` query parameter is set to `true`) ' items: type: object properties: uuid: type: string description: Workflow execution UUID status: type: string description: Status of the workflow execution enum: - in_progress - completed started_at: type: string format: date-time description: Date and time when the workflow execution was started completed_at: type: - string - 'null' format: date-time description: Date and time when the workflow execution was completed, null if still in progress workflow: type: object description: Workflow associated with the workflow execution properties: uuid: type: string description: Workflow UUID code: type: string description: Workflow code labels: type: object description: Workflow labels for each locale additionalProperties: type: string tasks: type: array description: Tasks associated with the workflow execution items: type: object properties: uuid: type: string description: Task UUID status: type: string description: Status of the task enum: - in_progress created_at: type: string format: date-time description: Date and time when the task was created step: type: object properties: uuid: type: string description: Step UUID code: type: string description: Step code labels: type: object description: Step labels for each locale additionalProperties: type: string readOnly: true x-immutable: true example: - uuid: 8c0fe59f-4d29-4faa-b4c3-d327e7f3cc52 status: in_progress started_at: '2024-02-22T17:31:00Z' completed_at: null workflow: uuid: 6f37476a-04c2-46c0-b6d0-e18316959068 code: enrichment_workflow labels: en_US: Enrichment workflow fr_FR: Workflow d'enrichissement tasks: - uuid: 8f6c2d18-fbd4-4f7e-81df-cb3dc368fe07 status: in_progress created_at: '2024-02-22T17:31:00Z' step: uuid: f626d0e5-84a5-41fc-8215-65508c253edb code: review_step labels: en_US: Marketing review fr_FR: Revue marketing - uuid: fc66ab46-3362-4000-862b-bd825f35f735 status: completed started_at: '2024-02-22T17:31:00Z' completed_at: '2024-03-20T00:31:00Z' workflow: uuid: 71b777a3-c2c2-4237-8d39-8bf13ec81755 code: compliance_workflow labels: {} tasks: [] example: uuid: 25566245-55c3-42ce-86d9-8610ac459fa8 enabled: true family: tshirt categories: - summer_collection groups: [] parent: null root_parent: 'null' values: sku: - data: top locale: null scope: null attribute_type: pim_catalog_identifier name: - data: Top locale: en_US scope: null attribute_type: pim_catalog_text - data: Débardeur locale: fr_FR scope: null attribute_type: pim_catalog_text description: - data: Summer top locale: en_US scope: ecommerce attribute_type: pim_catalog_textarea - data: Top locale: en_US scope: tablet attribute_type: pim_catalog_textarea - data: Débardeur pour l'été locale: fr_FR scope: ecommerce attribute_type: pim_catalog_textarea - data: Débardeur locale: fr_FR scope: tablet attribute_type: pim_catalog_textarea price: - data: - amount: '15.5' currency: EUR - amount: '15' currency: USD locale: null scope: null attribute_type: pim_catalog_price_collection color: - data: black locale: null scope: null linked_data: attribute: color code: black labels: en_US: Black fr_FR: Noir attribute_type: pim_catalog_simpleselect size: - data: m locale: null scope: null linked_data: attribute: size code: m labels: en_US: M fr_FR: M attribute_type: pim_catalog_simpleselect collection: - data: - winter_2016 locale: null scope: null linked_data: winter_2016: attribute: collection code: winter_2016 labels: en_US: Winter 2016 fr_FR: Hiver 2016 attribute_type: pim_catalog_multiselect created: '2016-06-23T18:24:44+02:00' updated: '2016-06-25T17:56:12+02:00' associations: PACK: products: - d055527c-0698-4967-8f16-8a5f23f4e5cf product_models: [] groups: [] quantified_associations: PRODUCT_SET: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc quantity: 1 product_models: - identifier: model-biker-jacket-leather quantity: 2 quality_scores: - scope: ecommerce locale: en_US data: A - scope: ecommerce locale: fr_FR data: B - scope: tablet locale: en_US data: D - scope: tablet locale: fr_FR data: E completenesses: - scope: ecommerce locale: en_US data: 10 - scope: ecommerce locale: fr_FR data: 20 - scope: tablet locale: en_US data: 30 - scope: tablet locale: fr_FR data: 40 readiness: aggregated_scores_by_scope: - scope: ecommerce score: 88 scores_by_scope_and_locale: camcorders_ecommerce: - scope: ecommerce locale: en_US score: 75 unmet_requirements: - field: name operator: NOT EMPTY value: null - scope: ecommerce locale: fr_FR score: 100 unmet_requirements: [] workflow_execution_statuses: - uuid: 8c0fe59f-4d29-4faa-b4c3-d327e7f3cc52 status: in_progress started_at: '2024-02-22T17:31:00Z' completed_at: null workflow: uuid: 6f37476a-04c2-46c0-b6d0-e18316959068 code: enrichment_workflow labels: en_US: Enrichment workflow fr_FR: Workflow d'enrichissement tasks: - uuid: 8f6c2d18-fbd4-4f7e-81df-cb3dc368fe07 status: in_progress created_at: '2024-02-22T17:31:00Z' step: uuid: f626d0e5-84a5-41fc-8215-65508c253edb code: review_step labels: en_US: Marketing review fr_FR: Revue marketing - uuid: 59169984-6d6c-4fa7-b925-68b8e9d31ddb status: completed started_at: '2024-02-22T17:31:00Z' completed_at: '2024-02-22T17:31:00Z' workflow: uuid: b69ee158-a421-4680-bec0-a71bc73b8e31 code: compliance_workflow labels: {} tasks: [] '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. '422': description: 'This response indicates that the validation of the entity given in the body of the request failed. It occurs when the server understands the request but cannot process it due to validation errors in the provided data. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 422 message: type: string description: Message explaining the error example: Validation failed. errors: type: array description: A list of validation error messages (optional) items: type: object properties: property: type: string description: Name of the invalid property message: type: string description: Human-readable error message attribute: type: - string - 'null' description: Attribute code (if the error is on an attribute) locale: type: - string - 'null' description: Locale code involved in the error, if any scope: type: - string - 'null' description: Channel code involved in the error, if any example: - property: family message: The tshirts family does not exist in your PIM. _links: type: object properties: documentation: type: object properties: href: type: string example: documentation: href: http://api.akeneo.com/api-reference.html example: code: 422 message: Validation failed. errors: - property: family message: The tshirts family does not exist in your PIM. - property: categories message: The "tvs_projectors" category does not exist. - property: associations.SUBSTITUTION.groups message: You should associate existing groups. The "promotion" group does not exist. - property: values message: The "description" attribute requires a channel. attribute: description locale: en_US scope: null - property: values message: The "name" attribute requires a locale. attribute: name locale: null scope: null _links: documentation: href: http://api.akeneo.com/api-reference.html patch: operationId: patch_product_uuid_by_uuid x-visibility: public summary: Update/create a product description: 'This endpoint allows you to update a given product. Learn more about Update behavior. 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 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.' tags: - Product [uuid] security: - bearerToken: [] parameters: - in: path name: uuid 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 UUID is correctly formatted and corresponds to an existing entity in the system. ' required: true schema: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - in: query name: create_missing_options description: 'When present in the query string (regardless of value), automatically creates missing attribute options during product/product model creation or update. This only works for simple select and multi select attributes that have the `enable_option_creation_during_import` property set to `true` (configurable via the Attribute API). ' required: false schema: type: string example: '' - in: query name: update_parent_values description: 'When set to `true`, allows updating attribute values on the parent product models when patching a variant product. By default, only values owned by the variant product level can be updated. ' required: false schema: type: boolean default: false example: true requestBody: description: Body of the request to update a product content: application/json: schema: type: object properties: uuid: type: string description: Product UUID example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 enabled: type: boolean description: Whether the product is enabled default: true example: true family: type: - string - 'null' description: '[Family](https://api.akeneo.com/api-reference.html#Family) code from which the product inherits its attributes and attributes requirements. In the case of variant product, the given family should be the same as the product model family. ' default: null only in the case of a non variant product x-validation-rules: It is equal to an existing family code example: smartphone categories: type: array description: Codes of the [categories](https://api.akeneo.com/api-reference.html#Category) in which the product is classified items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing category code example: - smartphones - electronics add_categories: type: array description: 'Codes of the [categories](https://api.akeneo.com/api-reference.html#Category) to add to the product. Existing categories will be preserved. ' items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing category code. Cannot be used with the `categories` key example: - clothing - shoes remove_categories: type: array description: 'Codes of the [categories](https://api.akeneo.com/api-reference.html#Category) to remove from the product. Other categories will be preserved.d ' items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing category code. Cannot be used with the `categories` key example: - shirts - trousers groups: type: array description: Codes of the groups to which the product belong items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing group code example: - summer_collection - sale parent: type: - string - 'null' description: Code of the parent [product model](https://api.akeneo.com/api-reference.html#Productmodel) when the product is a variant default: null x-validation-rules: It is equal to an existing product model code only if the product is variant otherwise it's equal to null example: my_super_battery values: type: object description: 'Product attributes values. Each key is an attribute code, and the value is an array of value objects for that attribute. See [documentation](https://api.akeneo.com/concepts/products.html#focus-on-the-product-values) for details. ' x-validation-rules: Validation rules detailed in Product values section example: description: - data: T-shirt long sleeves Winter special, 100% wool locale: null scope: null associations: type: object description: Several associations related to groups, product models and/or other products, grouped by association types patternProperties: ^\w+$: type: object properties: groups: type: array description: Array of groups codes with which the product is in relation items: type: string products: type: array description: Array of product identifiers with which the product is in relation items: type: string product_models: type: array description: Array of product model codes with which the product is in relation items: type: string additionalProperties: false x-validation-rules: '- The `associationTypeCode` is the code of an existing association type. - Each string in the array of the property `groups` is the code of an existing group. - Each string in the array of the property `products` is the identifier of an existing product. - Each string in the array of the property `product_models` is the code of an existing product model. ' example: X_SELL: groups: [] products: - product_1 - product_2 product_models: - product_model_1 UPSELL: groups: - group_1 products: [] product_models: [] quantified_associations: type: object description: Several quantified associations related to products and/or product models, grouped by quantified association types patternProperties: ^\w+$: type: object properties: products: type: array description: Array of objects containing product uuids and quantities with which the product is in relation items: type: object properties: uuid: type: string quantity: type: integer product_models: type: array description: Array of objects containing product model codes and quantities with which the product is in relation items: type: object properties: identifier: type: string quantity: type: integer x-validation-rules: '- The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. - Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it. - Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it. ' example: PACK: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: aaf518b2-f91e-40f1-a53a-78ce5e81a6f9 quantity: 3 product_models: - identifier: product_model_1 quantity: 1 created: type: string description: Date of creation format: date-time readOnly: true x-immutable: true example: '2022-03-14T15:25:45+00:00' updated: type: string description: Date of the last update format: date-time readOnly: true example: '2022-06-24T12:54:58+00:00' metadata: type: object description: More information around the product readOnly: true properties: workflow_status: description: Status of the product regarding the user permissions type: string enum: - read_only - draft_in_progress - proposal_waiting_for_approval - working_copy x-immutable: true example: workflow_status: read_only quality_scores: type: array description: 'Product quality scores for each channel/locale combination (only available when the `with_quality_scores` query parameter is set to `true`). ' items: type: object properties: scope: type: string description: Channel code for which the quality score is calculated locale: type: string description: Locale code for which the quality score is calculated data: type: string enum: - A - B - C - D - E description: Quality score value for the given channel/locale combination readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: A completenesses: type: array description: 'Product completenesses for each channel/locale combination (only available when the `with_completenesses` query parameter is set to `true`). ' items: type: object properties: scope: type: string description: Channel code for which the completenesses score is calculated locale: type: string description: Channel code for which the completenesses score is calculated data: type: integer description: Completenesses score value for the given channel/locale combination readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: 100 workflow_execution_statuses: type: array description: 'Workflow execution statuses of the product (only available when the `with_workflow_execution_statuses` query parameter is set to `true`) ' items: type: object properties: uuid: type: string description: Workflow execution UUID status: type: string description: Status of the workflow execution enum: - in_progress - completed started_at: type: string format: date-time description: Date and time when the workflow execution was started completed_at: type: - string - 'null' format: date-time description: Date and time when the workflow execution was completed, null if still in progress workflow: type: object description: Workflow associated with the workflow execution properties: uuid: type: string description: Workflow UUID code: type: string description: Workflow code labels: type: object description: Workflow labels for each locale additionalProperties: type: string tasks: type: array description: Tasks associated with the workflow execution items: type: object properties: uuid: type: string description: Task UUID status: type: string description: Status of the task enum: - in_progress created_at: type: string format: date-time description: Date and time when the task was created step: type: object properties: uuid: type: string description: Step UUID code: type: string description: Step code labels: type: object description: Step labels for each locale additionalProperties: type: string readOnly: true x-immutable: true example: - uuid: 8c0fe59f-4d29-4faa-b4c3-d327e7f3cc52 status: in_progress started_at: '2024-02-22T17:31:00Z' completed_at: null workflow: uuid: 6f37476a-04c2-46c0-b6d0-e18316959068 code: enrichment_workflow labels: en_US: Enrichment workflow fr_FR: Workflow d'enrichissement tasks: - uuid: 8f6c2d18-fbd4-4f7e-81df-cb3dc368fe07 status: in_progress created_at: '2024-02-22T17:31:00Z' step: uuid: f626d0e5-84a5-41fc-8215-65508c253edb code: review_step labels: en_US: Marketing review fr_FR: Revue marketing - uuid: fc66ab46-3362-4000-862b-bd825f35f735 status: completed started_at: '2024-02-22T17:31:00Z' completed_at: '2024-03-20T00:31:00Z' workflow: uuid: 71b777a3-c2c2-4237-8d39-8bf13ec81755 code: compliance_workflow labels: {} tasks: [] example: uuid: 25566245-55c3-42ce-86d9-8610ac459fa8 enabled: true family: tshirt categories: - summer_collection groups: [] parent: null root_parent: 'null' values: sku: - data: top locale: null scope: null attribute_type: pim_catalog_identifier name: - data: Top locale: en_US scope: null attribute_type: pim_catalog_text - data: Débardeur locale: fr_FR scope: null attribute_type: pim_catalog_text description: - data: Summer top locale: en_US scope: ecommerce attribute_type: pim_catalog_textarea - data: Top locale: en_US scope: tablet attribute_type: pim_catalog_textarea - data: Débardeur pour l'été locale: fr_FR scope: ecommerce attribute_type: pim_catalog_textarea - data: Débardeur locale: fr_FR scope: tablet attribute_type: pim_catalog_textarea price: - data: - amount: '15.5' currency: EUR - amount: '15' currency: USD locale: null scope: null attribute_type: pim_catalog_price_collection color: - data: black locale: null scope: null linked_data: attribute: color code: black labels: en_US: Black fr_FR: Noir attribute_type: pim_catalog_simpleselect size: - data: m locale: null scope: null linked_data: attribute: size code: m labels: en_US: M fr_FR: M attribute_type: pim_catalog_simpleselect collection: - data: - winter_2016 locale: null scope: null linked_data: winter_2016: attribute: collection code: winter_2016 labels: en_US: Winter 2016 fr_FR: Hiver 2016 attribute_type: pim_catalog_multiselect created: '2016-06-23T18:24:44+02:00' updated: '2016-06-25T17:56:12+02:00' associations: PACK: products: - d055527c-0698-4967-8f16-8a5f23f4e5cf product_models: [] groups: [] quantified_associations: PRODUCT_SET: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc quantity: 1 product_models: - identifier: model-biker-jacket-leather quantity: 2 quality_scores: - scope: ecommerce locale: en_US data: A - scope: ecommerce locale: fr_FR data: B - scope: tablet locale: en_US data: D - scope: tablet locale: fr_FR data: E completenesses: - scope: ecommerce locale: en_US data: 10 - scope: ecommerce locale: fr_FR data: 20 - scope: tablet locale: en_US data: 30 - scope: tablet locale: fr_FR data: 40 readiness: aggregated_scores_by_scope: - scope: ecommerce score: 88 scores_by_scope_and_locale: camcorders_ecommerce: - scope: ecommerce locale: en_US score: 75 unmet_requirements: - field: name operator: NOT EMPTY value: null - scope: ecommerce locale: fr_FR score: 100 unmet_requirements: [] workflow_execution_statuses: - uuid: 8c0fe59f-4d29-4faa-b4c3-d327e7f3cc52 status: in_progress started_at: '2024-02-22T17:31:00Z' completed_at: null workflow: uuid: 6f37476a-04c2-46c0-b6d0-e18316959068 code: enrichment_workflow labels: en_US: Enrichment workflow fr_FR: Workflow d'enrichissement tasks: - uuid: 8f6c2d18-fbd4-4f7e-81df-cb3dc368fe07 status: in_progress created_at: '2024-02-22T17:31:00Z' step: uuid: f626d0e5-84a5-41fc-8215-65508c253edb code: review_step labels: en_US: Marketing review fr_FR: Revue marketing - uuid: 59169984-6d6c-4fa7-b925-68b8e9d31ddb status: completed started_at: '2024-02-22T17:31:00Z' completed_at: '2024-02-22T17:31:00Z' workflow: uuid: b69ee158-a421-4680-bec0-a71bc73b8e31 code: compliance_workflow labels: {} tasks: [] 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 '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 server understands the request but cannot process it due to validation errors in the provided data. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 422 message: type: string description: Message explaining the error example: Validation failed. errors: type: array description: A list of validation error messages (optional) items: type: object properties: property: type: string description: Name of the invalid property message: type: string description: Human-readable error message attribute: type: - string - 'null' description: Attribute code (if the error is on an attribute) locale: type: - string - 'null' description: Locale code involved in the error, if any scope: type: - string - 'null' description: Channel code involved in the error, if any example: - property: family message: The tshirts family does not exist in your PIM. _links: type: object properties: documentation: type: object properties: href: type: string example: documentation: href: http://api.akeneo.com/api-reference.html example: code: 422 message: Validation failed. errors: - property: family message: The tshirts family does not exist in your PIM. - property: categories message: The "tvs_projectors" category does not exist. - property: associations.SUBSTITUTION.groups message: You should associate existing groups. The "promotion" group does not exist. - property: values message: The "description" attribute requires a channel. attribute: description locale: en_US scope: null - property: values message: The "name" attribute requires a locale. attribute: name locale: null scope: null _links: documentation: href: http://api.akeneo.com/api-reference.html delete: operationId: delete_product_uuid_by_uuid x-visibility: public summary: Delete a product description: 'This endpoint allows you to delete a given product. Permissions based on your user groups are applied to the product you try to delete.' tags: - Product [uuid] security: - bearerToken: [] parameters: - in: path name: uuid 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 UUID is correctly formatted and corresponds to an existing entity in the system. ' required: true schema: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 responses: '204': description: 'No content to return. Means that the deletion was successful. ' '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. /api/rest/v1/products-uuid/{uuid}/associations: get: operationId: get_product_uuid_associations x-visibility: public summary: Get the associations of a product description: 'This endpoint allows you to get, page by page, the entities a product is associated to, whatever the kind of the association type: manual, quantified or automatic, every kind answers the same item. A manual or quantified association type lists the entities the product payload lists for it, those inherited from its parent models included and those you may not view left out. An automatic association type lists the entities its rule resolves to, when the rule applies to the product. An item names its association type in `association_type` and what it leads to: `type` is `product`, `product_model` or `group` (groups only on a manual association type), and `id` is a product uuid, a product model code or a group code. An item of a quantified association type also carries its `quantity`. Items are ordered by association type code, then every product, every product model and every group. The collection only pages with `search_after`, whatever its size: its `search_after` token is an opaque cursor, read it from the `next` link rather than building it. The `page` pagination, `page` and `with_count` answer a 422. Only available while product compatibility is enabled on the PIM: the endpoint answers a 404 otherwise.' tags: - Product [uuid] security: - bearerToken: [] parameters: - in: path name: uuid 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 UUID is correctly formatted and corresponds to an existing entity in the system. ' required: true schema: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - in: query name: search description: 'Filter the associations by association type, with the `IN` or `NOT IN` operator, in the syntax of the [Filters](https://api.akeneo.com/documentation/filter.html) section. Codes are compared whatever their case, and a code no association type holds answers a 422. ' required: false schema: type: string examples: getAssociationsOfSomeTypes: summary: Read the associations of two association types value: '{"association_type":[{"operator":"IN","value":["X_SELL","fits"]}]}' getAssociationsOfEveryOtherType: summary: Leave the associations of an association type out value: '{"association_type":[{"operator":"NOT IN","value":["X_SELL"]}]}' - in: query name: search_after description: 'Cursor when using the `search_after` pagination method type. It is essential for navigating through pages in cursor-based pagination, providing more efficient pagination for large datasets. Should never be set manually, see [Pagination](https://api.akeneo.com/documentation/pagination.html) section for more details. ' required: false schema: type: string default: cursor to the first page example: qaXbcde - 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 responses: '200': description: Returns a page of the entities the product or product model is associated to, whatever the association type content: application/json: schema: title: Product Associations type: object properties: _links: type: object properties: self: type: object properties: href: type: string description: URI of the current page of associations example: https://demo.akeneo.com/api/rest/v1/products-uuid/8a8494a2-3f3d-4f0f-9d97-1a4a5d3c2f01/associations?pagination_type=search_after&limit=10 first: type: object properties: href: type: string description: URI of the first page of associations example: https://demo.akeneo.com/api/rest/v1/products-uuid/8a8494a2-3f3d-4f0f-9d97-1a4a5d3c2f01/associations?pagination_type=search_after&limit=10 next: type: object properties: href: type: string description: URI of the next page of associations, only on a full page example: https://demo.akeneo.com/api/rest/v1/products-uuid/8a8494a2-3f3d-4f0f-9d97-1a4a5d3c2f01/associations?pagination_type=search_after&limit=10&search_after=WyJYX1NFTEwiLCJncm91cDpzdW1tZXJfc2FsZSJd _embedded: type: object properties: items: type: array description: Ordered by association type code, then every product, every product model and every group items: title: Product Association description: 'One entity the product or product model is associated to, and the association type leading to it, whatever its kind: manual, quantified or automatic. An association reaches products, product models and groups, so an item names what it is rather than carrying a bare identifier. A product also comes with its `identifier`, null when it has none. Only an item of a quantified association type carries a `quantity`. ' oneOf: - title: Product Association To A Product type: object properties: association_type: type: string description: The code of the association type type: type: string enum: - product id: type: string format: uuid description: The UUID of the product identifier: type: - string - 'null' description: The identifier of the product, null when the product has none quantity: type: integer description: How many of the product are associated, only on a quantified association type required: - association_type - type - id - identifier additionalProperties: false - title: Product Association To A Product Model type: object properties: association_type: type: string description: The code of the association type type: type: string enum: - product_model id: type: string description: The code of the product model quantity: type: integer description: How many of the product model are associated, only on a quantified association type required: - association_type - type - id additionalProperties: false - title: Product Association To A Group type: object properties: association_type: type: string description: The code of the association type type: type: string enum: - group id: type: string description: The code of the group, only on a manual association type required: - association_type - type - id additionalProperties: false example: items: - association_type: PACK type: product id: 0b1e3a52-7d0f-4f1e-8b7a-2f3c9d6e4a10 identifier: tripod_kit quantity: 2 - association_type: X_SELL type: product_model id: tshirt_divided required: - _links - _embedded example: _links: self: href: https://demo.akeneo.com/api/rest/v1/products-uuid/8a8494a2-3f3d-4f0f-9d97-1a4a5d3c2f01/associations?pagination_type=search_after&limit=4 first: href: https://demo.akeneo.com/api/rest/v1/products-uuid/8a8494a2-3f3d-4f0f-9d97-1a4a5d3c2f01/associations?pagination_type=search_after&limit=4 next: href: https://demo.akeneo.com/api/rest/v1/products-uuid/8a8494a2-3f3d-4f0f-9d97-1a4a5d3c2f01/associations?pagination_type=search_after&limit=4&search_after=WyJmaXRzIiwicHJvZHVjdF85YzJkNGU2Zi0xYTNiLTRjNWQtOGU3Zi0wYTFiMmMzZDRlNWYiXQ _embedded: items: - association_type: PACK type: product id: 0b1e3a52-7d0f-4f1e-8b7a-2f3c9d6e4a10 identifier: tripod_kit quantity: 2 - association_type: X_SELL type: product id: 6f6c0f4e-2c4b-4c43-9a0e-7c1c6a1f0b1a identifier: hdmi_cable_2m - association_type: X_SELL type: product_model id: tshirt_divided - association_type: fits type: product id: 9c2d4e6f-1a3b-4c5d-8e7f-0a1b2c3d4e5f identifier: tv_oled_55 '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. '422': description: 'This response indicates that the validation of the entity given in the body of the request failed. It occurs when the server understands the request but cannot process it due to validation errors in the provided data. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 422 message: type: string description: Message explaining the error example: Validation failed. errors: type: array description: A list of validation error messages (optional) items: type: object properties: property: type: string description: Name of the invalid property message: type: string description: Human-readable error message attribute: type: - string - 'null' description: Attribute code (if the error is on an attribute) locale: type: - string - 'null' description: Locale code involved in the error, if any scope: type: - string - 'null' description: Channel code involved in the error, if any example: - property: family message: The tshirts family does not exist in your PIM. _links: type: object properties: documentation: type: object properties: href: type: string example: documentation: href: http://api.akeneo.com/api-reference.html example: code: 422 message: Validation failed. errors: - property: family message: The tshirts family does not exist in your PIM. - property: categories message: The "tvs_projectors" category does not exist. - property: associations.SUBSTITUTION.groups message: You should associate existing groups. The "promotion" group does not exist. - property: values message: The "description" attribute requires a channel. attribute: description locale: en_US scope: null - property: values message: The "name" attribute requires a locale. attribute: name locale: null scope: null _links: documentation: href: http://api.akeneo.com/api-reference.html /api/rest/v1/products-uuid/{uuid}/proposal: post: operationId: post_product_uuid_proposal x-visibility: public summary: Submit a draft for approval description: This endpoint allows you to submit a draft for approval tags: - Product [uuid] security: - bearerToken: [] parameters: - in: path name: uuid 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 UUID is correctly formatted and corresponds to an existing entity in the system. ' required: true schema: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 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 '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 server understands the request but cannot process it due to validation errors in the provided data. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 422 message: type: string description: Message explaining the error example: Validation failed. errors: type: array description: A list of validation error messages (optional) items: type: object properties: property: type: string description: Name of the invalid property message: type: string description: Human-readable error message attribute: type: - string - 'null' description: Attribute code (if the error is on an attribute) locale: type: - string - 'null' description: Locale code involved in the error, if any scope: type: - string - 'null' description: Channel code involved in the error, if any example: - property: family message: The tshirts family does not exist in your PIM. _links: type: object properties: documentation: type: object properties: href: type: string example: documentation: href: http://api.akeneo.com/api-reference.html example: code: 422 message: Validation failed. errors: - property: family message: The tshirts family does not exist in your PIM. - property: categories message: The "tvs_projectors" category does not exist. - property: associations.SUBSTITUTION.groups message: You should associate existing groups. The "promotion" group does not exist. - property: values message: The "description" attribute requires a channel. attribute: description locale: en_US scope: null - property: values message: The "name" attribute requires a locale. attribute: name locale: null scope: null _links: documentation: href: http://api.akeneo.com/api-reference.html /api/rest/v1/products-uuid/{uuid}/draft: get: operationId: get_product_uuid_draft x-visibility: public summary: Get a draft description: This endpoint allows you to get the information about a given draft tags: - Product [uuid] security: - bearerToken: [] parameters: - in: path name: uuid 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 UUID is correctly formatted and corresponds to an existing entity in the system. ' required: true schema: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - in: query name: with_proposal_review_status description: 'Return the review status of each change carried by the draft in the response. When set to `true`, the response includes a `proposal_review_status` property listing, for each attribute value changed in the draft, the review status stored for that change. If set to `false`, the response does not include this property. ' required: false schema: type: boolean default: false example: true responses: '200': description: Returns the content of the product in JSON standard format content: application/json: schema: type: object properties: uuid: type: string description: Product UUID example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 enabled: type: boolean description: Whether the product is enabled default: true example: true family: type: - string - 'null' description: '[Family](https://api.akeneo.com/api-reference.html#Family) code from which the product inherits its attributes and attributes requirements. In the case of variant product, the given family should be the same as the product model family. ' default: null only in the case of a non variant product x-validation-rules: It is equal to an existing family code example: smartphone categories: type: array description: Codes of the [categories](https://api.akeneo.com/api-reference.html#Category) in which the product is classified items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing category code example: - smartphones - electronics groups: type: array description: 'Codes of the groups to which the product belong. Each string of the array is equal to an existing group code. ' items: type: string default: [] x-validation-rules: Each string of the array is equal to an existing group code example: - summer_collection - sale parent: type: - string - 'null' description: Code of the parent [product model](https://api.akeneo.com/api-reference.html#Productmodel) when the product is a variant default: null x-validation-rules: '- It is equal to an existing product model. - This product model has the same family variant as the one given in the `family_variant field`. ' example: my_super_battery root_parent: type: string readOnly: true description: 'Code of the root parent product model when the product is a variant (only available when the `with_root_parent` is set to `true`). ' default: 'null' x-validation-rules: It is equal to an existing product model code only if the product is variant; otherwise, the property does not appear example: my_super_battery values: type: object description: 'Product attributes values. Each key is an attribute code, and the value is an array of value objects for that attribute. See [documentation](https://api.akeneo.com/concepts/products.html#focus-on-the-product-values) for details. ' patternProperties: ^\w+$: type: array items: type: object required: - data description: 'A value for a given attribute, for a given locale/scope combination. - locale: Locale code, or null if not localizable. - scope: Channel code, or null if not scopable. - data: The value for this attribute/locale/scope. Type and format depend on the attribute type (see Akeneo docs). - linked_data: Additional data for select/multiselect/asset attributes. Read-only. - attribute_type: The type of the value''s attribute. Read-only. - reference_data_name: Reference entity code or asset family code. Read-only. ' properties: locale: type: - string - 'null' description: '[Locale](https://api.akeneo.com/api-reference.html#Locale) code of the product value' example: en_US scope: type: - string - 'null' description: '[Channel](https://api.akeneo.com/api-reference.html#Channel) code of the product value' example: ecommerce data: description: 'The value for this attribute/locale/scope. Type and format depend on the attribute type. - String for text, textarea, file, image, date, simple select, reference data simple select, reference entity. - Array of strings for multi select, reference data multi select, reference entity collection, asset collection, PAM asset collection. - Integer or string for number (depending on decimals_allowed). - Boolean for boolean attributes. - Object for metric, containing an "amount" (int), "unit" (string), and "symbol" (string, read-only) key. - Object for product link, containing a "type" (string) and "id" (string) key. - Object for table, containing different keys (int, boolean or string). - Object for price, with a "amount" (int) and a "currency" (string) key. ' anyOf: - type: string description: 'A reference entity value. The string is the code of the reference entity. ' example: designer_ref - type: array description: 'A reference entity collection value. The array contains codes of reference entities. ' items: type: string example: - designer_ref_1 - designer_ref_2 - type: array description: 'An asset collection value. The array contains asset codes ' items: type: string example: - left_side - right_side - type: boolean description: 'A boolean value. Used for attributes of type `pim_catalog_boolean`. ' example: true - type: string description: "A date value for attributes of type `pim_catalog_date`.\n\nTwo input formats are accepted:\n - **Date only** (`YYYY-MM-DD`), for example `2021-04-29`.\n - **ISO 8601 date-time**, either with a UTC offset (`YYYY-MM-DDTHH:MM:SS+00:00`) or in Zulu form (`YYYY-MM-DDTHH:MM:SSZ`), for example `2021-04-29T08:58:00Z`.\n\nThe ISO 8601 date-time form is only meaningful on attributes where `display_time` is enabled.\nOn attributes where `display_time` is `false`, the time component is ignored and the filter behaves as if a date-only value was provided.\n\nSpace-separated date-times (for example `2021-04-29 08:58:00`) are not supported and will be rejected.\n" example: '2021-04-29T08:58:00Z' - type: string description: 'A file value. The string is a file key referencing the uploaded file. ' example: f/2/e/6/f2e6674e0766acdc70f814_myFile.pdf - type: string description: 'An identifier value. Used for attributes of type `pim_catalog_identifier`. ' example: SKU-12345 - type: string description: 'An image value. The string is a file key referencing the uploaded image. ' example: 1/d/7/f/1d7f0987000cea4d14908fe679af4e36ea3632ef_10806799_1356.jpg - type: object description: 'A metric value. Object with amount, unit, and symbol. ' properties: amount: description: 'The amount of the metric. - String representing a number if allowed on attribute settings ("decimals_allowed" parameter). - Integer if the attribute does not allow decimals. ' oneOf: - type: string example: '800.0000' - type: integer example: 800 unit: type: string description: The unit of the metric example: GRAM symbol: type: string description: The symbol of the unit, resolved from the measurement family definition. Read-only. readOnly: true example: g required: - amount - unit example: amount: '800.0000' unit: GRAM symbol: g - type: array description: 'A multi select value. The array contains option codes. ' items: type: string example: - summer_2017 - winter_2016 - anyOf: - type: number - type: string pattern: ^\\d+(\\.\\d+)?$ description: 'A number value. Used for attributes of type `pim_catalog_number`. Can be integer or decimal, depending on attribute settings (`decimals_allowed` parameter). ' example: 42.5 - type: array description: 'A price collection value. The array contains objects with amount and currency. ' items: type: object required: - amount - currency properties: amount: description: 'The amount of the price. - String representing a number if the attribute allows decimals. - Integer if the attribute does not allow decimals. ' oneOf: - type: string example: '12.50' - type: integer example: 10 currency: type: string description: The currency code example: USD example: - amount: '12.50' currency: USD - amount: 10 currency: EUR - type: object oneOf: - type: object description: Link to a product by UUID or identifier required: - type - id properties: type: type: string enum: - product description: The type of the linked entity example: product id: type: string description: The UUID of the linked product example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 additionalProperties: false - type: object description: Link to a product by identifier required: - type - identifier properties: type: type: string enum: - product description: The type of the linked entity example: product identifier: type: - string - 'null' description: The identifier of the linked product example: bl1850b additionalProperties: false - type: object description: Link to a product model by code required: - type - id properties: type: type: string enum: - product_model description: The type of the linked entity example: product_model id: type: string description: The code of the linked product model example: my_super_battery additionalProperties: false description: "A product link value. Object with:\n - type: 'product' or 'product_model'\n - id: UUID (for product) or code (for product_model)\n - identifier: identifier (for product)\nOnly one of id or identifier is present, depending on the type and linking method.\n" example: type: product id: fc24e6c3-933c-4a93-8a81-e5c703d134d5 - type: string description: 'A simple select value. The string is the option code. ' example: black - type: array description: "A table value. Each item in the array is a row, represented as an object.\nEach key in the row object is a column code, and the value depends on the column type:\n - string (for text, select, reference entity, date)\n - integer or number (for number, depending on decimals_allowed)\n - boolean (for yes/no)\n - object (for product link, measurement, etc.)\nThe first column is always a select, reference entity, incremental number, or product link.\nThe table structure (columns and types) is defined in the attribute configuration.\n" items: type: object description: 'The value for the column identified by the key. The type of the value depends on the column type defined in the attribute configuration. ' patternProperties: ^\w+$: oneOf: - type: string description: Text, select, reference entity, or date value example: value1 - type: number description: Decimal value (number column, with or without decimals) example: 3.14 - type: boolean description: Boolean value (yes/no column) example: true - type: object description: Product link value (see pim_catalog_product_link) required: - type properties: type: type: string enum: - product - product_model description: The type of the linked entity example: product id: type: string description: The UUID (for product) or code (for product_model) example: fc24e6c3-933c-4a93-8a81-e5c703d134d5 identifier: type: string description: The identifier of the linked product (alternative to id for product) example: bl1850b additionalProperties: false - type: object description: Measurement value (metric column) required: - amount - unit properties: amount: oneOf: - type: string pattern: ^-?\d+\.\d+$ example: '12.50' - type: integer example: 10 description: The amount of the measurement unit: type: string description: The unit of the measurement example: GRAM additionalProperties: false example: - ingredient: Sugar quantity: 10 organic: true best_before: '2024-12-31' included_product: type: product id: fc24e6c3-933c-4a93-8a81-e5c703d134d5 weight: amount: '12.50' unit: GRAM - type: string description: 'A text value. Used for attributes of type `pim_catalog_text`. ' example: T-shirt long sleeves Winter special, 100% wool - type: string description: 'A textarea value. Used for attributes of type `pim_catalog_textarea`. ' example: This is a long product description with multiple lines. - type: 'null' description: Null value used to clear/remove attribute values example: T-shirt long sleeves Winter special, 100% wool linked_data: type: - object - 'null' description: 'Object containing additional data when a related query parameter is enabled. See [the `linked_data` format](https://api.akeneo.com/concepts/products.html#the-linked_data-format) section for more details. ' example: attribute: main_color code: black labels: en_US: Black fr_FR: Noir attribute_type: type: string description: The type of the value's attribute. See [type](https://api.akeneo.com/concepts/catalog-structure.html#attribute) section for more details. readOnly: true enum: - pim_catalog_identifier - pim_catalog_text - pim_catalog_textarea - pim_catalog_simpleselect - pim_catalog_multiselect - pim_catalog_boolean - pim_catalog_date - pim_catalog_number - pim_catalog_metric - pim_catalog_price_collection - pim_catalog_image - pim_catalog_file - pim_catalog_asset_collection - akeneo_reference_entity - akeneo_reference_entity_collection - pim_reference_data_simpleselect - pim_reference_data_multiselect - pim_catalog_table - pim_catalog_product_link example: pim_catalog_text reference_data_name: type: string 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`. ' readOnly: true x-warning: Only for `akeneo_reference_entity` or `akeneo_reference_entity_collection` or `pim_catalog_asset_collection` attribute types example: designer_ref _links: type: - object - 'null' description: 'Object containing download links for media files (images, files). Only present for file and image attribute types. ' readOnly: true properties: download: type: object properties: href: type: string description: URL for downloading the media file example: http://localhost/api/rest/v1/media-files/path/to/file/download example: download: href: http://localhost/api/rest/v1/media-files/5/d/b/1/5db16b5800314d8bc6358fb80b75f0fb0dedc6d0_akeneo.jpg/download x-validation-rules: Validation rules detailed in Product values section example: description: - data: T-shirt long sleeves Winter special, 100% wool locale: null scope: null associations: type: object description: Several associations related to groups, product models and/or other products, grouped by association types patternProperties: ^\w+$: type: object properties: groups: type: array description: Array of groups codes with which the product is in relation items: type: string products: type: array description: Array of product identifiers with which the product is in relation items: type: string product_models: type: array description: Array of product model codes with which the product is in relation items: type: string additionalProperties: false x-validation-rules: '- The `associationTypeCode` is the code of an existing association type. - Each string in the array of the property `groups` is the code of an existing group. - Each string in the array of the property `products` is the identifier of an existing product. - Each string in the array of the property `product_models` is the code of an existing product model. ' example: X_SELL: groups: [] products: - product_1 - product_2 product_models: - product_model_1 UPSELL: groups: - group_1 products: [] product_models: [] quantified_associations: type: object description: Several quantified associations related to products and/or product models, grouped by quantified association types patternProperties: ^\w+$: type: object properties: products: type: array description: Array of objects containing product uuids and quantities with which the product is in relation items: type: object properties: uuid: type: string quantity: type: integer product_models: type: array description: Array of objects containing product model codes and quantities with which the product is in relation items: type: object properties: identifier: type: string quantity: type: integer x-validation-rules: '- The `quantifiedAssociationTypeCode` is the code of an existing association type which provides quantity information. - Each object in the array of the property `products` contains the uuid of an existing product and the quantity of it. - Each object in the array of the property `product_models` contains the code of an existing product model and the quantity of it. ' example: PACK: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: aaf518b2-f91e-40f1-a53a-78ce5e81a6f9 quantity: 3 product_models: - identifier: product_model_1 quantity: 1 created: type: string description: Date of creation format: date-time readOnly: true x-immutable: true example: '2022-03-14T15:25:45+00:00' updated: type: string description: Date of the last update format: date-time readOnly: true example: '2022-06-24T12:54:58+00:00' metadata: type: object description: More information around the product readOnly: true properties: workflow_status: description: Status of the product regarding the user permissions type: string enum: - read_only - draft_in_progress - proposal_waiting_for_approval - working_copy x-immutable: true example: workflow_status: read_only proposal_review_status: type: object description: 'Review status of each change carried by the draft, grouped like the `values` property so that a change can be matched on its attribute code, locale and scope (only available on the draft endpoints when the `with_proposal_review_status` query parameter is set to `true`). While `metadata.workflow_status` is `proposal_waiting_for_approval`, a change with the `draft` review status is one that was submitted and then rejected by a reviewer (or edited by the author after submission), whereas a change with the `to_review` review status is still pending. Clients must treat unknown `review_status` values as opaque. ' readOnly: true x-immutable: true properties: values: type: object description: Review status of each attribute value changed in the draft. Each key is an attribute code. patternProperties: ^\w+$: type: array items: type: object properties: locale: type: - string - 'null' description: Locale code of the changed value, null if the attribute is not localizable scope: type: - string - 'null' description: Channel code of the changed value, null if the attribute is not scopable review_status: type: string description: Review status stored for the change enum: - draft - to_review example: values: description: - locale: fr_FR scope: ecommerce review_status: draft - locale: de_DE scope: ecommerce review_status: to_review weight: - locale: null scope: null review_status: to_review quality_scores: type: array items: type: object properties: scope: type: string description: Channel code for which the quality score is calculated locale: type: string description: Locale code for which the quality score is calculated data: type: string enum: - A - B - C - D - E description: Quality score value for the given channel/locale combination description: 'Product quality scores for each channel/locale combination (only available when the `with_quality_scores` query parameter is set to `true`). ' readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: A completenesses: type: array description: 'Product completenesses for each channel/locale combination (only available when the `with_completenesses` query parameter is set to `true`). ' items: type: object properties: scope: type: string description: Channel code for which the completenesses score is calculated locale: type: string description: Channel code for which the completenesses score is calculated data: type: integer description: Completenesses score value for the given channel/locale combination readOnly: true x-immutable: true example: - scope: ecommerce locale: en_US data: 100 readiness: type: object x-visibility: public description: 'Readiness scores (only available when the `with_readiness` query parameter is set to `scores_only` or `detailed`). Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager. ' properties: aggregated_scores_by_scope: type: array description: 'Aggregated readiness score per channel: the average of the per-locale scores within each readiness, then averaged across the readiness configurations that apply to that channel (equal weight) and rounded. ' items: type: object properties: scope: type: string description: Channel code for which the aggregated readiness score is calculated score: type: integer description: Aggregated readiness percentage score (0-100) for the given channel scores_by_scope_and_locale: type: object description: Readiness scores grouped by readiness code, for each channel/locale combination additionalProperties: type: array items: type: object properties: scope: type: string description: Channel code for which the readiness score is calculated locale: type: string description: Locale code for which the readiness score is calculated score: type: integer description: Readiness percentage score (0-100) for the given channel/locale combination unmet_requirements: type: array description: 'Requirements not yet met (only available when `with_readiness` is set to `detailed`). ' items: type: object properties: field: type: string description: Attribute code or product field the requirement applies to (e.g. `name`, `family`, `categories`) operator: type: string description: Comparison operator applied to the field to evaluate the requirement (e.g. `NOT EMPTY`, `=`, `IN`) value: description: Expected value for the requirement; type depends on the operator and may be null nullable: true readOnly: true x-immutable: true example: aggregated_scores_by_scope: - scope: ecommerce score: 88 scores_by_scope_and_locale: camcorders_ecommerce: - scope: ecommerce locale: en_US score: 75 unmet_requirements: - field: name operator: NOT EMPTY value: null - scope: ecommerce locale: fr_FR score: 100 unmet_requirements: [] workflow_execution_statuses: type: array description: 'Workflow execution statuses of the product (only available when the `with_workflow_execution_statuses` query parameter is set to `true`) ' items: type: object properties: uuid: type: string description: Workflow execution UUID status: type: string description: Status of the workflow execution enum: - in_progress - completed started_at: type: string format: date-time description: Date and time when the workflow execution was started completed_at: type: - string - 'null' format: date-time description: Date and time when the workflow execution was completed, null if still in progress workflow: type: object description: Workflow associated with the workflow execution properties: uuid: type: string description: Workflow UUID code: type: string description: Workflow code labels: type: object description: Workflow labels for each locale additionalProperties: type: string tasks: type: array description: Tasks associated with the workflow execution items: type: object properties: uuid: type: string description: Task UUID status: type: string description: Status of the task enum: - in_progress created_at: type: string format: date-time description: Date and time when the task was created step: type: object properties: uuid: type: string description: Step UUID code: type: string description: Step code labels: type: object description: Step labels for each locale additionalProperties: type: string readOnly: true x-immutable: true example: - uuid: 8c0fe59f-4d29-4faa-b4c3-d327e7f3cc52 status: in_progress started_at: '2024-02-22T17:31:00Z' completed_at: null workflow: uuid: 6f37476a-04c2-46c0-b6d0-e18316959068 code: enrichment_workflow labels: en_US: Enrichment workflow fr_FR: Workflow d'enrichissement tasks: - uuid: 8f6c2d18-fbd4-4f7e-81df-cb3dc368fe07 status: in_progress created_at: '2024-02-22T17:31:00Z' step: uuid: f626d0e5-84a5-41fc-8215-65508c253edb code: review_step labels: en_US: Marketing review fr_FR: Revue marketing - uuid: fc66ab46-3362-4000-862b-bd825f35f735 status: completed started_at: '2024-02-22T17:31:00Z' completed_at: '2024-03-20T00:31:00Z' workflow: uuid: 71b777a3-c2c2-4237-8d39-8bf13ec81755 code: compliance_workflow labels: {} tasks: [] example: uuid: 25566245-55c3-42ce-86d9-8610ac459fa8 enabled: true family: tshirt categories: - summer_collection groups: [] parent: null root_parent: 'null' values: sku: - data: top locale: null scope: null attribute_type: pim_catalog_identifier name: - data: Top locale: en_US scope: null attribute_type: pim_catalog_text - data: Débardeur locale: fr_FR scope: null attribute_type: pim_catalog_text description: - data: Summer top locale: en_US scope: ecommerce attribute_type: pim_catalog_textarea - data: Top locale: en_US scope: tablet attribute_type: pim_catalog_textarea - data: Débardeur pour l'été locale: fr_FR scope: ecommerce attribute_type: pim_catalog_textarea - data: Débardeur locale: fr_FR scope: tablet attribute_type: pim_catalog_textarea price: - data: - amount: '15.5' currency: EUR - amount: '15' currency: USD locale: null scope: null attribute_type: pim_catalog_price_collection color: - data: black locale: null scope: null linked_data: attribute: color code: black labels: en_US: Black fr_FR: Noir attribute_type: pim_catalog_simpleselect size: - data: m locale: null scope: null linked_data: attribute: size code: m labels: en_US: M fr_FR: M attribute_type: pim_catalog_simpleselect collection: - data: - winter_2016 locale: null scope: null linked_data: winter_2016: attribute: collection code: winter_2016 labels: en_US: Winter 2016 fr_FR: Hiver 2016 attribute_type: pim_catalog_multiselect created: '2016-06-23T18:24:44+02:00' updated: '2016-06-25T17:56:12+02:00' associations: PACK: products: - d055527c-0698-4967-8f16-8a5f23f4e5cf product_models: [] groups: [] quantified_associations: PRODUCT_SET: products: - uuid: fc24e6c3-933c-4a93-8a81-e5c703d134d5 quantity: 2 - uuid: a9b69002-a0b1-4ead-85c2-f8dbf59c6cfc quantity: 1 product_models: - identifier: model-biker-jacket-leather quantity: 2 quality_scores: - scope: ecommerce locale: en_US data: A - scope: ecommerce locale: fr_FR data: B - scope: tablet locale: en_US data: D - scope: tablet locale: fr_FR data: E completenesses: - scope: ecommerce locale: en_US data: 10 - scope: ecommerce locale: fr_FR data: 20 - scope: tablet locale: en_US data: 30 - scope: tablet locale: fr_FR data: 40 readiness: aggregated_scores_by_scope: - scope: ecommerce score: 88 scores_by_scope_and_locale: camcorders_ecommerce: - scope: ecommerce locale: en_US score: 75 unmet_requirements: - field: name operator: NOT EMPTY value: null - scope: ecommerce locale: fr_FR score: 100 unmet_requirements: [] workflow_execution_statuses: - uuid: 8c0fe59f-4d29-4faa-b4c3-d327e7f3cc52 status: in_progress started_at: '2024-02-22T17:31:00Z' completed_at: null workflow: uuid: 6f37476a-04c2-46c0-b6d0-e18316959068 code: enrichment_workflow labels: en_US: Enrichment workflow fr_FR: Workflow d'enrichissement tasks: - uuid: 8f6c2d18-fbd4-4f7e-81df-cb3dc368fe07 status: in_progress created_at: '2024-02-22T17:31:00Z' step: uuid: f626d0e5-84a5-41fc-8215-65508c253edb code: review_step labels: en_US: Marketing review fr_FR: Revue marketing - uuid: 59169984-6d6c-4fa7-b925-68b8e9d31ddb status: completed started_at: '2024-02-22T17:31:00Z' completed_at: '2024-02-22T17:31:00Z' workflow: uuid: b69ee158-a421-4680-bec0-a71bc73b8e31 code: compliance_workflow labels: {} tasks: [] '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. 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) 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)