Welcome to the Kelkoo Group Customer Service



Common questions

Code sample usage

Category Search service

Product Search service

Catalog Search service

Flight/Hotel Search service

Common questions

What is a Web Service?

Web Services are a way for application developers to access content and services to build new applications. For example, you can combine our data and services with those you create in a desktop application or those offered by other Web sites. With Kelkoo Shopping Web Services, more of the power of the Kelkoo network is in your hands.

What is XML?

Extensible Markup Language (XML) is a W3C-recommended general-purpose markup language that supports a wide variety of applications.

Code sample usage

Why do i have to sign requests?

The signing process checks that you are authorized to use the web services. To sign a URL you will use your client Id and secret key.

Why cant I use JavaScript to sign requests?

By using JavaScript, your secret key will be viewable by everyone just by displaying your page source. This is why it must not be used.

When calling urlSigner function, what are the parameters to set ?

  • go to https://www.kelkoogroup.com/kelkoo-developer-network/shopping-services/request-builder/
  • do a search
  • the url is displayed in “Request URL” and you can find the corresponding parameters.

Below is the illustration of the productSearch url parameters. Be careful, the values below are an example, they could be changed when a new feature is added, please refer to the values in the “Request URL” part in request builder


UrlSigner($urlDomain, $urlPath, $partner, $key)

How long lasts ECS hash code (timestamp) ?

2 hours. Ie. the url generated in the Request Build has the validity of 2 hours.

I get error message “The signature or timestamp you provided is wrong”, What’s wrong

  • If the Tracking Id and Affiliate key work fine, make sure you do not add a space before or after the tracking and the key.
  • The Region value is not the destination of a hotel ,flight search, it’s the country value where the Tracking Id (partner) is created

How to get the completed category tree ?

Do a Category Search with Category=601 (601 is the mother category Id of all the category )

How many offers can I retrive using ProductSearch V3 service?

500, even if the totalResultsAvailable in the response is more thant 500. This is not a service allowing user to retrive a large amount of offers

Refinements :

The refinements are available and usable for Productsearch and CatalogSearch API

How use refinements

  • call productsearch or catalogsearch API with parameter show_refinements=1

query example : http://uk.shoppingapis.kelkoo.com/V3/productSearch?category=137901&sort=default_ranking&start=1&results=20&show_products=0&show_subcategories=0&show_refinements=1&aid=XXXXXX&timestamp=1418056984&hash=8nDxyL0Bh1h_Cs6WRGLksw–

you should get in xml response something like :

   <Refinement name="type" label="Type" totalvalues="6" type="ValueList">
         <Title>Love Seats</Title>
  • Send the same query than before and pass the parameter : refinement=myrefinementvalue

example for the refinement value Love_Seats  : http://uk.shoppingapis.kelkoo.com/V3/productSearch?category=137901&refinement=Love_Seats&sort=default_ranking&start=1&results=20&show_products=0&show_subcategories=0&show_refinements=1&aid=XXXXX&timestamp=1418056914&hash=ihr_OJ0FYfxznKfQChQTEQ–

Now you should get the products corresponding to your refined query.

Can i use several refinements ?

yes !, several values can be passed by using the following syntax: &refinement=“value1,value2,value3″

 Refinement exceptions

– NarrowsBy filter : you have to pass the category id value in the parameter category


– Merchant filter : you have to pass the merchant id value in the parameter merchantId

query example : http://uk.shoppingapis.kelkoo.com/V3/productSearch?category=108101&merchantId=13740713&sort=default_ranking&start=1&results=20&show_products=1&show_subcategories=1&show_refinements=1&aid=XXXXXX&timestamp=1418117522&hash=ghwTTbelYvC32Oft8Eky8g–

How to change the image size of the offer ?

    • Take the image url from the ECS WS respponse

image url

  • change the size you need in the url (Ex. replace 90/90 by 120/120 )
      • Before modification of image size url:

    image url before size modification

      • After modification of image size in url:

    image url

What’s the offer displaying order when they’re returned ?

This is a combination of several parameters (relevancy,popularity and CPC) permitting to rank the results (offers)

Can I receive secure image URLs (HTTPS format)?

If you’re an eCS user you can control this yourself by adding the following parameter to your eCS query: &imagesOverSsl=1
The default value is “0” which returns image URLs over http.

Should I have a cache for images?

No it’s not needed, we already cache them in our own Cloud.

If it’s absolutely mandatory in your process, you should cache the images according to the url path and the following url parameters whitelist: country, merchantId, categoryId, width, height, image and sign.

Why can’t I get results when doing a “Catalog Search” for the category “Fashion & Lingerie” (107301) ?

Basically , there’re 2 kinds of categories in kelkoo : PDB Category and 2ndF category .To get specific offers (products) , you need to run different query according to the category .

Only a PDB Category can return the results using Catalog Search .

To distinguish these 2 categories , you can use “Category Search” . The table below shows which search servcie to use according to the attribut value .

Attribut valueCategorySearch service to use

catalogs=”true” PDB category Catalog Search
refinements=”true” 2ndF category Product Search
catalogs=”false” & refinements=”false” Mother Category Product Search

So for the category “Fashion & Lingerie” (107301), you should run Product Search and specify Query=”Fashion & Lingerie”, Catetory=”107301″ to get the offers.

How to get totalResultsAvailable in Flight/Hotel Search ?

    • Do a search , in the response you have the value searchId


    • Do the same search , enter thesearchId got from step1 , then you’ll have totalResultsAvailable


Why I can’t get the totalResultsAvailable in the first search ?

The principle of Live offers retrieval avoids to know in advance the full number of offers. It has not been available in the first search yet.