Help > API (Application Programming Interface)

To support third-party application development, Voo2do provides a simple API (Application Programming Interface). The API is a work in progress; if you are developing a client application and need a function that you don't see here, please let us know.

Calling the API

The voo2do API uses simple REST calls. All calls are POST or GET requests to a URL of the form http://voo2do.com/api/methodname, where methodname is one of the API methods documented below. Parameters are query parameters passed as POST input or GET URL parameters, at your choice. All methods return an XML document whose top-level object is a <response> containing method-dependent information.

User Authentication

The typical interaction pattern with the Voo2do API is to start with getLoginHash, and then use the authentication keys it returns to call the other methods, which all require an authenticated user. However, if you call a method from a logged-in session in your browser and do not pass in a userId and loginHash (as getLoginHash would return), we will attempt to authenticate you using a regular interactive voo2do session. In other words, if you are now logged in, you can just hit /api/getProjects with your browser and see the same thing as if you'd called /api/getProjects?userId=123&loginHash=whatever.


All times are stored internally in UTC, and API responses include UTC times. Your client should localize timestamps based on its runtime context.


This version of the API uses the term view (and viewId, viewName, etc.) to refer to what are now called contexts. The term view has been superseded by context, but remains here for purposes of backwards compatibility. It is likely to be renamed in future versions of the API.


method name getLoginHash
description Given a user's email address and password, returns a login hash, which is a secret string needed to verify the user's identity in any subsequent API calls.
input parameters email, password
sample call http://voo2do.com/api/getLoginHash?email=user@domain.org&password=abc123
sample output
<response method="getLoginHash">
<login loginHash="2b00042f7481c7b056c4b410d28f33cf" userId="2"/>

getIncompleteTasks, getCompleteTasks, getAllTasks, getIncompleteTasksWithNotes, getCompleteTasksWithNotes, getAllTasksWithNotes

method name getIncompleteTasks, getCompleteTasks, getAllTasks,
getIncompleteTasksWithNotes, getCompleteTasksWithNotes, getAllTasksWithNotes
description Get information about tasks, including either incomplete tasks, completed tasks, or all tasks depending on the method called. If the method name ends with "WithNotes", includes <note> elements as in sample below. With only userId and loginHash, returns all relevant tasks for that user. When viewId or projId are supplied, returns only tasks in that view or project. Will return records sorted by completed status, then due date, then priority. When limit is supplied, returns at most that many records; the default and maximum limit is 1000.
input parameters userId, loginHash
[ viewId | projId ] [ limit ]
sample call http://voo2do.com/api/getIncompleteTasks?userId=2&loginHash=2b...f&projId=7
sample output
<response method="getIncompleteTasks">
<task estCurr="0.2500" priority="1.0000" dtcreated="2005-07-19 02:27:43.528408" taskdesc="code subroutine" 
      taskId="1" estOrig="0.2500" userId="1" deadline="2005-07-19 00:00:00" elapsed="0.2500" 
      projId="1" projName="voo2do" completed=""/>
<task estCurr="" priority="" dtcreated="2005-07-19 19:04:24.84356" taskdesc="bc" 
      taskId="2" estOrig="" userId="1" deadline="" elapsed="" 
      projId="2" projName="a" completed="">
   <note noteId="123" noteTime="2005-07-19 20:02:11.92861">
     Don't run with scissors.


method name getProjects
description Returns information about the user's projects, in alphabetical order by projName.
input parameters userId, loginHash
[ viewId ]
sample call http://voo2do.com/api/getProjects?userId=2&loginHash=2b...f&viewId=7
sample output
<response method="getProjects">
<project estCurr="" projId="2" projName="a" taskcount="1" elapsed=""/>
<project estCurr="0.2500" projId="1" projName="voo2do" taskcount="8" elapsed="0.2500"/>


method name getViews
description Returns all views with viewnames and viewIds, along with the projIds and names of projects contained in each view.
input parameters userId, loginHash
sample call http://voo2do.com/api/getViews?userId=2&loginHash=2b...f
sample output
<response method="getViews">
<view viewId="2" viewName="errands">
  <project projId="2" projName="shopping"/>
<view viewId="1" viewName="programming">
  <project projId="1" projName="voo2do"/>

saveTask [Removed]

This API method has been removed. If you want it back, please ask support@voo2do.com.
method name saveTask
description Creates a new task, or edits an existing task (by ID).
input parameters userId, loginHash
Strings: [ projName ], taskdesc
Boolean, 0 or 1: [ completed ]
Numbers: [ estOrig ], [ estCurr ], [ elapsed ], [ priority ]
Date as MM/DD/YYYY: [ deadline ]
Integer: [ taskId ]
sample call http://voo2do.com/api/saveTask?userId=2&loginHash=2b...f&projName=PROJECT
sample output
<response method="saveTask">
    <success description="No errors."/>

deleteTask [Removed]

This API method has been removed. If you want it back, please ask support@voo2do.com.
method name deleteTask
description Permanently deletes an existing task (by ID).
input parameters userId, loginHash
Integer: taskId
sample call http://voo2do.com/api/deleteTask?userId=2&loginHash=2b...f&taskId=123
sample output
<response method="deleteTask">
    <success description="No errors."/>

blog · discussion group © 2010 Voo2do LLC bugs? hugs? support@voo2do.com