Todoist
1 Low Level API
1.1 Response
response
parse-status-line
response-status-code
->jsexpr
response-success?
response-fail?
1.2 Users
login
login-with-google
ping
get-timezones
register
delete-user
update-user
update-avatar
get-redirect-link
get-productivity-stats
1.3 Projects
get-projects
get-project
add-project
update-project
update-project-orders
delete-project
get-archived
archive-project
unarchive-project
1.4 labels
get-labels
add-label
update-label
update-label-color
delete-label
1.5 Items
get-uncompleted-items
get-all-completed-items
get-items-by-id
add-item!
update-item!
update-orders!
move-items!
update-recurring-date!
delete-items!
complete-items!
uncomplete-items!
1.6 Notes
add-note!
update-note!
delete-note!
get-notes
get-notes-data
1.7 Date query and search
query
1.8 File Uploads
upload-file
6.1.1

Todoist

Jonas Rodrigues <jxonas@gmail.com>

 (require todoist) package: todoist

The module todoist will eventually hide the underlying API calls with higher-level abstractions that make it easy to use Todoist with Racket. It will be built on top of todoist/api, that offers a lower level but not less powerfull interface.

    1 Low Level API

      1.1 Response

      1.2 Users

      1.3 Projects

      1.4 labels

      1.5 Items

      1.6 Notes

      1.7 Date query and search

      1.8 File Uploads

1 Low Level API

 (require todoist/api) package: todoist

This package provides a binding for the Todoist API. This documentation does not describe meaning of API calls; it only describes their Racket calling conventions. For details on API semantics, refer to the documentation at the Todoist site.

The bindings documented in this section are provided by the todoist/api but not todoist.

1.1 Response

 (require todoist/api/response) package: todoist

struct

(struct response (status-line headers body))

  status-line : bytes?
  headers : list?
  body : string?
Response object returned by every API call.

procedure

(parse-status-line status-line)  
string? integer? string?
  status-line : (or/c bytes? string?)
Parse response-status-line and return the http version, status code and message.

procedure

(response-status-code response)  integer?

  response : response?
Response code.

procedure

(->jsexpr x)  jsexpr?

  x : (or/c response? string? bytes?)
Converts input to jsexpr?.

procedure

(response-success? response)  (or/c response? false?)

  response : response?
response if success. #f otherwise.

procedure

(response-fail? response)  (or/c response? false?)

  response : response?
response if fail. #f otherwise.

1.2 Users

 (require todoist/api/users) package: todoist

procedure

(login email password)  response?

  email : string?
  password : string?
See /API/login for details.

procedure

(login-with-google email    
  oauth2-token    
  [#:auto-signup auto-signup    
  #:full-name full-name    
  #:timezone timezone    
  #:lang lang])  response?
  email : string?
  oauth2-token : string?
  auto-signup : string? = ""
  full-name : string? = ""
  timezone : string? = ""
  lang : string? = ""
See /API/loginWithGoogle for details.

procedure

(ping token)  response?

  token : string?
See /API/ping for details.

procedure

(get-timezones)  response?

See /API/getTimezones for details.

procedure

(register email    
  full-name    
  password    
  [#:lang lang    
  #:timezone timezone])  response?
  email : string?
  full-name : string?
  password : string?
  lang : string? = ""
  timezone : string? = ""
See /API/register for details.

procedure

(delete-user token    
  current-password    
  [#:reason-for-delete reason-for-delete    
  #:in-background in-background])  response?
  token : string?
  current-password : string?
  reason-for-delete : string? = ""
  in-background : integer? = 1
See /API/deleteUser for details.

procedure

(update-user token    
  [#:email email    
  #:full-name full-name    
  #:password password    
  #:timezone timezone    
  #:date-format date-format    
  #:time-format time-format    
  #:start-day start-day    
  #:next-week next-week    
  #:start-page start-page    
  #:default-remainder default-remainder])  response?
  token : string?
  email : string? = ""
  full-name : string? = ""
  password : string? = ""
  timezone : string? = ""
  date-format : integer? = 0
  time-format : integer? = 0
  start-day : integer? = 1
  next-week : string? = ""
  start-page : string? = ""
  default-remainder : string? = ""
See /API/updateUser for details.

procedure

(update-avatar token    
  [#:image image    
  #:delete delete])  response?
  token : string?
  image : string? = ""
  delete : boolean? = #f
See /API/updateAvatar for details.

procedure

(get-redirect-link token    
  [#:path path    
  #:hash hash])  response?
  token : string?
  path : string? = "/app"
  hash : string? = ""
See /API/getRedirectLink for details.

procedure

(get-productivity-stats token)  response?

  token : string?
See /API/getProductivityStats for details.

1.3 Projects

 (require todoist/api/projects) package: todoist

procedure

(get-projects token)  response?

  token : string?
See /API/getProjects for details.

procedure

(get-project token project-id)  response?

  token : string?
  project-id : integer?
See /API/getProject for details.

procedure

(add-project name    
  token    
  [#:color color    
  #:indent indent    
  #:order order])  response?
  name : string?
  token : string?
  color : integer? = 0
  indent : integer? = 1
  order : integer? = 0
See /API/addProject for details.

procedure

(update-project project-id    
  token    
  [#:name name    
  #:color color    
  #:indent indent    
  #:order order    
  #:collapse collapse])  response?
  project-id : integer?
  token : string?
  name : string? = ""
  color : integer? = 0
  indent : integer? = 0
  order : integer? = 0
  collapse : integer? = 0
See /API/updateProject for details.

procedure

(update-project-orders token item-id-list)  response?

  token : string?
  item-id-list : list?
See /API/updateProjectOrders for details.

procedure

(delete-project project-id token)  response?

  project-id : integer?
  token : string?
See /API/deleteProject for details.

procedure

(get-archived token)  response?

  token : string?
See /API/getArchived for details.

procedure

(archive-project project-id token)  response?

  project-id : integer?
  token : string?
See /API/archiveProject for details.

procedure

(unarchive-project project-id token)  response?

  project-id : integer?
  token : string?
See /API/unarchiveProject for details.

1.4 labels

 (require todoist/api/labels) package: todoist

procedure

(get-labels token [#:as-list? as-list?])  response?

  token : string?
  as-list? : integer? = 0
See /API/getLabels for details.

procedure

(add-label name token [#:color color])  response?

  name : string?
  token : string?
  color : string? = ""
See /API/addLabel for details.

procedure

(update-label old-name new-name token)  response?

  old-name : string?
  new-name : string?
  token : string?
See /API/updateLabel for details.

procedure

(update-label-color name color token)  response?

  name : string?
  color : string?
  token : string?
See /API/updateLabelColor for details.

procedure

(delete-label name token)  response?

  name : string?
  token : string?
See /API/deleteLabel for details.

1.5 Items

 (require todoist/api/items) package: todoist

procedure

(get-uncompleted-items token    
  project-id    
  [#:js-date js-date])  response?
  token : string?
  project-id : integer?
  js-date : integer? = 0
See /API/getUncompletedItems for details.

procedure

(get-all-completed-items token    
  [#:js-date js-date    
  #:project-id project-id    
  #:limit limit    
  #:from-date from-date])  response?
  token : string?
  js-date : integer? = 0
  project-id : integer? = 0
  limit : integer? = 30
  from-date : string? = ""
See /API/getAllCompletedItems for details.

procedure

(get-items-by-id token    
  ids    
  [#:js-date js-date])  response?
  token : string?
  ids : list?
  js-date : integer? = 0
See /API/getItemsById for details.

procedure

(add-item! token    
  content    
  [#:project-id project-id    
  #:date-string date-string    
  #:priority priority    
  #:indent indent    
  #:js-date js-date    
  #:item-order item-order    
  #:children children    
  #:labels labels    
  #:assigned-by-uid assigned-by-uid    
  #:responsible-uid responsible-uid    
  #:note note])  response?
  token : string?
  content : string?
  project-id : integer? = 0
  date-string : string? = ""
  priority : integer? = 1
  indent : integer? = 1
  js-date : integer? = 0
  item-order : integer? = 0
  children : list? = '()
  labels : list? = '()
  assigned-by-uid : integer? = 0
  responsible-uid : integer? = 0
  note : string? = ""
See /API/addItem for details.

procedure

(update-item! token    
  id    
  [#:content content    
  #:date-string date-string    
  #:priority priority    
  #:indent indent    
  #:item-order item-order    
  #:collapsed collapsed    
  #:labels labels    
  #:js-date js-date    
  #:assigned-by-uid assigned-by-uid    
  #:responsible-uid responsible-uid])  response?
  token : string?
  id : integer?
  content : string? = ""
  date-string : string? = ""
  priority : integer? = 1
  indent : integer? = 1
  item-order : integer? = 1
  collapsed : integer? = 0
  labels : list? = '()
  js-date : integer? = 0
  assigned-by-uid : integer? = 0
  responsible-uid : integer? = 0
See /API/updateItem for details.

procedure

(update-orders! token    
  project-id    
  item-id-list)  response?
  token : string?
  project-id : integer?
  item-id-list : list?
See /API/updateOrders for details.

procedure

(move-items! token project-items to-project)  response?

  token : string?
  project-items : list?
  to-project : integer?
See /API/moveItems for details.

procedure

(update-recurring-date! token ids js-date)  response?

  token : string?
  ids : list?
  js-date : integer?
See /API/updateRecurringDate for details.

procedure

(delete-items! token ids)  response?

  token : string?
  ids : list?
See /API/deleteItems for details.

procedure

(complete-items! token    
  ids    
  [#:in-history in-history])  response?
  token : string?
  ids : list?
  in-history : integer? = 1
See /API/completeItems for details.

procedure

(uncomplete-items! token ids)  response?

  token : string?
  ids : list?
See /API/uncompleteItems for details.

1.6 Notes

 (require todoist/api/notes) package: todoist

procedure

(add-note! token item-id content)  response?

  token : string?
  item-id : integer?
  content : string?
See /API/addNote for details.

procedure

(update-note! token note-id content)  response?

  token : string?
  note-id : integer?
  content : string?
See /API/updateNote for details.

procedure

(delete-note! token item-id note-id)  response?

  token : string?
  item-id : integer?
  note-id : integer?
See /API/deleteNote for details.

procedure

(get-notes token item-id)  response?

  token : string?
  item-id : integer?
See /API/getNotes for details.

procedure

(get-notes-data token item-id)  response?

  token : string?
  item-id : integer?
See /API/getNotesData for details.

1.7 Date query and search

 (require todoist/api/search) package: todoist

procedure

(query token    
  queries    
  [#:as-count as-count    
  #:js-date js-date])  response?
  token : string?
  queries : list?
  as-count : integer? = 0
  js-date : integer? = 0
See /API/query for details.

1.8 File Uploads

 (require todoist/api/files) package: todoist

procedure

(upload-file token path [file-name])  response?

  token : string?
  path : (or/c path? string?)
  file-name : string? = (file-name-from-path path)