API Base URL: https://api-platform.vntana.com
For a collection of all Endpoints in our Admin API, view the documentation here. To view the collection of Public Endpoints, view the documentation here. Note: In the following guide and aforementioned documentation, you will see referenced in numerous Endpoints something called a Client. This refers to the folders one can create on the Platform within an Organization. The Client nomenclature is a legacy reference being replaced with Folder. These will be referenced as Client / Folder in all guides.
Integrations allow users to better manage their 3D assets between VNTANA and whatever destination they have for these assets. VNTANA currently offers API access to data for the following integrations:
- Amazon
- Shopify
Integration Attributes behave similarly to attributes in that they are <key>:<value> pairs of data stored on an individual Asset. Unlike regular attributes, they are handled separately and do not interact with the regular Asset creation or update flows. Additionally, there while regular attributes are open-ended and can be any <key>, integration attributes are limited to specific <key>’s based on the current available integrations.
Creating or Updating Integration Attributes
PUT endpoint. Unlike Asset creation/editing the method doesn’t change depending on whether you are creating or updating, it will always be a PUT request. The behavior is instead determined by the parameters that are passed in the request body. The following endpoint allows you to set integrationAttributes: productUuid – [REQUIRED] The UUID of the Asset to update.
type – [REQUIRED] The type of
integration, can beAMAZONorSHOPIFY.operationType – [REQUIRED] Indicates how to handle the data, can be
ADDorREPLACE.ADD will simply ‘append’ the data to the Asset’s
integrationAttributes. This means that it will persist what was previously stored on the Asset’sintegrationsAttributes, so if you only passasinsno other data will be lost.REPLACE will first clear the
integrationAttributeson an Asset and then populate it with only what is passed in the new request.
attributes – [REQUIRED] The <key>:<values> to set. While the
attributesfield is required, the contents are fluid and can be from the following:asins – Object containing <key>:<value> pairs of Amazon
marketplaceId’s and Amazon Product Asins. Ex:“ATVPDKIKX0DER":"B000000000". Note: themarketplaceIdrefers to an Amazon Store such as United States, Canada, etc.dimensions – While this data is required for publishing to Amazon, it is optional in this request and we recommend using the generated dimensions on Platform, found in the Amazon Integration tab of an individual Asset. Object containing the following:
unit– Can beCENTIMETERSorMETERSlengthwidthheight
productName – Shopify Product name, only used by the VNTANA App for Shopify
productId – Shopify Product ID, only used by the VNTANA App for Shopify
A successful request will return the current data stored on an Asset’s integrationAttributes field in the response body. A note on the response, there will be two UUID’s return: uuid and originProductUuid. The originalProductUuid refers to the Asset UUID passed in the request as productUuid, while uuid is just a UUID to identify the request.
An example request to create Amazon integration attributes on an asset:
with the following example response:
Possible Error Codes
MISSING_PRODUCT_UUID
-
Returned if the request body does not contain the
productUuidparameter.
MISSING_INTEGRATION_TYPE
-
Returned if the request body does not contain the
typeparameter.
MISSING_INTEGRATION_ATTRIBUTES
-
Returned if the request body does not contain the
attributesparameter.
INVALID_INTEGRATION_ATTRIBUTE_KEY
-
Returned if a <key> is used in the
attribtuesparameter that isn’t recognized as anintegrationAttribute.
ORIGIN_PRODUCT_NOT_FOUND
-
Returned if the
productUuidrefers to an invalid Asset. Likely caused by the deletion or moving of an Asset, or just a typo.
INVALID_ATTRIBUTE_VALUE
-
Returned if the value of an
attribute<key> is invalid, i.e. passing a list as the value forproductName.
Retrieving List of Amazon Marketplace IDs
When adding integration attributes to Assets for the Amazon Integration, as well as publishing an Asset to Amazon, you will need the marketplaceId of each marketplace the Asset should be published to. To get a full list of every market place you can call the following endpoint:
code representing the marketplaceId and description refers to the name of the marketplace that you would see on the platform when linking. Alternatively, if you just wish to grab the ID(s) you need the full list is below. Retrieving Integration Attributes for An Asset
integrationAttributes for an asset, where one allows you to filter the response by the integration type. Retrieve Integration Attributes by Type
integrationAttributes for an Asset, call the following endpoint: Where type can be either AMAZON or SHOPIFY. For the AMAZON type, only asins for marketplaceId’s that are enabled in the organization will be returned. An example of a response can be seen below.
marketplaceId hasn’t been assigned an asin for an asset, it’ll just return null for its value. Possible Error Codes
INTEGRATION_ATTRIBUTES_NOT_FOUND
-
Indicates this asset does not have any
integrationAttributesfor thattype.
Retrieving All Integration Attributes for an Asset
integrationAttributes for an Asset, regardless of type, use the following endpoint: integrationAttributes as a list under the <key> grid (see sample response below). Each element of the list will pertain to an integration type. As with the other endpoint, for AMAZON data, only asins for marketplaceId’s that the organization have added will be returned. Amazon Integration - Publishing
It is possible to publish your Assets to Amazon via the API once the required integrationAttributes are set. This can be done using a single or bulk endpoint. It is important to note that assets will fail to publish if they do not have at least one asin assigned to a connected store, and values for the dimensions.
Note: To publish to Amazon, an Asset must be in the Live Public state and cannot be currently processing.
To publish a single asset via the API, call the following endpoint:
-
productUuid – [REQUIRED] The UUID of the Asset to publish to Amazon
-
publishTo – [REQUIRED] Indicates the integration
typethis publish action corresponds to. Currently only Amazon utilizes this functionality. -
marketplaceIds – [REQUIRE] List of IDs for the Amazon stores to publish to. These must have already been connected to the Organization via the Integrations settings on Platform.
The bulk endpoint is slightly altered:
The only two differences (aside from the different endpoint) are the following:
-
productUuids – [REQUIRED] A list of all
productUuid’s to publish. -
ignoreInvalidProducts – [REQUIRED] Indicates whether the operation should simply skip Assets that are missing required data and publish the rest or exit early.
marketplaceId isn’t returned for the individual grid elements. Possible Error Codes
These error codes can be returned for either the single or bulk operation, however note that if ignoreInvalidProducts is set to true some of these may not be triggered on the bulk operation.
MISSING_PRODUCT_UUID
-
No
productUuidis provided /productUuidsis empty.
MISSING_PUBLISH_TO
-
publishToparameter is missing or it’s value is invalid.
MISSING_MARKETPLACE_IDS
-
No valid
marketplaceIdsare provided.
PRODUCT_MUST_BE_LIVE_PUBLIC
-
An Asset you are trying to publish is not in the Live Public state.
ORIGIN_PRODUCT_NOT_FOUND
-
A provided
productUuidis invalid, either because the Asset has been moved or deleted (or there is a typo).
PRODUCT_IN_PROCESSING_STATUS
-
An asset provided is currently in the optimization process.
MISSING_GLB_MODEL
-
An asset provided does not have an optimized GLB format available.
MISSING_INTEGRATION_ATTRIBUTES
MISSING_INTEGRATION_ATTRIBUTE_DIMENSIONS
MISSING_INTEGRATION_ATTRIBUTE_ASIN
Each of the preceding three refer to missing data required for publishing.
Integration Status
integrationAttributes, it is also possible to check the status of publishing by checking the integrationStatus parameter. This value will be returned with the Asset data retrieved using the search endpoints below:
-
/v1/products/clients/search -
/v1/products/clients/{clientUuid}/search
The data returned will contain the following:
This status is an aggregated status for the Asset, with more weight placed on error states. This means that if an asset was published to the Canada and United States stores and both have the status REMOTE_FAILED, the returned status would be REMOTE_FAILED. The possible states are:
LOCAL_CREATED, LOCAL_ERROR, REMOTE_CREATED, REMOTE_UPDATED, REMOTE_PROCESSING, REMOTE_COMPLETED, REMOTE_FAILED, REMOTE_REJECTED, REMOTE_ERROR
To see the full context of the response for these endpoints, see the guide on Searching Assets.
In order to see the individual marketplace statuses, you can call the following endpoint:
AMAZON and SHOPIFY, however only Amazon will return data. The marketPlaceId is optional, excluding it will simply return the status for all linked marketplaces in the organization for that Asset. This endpoint will return the following response:
marketPlaceId if the query parameter is left out of the request.