<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-21540572</id><updated>2011-07-14T16:30:08.361-05:00</updated><title type='text'>official kayak.com technoblog</title><subtitle type='html'>The members of the kayak.com engineering team write things that might be interesting to other software folks.

We're also fishing for ideas on how to do things better. So help us out!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21540572.post-7610692070507048399</id><published>2007-03-02T14:40:00.000-05:00</published><updated>2007-03-02T14:41:32.227-05:00</updated><title type='text'>Blog movage</title><content type='html'>The techno blog has officially moved to the new &lt;a href="http://wp.kayak.com/us/"&gt;general-purpose kayak blog&lt;/a&gt;. Please redirect your feed readers there for all future technical posts.&lt;br /&gt;&lt;br /&gt;Thanks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-7610692070507048399?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/7610692070507048399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=7610692070507048399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/7610692070507048399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/7610692070507048399'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2007/03/blog-movage.html' title='Blog movage'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-115955296347049248</id><published>2006-09-29T12:56:00.000-05:00</published><updated>2006-09-29T17:04:49.803-05:00</updated><title type='text'>Perl and Java examples of Kayak search API</title><content type='html'>These samples are a bit old, but are a good starting point if you want to try implementing the Kayak API in Perl or Java. If you have a better/cleaner example you would like to share, let us know. If it's better than our hacked-together examples, I'll send you a Kayak t-shirt. Yeah, we spare no expense, baby!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kayak.com/labs/api/search/hsearchperl.txt"&gt;Perl example&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kayak.com/labs/api/search/ksearchJavaSample.txt"&gt;Java example&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-115955296347049248?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/115955296347049248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=115955296347049248' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/115955296347049248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/115955296347049248'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/09/perl-and-java-examples-of-kayak-search.html' title='Perl and Java examples of Kayak search API'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-115893632182549607</id><published>2006-09-22T09:43:00.000-05:00</published><updated>2006-09-22T15:20:55.613-05:00</updated><title type='text'>Search API problems</title><content type='html'>Just a quick note to let you know that we know that the search API is having some problems. We're working on tracking them down. So now we know that you know that we know. We'll let you know when it's fixed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update:&lt;/span&gt; we've found and fixed the problem; it will be patched first thing tomorrow, along with some other updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-115893632182549607?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/115893632182549607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=115893632182549607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/115893632182549607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/115893632182549607'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/09/search-api-problems.html' title='Search API problems'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-115461068440696854</id><published>2006-08-03T08:07:00.000-05:00</published><updated>2006-08-03T08:25:54.620-05:00</updated><title type='text'>KayakMobile ... Search API app</title><content type='html'>&lt;a href="http://www.kayakmobile.com"&gt;KayakMobile&lt;/a&gt; made its debut today.  It is a Java servlet implementation using velocity to render pages.&lt;br /&gt;&lt;br /&gt;It was a fun development effort. The Air and Hotel functionality is built using only the public &lt;a href="http://kayak.com/labs/api/search/"&gt;Search API&lt;/a&gt; .. it might have been slightly easier to use internal APIs, but doing it this way forced us to push along development of the API as well.&lt;br /&gt;&lt;br /&gt;The initial target is people in immediate need of travel arrangements ... stuck somewhere and need a flight or hotel &lt;span style="font-weight:bold;"&gt;now&lt;/span&gt;.  With this in mind, we tried to keep the UI uncluttered and made assupmtions such as one-way flights, and single-night hotel requests.&lt;br /&gt;&lt;br /&gt;With &lt;a href="http://www.kayakmobile.com"&gt;KayakMobile&lt;/a&gt; we introduce a rudimentary Restaurant search that's not in the core &lt;a href="http://www.kayak.com"&gt;Kayak.com&lt;/a&gt; service.&lt;br /&gt;&lt;br /&gt;Take it for a spin and let us know your thoughts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-115461068440696854?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/115461068440696854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=115461068440696854' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/115461068440696854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/115461068440696854'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/08/kayakmobile-search-api-app.html' title='KayakMobile ... Search API app'/><author><name>Giza, search</name><uri>http://www.blogger.com/profile/06048973403303120101</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-115088787622351852</id><published>2006-06-21T06:00:00.000-05:00</published><updated>2006-06-21T09:17:08.923-05:00</updated><title type='text'>Where is the Kayak WSDL?</title><content type='html'>Sometimes people ask why the kayak search API is not a true Web Services implementation.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.artima.com/weblogs/index.jsp?blogger=beckel"&gt;Bruce Ecke&lt;/a&gt;&lt;a href="http://www.artima.com/weblogs/index.jsp?blogger=beckel"&gt;l&lt;/a&gt; just posted an &lt;a href="http://www.artima.com/weblogs/viewpost.jsp?thread=165293"&gt;interesting article&lt;/a&gt; that pretty much covers it for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-115088787622351852?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/115088787622351852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=115088787622351852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/115088787622351852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/115088787622351852'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/06/where-is-kayak-wsdl.html' title='Where is the Kayak WSDL?'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-114927639923934051</id><published>2006-06-02T14:19:00.000-05:00</published><updated>2006-06-02T14:35:29.526-05:00</updated><title type='text'>Search API changes coming next week!</title><content type='html'>We've made a pretty major change to the search API this week, slated for release next Thursday. Actually, it's not so much a change to the API as it is a change to kayak.com itself, and the API is just a victim of this.&lt;br /&gt;&lt;br /&gt;The short story is that in order to expand our scale by 50-100% on our front-end processors, we now "lock" interim search results to a single front-end processors. These units are called "sparkles," for reasons that are too silly to explain. This is bad news for you, the developer, in the short term because you will have to change your code; but in the long run it's good, because we'll be able to handle much bigger volume than the 300,000 searches/day we handle right now. (Without buying zillions more servers.)&lt;br /&gt;&lt;br /&gt;So, before you would make http calls like this:&lt;br /&gt;&lt;br /&gt;/k/ident/apisession...&lt;br /&gt;/s/apisearch...&lt;br /&gt;/s/apibasic/flight...&lt;br /&gt;/s/apibasic/flight...&lt;br /&gt;/s/apibasic/flight...&lt;br /&gt;etc.&lt;br /&gt;&lt;br /&gt;But after thursday, it will be:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/k/ident/apisession...&lt;br /&gt;/s/apisearch...&lt;br /&gt;/s/apibasic/flight...&lt;br /&gt;     (this returns "-sparkle27" in the "searchinstance" xml tag)&lt;br /&gt;/s-sparkle27/apibasic/flight...&lt;br /&gt;/s-sparkle27/apibasic/flight...&lt;br /&gt;/s-sparkle27/apibasic/flight...&lt;br /&gt;etc.&lt;br /&gt;&lt;br /&gt;Clear as mud? Good.&lt;br /&gt;&lt;br /&gt;If you have any questions, drop me an email.  billo at kayak daught com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-114927639923934051?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/114927639923934051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=114927639923934051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114927639923934051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114927639923934051'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/06/search-api-changes-coming-next-week.html' title='Search API changes coming next week!'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-114744390077600469</id><published>2006-05-12T09:17:00.000-05:00</published><updated>2006-05-12T09:26:57.590-05:00</updated><title type='text'>Search API common problems</title><content type='html'>We're suddenly picking up a lot more people using the search API. There are a few problems that people run into, and they are our fault. Sorry.&lt;br /&gt;&lt;br /&gt;The first problem is that there is a parameter missing from the doc: on the search results calls, the "apimode=1" parameter is required. If you don't pass it, you will get HTML and not XML! This will be fixed on the next site update we do. Just send apimode=1 on everything, it can't hurt :-)&lt;br /&gt;&lt;br /&gt;The next problem is that sometimes the quota allocation breaks, and your quota is set to zero.  If you are only able to do 1 or 2 searches and then you get "over quota" errors, please use the feedback link on kayak.com to say this:&lt;br /&gt;&lt;br /&gt;"my quota is broken on the search API.  my email address for the developer is &lt;whatever&gt;*insert email here*. Tell billo to get off his fat ass and fix my quota!"&lt;br /&gt;&lt;br /&gt;(you may substitute "chiseled, Brad Pitt-like" for "fat" if you want to score points)&lt;br /&gt;&lt;br /&gt;Finally there is some confusion over the 1000/day default quota. It's really 1000 searches/day, distributed over 24 hours, bucketed by whole hour.  So you have 41 searches per hour when the quota is 1000/day.&lt;/whatever&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-114744390077600469?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/114744390077600469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=114744390077600469' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114744390077600469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114744390077600469'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/05/search-api-common-problems.html' title='Search API common problems'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-114486472643171060</id><published>2006-04-12T10:57:00.000-05:00</published><updated>2006-04-12T13:29:47.046-05:00</updated><title type='text'>Kayak User Interface</title><content type='html'>When we created the first versions of Kayak (was it really two years ago?) we wanted to push the envelope a little bit on UI. Our UI lead, Jeff, previously was in charge of Intuit's new web UI toolkit, so we had some experience on doing "rich internet app" stuff.&lt;br /&gt;&lt;br /&gt;The very first version of Kayak (private access only on Cinco de Mayo 2004) was developed in Macromedia Flex. That tool helped us think more openly about different UI paradigms, but we decided to scrap it since at the time, the performance on non-modern PCs was lame. (And given that Kayak is just a search site, the "handoff" between Kayak and the chosen airline or hotel site was jarring given the different UI idioms.)&lt;br /&gt;&lt;br /&gt;We wanted both a UI which was stripped down and simple (craigslist anyone?) but which also was fast. A key part of being fast was doing the xml http thing, so user refinements would not cause annoying page reloads.&lt;br /&gt;&lt;br /&gt;Some advisors disliked us trying to innovate on UI idioms. For example, most users are still not completely comfortable with scrollbars, so why try to confuse them with even more idioms.&lt;br /&gt;&lt;br /&gt;The widget that has best become part of the Kayak "identity" is our simple slider used to refine the display of search results. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/719/2180/1600/sliders.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/719/2180/400/sliders.jpg" alt="" border="0" /&gt;&lt;/a&gt;Even though other travel sites have now tried to also have better refinement tools, none yet has the granularity of a true slider. This is one of very few examples where we did lean towards power and uniqueness and brand even over ease of learning for the mass market.&lt;br /&gt;&lt;br /&gt;But in addition to decisions about lean power, we also try to put a little bit of fun into our website. A good example of this is "flippy", the widget we use to flip through the list of sites we are actively searching. This also has now become part of the Kayak identity, and we've gotten great feedback from users who enjoy flippy. We just &lt;a href="http://www.youtube.com/watch?v=CW2L5ydbmbI"&gt;uploaded to youtube&lt;/a&gt; a little video to show you more about the creation of flippy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-114486472643171060?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/114486472643171060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=114486472643171060' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114486472643171060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114486472643171060'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/04/kayak-user-interface.html' title='Kayak User Interface'/><author><name>pme, cto</name><uri>http://www.blogger.com/profile/03690484731189264723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://corp.kayak.com/team/photos/thumb/paul.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-114263618288090784</id><published>2006-03-17T17:51:00.000-05:00</published><updated>2006-03-17T17:56:22.916-05:00</updated><title type='text'>Opera Browser</title><content type='html'>We've had some trouble with the Opera browser recently. It used to work on kayak.com, and now it's broken. There is good news for you Opera fans out there: our pals at Opera gave us some Javascript to fix the AJAX-ing of results.  That fix  is currently planned to go out on April 13. It would be sooner than that, but some other stuff that is happening makes it troublesome. You really don't want to know the details.&lt;br /&gt;&lt;br /&gt;In the meantime, here are two workarounds for Opera:&lt;br /&gt;&lt;br /&gt;1. when you are doing a flight search (or hotel search), wait for the little green bar to progress all the way across. Then hit refresh.  Your flights will appear!&lt;br /&gt;&lt;br /&gt;2. Try basic mode kayak. It's kind of, um, basic, but it works with almost all browsers. Even really old ones. No AJAXy goodness, of course. Mr. Miyagi says: &lt;a href="http://www.kayak.com/s/basic/on"&gt;basic on&lt;/a&gt;, &lt;a href="http://www.kayak.com/s/basic/off"&gt;basic off&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-114263618288090784?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/114263618288090784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=114263618288090784' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114263618288090784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114263618288090784'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/03/opera-browser.html' title='Opera Browser'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-114244614650003390</id><published>2006-03-15T13:04:00.000-05:00</published><updated>2006-03-15T13:09:06.510-05:00</updated><title type='text'>Better Travel Searching for All</title><content type='html'>Kayak.com is one of a number of new travel "meta-search" web sites. As a group, we are tiny in comparison to the large online travel agencies, and we face many of the same challenges.&lt;br /&gt;&lt;br /&gt;One of these challenges is a smooth hand-off from our search results to booking sites, especially airline web sites. We are proposing an interface that airline web sites could implement, and all travel search engines (including our competitors) could use, that would make this hand-off a lot better for the user.&lt;br /&gt;&lt;br /&gt;Read about it at &lt;a href="http://flyapi.org/"&gt;flyapi.org&lt;/a&gt;. We're interested in comments from other travel search sites and from travel suppliers, such as airlines and travel agencies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-114244614650003390?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/114244614650003390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=114244614650003390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114244614650003390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114244614650003390'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/03/better-travel-searching-for-all.html' title='Better Travel Searching for All'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-114190997906520592</id><published>2006-03-09T08:10:00.000-05:00</published><updated>2006-03-09T08:12:59.093-05:00</updated><title type='text'>New Search API is live</title><content type='html'>In today's kayak.com patch, we updated the search API to include flight segment data, which includes cabin, equipment type, wheels up/wheels down on all segments of a trip, along with some more stuff. This was based on feedback from some early users of the API (thanks Bryan and John at Stanford!).&lt;br /&gt;&lt;br /&gt;Also, the documentation is now correct regarding  the _sid_ parameter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-114190997906520592?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/114190997906520592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=114190997906520592' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114190997906520592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114190997906520592'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/03/new-search-api-is-live.html' title='New Search API is live'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-114174818946339440</id><published>2006-03-07T11:12:00.000-05:00</published><updated>2006-03-07T11:17:51.186-05:00</updated><title type='text'>Kayak Search API Update</title><content type='html'>The flight and hotel search APIs have been out for about a week and a half. We had a few glitches but they are now fixed.  We've received feedback from several users that are trying it out.&lt;br /&gt;&lt;br /&gt;One particular issue that came up several times was a missing parameter in the API specification: you need to include the "_sid_" parameter in EVERY request once you&lt;br /&gt;receive the session ID from the initial get session request.  A fix to the API doc is in the pipeline, and should go out on our next patch this week.&lt;br /&gt;&lt;br /&gt;One user reported a problem with the quota system (1000 searches/day by default).  If you are experiencing any quota problems, please let us know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-114174818946339440?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/114174818946339440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=114174818946339440' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114174818946339440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/114174818946339440'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/03/kayak-search-api-update.html' title='Kayak Search API Update'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-113952434382142768</id><published>2006-02-09T17:28:00.000-05:00</published><updated>2006-03-01T08:18:09.373-05:00</updated><title type='text'>Flight and Search API beta</title><content type='html'>We're looking for a few good programmers. We're about to make our HTTP/XML API available for flight and hotel searching. This will allow clever developers to make mashups of kayak.com search results and who knows what else.&lt;br /&gt;&lt;br /&gt;If you are interested in playing around with the API, we'd like to &lt;span style="text-decoration: line-through;"&gt;experiment on you&lt;/span&gt; get your insightful feedback.&lt;br /&gt;&lt;br /&gt;In a nutshell, you'll be able to do an HTTP GET or POST, and get an XML document with flights or hotels, and links you can resolve to get to the booking pages on hotel or airline sites.&lt;br /&gt;&lt;br /&gt;Send an email to billo at kayak daught com if you'd like to be &lt;span style="text-decoration: line-through;"&gt;a guinea pig&lt;/span&gt; an early adopter.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; Of course we've run into a few problems releasing the API. We're releasing some fixes this morning. So if you are trying to use the API, and running into trouble, contact us and we'll help you figure it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-113952434382142768?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/113952434382142768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=113952434382142768' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/113952434382142768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/113952434382142768'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/02/flight-and-search-api-beta.html' title='Flight and Search API beta'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-113828643584326897</id><published>2006-01-26T09:39:00.000-05:00</published><updated>2006-01-26T09:40:35.843-05:00</updated><title type='text'>5 minute summary</title><content type='html'>&lt;a href="http://corp.kayak.com/tech.html"&gt;This article&lt;/a&gt; on our "corporate" page summarizes the technology we use to build and run  kayak.com. Feel free to comment on it here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-113828643584326897?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/113828643584326897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=113828643584326897' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/113828643584326897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/113828643584326897'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/01/5-minute-summary.html' title='5 minute summary'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21540572.post-113828415875322958</id><published>2006-01-26T08:59:00.000-05:00</published><updated>2006-01-26T09:02:38.760-05:00</updated><title type='text'>Introduction</title><content type='html'>This is the official kayak.com technical blog. Here we (the various members of the kayak programming team) post our thoughts, ideas, questions on technical issues.&lt;br /&gt;&lt;br /&gt;The information on this site will likely only be of interest to other programmers or technically-oriented software folks. We hope you find it useful and/or interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21540572-113828415875322958?l=kayaklabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kayaklabs.blogspot.com/feeds/113828415875322958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21540572&amp;postID=113828415875322958' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/113828415875322958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21540572/posts/default/113828415875322958'/><link rel='alternate' type='text/html' href='http://kayaklabs.blogspot.com/2006/01/introduction.html' title='Introduction'/><author><name>billo</name><uri>http://www.blogger.com/profile/02487147119591476615</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://egopoly.com/billo2006.jpg'/></author><thr:total>1</thr:total></entry></feed>
