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.
Timestamps
All times are stored internally in UTC, and API responses include UTC times. Your client should localize timestamps based on its runtime context.
Terminology
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.
getLoginHash
| 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"/>
</response>
|
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.
</note>
</task>
</response>
|
getProjects
| 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"/>
</response>
|
getViews
| 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>
<view viewId="1" viewName="programming">
<project projId="1" projName="voo2do"/>
</view>
</response>
|
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 &taskdesc=SOME%20TASK&estOrig=1.5&elapsed=.5 |
| sample output |
<response method="saveTask">
<success description="No errors."/>
</response>
|
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."/>
</response>
|