Zapier makes it easy to sync data between different web apps, so you don't have to code to connect Checkvist with other tools, like Evernote or Asana.
Checkvist provides Open API which can be used for integration with other tools. The API offers only limited functionality, though allows both read and write operations. If you have questions regarding OpenAPI, feel free to join Checkvist OpenAPI group.
The searchable OpenAPI documentation is available (generated from /openapi.yaml)
Checkvist API uses REST principles for obtaining and updating data. Most read operations can return either XML or JSON response.
To emulate HTTP request methods like PUT or DELETE, you can use POST method and pass
additional parameter _method with the required method name.
For XML response, the main part of the URL shall end with .xml suffix. For example:
https://checkvist.com/checklists/42.xml
For JSON response, the corresponding request should end with .json suffix.
If your HTTP client can handle basic HTTP authentication, you can use it to identify the user working with Checkvist API. As a password, you can use either real password of the user, or user can use Remote API key obtained from user profile page.
As a better approach, you can use a token-based authentication.
In this case, you should obtain a token first, and than pass it to all API calls either
under token parameter, or in X-Client-Token HTTP header.
The token is valid only within a limited period of time (1 day).
After that, within 90 days, the token can be refreshed with a special refresh_token call.
Old token is deleted after that, and the new one returned.
To obtain the token, you should use the following API call:
| get/post /auth/login.json?version=2 | |
|
Returns a JSON object with the token key.
If authentication failed, returns HTTP status 401 Unauthorized.
If 2-step verification is enabled and the token2fa code is
missing or wrong, returns HTTP status 422 Unprocessable Entity
with a JSON body {"error": "..."}.
|
Ahd here is the refresh_token call, which allows to get the new token without providing username/remote_key.
| get/post /auth/refresh_token.json?version=2 | |
|
Returns a JSON object with the token key.
If authentication failed (bad old_token), returns HTTP status 401 Unauthorized.
|
If user has 2-step verification enabled,
API calls for obtaining the token should use Remote API key.
Otherwise they should also contain 2-factor authentication
code from the authentication app as the parameter token2fa.
To obtain information about the current user, use the following API call:
| get /auth/curr_user.(json|xml) | |
| Returns currently logged-in user JSON/XML data in the body. | |
| get /checklists.(json|xml) | |
|
For JSON call, javascript array of JSON representations for user checklists. Sorting is the same as in user's Checkvist UI (default - recently updated checklists first).
See checklist data fields.
For XML request: <checklists>
<checklist1>
<checklist2>
<checklistN>
</checklists>
|
| get /checklists/checklist_id.(json|xml) | |
| JSON/XML representation for the checklist with given ID. See checklist data fields. | |
| post /checklists.(json|xml) | |
| JSON/XML representation for the created checklist. See checklist data fields. |
| put /checklists/checklist_id.(json|xml) | |
| Update checklist name/public status. Returns JSON/XML representation for the updated checklist. See checklist data fields. |
| delete /checklists/checklist_id.(json|xml) | |
| Delete the checklist (with all its data). Returns JSON/XML representation for the deleted checklist. See checklist data fields. Actually, at the moment of the call, the list is marked for deletion only. Actual data deletion occurs later, once a day. | |
| get /checklists/checklist_id/tasks.(json|xml) | |
|
List of representations for the list items of checklist with given ID.
List items are sorted by parent_id, position.
For JSON, returns a javascript array of items.For XML, returns a structure like below: <tasks>
<task1>
<task2>
<taskN>
</tasks>
See task fields and XML sample.
|
| get /checklists/checklist_id/tasks/task_id.(json|xml) | |
|
List of XML/JSON representations for the given task and its parents.
Original list item is the first, and than go parents, one after another, till the root parent task.
<tasks>
<task>
<task_parent>
<task_parent_parent>
<task_root_parent>
</tasks>
See task fields and XML sample.
|
| post /checklists/checklist_id/tasks.(json|xml) | |
|
JSON/XML representation for the created task.
See task fields and XML sample.
|
| post /checklists/checklist_id/import.(json|xml) | |
|
Created list items, organized to hierarchy according to input data. List items are added to the beginning of the target list. For JSON, returns a javascript array of items. For XML, returns a structure like below: <tasks>
<task1>
<task2>
<taskN>
</tasks>
See task fields and XML sample.
|
| put /checklists/checklist_id/tasks/task_id.(json|xml) | |
|
Updates the task information and returns JSON/XML representation for it. This method won't change task status.
See task fields and XML sample.
|
Tags are normally set with the task[tags] parameter of the
create and update calls,
which replace the whole set of tags on the list item. To remove a single tag
without resending the rest use the dedicated call below.
| post /checklists/checklist_id/tasks/task_id/tags.(json|xml) | |
|
When delete_tag is given, that tag is removed from the list item (and from every item
listed in task_ids). Otherwise the item's tags are set from the tags parameter.
For JSON, returns a javascript array of items.For XML, returns a structure like below: <tasks>
<task1>
<task2>
<taskN>
</tasks>
See task fields and XML sample.
|
The following actions allow to change task status. You can
Available status change actions are
closeinvalidate (in Checkvist UI, such tasks are marked with italics)reopenThese actions are presented in the final part of action URL below, like close.xml or invalidate.json.
The performed action corresponds to the action name.
| post /checklists/checklist_id/tasks/task_id/action.(json|xml) | |
Updates the task status and returns representation for it and for its children.
XML sample:
<tasks>
<changed_task>
<child1>
<child2>
<childN>
</tasks>
For JSON, javascript array of tasks is returned.
If there are no children, only one element is returned under the tasks node and only one element in resulting JSON array.
See task fields and XML sample.
| |
| post /checklists/checklist_id/tasks/task_id/repeat.(json|xml) | |
|
Sets the repeating task information and returns the updated task.
See task fields and XML sample.
|
| delete /checklists/checklist_id/tasks/task_id.(json|xml) | |
|
Deletes the list item including its children and returns the deleted list item representation.
See task fields and XML sample.
| |
| GET /checklists/checklist_id/tasks/task_id/comments.(json|xml) | |
|
Get list of existing notes for the task with id task_id. Data format is similar to the case,
when notes are included into the task data.
See note fields and XML sample.
| |
| POST /checklists/checklist_id/tasks/task_id/comments.(json|xml) | |
|
Creates a new note for the task with id task_id and returns created note
See note fields and XML sample.
|
| PUT /checklists/checklist_id/tasks/task_id/comments/note_id.(json|xml) | |
|
Updates note text for a note with id note_id and returns created note
See note fields and XML sample.
|
| DELETE /checklists/checklist_id/tasks/task_id/comments/note_id.(json|xml) | |
|
Delete a note with id note_id and returns deleted note
See note fields and XML sample.
| |
All timestamp fields below (updated_at, created_at)
follow the same conventions:
2009-05-16T11:20:31Z).YYYY/MM/DD HH:MM:SS +0000 in UTC
(e.g. 2005/02/01 15:15:10 +0000), which is parseable by the
JavaScript Date constructor.
updated_at and created_at on a task
are JSON-only — they are omitted from XML responses. A JSON
updated_at may be the empty string when the item has never been
updated.
JSON and XML representations of a checklist have the following fields:
<checklist>
<id>1</id>
<name>EAP checklist</name>
<public>false</public>
<role>1</role>
<updated_at>2009-05-16T11:20:31Z</updated_at>
<task_count>3</task_count>
<task_completed>1</task_completed>
<read_only>true</read_only>
</checklist>
true).
In other cases information about deleted tasks is not included to results.with_notes parameter is set to "true", this field contains a list of notes added to this task.
The list of fields for each note is described below. For XML, there is a node
<notes> with subnodes <node>. For JSON, property nodes
refers to Javascript array of note objects.
<task>
<content>Root task</content>
<id>3</id>
<checklist_id>1</checklist_id>
<comments_count>0</comments_count>
<parent_id nil="true"></parent_id>
<position>3</position>
<status>0</status>
<notes type="array"/>
</task>
<note type="Comment"> <comment>some note1</comment> <created_at>2009-06-12T19:50:00Z</created_at> <id>53</id> <task_id>4</task_id> <updated_at>2009-06-12T19:50:00Z</updated_at> <user_id>123</user_id> <username>kir</username> </note>