Catalog API
This API allows you to manage your product catalog dynamically, bypassing the traditional CMS feed integration. The Catalog API acts as a separate integration type and is visible in the integrations settings like other integration methods.
The Catalog API cannot work alongside a standard catalog integration. You must choose to use either the Catalog API or a catalog Feed/CMS integration for your catalog management.
Catalog API authentication
To manage your catalog securely, the API uses a dedicated API key that is only authorized to manage the catalog. The standard recommendation API key does not have permission to edit the catalog.
To use the Catalog API endpoints, you must generate a Catalog API key and authenticate all your requests with it.
curl 'https://api-catalog.abtasty.com/ENDPOINT' \
-H 'authorization: Bearer CATALOG_API_KEY'Catalog structure management
Catalog item fields requirements
Catalog items are represented as objects that must contain the following fields:
Mandatory fields: Every catalog item must include the following fields:
id: the unique ID of the item. It should be astringof 40 characters maximum.is_recommendable: a true/falsebooleanindicating if your product can be recommended.name: the display name of the item. It should be astringornull.absolute_link: the PDP url of the item. It should be astringornull.img_link: the main image url of the item. It should be astringornull.price: the price of the item. It should be anumberornull.categories_ids: the categories of the item. It should be aarray of stringornull.
Required to connect with your analytics solution: These fields are the keys that will be used to link your analytics events to your catalog items. Learn more on analytics documentation
item_purchase_key: an identifier accessible in yourpurchaseevent properties that will be the link between the purchase event and the item. Product id or product key is often used here. It should be anarray of stringornull.item_pageview_key: an identifier accessible in yourpageviewevent properties that will be the link between the pageview event and the item. Product canonical url or product id is often used here. It should be anarray of stringornull.
Custom fields: You can define as many custom fields as you need by adding them to the payload. Each field sent in the payload will be dynamically added to your catalog schema.
Example of a catalog item object:
Dynamic catalog schema & typing constraints
Catalog API schema is dynamic. When sending product data through the API, catalog item fields are accepted and created dynamically based on your payload.
The API strictly enforces data types. A custom field's data type is determined by the first value sent through the API. For example: if you create a product with the field "color" and the value "red", a catalog field named "color" is automatically created and assigned the type "string". All future products with a field "color" should now have either an empty value or a string value.
Supported fields types
String
Number
Boolean
Array of string [String]
Object of strings [String:String]
Object of numbers [String:Number]
Object of booleans [String:Boolean]
Catalog API Endpoints (v1)
Base domain is https://api-catalog.abtasty.com/
Add or replace a product
PUT /indexes/catalog/{itemID}
Description: Use this endpoint to add a new product or entirely replace an existing product in the catalog based on its itemID.
Payload example:
Delete a product
DELETE /indexes/catalog/{itemID}
Description: Deletes a single product from the catalog matching the specified itemID.
Payload example:
Delete all products
DELETE /indexes/catalog
Description: Deletes all products from the catalog while keeping in memory the existing schema.
Payload: null
Delete a catalog field
DELETE /indexes/catalog/schema/{fieldID}
Description: Deletes a catalog field from the catalog schema matching the specified fieldID.
If a field was created with the wrong type, use this endpoint to remove it. Since field types cannot be changed after creation, you will need to recreate the field with the correct type.
Batch operations
POST /indexes/catalog/batch
Description: This endpoint allows you to add, replace, or delete multiple products in the catalog using a single API request.
Batch size limit: Payload size should be less than 50MB and maximum 10 000 operations per call.
Payload example:
Catalog synchronization recurrence
When building your integration with Catalog API, be aware of the following technical limitations and synchronization behaviors:
Catalog API operations are validated synchronously.
The catalog visible in the platform and used for your strategy results is only updated after a synchronization job runs, not after each API call. By default, synchronization runs once per day. The update frequency can be increased according to your needs.
Last updated
Was this helpful?

