I'll chime in and say that the company I work for was ready to pay 1200$ for a piece of software that we hoped would do this reliably. There are cheaper or even free alternatives out there, but they all had different problems. If this site is reliable and flexible, it is answering a real need in the market.
Just use urlbox.io. We using them and currently doing over 25K screenshot requests a day on urlbox and extremely happy with their service reliability. Have spoken to founder couple of times.. he's integrated us with their PHP API.
Sorry, I meant that as in reliably renders whatever you throw at it. This where others would fail, i.e. sections of the page would be not be rendered, or they would execute javascript, but the execution would fail half way through,, it would crash if the site embedded certain resources, that kind of thing.
you are basing your 'token' on md5(data+secret), however md5 (and other hash functions) are easily extended when data and token are known, even without knowing secret. Basically, given data and token, I can produce a different token, that matches a (somewhat) different data, without knowing secret.
You clearly were not ready for production. Please take your SaaS product offline and fix it.
1) A Recursion vulnerability exists within your app - if I use your PHP sample code to take a a screenshot of itself, your service blows up.
2) You embed a fully usable API key and token in your landing page.
Line 254 and 255:
var urlPart = "apikey=6101EE5C99B145ECB79B4125BED74D19&url=" + $('#tryurl').val() + "&thumbnail_width=550&crop_height=440&width=1280&height=1024";
var token = calcMD5(urlPart + "9A8E44104F064A5B9AD410F0F2DC9558");
Kind of funny - you get German Google display ads in the screenshots - looks like a headless webkit client (similar to phantomjs) - clear your caches between the screenshots guys.
I see you have an option to crop the image... but what about offsetting the crop? I've looked at a few of these services and no one seems to give that option. I can process it myself but it would be nice to do it in one api call. For example set viewport to 1200 x 1900, crop to 300 x 400 at 500px from the top and 300px from the left. Or some coordinates from top and center perhaps...
Anyone looking for a simple way to do this on an ad-hoc basis from their own machine can check out this python script: http://www.paulhammond.org/webkit2png/
Does it let you take a screenshot of the whole height of the page? I see that you can specify the height of the viewport, but what if I want a whole long screenshot of as much height is rendered?
http://news.ycombinator.com/item?id=5257432
Compare: https://urlbox.io/docs
http://www.url2picture.com/Home/Docs