Version: 1.0Updated on: October 5th, 2026
This manual is for brand partners setting the model name of their own products. It describes what a brand account can do and the limits that apply.
Read Manual for Brand Partners: Icecat Push-API (API-IN) first. This page continues it, and assumes you have it behind you: what a product is, how international and local content differ, how you authenticate, how you find locale IDs, and what a brand account may see. None of that is repeated here.
The same header as everywhere else in the Brand API, on every request:
Api-Token: your_api_token
{productId}
{languageId}
The product has to be yours. Every call below works on products of the brands your account is assigned to. Another brand’s product answers 403.
403
Model names are older than the Brand API’s current version, and the operations did not all move at once. Reading and removing are on v2; writing is on v3. You can see it in the paths below.
It matters for one thing only: the parameter style follows the version, so the locale is lang_id in a v2 query string and LanguageId in a v3 body. The credential does not change — Api-Token works on both.
lang_id
LanguageId
Api-Token
GET https://bo.icecat.biz/restful/v2/ProductModelName/{productId}
PUT https://bo.icecat.biz/restful/v3/ProductModelNames
PUT https://bo.icecat.biz/restful/v3/ProductModelNames/Batch
DELETE https://bo.icecat.biz/restful/v2/ProductModelName/{productId}?lang_id={languageId}
Every field of these is in the Icecat Brand API swagger. Section 7 covers all limits, and section 8 covers the messages you are most likely to encounter.
The model name is the short designation that identifies the product — what a partner shows as the product’s name on the page and in a listing. It is not the marketing text and not the product code: it is the name a shopper would recognize.
It is local content. A model name belongs to one locale, and a product can have at most one name per locale in each locale your account is assigned. Setting a name for a locale that already has one replaces it; there is no list to append to.
A product also has an international name, at LanguageId: 0, used where no local name exists. A brand account cannot create, change or remove it. An attempt is refused with Brand user can not change INT product name, and when the product is read back the answer marks that name read-only.
LanguageId: 0
This has a visible consequence when you create a product. A product created by a brand account takes its product code as the international name, whatever else is sent — so the international field will show something like 20U9005MGE rather than a readable name until an Icecat editor replaces it.
20U9005MGE
A brand account sets the name for each market it is assigned to, and that is what a partner in that market receives. A market with no local name receives the international one, product code included.
header:
The answer carries three things worth knowing:
product_model_name
product_model_name_local
readOnlyProductName
true
Read this once before a push and you know exactly which locales you are adding to and which you are replacing.
One call both creates and replaces — there is no separate “create” and “update”.
headers:
Api-Token: your_api_token Content-Type: application/json
body:
{ "ProductId": {productId}, "LanguageId": {languageId}, "ModelName": "ThinkPad X1 Carbon Gen 12" }
All three fields are required. The answer echoes what was stored.
If the name you send is already there, nothing is written and the call answers 304. That is not an error — it is the API telling you the product was already in the state you asked for, so a feed that re-sends unchanged names costs nothing and tells you so.
304
Three rules the name itself has to meet:
When you have the name in a handful of markets, send them together instead of one call per locale.
{ "ProductId": {productId}, "PolicyName": "CreateOrReplace", "Batch": [ { "LanguageId": 1, "ModelName": "ThinkPad X1 Carbon Gen 12" }, { "LanguageId": 4, "ModelName": "ThinkPad X1 Carbon Gen 12" }, { "LanguageId": 3, "ModelName": "ThinkPad X1 Carbon Gen 12" } ] }
Up to 100 entries. PolicyName is required and takes one value — CreateOrReplace — which does what section 4 does, for every entry: the name is created where the locale had none and replaced where it had one. Locales you do not mention are left alone.
PolicyName
CreateOrReplace
RemoveLanguageIds lists locales whose name should be removed as part of the same submission:
RemoveLanguageIds
{ "ProductId": {productId}, "PolicyName": "CreateOrReplace", "Batch": [ { "LanguageId": 1, "ModelName": "ThinkPad X1 Carbon Gen 12" } ], "RemoveLanguageIds": [ 4, 3 ] }
English gets the new name; German and French lose theirs. Up to 100 locales, each named once.
The answer repeats every entry you sent with a status of its own:
StatusCode
StatusMessage
201
Created.
200
Updated.
Not modified.
400
The batch is best-effort per entry. One bad entry does not fail the others: it gets its own 400 or 403, and everything else is applied. So check the entries, not only the HTTP status — the call can answer 200 with a refused entry inside it.
The name is removed, not hidden: the locale goes back to having no name of its own, and a partner in that market receives the international one instead.
Two refusals to expect:
If you are removing several locales as part of a wider update, RemoveLanguageIds in a batch (section 5), do it in the same call as the names you are setting.
ModelName
Batch
0
The Brand API’s error shape applies here — Code, Error, Message, DetailedCode — as described in Manual for Brand Partners: Icecat Push-API (API-IN).
Code
Error
Message
DetailedCode
500
Product name shouldn't be empty.
Product name shouldn't have multilines.
Product name should be less than 3000 characters.
Language ID is not found
You are not allowed to access this content
Brand user can not change INT product name
languageId: 0
Access denied.
You are not assigned to this content.
ProductId is unknown.
The international product name can not be deleted
lang_id=0
Product name is not found
Empty model name.
Read further: Icecat, e-commerce, ecommerce, Icecat, manuals, product content, release notes