Icecat

Manual for Brand Partners: Icecat Product Model Name

Version: 1.0
Updated 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.


1. Before you start

How to identify yourself

The same header as everywhere else in the Brand API, on every request:

Api-Token: your_api_token

The IDs you will be substituting

PlaceholderWhat it isWhere you get it
{productId}your product in Icecatthe answer you got when you created the product
{languageId}the locale you are writing — one of those your account is assignedGet your locales, in Manual for Brand Partners: Icecat Push-API (API-IN)

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.

Two API versions, and why

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.

Every operation, in one table

What you want to doCallExplained in
see the model names a product hasGET https://bo.icecat.biz/restful/v2/ProductModelName/{productId}§3
set or change the name for one localePUT https://bo.icecat.biz/restful/v3/ProductModelNames§4
set several locales in one callPUT https://bo.icecat.biz/restful/v3/ProductModelNames/Batch§5
remove the name for one localeDELETE https://bo.icecat.biz/restful/v2/ProductModelName/{productId}?lang_id={languageId}§6

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.


2. What a model name is

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.

The international name is not set by a brand account

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.

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.

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.


3. Reading what a product has

GET https://bo.icecat.biz/restful/v2/ProductModelName/{productId}

header:

Api-Token: your_api_token

The answer carries three things worth knowing:

  • product_model_name — the international name, for reference;
  • product_model_name_local — the local names, filtered to the locales your account may write. A name in a locale you are not assigned is not shown;
  • readOnlyProductName — true for a brand account, saying that the international name above is not one this account can change.

Read this once before a push and you know exactly which locales you are adding to and which you are replacing.


4. Setting the name for one locale

One call both creates and replaces — there is no separate “create” and “update”.

PUT https://bo.icecat.biz/restful/v3/ProductModelNames

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.

Three rules the name itself has to meet:

  • it cannot be empty, or only spaces;
  • it cannot contain a line break — a model name is one line;
  • it is at most 3000 characters.

5. Several locales in one call

When you have the name in a handful of markets, send them together instead of one call per locale.

PUT https://bo.icecat.biz/restful/v3/ProductModelNames/Batch
{
  "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.

Removing locales in the same call

RemoveLanguageIds lists locales whose name should be removed as part of the same submission:

{
  "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.

Reading the answer

The answer repeats every entry you sent with a status of its own:

StatusCodeStatusMessageWhat happened
201Created.the locale had no name and now has one
200Updated.the name was replaced
304Not modified.that locale already held exactly this name
400the reasonthis entry was refused — see section 8
403the reasonyou may not write that locale

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.


6. Removing a name

DELETE https://bo.icecat.biz/restful/v2/ProductModelName/{productId}?lang_id={languageId}

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:

  • the international name cannot be removed by a brand account, and the answer says so;
  • a locale with no name returns “Product name is not found” rather than succeeding quietly.

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.


7. Limits

ModelName1 to 3000 characters, one line, not blank
Names per localeone. Writing again replaces it
Batch entries in one call100
RemoveLanguageIds in one call100, each locale named once
LanguageIda locale your account is assigned. 0 (INT) is readable but not writable by a brand account
Productsthose of the brands assigned to your account

8. When something goes wrong

The Brand API’s error shape applies here — Code, Error, Message, DetailedCode — as described in Manual for Brand Partners: Icecat Push-API (API-IN).

StatusWhat it means
200applied. In a batch, check each entry’s own status as well
304the name was already exactly this. Nothing was written, and nothing is wrong
400the request or the name is wrong — fix and resend
403the product or the locale is not yours
500our side failed — retry with a backoff

Messages you will meet

MessageWhat happenedWhat to do
Product name shouldn't be empty.the name is blank or only spacesto clear a locale, remove it (section 6) rather than sending an empty name
Product name shouldn't have multilines.the name contains a line breaka model name is one line; strip the break
Product name should be less than 3000 characters.too longshorten it
Language ID is not foundno such localecheck the id against Get your locales
You are not allowed to access this contentthe locale is outside the set your account may writecheck which locales you are assigned
Brand user can not change INT product namethe write named languageId: 0the international name is not yours to set — section 2
Access denied. / You are not assigned to this content.the product belongs to a brand you are not assignedcheck the product
ProductId is unknown.no such productcheck the id
The international product name can not be deleteda delete named lang_id=0the international name is not one a brand account removes — section 2
Product name is not founda delete named a locale that has no namenothing to remove
Empty model name.a batch entry carried an empty namesame as the first row, per entry
icecat

Icecat is a global leader in product content syndication, helping brands, manufacturers, distributors, and retailers deliver enriched and consistent product information across multiple platforms. Trusted by 40,000+ e-commerce brands, Icecat helps turn browsers into buyers.

Recent Posts

Manual for Brand Partners: Icecat Product Multimedia

Version: 1.0Updated on: October 5th, 2026 This manual is for brand partners publishing the multimedia of…

2 hours ago

Manual for Brand Partners: Icecat Product GTINs

Version: 1.0Updated on: October 5th, 2026 This manual is for brand partners publishing the GTINs of…

2 hours ago

Hasbro expands its regional above-the-fold content collaboration with Icecat

Hasbro has expanded its collaboration with Icecat by extending the regional availability of its above-the-fold…

2 hours ago

Why Amazon Wants to Run Your Store on Shopify, Walmart, and the Rest? – And What It Means for Your Product Content

For years, the e-commerce playbook was fairly straightforward: list your products on Amazon, leverage FBA,…

3 days ago

Asimov Had the AI Guardrail Blueprint All Along

When I was about ten years old, my late father, a psychologist named Boris, handed…

4 days ago

Dreame Italy Enhances Product Experiences with Icecat Rich Content

Dreame Italy has partnered with Icecat to enrich product content, strengthening how it presents its…

4 days ago