Catalogs
Manage WhatsApp product catalogs and products
Overview
Section titled “Overview”Catalogs are WhatsApp product catalogs backed by Meta’s Commerce Manager. Soosh proxies catalog and product operations to the Meta Graph API and keeps a local mirror in your organization, so every create/update/delete both calls Meta and updates the local record. Each catalog is linked to a WhatsApp account by name.
List Catalogs
Section titled “List Catalogs”Retrieve all catalogs in your organization, ordered by name.
/api/catalogsQuery Parameters
Section titled “Query Parameters”| Parameter | Type | Description |
|---|---|---|
whatsapp_account |
string | Filter by WhatsApp account name |
Response
Section titled “Response”{ "status": "success", "data": { "catalogs": [ { "id": "uuid", "meta_catalog_id": "123456789", "whatsapp_account": "Main Business", "name": "Summer Collection", "is_active": true, "product_count": 12, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" } ] }}Get Catalog
Section titled “Get Catalog”Retrieve a single catalog with its products.
/api/catalogs/{id}Response
Section titled “Response”{ "status": "success", "data": { "id": "uuid", "meta_catalog_id": "123456789", "whatsapp_account": "Main Business", "name": "Summer Collection", "is_active": true, "product_count": 1, "products": [ { "id": "uuid", "meta_product_id": "987654321", "name": "T-Shirt", "description": "Cotton t-shirt", "price": 1999, "currency": "USD", "url": "https://example.com/tshirt", "image_url": "https://example.com/tshirt.jpg", "retailer_id": "SKU-001", "is_active": true, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" } ], "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" }}Create Catalog
Section titled “Create Catalog”Create a catalog in Meta Commerce Manager and store it locally.
/api/catalogsRequest Body
Section titled “Request Body”{ "whatsapp_account": "Main Business", "name": "Summer Collection"}| Field | Type | Required | Description |
|---|---|---|---|
whatsapp_account |
string | Yes | Name of the WhatsApp account that owns the catalog |
name |
string | Yes | Catalog name |
Response
Section titled “Response”Returns the created catalog (with product_count of 0).
{ "status": "success", "data": { "id": "uuid", "meta_catalog_id": "123456789", "whatsapp_account": "Main Business", "name": "Summer Collection", "is_active": true, "product_count": 0, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" }}Delete Catalog
Section titled “Delete Catalog”Delete a catalog from Meta and locally. All products in the catalog are removed as well.
/api/catalogs/{id}Response
Section titled “Response”{ "status": "success", "data": { "message": "Catalog deleted" }}Sync Catalogs
Section titled “Sync Catalogs”Fetch catalogs from the Meta Graph API for a WhatsApp account and create or update the local mirror.
/api/catalogs/syncRequest Body
Section titled “Request Body”{ "whatsapp_account": "Main Business"}| Field | Type | Required | Description |
|---|---|---|---|
whatsapp_account |
string | Yes | Name of the WhatsApp account to sync catalogs for |
Response
Section titled “Response”{ "status": "success", "data": { "message": "Catalogs synced", "synced": 3, "total": 3 }}| Field | Type | Description |
|---|---|---|
synced |
integer | Number of catalogs created or updated locally |
total |
integer | Number of catalogs returned by Meta |
List Catalog Products
Section titled “List Catalog Products”Retrieve all products in a catalog, ordered by name.
/api/catalogs/{id}/productsResponse
Section titled “Response”{ "status": "success", "data": { "products": [ { "id": "uuid", "meta_product_id": "987654321", "name": "T-Shirt", "description": "Cotton t-shirt", "price": 1999, "currency": "USD", "url": "https://example.com/tshirt", "image_url": "https://example.com/tshirt.jpg", "retailer_id": "SKU-001", "is_active": true, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" } ] }}Create Product
Section titled “Create Product”Create a product in the catalog’s Meta catalog and store it locally.
/api/catalogs/{id}/productsRequest Body
Section titled “Request Body”{ "name": "T-Shirt", "description": "Cotton t-shirt", "price": 1999, "currency": "USD", "url": "https://example.com/tshirt", "image_url": "https://example.com/tshirt.jpg", "retailer_id": "SKU-001"}| Field | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Product name |
price |
integer | Yes | Price in the smallest currency unit (cents). Must be greater than 0 |
description |
string | No | Product description |
currency |
string | No | ISO 4217 currency code. Defaults to USD |
url |
string | No | Product landing page URL |
image_url |
string | No | Product image URL |
retailer_id |
string | No | Retailer SKU / external identifier |
Response
Section titled “Response”Returns the created product (same shape as the product object above).
Get Product
Section titled “Get Product”Retrieve a single product.
/api/products/{id}Response
Section titled “Response”{ "status": "success", "data": { "id": "uuid", "meta_product_id": "987654321", "name": "T-Shirt", "description": "Cotton t-shirt", "price": 1999, "currency": "USD", "url": "https://example.com/tshirt", "image_url": "https://example.com/tshirt.jpg", "retailer_id": "SKU-001", "is_active": true, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" }}Update Product
Section titled “Update Product”Update a product in Meta and locally. Only non-empty fields in the request body are applied to the local record.
/api/products/{id}Request Body
Section titled “Request Body”{ "name": "Premium T-Shirt", "price": 2499, "currency": "USD"}| Field | Type | Description |
|---|---|---|
name |
string | Product name |
description |
string | Product description |
price |
integer | Price in cents (applied only when greater than 0) |
currency |
string | ISO 4217 currency code |
url |
string | Product landing page URL |
image_url |
string | Product image URL |
retailer_id |
string | Retailer SKU / external identifier |
Response
Section titled “Response”Returns the updated product object.
Delete Product
Section titled “Delete Product”Delete a product from Meta and locally.
/api/products/{id}Response
Section titled “Response”{ "status": "success", "data": { "message": "Product deleted" }}See Also
Section titled “See Also”- Accounts API - Manage the WhatsApp accounts that own catalogs