Implemented correctly, integrating an API is like getting broadband into your apartment. You set-up a recurring monthly payment, get all wired up, then forget about it. You want constant, high speed data, and you don’t want your service throttled or disrupted. Ever.

 

We like that too. Which is why ala-carte pricing is bad for us and for you. We don’t want you to constantly fret about going over your data limit and have your awesome app or website have a suddenly non-functioning search or results set, simply because you accidentally went over your API call limit.

 

Having booster packs meant that we were implicitly telling our customers: “While you have a monthly plan, you need to purchase insurance so that you don’t have to worry about having your data throttled”.

 

We don’t want that to happen. Our mission is to offer a highly reliable data pipeline for your apps, webstores and analytics. We don’t want to nickel-and-dime you at the expense of your peace of mind.

 

That’s why we’ve started offering complimentary temporary unlimited API calls for customers on the Pro Plan. We want to guarantee our customers who value our data and reliability in integration that we will never cap or throttle their data.

 

That’s also why we’ve decided to cease the Booster pack program.

 

We encourage users who require higher API call quotas to upgrade to the Basic or Pro plan, each of which offer upto 25,000 and 100,000 calls per day respectively.

 

Under the Pro plan, customers may request for a temporary unlimited API quota if they are experiencing high traffic volumes. This service is offered free of charge to customers who are already on this plan.

 

Customers who have previously purchased Booster packs and have unused credits left may contact us for a refund.

 

As the company’s 2048-MVP*, with both the highest single 2048-game score and the most number of 2048s, I am extremely happy to announce our latest and greatest product, a culmination of almost 25920 man-seconds of hard work, sweat and determination – the 2048-as-a-service.

 

Introducing the 2048-as-a-service

 

The 2048-as-a-service allows you to build complex 2048-based apps. It also has a game mode that allows to you play this mind-expanding game on any terminal console.

This service is live today and can be accessed on any device that supports the HTTP protocol.

To play the game on your terminal, just type:

curl -L http://2048.semantics3.com/hi/start 

[For a complete gameplay example and sample output, click here.]

For a full-fledged 2048 game right at your console, paste this sweet perl one-liner on your terminal and hit enter (should run fine on any mac or linux machine):

perl -e 'my $host = "http://2048.semantics3.com/hi/";my $cmd = "curl --silent -L $host"."start";my $output = `$cmd`;my $session_id = $output;$session_id=~s/.*?ID:\s(\w+).*/$1/si;my %keyMap = ( 'w' => 0, 'd' => 1, 's' => 2, 'a' => 3);print STDERR $output,"\n";while(1) { print STDERR "Input (w - up, a - left, d - right, s - down):\n"; my $userInput =<stdin> ; chomp ($userInput); if(defined($keyMap{$userInput})) { $userInput = $keyMap{$userInput}; } else { print STDERR "Invalid move.. w - up, a - left, d - right, s - down\n"; next; } my $cmd = "curl --silent $host"."state/$session_id/move/$userInput"; my $output = `$cmd`; print STDERR "\n$output\n"; if($output=~/Message:/si) { exit(0); }}'
(Link to Github Gist)

To demonstrate the advanced features of our 2048-as-a-service we have also built a complex, front-end app called the 2048 – Startup Growth Edition (MVP).

Here are some screenshots, showcasing the power of 2048-as-a-service:

 

RapGenius

When you average 64% month-on-month growth rate! Just like Rap Genius!

 

WinScreen

When you hit the mythical 2048% growth rate.

 

We believe in the power of the open source community and have open sourced all our 2048-as-a-service code at our Github page.

We will be announcing details on pricing, support, SLAs and partnership opportunities shortly.

 

Market Opportunity

There are two irrefutable facts in the world that any decent Hacker News reader would know – (1) software is eating the world and (2) 2048 is eating people’s productivity.

Using our complex predictive analytical models  (a proprietary way of co-relating Hacker News points with Market Value), we discovered a big market opportunity, or more precisely a $10B opportunity in the 2048-related services market.

 

We noticed two fundamental problems with the currently existing 2048-related services market:

1. The original game didn’t work on any of state-of-the-art text browsers such as lynx or w3m and more critically it didn’t work on IE 6, or IE 5 or IE 4 or IE 3 or IE 2 or IE 1. This was completely unacceptable to us. Basically the original 2048 game was fundamentally broken. I mean, how could Richard Stallman, play this game?!?! We really needed to fix this!

2. There was no easy way for an average dev to build a 2048-inspired clone, eg: a Miley Cyrus twerking 2048 clone.

In short, this was a classic case of schlep blindness.

 

At Semantics3 we believe in two things – making things we personally want and making things people want. 2048-as-a-service started like the former, building a curl-able and hackable API that allowed us to experience this sweet game on a text console and later ended up as the latter, a platform as a service product that would allow anyone to build 2048-clones.

 

Vision Driven

 

Like most great startups, we are vision driven. That’s what keep us moving and motivated and inspired.

Just like our vision for our Product API is to organize the World’s ECommerce Information, our vision for 2048-as-a-service is to be the canvas in which all 2048-clone developers realize their visions. In short we strive to be to 2048 what Heroku is to PaaS-es (without the routing problems)  or what Popcorn Time Netflix is to video streaming. A product you love and believe in.

 

A Revolution in API Design

 tumblr_m7scy0h6kM1rc802yo1_500

Software is eating the world, and APIs are at the forefront.

When we sat down to build 2048-as-a-service, we didn’t want to create yet-another-API. We wanted to create a beautiful experience for both developers and machines, with the guiding vision that making an API call should be as delightful as ordering an ice-cold Corona.

To do that, we realized that we needed to fundamentally rethink everything.

So we sat down and asked ourselves what does it mean to make an API call, what feelings does it bring about.

To answer that, we started out with the basics. We began looking at the OSI 7-layer model, starting at the physical layer and kept progressing to the application layer, culminating with a review of the REST paradigm.

That’s we realized something shocking – the REST was broken.

When the REST was created in 2000, Marc Andreesen still had hair and it was not yet a software-eating-world. In this paradigm, human<->machine interactions are treated very impersonally, almost machine-like.

All human<->human interactions (atleast amongst Semantics3 engineers) always begin with a ‘hi’. We feel that the same should also apply to human<->machine API interactions. That’s when he had a lightbulb moment.

 

The ZEST API Paradigm

 

Our attempt to fix REST is ZEST (our PR department wanted something that rhymed with REST. The ‘Z’ like most cool acronyms, stands for Zen.) We are introducing two fundamental concepts:

1. All API routes should begin with a /hi (eg: curl <API_HOST>/hi/<Insert Whatever Functionality>

2. A new HTTP error code, 800 (which is 2048 in base 16), that returns a ‘Please say hi…’ message if your API query does not have a ‘/hi’ at the beginning.

 

The 2048-as-a-service was built with ZEST principles and can be treated as a canonical example on how to build ZEST services. Check out the source at our github page.

 

Conclusion

 

The 2048-as-a-service features a revolutionary API design and tackles two fundamental problems in a $10B market.

Not only is it super easy to use, it’s also web-scale, like MongoDB.

Come, build your 2048-based vision on our platform and use it to raise $2,437,429 on Kickstarter. Later when you decide to sell it to Facebook for $2B, we will still be supporting your app, without asking for any equity. That’s the Semantics3 2048-as-a-service promise!

 

Contact

Email us at 2048+pricing@semantics3.com for pricing details, 2048+slas@semantics3.com for SLA details, 2048+partnerships@semantics3.com for partnership details, 2048+tips@semantics3.com for tips on how to play 2048, 2048+support@semantics3.com for support details.

 

*I also hold the company record for the highest score on Flappy Bird.

Sivamani Varun

Recent San Francisco transplant from Singapore. Less recent graduate from the National University of Singapore. One-time hardware engineer. Now, a recovering perl hacker. Part-time business guy at Semantics3.

More Posts - Website

 

Quite a few of our users have asked us if there was an API or some sort of programmatic way to purchase the products we display in our API results. And our answer was always a ‘Nope, that’s not possible’…

 

Not anymore!

47350500

 

I am really happy to announce our partnership and deep integration with Two Tap. Their core API sets out to solve the very problem described above. They offer a really simple API to let users purchase products directly on your app or website, allowing you to maintain a seamless app experience, without having to break the interaction to load Safari or Chrome.

I got to know about Two Tap in the beginning of the year when my co-founder Vinoth had posted a link about them in our private Facebook page. It was pretty obvious to my team and myself that what they were building would be very beneficial to our users, and we are really happy to integrate their service into our offerings.

 

Generating your Two Tap API Credentials

 

We have baked Two Tap integration directly onto our dashboard.
You can access it on the ‘Applications’ tab. Generating your Two Tap credentials is within two clicks!

tumblr_inline_n2ju79DFyY1s5zo1n

Sample Application

Here is a complete example showing how to purchase a product returned from the Semantics3 API with the Two Tap API. All in under 50 lines!

https://gist.github.com/a563dd497101929782c9

With the combined forces of one of the world’s largest databases of product and pricing information and one of the most comprehensive product purchasing APIs, the limits are endless.

That calls for a celebration!

 

You can read more about our partnership/integration from the blog post by the Two Tap team.

If you have questions regarding the Two Tap integration, contact us at support@semantics3.com.
Happy hacking!

Sivamani Varun

Recent San Francisco transplant from Singapore. Less recent graduate from the National University of Singapore. One-time hardware engineer. Now, a recovering perl hacker. Part-time business guy at Semantics3.

More Posts - Website


A couple of weeks have passed since Google shut shop on its Shopping API. Ever since requests from concerned Google API users started trickling in a few months ago, we’ve been hard at work ensuring that our API is ready to catch those who fall through.

Here’s a list of ten significant improvements that we’ve introduced in the recent past:

  1. More merchants: We now gather prices from ~15,000 domains and over a million sellers to go with ~2 billion prices. If you’re looking for price comparison data, look no further.
  2. UK Data: We’ve introduced UK products and prices to the system. Just add the tag “geo”:”uk” to all your queries and you’re good to go.
  3. New API libraries: We’ve introduced Java (https://github.com/Semantics3/semantics3-java) and C# (https://github.com/Semantics3/semantics3-csharp) API libraries. This is in addition to our Perl, Python, PHP, Node.js and Ruby libraries.
  4. URL lookups: Supply a URL of any form, canonicalized or not, to the API and get structured data about the product that it refers to, a list of other URLs on which the same product is sold and more.
  5. Quick response times: We’ve buffed up our servers and slimmed our code to ensure that the API is now quicker than ever.
  6. More products, more prices: With over 30MM products and ~2 billion prices, you now have access to a massive treasure trove.
  7. Free trials: This was a long time coming, but users interested in our premium plans can now finally sign-up for a risk-free 30-day trial to test drive the API.
  8. AND/OR operators: Use the logical operators && and II in your queries to run highly focused queries.
  9. Better product matching: Product matching is an inexact science that we’re constantly getting better at. Match rates are higher and incorrect UPCs are better identified.
  10. Site search: Retrieve all products sold on a given domain using the site search functionality.

For those with further feature requests or data needs, we’re just an email (govind [at] semantics3 [dot] com) away!

Govind Chandrasekhar

Govind Chandrasekhar

Govind manages API search and data processing at Semantics3. Previously, he had worked on metrics design and data visualisation at a business intelligence start-up. Govind has also explored software deployment in rural India, researched data-driven measures to ease road traffic and developed Android mobile applications.

More Posts

Follow Me:
TwitterLinkedIn


products?q={"url": "costcentral.com/proddetail/Apple_MacBook_Pro_with_Retina_display/MD212LLA/11804567"}

Supply any purchase URL to the API in the format above to retrieve data including:


  1. A list of other domains and URLs at which this product is for sale.
    In this case, the API returns ~20 links including http://www.amazon.com/dp/B007472CIK and http://www.frys.com/product/7378544.

  2. Structured metadata about the product that the URL references.
    The API provides details about the product’s weight, model number, case material, energy star qualification and more in a structured JSON string.

  3. Price history of the product on this site, as well as associated competitor sites.
    Turns out one of the other domains that sells this product – frys.com – has been varying its Macbook prices between $1399, $1449 and $1499 on a near weekly basis for several months now. You can view this evolution by running this query:
    offers?q={“sem3_id”:”7Mbjs9dLPMSu20KE2m6YAE”,”sitedetails_name”:”frys.com”,”isotime”:1}


Crucially, the URLs that you provide to the API need not be canonicalized, i.e., they can be provided in any form, no matter if they include session IDs, tracking codes or any other parameters.

Despite your requests for URL lookups, this feature has been a long-time coming for the one reason – e-commerce sites often have different URL strings pointing to the same page. This could be due to affiliate marketing needs, campaign tracking needs, or simply because the site has its own quirks. How then do you identify equivalent URLs without actually visiting the target page and comparing its content (itself a non-trivial process, which would crucially add several seconds of overhead to each API call)?

We tackle this problem by resolving every URL into two parts:

  1. A domain name.
  2. A SKU (stock-keeping unit).

While extracting the domain name is trivial, identifying a SKU is quite a challenge. For example, consider the URL http://www.costcentral.com/proddetail/Apple_MacBook_Pro_with_Retina_display/MD212LLA/11804567.

The domain name here is evidently “costcentral.com“, but is the SKU
Apple_MacBook_Pro_with_Retina_display“, “MD212LLA“, or “11804567“?
The answer: “11804567”. Why not the first two? Because while these permutations of the link under consideration point to the same target page:

http://www.costcentral.com/proddetail/Apple_iPhone_5/MD212LLA/11804567
http://www.costcentral.com/proddetail/Apple_MacBook_Pro_with_Retina_display/MD212XXX/11804567

this does not:

http://www.costcentral.com/proddetail/Apple_MacBook_Pro_with_Retina_display/MD212LLA/11804568

Our system is now capable of understanding these nuances of e-commerce links, making the URL search feature a reality at long last.


Govind Chandrasekhar

Govind Chandrasekhar

Govind manages API search and data processing at Semantics3. Previously, he had worked on metrics design and data visualisation at a business intelligence start-up. Govind has also explored software deployment in rural India, researched data-driven measures to ease road traffic and developed Android mobile applications.

More Posts

Follow Me:
TwitterLinkedIn

We’ve been migrating a lot of Google Shopping API (GSA) developers over to our API over the past few months.

To help our new developers transition to our API from the GSA, we’ve written a migration guide that shows equivalent Semantics3 Product API queries to all the GSA queries.

You can read the full migration guide here:
https://www.semantics3.com/googleshoppingapi/quickstart

Here is a sample:

Google Query

GET https://www.googleapis.com/shopping/search/v1/public/products?key=key&country=US&q=mp3+player

Equivalent Semantics3 Query

GET https://api.semantics3.com/v1/products?q={"search":"mp3 player"}

 

Once you’ve gotten used to the structure of our API, you may also want to check out client libraries for the  PerlNode.jsRubyPythonJavaC#, and PHP languages. These will help you get our API running on production instantly!

If you need help in mapping certain complex GSA queries over to our API, drop us a mail at support@semantics3.com

 

Sivamani Varun

Recent San Francisco transplant from Singapore. Less recent graduate from the National University of Singapore. One-time hardware engineer. Now, a recovering perl hacker. Part-time business guy at Semantics3.

More Posts - Website

Google will be shutting down the Shopping API on  the 16th of September 2013. This is something we have been expecting for some time, since their “Spring Cleaning” announcement. Many businesses, ranging from hedge funds doing price analysis to e-commerce/retail firms doing price intelligence, had applications in production that relied on the Google Shopping API. We are working hard to ensure that none of their existing applications will stop working after the September 16th.

If you are looking for a robust API to get realtime product and pricing information, give the Semantics3 Product API a try.

Additional features which we provide include:

  • Historical Pricing
  • Direct UPC Lookups
  • Merchant Product URL Lookups
  • Merchant Product Catalog Retrieval
  • Merchant Level Filtering
  • Product Variations Lookups

We also have library bindings for Perl, Node.js, Ruby, Python, Java, C#, and PHP to get you up and running instantly. The Javascript Client and Objective-C libraries are coming soon!

Note: If you already have a production ready application running on top of the Google Shopping API, kindly fill out this form or please send an email to varun@semantics3.com. We would love to keep your application running.

Sivamani Varun

Recent San Francisco transplant from Singapore. Less recent graduate from the National University of Singapore. One-time hardware engineer. Now, a recovering perl hacker. Part-time business guy at Semantics3.

More Posts - Website



Each day, hundreds of thousands of sellers aim to sell hundreds of millions of products to as many consumers. And this competition leads to thousands of price changes each second. In the process of building systems to gather, standardize, deduplicate and categorize this data, we’ve sifted through thousands of datapoints.

So after months of wrestling with this data, how intuitively do the guys know their data? I put together a data trivia quiz for my team, the catch being, ofcourse, that they weren’t allowed to use our API to lookup answers. The results turned out to be interesting, so I’m documenting a sample of questions and answers in this blog post for all to see.

[If you're in a hurry, scroll to question 2, which I think is the most interesting].



Question 1

Which product is sold by the most number of distinct sellers? I’ll give points for identifying the category of products, at the very least.

Answer
Gran Turismo 3 A-spec (Playstation 2) on amazon.com, with >900 sellers. Most of the items on sale are “used” goods, naturally.

Details
sem3_id: 1eta5uVvkOGsIekGumKIQe
API Query: products?q={“sitedetails”:{“recentoffers_count” : {“gte” : INPUT}},”cat_id”: CAT_ID}


Note: For each of the answers, I’ve provided the sem3_id unique identifier of the product, which can be used to retrieve products from the database through the query products?q={“sem3_id”:SEM3_ID}.
Further note: For each answer, I’ve also provided the approximate query used to generate the answer. CAT_ID refers to the the category of products you wish to restrict your search to and INPUT refers to your search value. You can lookup category IDs through queries such as categories?q={“name”:”Video games”}.



Question 2

What’s the costliest product that you’ve come across?

Answer
The “costliest” items that we found turned out to be kinky sexual wellness toys. I’d like to keep this blog PG, so I won’t link to them. The costliest product that I will link to is this Classic Flame 23MM070EEPC/SO 23 Palisades Home Theater with Electric Fireplace, which currently costs $46,688,998,697.61 (~$46 billion)… to be precise. To put that in context, this home theater cum fireplace would bankrupt Mark Zuckerberg three times over, and is about twice the once fabled price of The Making of a Fly. Algorithmic pricing FTW?


The price history API (query 2 below) reveals the chronology of the rise in price of this product:
12th September, 2012: The product was priced at $1984.47 and shipped in 6-10 business days.
2nd December, 2012: The price had risen to $93,662.35. The hike was, you’ll be glad to know, justified by a reduced window of 1-2 day shipping.
21st Jan, 2013: $7,440,653,641.12. The price has risen 6.5x in the last week. Time for a quick buy and resell?

This isn’t the highest price that we’ve recorded for a product though. Turns out this Samsung TV was priced at $1,000,000,000,000.00 ($1 trillion) in early November last year. A dozen sales of this would have gone a long way towards offsetting the American national debt!

Details
sem3_id: 3wimVmBWkCsEAesceYkecK
API Query 1: products?q={“price”:{“gte”:1000000},”cat_id”:CAT_ID}
API Query 2: offers?q={“sem3_id”:”3wimVmBWkCsEAesceYkecK”}



Question 3

What’s the longest item that you’ve come across? That’s length, the physical dimension.

Answer
4000 feet jumbo roll toilet tissue! Some out of the box thinking needed there.

Details
API Query: products?q={“length”:{“gte” :LENGTH},”cat_id”: CAT_ID}



Question 4
What’s the most popular color among all categories of products?

Answer
Black, ofcourse! ~1MM of our 15MM or so products are black in color. Interestingly, only half as many products are white.

Details
API Query: products?q={“color”:COLOR,”cat_id”: CAT_ID}



Question 5

Which brand has the greatest number of distinct product listings?

Answer
I found ~65k products branded Wall Spirit.

Details
API Query: products?q={“brand”:BRAND,”cat_id”: CAT_ID}



Question 6

Which product contains the most variations (size-dimension-color-etc. combinations)?

Answer

1775 variations for Vermont Gage Steel No-Go Plug Gage.

Details
sem3_id: 7fimF6qaGG66oc2sYSwKaO
API Query: products?q={“variation_id”:”6rV6YeWdvsyKCWI6QMeMSY”}
[Returns all variations of the specified product].



The world of e-commerce data, particularly price data, never ceases to amaze me. Managing this data is certainly an uphill challenge, but it is also paradise for the data geek in me.

Sign up here (link expires in a week) if you wish to explore the data for yourself. Lucky for you, we’re already handling the data management bit, so, I invite you to go crazy exploring. Do email me at govind at semantics3 dot com if you have any questions or insights.

By the way, for you non-developers out there, we’ve built an API playground through which anyone can run queries with no setup time.

Govind Chandrasekhar

Govind Chandrasekhar

Govind manages API search and data processing at Semantics3. Previously, he had worked on metrics design and data visualisation at a business intelligence start-up. Govind has also explored software deployment in rural India, researched data-driven measures to ease road traffic and developed Android mobile applications.

More Posts

Follow Me:
TwitterLinkedIn

 

The problem with APIs is that you often don’t grasp their entire utility until you write those first lines of code. And it takes something really compelling to get developers motivated enough to write those first lines.

This is particularly true of our Products API. It’s difficult to understand the depth of our data and the full capabilities of our API without live examples. So we’ve built a new tool, which we call the “API Playground”, to help users explore our API at the click of a few buttons.

 

Returns all Toshiba products that fall under the category of "Computers and Accessories" (ID 4992), further filtered by price, order, weight and the store

 

The API Playground is a simple interface that can quickly demonstrate the kind of queries you can make with our API. It’s a full fledged console – anything you type in the box will be directly forwarded to the API. You can even play with our newly launched offers API through this console (more on this in a later post). Developers we have been working with (and even the engineers in our team!) use this to quickly test drive their queries before plugging it into their applications.

 

The result is the prettified JSON dump of the response

 

We’ve preloaded the Playground with some sample queries that will help you frame your queries better – category lookup, name lookup, sorting, pagination. We hope this will help you get up to speed with our API faster and start building cool applications with it!

Head over to http://www.semantics3.com/dashboard/playground to test it out.

Don’t have an account with us? Click here to sign up.

Do get in touch with us with your feedback and comments.

Vinoth Gopi

Vinoth Gopi

Vinoth Gopi is the DevOps guy at Semantics3. He ensures that the API responds quickly despite the load and the data is always safe and secure. When not spinning up clusters, he works on the design and coding of the Semantics3 website itself.

More Posts

Follow Me:
Twitter

I gave a general technical talk on building a distributed web crawler at last Friday’s NUS Hackers meetup. Here are my presentation slides, which I used during the talk.

 

We are hiring!
If you are interested in joining a fast growing Cloud (80-node EC2 cluster), Mobile (SSH + Screen) and Social (We are all friendly hackers. No ‘ideas’ people.) startup, drop me a mail at varun [at] semantics3.com!

 

Sivamani Varun

Recent San Francisco transplant from Singapore. Less recent graduate from the National University of Singapore. One-time hardware engineer. Now, a recovering perl hacker. Part-time business guy at Semantics3.

More Posts - Website