Yes we have an API, and It's pretty damn simple to use. We offer three types of responses: JSONP, JSON, and XML. We do ask two things from you though, the first is maybe a linkback in your notice to the user that tumblr is messing up. And the second is if you have a very high-volume service please cache our response every 5 minutes.
You should use Tumblr Uptime if you want to provide a great user experience even when Tumblr is not working. Plus you get to tell the user that it's not your fault for the crappy uptime.
JSONP Example
http://tumblruptime.apigee.com/json?callback=callbackFunction
The output of this page when decoded should look like this:
Object ( [methods] => Object ( [/api/authenticate] => Object ( [up] => 1 ) [/api/read] => Object ( [up] => ) [/api/write] => Object ( [up] => 1 ) [/oauth] => Object ( [up] => 1 ) [/oauth/delete] => Object ( [up] => ) ) )
So when you're checking if a specific method is working all you need to do is check against the method. Here is an example in javascript using JQuery:
// load the api response $.getJSON('http://tumblruptime.apigee.com/json?callback=?', function (response) { // check if an api method is broken if (!response.methods['/api/read'].up) { alert('method is not working, show the user something'); } });
JSON Example
http://tumblruptime.apigee.com/json
The output of this page when decoded should look like this:
Object ( [methods] => Object ( [/api/authenticate] => Object ( [up] => 1 ) [/api/read] => Object ( [up] => ) [/api/write] => Object ( [up] => 1 ) [/oauth] => Object ( [up] => 1 ) [/oauth/delete] => Object ( [up] => ) ) )
So when you're checking if a specific method is working all you need to do is check against the method. Here is an example in php:
// load the api response $json = json_decode(file_get_contents('http://tumblruptime.apigee.com/json')); // check if an api method works if ($json->methods->{'/api/read'}->up) { echo 'api works'; }
XML Example
http://tumblruptime.apigee.com/xml
The output of this page when decoded should look like this:
<?xml version="1.0" encoding="UTF-8"?> <methods> <api-authenticate>1</api-authenticate> <api-read/> <api-write>1</api-write> <oauth>1</oauth> <oauth-delete/> </methods>
So when you're checking if a specific method is working all you need to do is check against the method. Here is an example in php:
// load the api response $xml = simplexml_load_string(file_get_contents('http://tumblruptime.apigee.com/xml')); // check if an api method works if ((int) $xml->{'api-read'}) { echo 'api works'; }