Tuesday, 7 July 2009

Tesco.com Grocery API - Important Developer News

Tonight I have written to our 150-strong community of developers who have registered to use the Tesco.com Grocery API. These developers can use this interface to write amazing grocery applications for Tesco.com customers.

Since the email I sent is in the public domain now, I reproduce it here for your information.

The developer access portal for the current version of the Tesco.com Grocery API (Community Technical Preview) is http://www.lansleytech.com/tescoapiweb and the new API portal will be running on the high performance servers of the techfortesco.com site by end of July 2009.


Dear Tesco.com API Developer

The Tesco.com Grocery API has been 'on air' since just before Christmas 2008 and your feedback has been outstanding. So over the next few weeks you will start to see a major upgrade to the API taking place which will:

1) Take on-board your feedback,
2) Offer new functionality and interfaces,
3) Release some constraints imposed by the current set of terms and conditions, and
4) Starting now - completely release the 'count' limits imposed on the current service.

The API is currently being re-developed to take on the functionality of our new forthcoming 'Martini' grocery platform which offers a powerful step-change in what we can bring to the customers in a great new grocery application.

The current API will continue to function but the new service will run alongside it. As 'Martini' rolls out then the old API will start being closed down - probably around Sept 2009. I'll give precise dates of when this happen as soon as I have them.

In your feedback:

You wanted: To use the API for applications you wish to release to customers.
We will: Release conditions stopping you from doing this currently. A new set of terms will be published which you will need to agree to before you start to use the new API. You'll be pleasantly surprised about what we will be letting you do! Price comparison? Selling your apps? Getting your users to rely on your apps? Yes yes yes do whatever you like. All we won't let you do is portray Tesco in a bad way politically, nor store private info without customers permission, nor sell insight on to competitors from customers using your applications, nor use Tesco branded images other than those that will be provided to you, nor attempt any form of denial of service. Apart from that you can do what you like using our API.

You wanted: To access customer product favourites.
We will: give you full access to favourites and previous ordered products through the new API. Great if you fancy trying out some 'prediction' ideas.

You wanted: Extended product info (e.g. nutrition, fat content etc).
You will: Have access to all data we can provide through extended calls.

You wanted: To checkout customers so they don't have to checkout through our web site.
We will: Provide limited checkout facilities although this may not be on 'day 1' of the new API. The challenge we have is allowing third parties between us and customers when taking payment. Customers need to trust that your application won't take their card details and store them or act nefariously with this info. We'll be looking at the 'using stored card' facility on our web site going forward but we have to be careful and I hope you understand this. Thoughts on how to improve on this will be gratefully received. We operate within strict Payment Card Industry (PCI) compliance and there is nothing we must do even slightly risk that compliance.

You wanted: A RESTful web service interface.
We will: Aim to provide this on or very soon after Day 1 although it is unlikely to be a 'pure' REST interface because of the need to login and authenticate customers, and offer different product ranges dependent on the Tesco branch from which we deliver to them. If you can accept the need for POST data and/or cookies then REST will be a nice simple way of accessing the API. RESTful purists beware you may feel a degree of dissatisfaction!

You wanted: A simpler and quicker way of accessing categories.
We will: Provide a cached category interface that's fast to download.

You wanted: Vastly speeded-up product searching when including ratings.
We will: Rewrite this ratings facility to be available in a different call to product search (using an array of product objects).

You wanted: Unlimited calling of the API, including full product counts on returned searches rather than any limit.
We will: Release these limits tonight (7 July 2009).

You wanted: To access our customers to get some ideas about what they would like from a Tesco grocery application.
We will: Be providing a Tesco.com Innovation Day called 'T-JAM' to be held in central London on the evening of 5th August 2009. Follow my blog which will soon provide a link for you to register if you fancy joining us.

You wanted: to help us help you make money from your application.
We will: Give you access to our affiliates scheme where customers using your application will make you money. After all, we want to incentivise developers to create best-of-breed applications!

So to summarise: A great new Tesco.com Grocery API is coming which will offer extended facilities and faster performance, enable you to obtain an affiliate income from the customers who use your application, and find out what customers are asking for at our T-JAM event coming soon.

Thanks for reading and I hope to meet you at T-Jam in London on 5th August.

Best regards
Nick Lansley
Head of R&D


  1. Fantastic stuff Nick, can't wait to get my hands on the updated API. It's great your able to get Tesco to see the vision and take a big leap forward. I'm looking forward to meeting everyone at T-JAM.

  2. Great news and welcomed - can't wait to get my hands on the new API.

    I have not received this as an email as of yet even though I am registered...

  3. I too haven't received this by email, so it was nice to see it on your blog in full.

    Unfortunately I don't think I'll be able to make the T-JAM (I'm likely to be in Finland for the whole of August), but I'll be sure to keep an eye on your blog for updates about the new API and I hope there might be some T-JAM content online for those of us that can't attend.

  4. Hmm I can't log on with my credentials, keep getting
    Error 200 - Sorry, but we couldn't sign you in.

    Not very helpful.

  5. It's great that Tesco are doing this, so thanks for your hard work.

    That said, I'm not sure I understand your comments about REST. REST isn't just about URIs, but also using the full capabilities of the HTTP protocol. There's certainly no problem using the POST method; all HTTP methods should be used as appropriate.

    I've signed up to T-JAM, so looking forward to finding out more about the changes you've made.

  6. I was massively disappointed when attempting to use the API. There are no non Microsoft language bindings.

    As for the argument about authentication flickr have managed it and so have many other Web 2.0 services.

    Why cant we have access to a straight RESTful API like last.fm or twitter? Why has the development of the API been so closely integrated into Microsoft based technologies?

    Also the API page doesn't even render in Firefox correctly.

  7. Hi Chris

    I take on board your points completely.

    Firstly we used 'Microsoft bindings' - that is, SOAP, because of it is easy to develop and provides an elegant interface representing proper classes without having to go as far as serialization.

    REST is coming very soon, and so will a new developers portal that renders fine in all recent browsers.


  8. Hi Nick

    Love the API.
    Few questions:
    I was looking at Paul's blog (http://www.ifc0nfig.com/tesco-api/) and on his Example JS client he is receiving the order ID of the product however when I do it I am not getting this value.
    Also I am noticing that certain products are not in the database (things like tinned chickpeas) is there a reason for this?



As this blog grows in readership - and because it carries the Tesco brand - I have had to become more careful about the sort of comments that are acceptable. The good news is that I'm a champion of free speech so please be as praising or as critical as you wish! The only comments I DON'T allow through are:

1. Comments which criticise an individual other than myself, or are critical of an organisation other than Tesco. This is simply because they cannot defend themselves so is unfair and possibly libellous. Comments about some aspect of Tesco being better/worse than another equivalent organisation are allowed as long as you start by saying "in my personal opinion.." or "I think that...". ... followed by a "...because.." and some reasoned argument.

2. Comments which are totally unrelated to the context of the original article. If I have written about a mobile app and you start complaining about the price of potatoes then your comment isn't going stay for long!

3. Advertising / web links / spam.

4. Insulting / obscene messages.

Ok, rules done - now it's your go: