Skip to main content

Overview

The MoEngage Catalog API allows you to programmatically manage product and item catalogs. Use these endpoints to create new catalogs, define custom schemas, and perform bulk operations for ingesting, updating, or deleting items.
Authentication Requirement: This API requires Basic Auth (Workspace ID as username and API Key as password) AND the MOE-APPKEY header. Ensure both are provided for every request.

Catalog API Endpoints

The Catalog API consists of the following operations:

API Constraints & Limits

FeatureLimit
Rate Limit100 requests/minute OR 1000 requests/hour
Max Payload Size5MB (requires Content-Length header)
Batch SizeMax 50 items per Ingest/Update/Delete request
Max Attributes50 attributes per catalog
Max Catalogs35 catalogs per account

Supported Data Types

When defining attributes or ingesting items, ensure the values match these supported types:
TypeDescription
stringTextual data
boolBoolean (true/false)
doubleNumeric/Floating point values
datetimeDate and time format
geopointGeographical coordinates

Notes

Mandatory Attributes: Every catalog item must include the following four mandatory attributes as strings:
  • id: The unique identifier for the item.
  • title: The name of the item.
  • link: The deep link or URL to the item page.
  • image_link: The URL of the primary product image.
Catalog ID Management:The catalog_id returned upon successful creation is a UUID. You must store this ID as it is required as a path parameter for all subsequent item management requests.

FAQs

Catalog Management

The API will return a 409 Conflict error with the error code duplicate-catalog-name. Catalog names must be unique within your workspace.
Yes, you can use the Add Catalog Attributes (PATCH) endpoint. Note that if you send attributes that already exist in the schema, they will be ignored and listed in the duplicate-item-attributes array in the response.
You can define up to 50 attributes per catalog, including the 4 mandatory attributes.
API catalogs automate real-time updates such as price and quantity. They offer improved efficiency and scalability by updating only specific products, unlike file-based catalogs, which require the replacement of the whole file at each processing schedule. These APIs can be accessed and used to update from any location.
Each error code is a uniquely defined shorthand representation for the type of error, providing a quick reference that can be used to diagnose, troubleshoot, and address the problem based on a predefined set of error conditions.
No, the datatype cannot be changed once an attribute has been defined in the catalog. You can add a new attribute to the catalog with a different datatype as needed.
A maximum of 50 attributes can be added to the catalog.
Before updating existing items with new attributes, you must first add the new attribute to the catalog schema using the ‘Add catalog attribute’ API. Only then will your update requests for including new attributes be successful.
The request will be processed successfully marking such items as invalid. The response will include the count of these invalid item IDs.

Item Ingestion & Updates

The API returns a 200 OK with a detailed breakdown. The response body will include a valid count and an invalid count with a details array specifying which document_ids failed and why (e.g., data type mismatch or missing attributes).
No. The id is the primary key. To change an ID, you must delete the existing item and ingest it as a new item.
Yes, the bulk-delete endpoint supports a maximum of 50 item IDs per request.
All MoEngage catalog APIs operate synchronously. This means that every catalog API request is processed in real time, and you can see the changes instantly.

Postman Collections

Test these endpoints immediately using our Postman collection. View Postman Collection