Skip to content

GetProduct#

Test Postman Apidog

The method is designed to retrieve information about a specific catalog product by its identifier.

Behavior change

Previously the method worked without instance authorization via WhatsApp's public GraphQL. Now the instance must be authorized.
If the method is called on an unauthorized instance, an authorization error is returned.

WhatsApp-side limitations

If catalog methods are called frequently, WhatsApp may temporarily restrict access to the Business Catalog API. Do not send a large number of requests to catalog methods over a short period of time.

Request#

To get a product, you need to send a request to the address:

POST
{{apiUrl}}/waInstance{{idInstance}}/getProduct/{{apiTokenInstance}}

To obtain the request parameters idInstance and apiTokenInstance, refer to the section Before you start.

Request parameters#

Parameter Type Required Description
chatId string Yes Seller's chat identifier in the format 79876543210@c.us
productId string Yes Unique product identifier in WhatsApp

Request body example#

{
  "chatId": "79876543210@c.us",
  "productId": "26437451389197252"
}

Response#

Response fields#

Field Type Description
id string Unique product identifier
name string Product name
description string Product description
price string Price (in the smallest currency unit, e.g., 95000 = 950.00 EUR)
currency string Currency code (e.g., EUR)
retailer_id string Product identifier from the retailer
is_hidden boolean Whether the product is hidden
is_sanctioned boolean Whether the product is under sanctions
product_availability string Product availability (IN_STOCK, OUT_OF_STOCK, etc.)
max_available integer Maximum available quantity
url string Product page URL
shimmed_url string Processed URL
status_info object Moderation status information (status field: APPROVED, PENDING, REJECTED)
sale_price string Sale price (if available)
media object Media files (images and videos arrays)
belongs_to string Product owner
compliance_category string Compliance category
compliance_info object Compliance information (includes country_code_origin, importer_name, importer_address)
variant_info object Product variant information

Response body example#

{
  "id": "26437451389197252",
  "retailer_id": null,
  "is_hidden": null,
  "is_sanctioned": false,
  "product_availability": "IN_STOCK",
  "max_available": 99,
  "name": "Handmade Ceramic Mug - Large+",
  "description": "Hand-painted ceramic mug, 450ml. Dishwasher safe. New larger size.",
  "url": null,
  "shimmed_url": null,
  "currency": "USD",
  "price": "900",
  "status_info": {
    "can_appeal": null,
    "status": "APPROVED"
  },
  "sale_price": null,
  "media": {
    "images": [
      {
        "id": "26756491040611445",
        "original_image_url": "https://mmg.whatsapp.net/...",
        "request_image_url": "https://mmg.whatsapp.net/..."
      }
    ],
    "videos": []
  },
  "belongs_to": null,
  "compliance_category": null,
  "compliance_info": {
    "country_code_origin": "RU",
    "importer_name": "",
    "importer_address": null
  },
  "variant_info": null
}

GetProduct errors#

For a list of common errors for all methods, see the section Common errors

Code examples#

import requests

url = "{{apiUrl}}/waInstance{{idInstance}}/getProduct/{{apiTokenInstance}}"

payload = {
    "chatId": "79876543210@c.us",
    "productId": "26437451389197252"
}
headers = {
    'Content-Type': 'application/json'
}

response = requests.post(url, json=payload, headers=headers)

print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/waInstance{{idInstance}}/getProduct/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"chatId": "79876543210@c.us",
"productId": "26437451389197252"
}'