Tempo API Reference
Overview
Update
This document was recently updated to reflect changes in our API. There may be mistakes, please don’t hesitate to get in touch and ask for help or clarifications.
Introduction
We have exposed an Application Programming Interface (API) so that anyone who is so inclined can create alternative interfaces to Tempo or integrate Tempo with an external service. This document describes how to connect to the API and what resources and methods are available.
N.B.: The introduction of sub-domains to all accounts means that you are required to use your subdomain in all requests to the API, e.g. my_company.keeptempo.com.
Requirements
- Since the API lives alongside the web interface, you must tell it that you want data and not HTML.
- To work with XML data, supply the headers ‘Accepts: application/xml’ and ‘Content-Type: application/xml’ with each request.
- JSON data is now supported as well (use ‘application/json’ in the headers)
- You must use your account’s sub-domain in each request (e.g. your_company.keeptempo.com).
- Every request must be authenticated over HTTP Basic Authentication. This simply means providing your Tempo login and password along with each request.
Here’s an example of such a request, using curl:
curl -X GET -H ‘Accept: application/xml’ -H ‘Content-Type: application/xml’ \
—user mylogin:mypassword https://hotdogzllc.keeptempo.com/entries
Since all Tempo accounts support SSL, it would be prudent of you to connect using https when accessing the API to protect your password from prying eyes.
RESTful Resources
All end-points in our API are REST-style resources, supporting the usual set of GET, PUT, POST and DELETE operations at RESTful URLs. This means you should be able to use a framework like ActiveResource to interact with our API.
Note: As of 17-FEB-09, we’ve gone back to including “type” attributes in our XML output. You don’t need to include type attributes on your incoming data (except in some instances, see the context search section below), but it can’t hurt for non-string data.
Getting Help
We’re putting a significant amount of work into improving our API and the documentation to encourage our customers to use it. While you are welcome to contact us directly with your questions, we encourage you to join the mailing list to share your problem with us and other consumers of the API, to receive email notices about any forthcoming API changes, and to participate in any requests for comment.
To join the mailing list, simply send a blank email to tempo.api@librelist.com and you will be sent a confirmation message. Once you reply to the confirmation message, you can post away! We’re looking forward to your participation.
Librelist is a new mailing list service that offers us an alternative to the spam-deluged world of Google Groups.
Change Notifications
We think that an API shouldn’t change much, but sometimes change is inevitable. In any event, we feel that it’s bad form to simply change an API without any notice. With that in mind, we plan on publishing advisories about changes we intend to make to our blog and to the mailing list well in advance. Please subscribe to one of these channels to receive such notices. In addition, participating in the mailing list gives you an opportunity to comment on changes that we are considering.
