Skip to main content
Adds or updates products from a CSV file, sent as a multipart form with the file in the field file. Each row is matched on its SKU: a SKU the account has updates that product, a new one adds a product. Every row is checked before anything is saved, so a file with a bad row changes nothing. The panel’s Export CSV gives a file with the same columns.
Needs the catalogue.products:write scope.

Form fields

Columns

Only sku is required; the other columns are optional and may come in any order. An empty cell in the other columns leaves what the product has. Empty rows are skipped.
Products on sale are queued for the WhatsApp catalogue. An import doesn’t send product.changed for each row it saves.

Request

Response

200 OK — how many rows were read, and how many products were added and updated.

Errors

Every refusal is {"error": {"code", "message", "field"}}; field is there when one input is at fault. Any request can also be refused for its key, its account or its rate (key_required, invalid_key, account_suspended, plan_excludes_api, address_not_allowed, rate_limited); see the overview.