Part of the Blippar Group

Blog: Development news

Some small changes to the Layar API in preparation for Layar Stream

Dirk Groten May 14, 2010

Today we’ve updated our API in preparation for Layar Stream. The update is for the GetPointsOfInterest request/response and was documented on our wiki earlier today. In this post, I’ll explain in a bit more detail the reasoning behind the changes and how you can use them.

1. Switch off indexing for Layar Stream on POI level

The new parameter doNotIndex can be added to your response for each POI to indicate to the Layar Stream engine that it should not be indexed. When our engine sees this parameter set for a POI, it will just ignore the POI.

You should use this if there are specific POIs in your layer that you don’t want to have indexed. Remember that you can switch off indexing for your layer all together in the Inventory Management tab under your account. Examples where you might want to avoid indexing of a POI are:

  • POIs in a gaming layer that contain clues that only should show up under certain circumstances, e.g when a user unlocked it

  • POIs that are dynamically placed near a user because they contain actions for the layer, like a POI for placing an easter egg. The actual easter eggs would be indexed, not the ‘helper’ POIs.

  • POIs that form part of a greater chain of POIs that don’t make sense on their own. Large geographical 3D objects in certain layers are formed by multiple POIs, like the Berlin Wall layer.

  • POIs that can only be seen by the user when he logged in. Note that for layers that have the authentication required set to true, the POIs are not indexed anyway.

2. Identify the POI that triggers a getPOI request and mark it in the response

The new parameter requestedPoiId in the request, together with the new parameter inFocus in the response permit the layer developer to make sure the POI the user is actually interested in remains in focus when the layer is opened in the AR view.

When a user sees a POI in Layar Stream, selects it and decides to open the actual layer which generated the POI, he would certainly like to still see the POI once the AR view is rendered. Whilst there is no guarantee that the POI is still there, I’d like to urge you to try to include the requested POI in the response, even if the current request parameters wouldn’t return the POI in the first place.

So if you see a ‘requestedPoiId’ in the request, make an extra request to your database to include this particular POI in the response, and mark it in your response with ‘inFocus’ set to true.

3. Extra parameters identifying the client

We’ve added two parameters that will help you identifying the client that’s making the request:

  • User-Agent: We now include the User-Agent string in the HTTP headers, which will tell you what Layar version on which device the user is actually using. The string has 3 parts:

    • “Layar/x.y” tells you which version of the Layar app the client is running;

    • “<deviceOS>/x.y” tells you what OS and which version of it is running on the device;

    • “(<brand> <model>) tells you the actual brand and model of the device.

    Now, <brand> and <model> tend to be pretty messy on a lot of devices, so don’t expect to recognize them all. We’re just passing what the manufacturer states here. Don’t blame the messenger…. ;-)

    Also, we only introduced this string in more recent versions of our apps, so you still won’t always see it.

  • version: This is the API version that the client is using. All versions of our app pass this, but we were a bit sloppy in the past, so we were passing app version rather than API version. You’ll see strings like “ip2.1” (iPhone 2.1) and “2.0.2”. In the latest versions, all apps pass the actual API version, so you’ll see “3.0”, “3.1” and “3.5” both for Android and iPhone apps.

Make sure you understand the new API params and start using them! Let us know if you have any questions.

>> Visit the wiki page to see the technical details of these changes.


Email this article

Developers announcement: All publishers can publish paid layers now

maurice groenhart May 14, 2010

Today we have opened up the Layar Payment Platform to all publishers. From now on all publishers are able to create priced Augmented Reality Experiences. The Layar Payment Platform was launched two weeks ago and facilitates payments between the end-user and the publisher, so the publisher can focus on his core activity: creating valuable Aumented Reality experiences.

So far, paid layers can only be purchased by residents of the following countries: United States, United Kingdom, Canada and Australia. More countries, currencies, payment methods will be added in the near future.

>> Visit our wiki to learn more about publishing your content as a paid layer.


Email this article

Developers announcement: Index your layer for Layar Stream

maurice groenhart May 11, 2010

Last week we announced Layar Stream, revealing immediately what Augmented Reality (AR) content is available around you.

Layar Stream generates a stream out of the 1.2 million augmented objects served daily by Layar. The ranking is based on a proprietary algorithm using contextual elements like location, usage and popularity of content in all published layers. Layar Stream holds information about the type of available content and whether it contains 3D objects, images, video or audio. Users can optimize their stream by filtering on keywords, categories and distance.

The implementation of Layar Stream will have a huge impact on the discoverability and re-usage of your layer(s). Layar Stream ensures a higher visibility within our browser and drives traffic to your augmented reality content.

>> Index your layer right now!

Your layer(s) can be indexed on three levels.

1. Allow Layar to cache all POIs of this layer*.(Recommended)
The POIs of this layer will be visible for end-users in Layar Stream
2. Allow Layar to cache only the title and position of the POIs of this layer.
Only the title and postions of the POIs of this layer will be visible for end-users in Layar Stream
3. Don’t allow Layar to cache the POIs of this layer.
The POIs of this layer won’t be visible for end-users in Layar Stream

Next to these options you have the possibility to add an expiration date, if the layer expires after a certain date (e.g. after the World Championship Football) and the live time of the POI within your layer so you can indicate if your layer is static, dynamic or higly dynamic. How to index and optimize your layer for Layar Stream can be found here.

You can also opt-out on a POI level. This is for example useful in a game, where you don’t want your clues to be indexed and would include only the starting point of the game in Layar Stream. For these cases we added “doNotIndex” respons to our GetPOI API. Check it here.

Visit our wiki to learn more about:


Email this article

Developers: Update your layer icon now

maurice groenhart March 16, 2010

Probably you already noticed but we have made some minor changes in the way we display the icon of a layer within our client. We would like to ask if you can adjust your icons according these guidelines so we can deliver a consistent and nice way of showing your icons within our app and on our website.


  • 64 x 64 px square image (preferably no border effects or round corners)

  • A mask with 4px radius rounded corners will be applied automatically, do not apply effects to your artwork.

Example icon:Rendered icon
in application:


Email this article

Major updates: Support of local language

maurice groenhart February 11, 2010

Last weeks we worked hard to improve our client and we have some updates in place.

We improved the start-up time of our application and the lighting of 3D objects within Layar.

The biggest update from our side is the support of local languages. We now support the following languages: English, German, Greek, Spanish, French, Italian, Japanese, Korean, Dutch, Russian and Turkish

Do you want your language to be supported by our client?
We would like to support as much languages as possible in order to serve local layer initiatives all over the world. The translation of our client could be a added value for you as a developer and your clients locally.

If your local language is currently not in our list but you would like to help us with the translations please contact us. We have a file in place, which we can send to you. The translation of this file is a small effort but could be a huge value for your market.
>> Request your client in local language

It could occur that we have an error in our translation. If this is the case please report this to us.
>> Report an error

or mail to


Email this article
We request not to sign up and further make payments for Layar services. Please proceed to use Blippbuilder to create AR experiences.
We use cookies to improve our services. Don’t worry, they don’t store personal or sensitive information and you can disable them at any time in your browser settings.