Icecat

How to automate the retrieval of Personal Files (PIF & PCF) using HTTP

If you are a Channel Partner, your Personal Index File (PIF) and Personal Catalog File (PCF) are generated specifically for your catalog. They contain the products from your assortment that have been matched to the Icecat catalog, together with the corresponding product data available in your selected languages.

Many partners still download these files manually from the icecat.biz interface. As a result, someone needs to remember to retrieve them regularly, and the data in your system is only as up to date as the most recent manual download.

This manual explains how to retrieve both files directly over HTTP, allowing your system to download them automatically on a schedule.

What you get

  • Personal Index File (PIF) — an index of your product assortment showing which products were matched to Icecat, along with their Icecat product IDs, GTINs, and links to the corresponding product XML data sheets. You can use the PIF to import product content either through the product XML files or by using the Icecat product IDs and other Icecat endpoints.
  • Personal Catalog File (PCF) — a catalog file containing product content for your matched products, including descriptions, specifications, and media, with a separate file for each language. Please note that PCF does not include all product content available in Icecat.

What you need before you start

  • A product file uploaded to Icecat by URL or FTP, and matched (see Step 1).
  • Daily updates switched on for your account by account manager (see Step 2).
  • An API token from your profile on icecat.biz (see Step 3).

How long it takes: about ten minutes for the first link, then it runs on its own.

Step 1: Upload your product file by URL or FTP

For regular updates to work, this option must be selected:

Automatic updates are only available for files that Icecat can retrieve again from the original source. A file uploaded directly from your computer is treated as a one-time snapshot and cannot be refreshed automatically.

To enable regular updates, provide a URL or FTP location that Icecat can access and that you keep up to date.

Step 2: Request Daily Updates

Once your file has been uploaded and matched, click Request Daily Updates.

⚠️ This button is not available for files uploaded directly from your computer. To enable it, upload your catalog again using a URL or FTP location.

This sends a request to your account manager, who will enable daily updates for your catalog. Once daily updates are enabled, you will also gain access to the two endpoints described below.

You can submit this request once every seven days. If you try again sooner, you will be notified that your request has already been submitted.

💡 After daily updates are enabled, your Personal Index File (PIF) and Personal Catalog File (PCF) are regenerated automatically after each daily product matching run. No manual action is required.

Step 3: Get your API Token

To retrieve them, follow MyIcecat → Access Tokens:

Your API token grants access to your products and Personal Files. Treat it like a password: anyone who has the token can access the same files you can.

Store the token securely in your server configuration. Do not expose it in web pages, emails, or client-side code that runs in a browser. If you suspect that the token has been exposed, replace it in MyIcecat.

Personal Index Endpoint

https://icecat.biz/index.cgi?login_form=user_import_report;api_token=<API_TOKEN>

What to replace in this link

PlaceholderReplace it withExample
<API_TOKEN>The API token you copied in step 32b1a4c6d-9f3e-4a7b-8c2d-5e6f70819a2b

Replace the whole placeholder, angle brackets included. Leave everything else exactly as it is — login_form=user_import_report is a fixed value, not something you fill in.

So the link above becomes:

https://icecat.biz/index.cgi?login_form=user_import_report;api_token=2b1a4c6d-9f3e-4a7b-8c2d-5e6f70819a2b

If your link still contains a < or a > anywhere, it will not work. That is by far the most common mistake.

That is the whole request — the Personal Index File has no language or format options. It is always delivered as CSV, under the file name PIF.csv, and it already covers every language in your subscription: the file has one path(...) column per language.

Columns, in order:

ColumnWhat it holds
prod_idIcecat product ID
supplier_nameBrand
ean_upcGTIN (EAN / UPC) codes
path(<language>)Address of the data-sheet, one column per language in your subscription
timestampWhen the product was last updated
Your product IDYour own identifier, when your uploaded file contained one
error_messageWhy a product could not be matched, when that happened

⚠️ Check the file before you import it. If your Personal Index File is not ready yet, the endpoint still answers with status 200 and returns a CSV that contains only the header row. Treat a file with no data rows as “not ready”, keep your previous copy, and try again later.

Personal Catalog Endpoint

https://icecat.biz/index.cgi?login_form=csv_content;csv_file=/products_csv_lists_new/<IcecatUserID>_<LanguageCode>.<FileFormat>;api_token=<API_TOKEN>

What to replace in this link

PlaceholderReplace it withExample
<IcecatUserID>Your own Icecat User ID — digits only00000
<LanguageCode>The short code of the language you wantINT
<FileFormat>csv or xlsxcsv
<API_TOKEN>The api-token you copied in step 32b1a4c6d-9f3e-4a7b-8c2d-5e6f70819a2b

Replace each whole placeholder, angle brackets included. Everything else stays untouched — login_form=csv_content and the folder /products_csv_lists_new/ are fixed parts of the address, not values you choose. Keep the underscore between the User ID and the language code, and the dot before the format.

Putting those four values in gives you:

https://icecat.biz/index.cgi?login_form=csv_content;csv_file=/products_csv_lists_new/00000_INT.csv;api_token=2b1a4c6d-9f3e-4a7b-8c2d-5e6f70819a2b

If your link still contains a < or a > anywhere, it will not work.

If you would rather not assemble it by hand, use the link builder in the section Build your links — it fills in all four values for you.

Find your IcecatUserID

Download any Personal Catalog File from the site and look at its name. If the file is called 00000_INT.csv, your IcecatUserID is 00000.

Choose the language code

Use the short code of the language, for example INT, EN, DE, FR, NL_BE. Only the languages included in your subscription will return a file. The full list is in the Icecat Locales and Language Code Table.

Choose the format

❗ Use CSV for automation. CSV is what the daily update produces, so a CSV link keeps working on its own. Excel files are only created when you generate them yourself on icecat.biz, and your next daily update replaces the Excel file with a CSV one — after which an Excel link stops returning anything. Excel is for people; CSV is for your system/machines.

Build your links

Fill in your details and copy the two links straight into your own system. Nothing you type here leaves your browser.

Copy it from MyIcecat → Access Tokens. Treat it like a password.

Only the languages included in your subscription will return a file.

File format

Personal Catalog (PCF)
Personal Index (PIF)

These links contain your api-token. Anyone who has them can download everything you can. Never publish them and never put them in code that runs in a browser.

Fetch the files from your system

Both endpoints answer a normal GET, so any HTTP client works. Two things to get right:

Let your client unpack the file. The files are transferred compressed. With curl, add --compressed, otherwise you will save a compressed file under a .csv name:

curl --compressed -o pcf.csv "https://icecat.biz/index.cgi?login_form=csv_content;csv_file=/products_csv_lists_new/00000_INT.csv;api_token=<API_TOKEN>"

Ask whether anything changed, before downloading. Both endpoints answer a HEAD request with Last-Modified and Content-Length and no file body. Compare Last-Modified with the last file you stored and skip the download when it has not moved:

curl -I "https://icecat.biz/index.cgi?login_form=csv_content;csv_file=/products_csv_lists_new/00000_INT.csv;api_token=<API_TOKEN>"

💡 You may write the link with & instead of ; between the parameters if that suits your tooling better — both work, and the parameter names are not case-sensitive. The order of the parameters does not matter either.

How to tell success from failure

The endpoints are older than our current REST APIs and they answer failures with an HTML page, not with a JSON error. Check the response before you import anything:

What you getWhat it meansWhat to do
A CSV or Excel attachmentSuccessImport it
A page saying the address was not found, with < or > still visible in your address barThe placeholders were not replacedRebuild the link with your own values, or use the builder in section Build your links
Status 401 and an HTML pageThe API token is wrong, expired, or does not belong to a Channel Partner accountCopy the token again from MyIcecat → Access Tokens
Status 404 and an HTML pageNo file with that name exists for your accountCheck the User ID, the language code and the extension. If you asked for .xlsx, generate the Excel file on icecat.biz first
Status 200, but the Personal Index File has only its header rowThe file is not ready yetKeep your previous copy and retry later
Status 500Something went wrong on our sideRetry later; if it persists, contact your account manager

Keeping it running

  • Ask for the file once a day, shortly after your daily matching run has finished. Asking more often returns the same file.
  • Send a HEAD request first and download only when Last-Modified has changed.
  • Always import into a staging table first and swap it in once the file passes your own sanity check — an empty or half-written import is worse than yesterday’s data.
  • Keep your API token in server-side configuration and rotate it in MyIcecat if it ever leaves your systems.

Related manuals

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

Partner Galleries in Every Channel and Full Icecat via MCP: Icecat Release Notes 260

Release 260 completes the move to partner-specific product galleries. After Product XML in Release 259,…

15 hours ago

Shopify Launches Canvas for AI-Powered Online Store Design

Shopify has introduced Canvas, a new AI-assisted design workspace that lets merchants build and redesign…

15 hours ago

Mastercard Adds New Trust Layer for AI-Powered Shopping

Mastercard is expanding its Agent Pay program with new trust and intelligence services designed to…

2 days ago

U.S. Court of Appeals Rejects Fair Use Defense for Copyrighted AI Training Data

A U.S. appeals court has ruled that AI startup ROSS Intelligence could not rely on…

3 days ago

FTC Opens Investigation Into OpenAI and Anthropic Over AI Safety

The U.S. Federal Trade Commission has opened an investigation into OpenAI and Anthropic as regulators…

4 days ago

Icecat Studio Sprint 105 Release Notes: Opening Icecat Studio to the Agent Ecosystem

Sprint 105 shipped one of our anticipated milestones yet: the Studio MCP server went live…

4 days ago