This guide is intended for developers working with Icecat via API. The document provides an overview of each Pull API, used by channel partners to download the Icecat Product Data Sheets.
If you have the brand account, which updates the product data on Brand Cloud, refer to Push API Manual instead.
Icecat provides a Free Open Icecat subscription with access to the Open Icecat repository.
The Open Icecat repository is the part of the Icecat XML repository that is sponsored by Brands and is provided for free to the channel. The most recent list of Open Icecat brands is here.
Open Icecat is also useful for testing purposes before you upgrade to Full Icecat. The technical structures are 100% compatible with those of Full Icecat.
However attractive the free Open Icecat database is, the Full Icecat database still contains many, many more brands: tens of thousands. Datasheets are often provided with service levels and coverage guarantees.
In case you want to upgrade to Full Icecat, please contact us via the contact form or click on the Upgrade in your Settings.
Read more: Main advantages of Full Icecat over Open Icecat
We require any user of Open Icecat product data – in a free Open Icecat subscription or as part of the Full Icecat data – to respect the Open Icecat Fair Use Policy.
Explicitly relevant for website development is:
files.index for all products in Icecat. Use this index once at the start of setting up the onboarding for Icecat.daily.index.xml.gz for the daily new and updated products. Use this index daily to select new and updated products.During matching process you may notice that Icecat data heavily relies on IDs for the entities – Categories, Brands, Locales, etc.
In order to Match the names with the corresponding IDs, Icecat provides taxonomy in Reference Files.
After a rip of our general site, an IP address may be temporarily blocked (error 499). A rip is not acceptable as it may hurt site performance and can be a copyright infringement.
Maximum limitation is 100 requests per IP per second. We recommend keeping it on 50-70.
| Restriction | Open Icecat Product | Full Icecat Product | Open Icecat Assets | Full Icecat Assets | Private Assets |
|---|---|---|---|---|---|
| IP whitelisting | ❌No | ✅ Yes | ❌No | ✅ Yes | ✅ Yes |
| Basic Auth | ❌No | ✅ Yes | ❌No | ❌No | ✅ Yes |
To access Open Icecat, you will need a username and password provided by Icecat.
In JSON API for Basic Auth the username is used with an app_key instead of the password.
In short, access to the product content of Full Icecat is protected. If you want to access Full Icecat product content, you must unlock your IP address.
152.168.1.0/24152.168.1.1-152.168.1.100Dynamic tokens are secure tokens that are passed as headers and replaces both IP Whitelisting and Basic auth.
It is recommended way to fetch the data from Icecat. Learn more here: Access Tokens as an Alternative to IP Whitelists and app_key
Beautiful ready-to-use HTML pages with pre-defined design.
<script> tag and one JavaScript method call — no server-side rendering, no data parsing, no frame/iframe management.['en', 'fr'] and the API serves the first available locale.Especially for agentic AI, the Model Context Protocol (MCP) has become a de-facto standard.
Icecat supports MCP to be part of your AI experience and provide a analyzis with a reliable product data for context.
msg + data) with dot-navigable nested objects – no XML parsing libraries required, native to JavaScript, Python, PHP, and virtually any modern stack.content parameter enables Granular Calls – fetch only the sections you need (e.g., content=essentialinfo,gallery,featuregroups) instead of the full datasheet, reducing payload size and parsing effort.packages, brandorganizations, analytics) expose EPR/sustainability data, brand legal entities, and download popularity that are not available in a standard full call.lang=INT) is exclusive to XML – no other Icecat API supports it. A single INT request returns data for all locales activated in your account, eliminating the need to loop through languages one by one.files.index.xml) – use it to check product existence, last-updated timestamp, distributor stock, and mapped Product Codes without downloading the full datasheet.200 = product exists, 404 = doesn’t exist or credentials wrong – zero body parsing, ideal for bulk pre-filtering before full GET calls.Last-Modified header on every response gives you a change-detection timestamp – compare it against your local cache to skip re-downloading unchanged datasheets, enabling efficient delta-sync pipelines.⚠️ Access to additional fields (BrandOrganizations, Packages, Variants, Reviews) must be enabled by account managers — unlike JSON where everything is available out of the box.
⚠️ Authentication requires IP whitelisting + Basic Auth for Full Icecat (dynamic api_token also supported but does not work for MetaXML). Plan for this setup overhead in your integration timeline.
icecat_ids (URL-encoded as %2C), letting you batch-fetch many datasheets in one HTTP call without looping.data.icecat.biz/xml_s3/xml_server3.cgi), so if you already have XML integration infrastructure, switching to CSV only requires changing the output parameter.icecat_ids → batch-fetch full datasheets via CSV in multi-product calls.output param: productcsv (full datasheet — specs, descriptions, gallery, multimedia, variants) or richproductcsv (rich media only – multimedia, gallery, descriptions) — choose based on what you actually need to display.⚠️ CSV is considered a legacy format – many assets and controls available in other APIs (partial data, relations limit, reviews, analytics, FeatureLogos, GeneratedPDF) are not supported in CSV – is best for bulk tabular exports or systems that only ingest flat files.
All Icecat APIs use the same identifiers to locate the products:
Language (Locale) short identifier. The explanation could be found in the manual Language Table.
For XML integration, locales taxonomy is provided in LanguageList.xml.gz.
For CSV integration, the Reference file is language.txt.
It’s a unique code assigned by Brands to identify each of their products. Think of it like a serial number for a specific product model.
Product Codes are unique only within a brand; therefore, for a correct request, a Brand name is always required for any API in Icecat.
A product might have many Product Codes, and different distributors often produce different Product Codes for the same product. To help you correct the Product Codes from many distributors and to help you to get the best coverage, we are publishing the available mappings along with the official Product Code.
Product Codes are always upper-case and may contain characters that must be URL-encoded. For instance,
#needs to be replaced with%23. Other examples:@,&,=, etc.
Alternative names: Supplier, Vendor. Name of the brand of the requested product, for example Bosch or Lenovo. We log all Icecat product requests, which gives a product popularity indication, useful for sorting products and analyzing market trends. The brands are sorted by popularity here.
For XML integration, the full information about brands are provided in SupplierList.xml.
For CSV integration, the Reference file is supplier.txt.
GTIN, EAN, or UPC code to identify a product. Further, it is referred to as GTIN because it’s a more general term that means a unique numeric product identifier. GTIN is unique within all Icecat repository, and hence you may search for the product with GTIN only.
A product might have more than one GTIN.
💡A single GTIN might be assigned to different products because Brands may reuse them. Only one product can have a certain GTIN at once.
It is important to note that a GTIN may change its association with products over time. This can happen due to directives from brands or actions taken by brand users in Icecat Cloud. To ensure accuracy and avoid any confusion, we recommend performing an extra check by verifying the combination of the GTIN and the Icecat product ID. This will help confirm that the GTIN has not shifted from one product to another.
Icecat product ID, unique within the Icecat Repository, and a product can only have one ID.
Useful for testing, however, we do not recommend using it as a primary key because the GTIN and Product Code may sometimes be transferred to a different icecat_id.
For example, when one brand acquires another one, it may transfer the products.
By default, we only provide access to GTINs, that are verified by our partners, so we can guarantee that the product is distributed in the country. However, if you wish to have access to all GTINs in Icecat, including unverified, please contact us.
Also a part of EU regulations, packages are special type of product relations that provides unique codes for packaging under.
Are you interested in adding professional and real user reviews to your webshop? Then check out our review manual.
For our partners we provide access to exclusive multimedia and product data. Access to extertnal taxonomies needs to be activated by your account manager.
If you are searching for a way to connect your app and integrate Icecat product content, check the most popular Icecat Add-ons.
Sprint 100 marks a milestone — our 100th sprint of Icecat Studio development. This release…
EcoRefurb, Portugal's leading refurbished technology brand, has joined Open Icecat, making its product content available…
The line between how people shop at home and how they buy at work has…
The competition in AI infrastructure is becoming increasingly intense, and AMD has taken another step…
The European Union has imposed a record €550 million ($629 million) fine on Alibaba-owned AliExpress,…
The Experience Assistant is an AI assistant built directly into Icecat PIM, designed to answer…
View Comments
can students register with icecat
Yes, they can.
Does IceCat data contain GTDIN (ITF-14)?
GTIN you mean. Yes indeed. We support the whole range of common GTIN standards.
Is there a certain time when the Daily Index File of Open Icecat is acutalized?
Dear Philipp
There is no specific time for this action. We would like to suggest to make HEAD requests to the file, updated timestamp will be returned in response
Can't be pinpointed exactly, given multiple daily batch processes. You could first query the file creation date before pulling the index.
Salut ,
Mon lecteur affiche un message d'erreur : 5-PROTEC et s'arrête .comment puisse résoudre ce problème ?
Hello, a country manager will contact you soon. Regards, Wouter
We need a price for your services please
Hi George, thanks for your comment. A country manager will contact you soon. Regards, Wouter
about the daily file: suppose we missed for whatever reasons some of the daily files. Then we do not know which products should be updated or not.
Is there a way to download historical daily files?
Hi Edwin, thanks for your response. A country manager will contact you soon. Regards, Wouter
Hi Edwin, a general advice is to use the full index at regular intervals for a full sync to ensure you didn't miss certain updates in addition to using the daily indexes for efficiency.
Hello,
We’re integrating Icecat and want to run a one-time full import, but the API process takes too long.
Is there a faster way to get the full database?
Also, can we get a full list of product categories to structure our API requests?
Thank you!
Dear Yaryna
You need to use index file to match your portfolio against the Icecat data base and download the products via XML or JSON calls. Of course it is possible to get the full list of the Icecat category tree.
Icecat country manager for Switzerland, Lana Buschhoff will contact you to explain the details.
Kind regards
Vazha Abramishvili
Hi,
Today we have talked to Koen Gerlach, and are into looking whether we can implement IceCat in our product information database. We have the same concerns as others mentioned above. Once we have processed our initial dataset we can receive/pull daily indexes, but wonder what to do whenever we miss one or more daily indexes. As you suggested, reprocessing a full dataset is one option. But how nice would it be if we could extend the query (as you explained on this page) with a last change date; include all records that were changed on or after that date.
Kind regards,
Guus
Agree, that would be neat. On itself, you can also use the timestamps of product datasheets in the full index, to limit oneself to updated datasheets. Use the attribute Updated="20250919180851" for filtering.