Projects & Tasks API
Projects & Tasks API Reference
“Projects and Tasks” is a project management tool that helps you take real action with simple planning, assigning, and task-tracking features. You can create projects with various tasks and assignments. Those tasks exist within swim lanes or lists, and can be moved from list to list to show progress through a particular workflow. You can use default lists or create new custom lists. You can also add attachments to individual tasks to reference relevant materials and other artifacts.
Note: You will need to ensure that your client application has access to the Workflow
scope in order to access the Projects and Tasks endpoints.
The project object
Attributes
Property Name | Type | Description |
---|---|---|
name | String | The name of the project |
id | String | The ID of the project |
members | Long | The ID's of the members of the project |
createdBy | Long | The ID of the user who created the project |
createdDate | Date | Date the project was created |
public | Boolean | whether or not the project is a public project |
description | String | Description of the project |
dueDate | Date | Due date of the project |
Retrieve all projects
Retrieves a list of all projects that the client scope has access to.
Definition
https://api.domo.com/v1/projects
Sample Request
GET https://api.domo.com/v1/projects HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns an array of project objects.
Sample Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
{
"id": "3",
"name": "Agile Project",
"members": [
27, 35, 102
],
"createdBy": 27,
"createdDate": "2018-08-01T01:00:00Z",
"public": false
},
{
"id": "2",
"name": "Final Deliverable Progress",
"members": [
1, 27, 150
],
"createdBy": 1,
"createdDate": "2018-08-01T04:00:00Z",
"public": true
}
]
Retrieve individual project
Retrieves the details of an individual existing project given a project id.
Definition
https://api.domo.com/v1/projects/{PROJECT_ID}
Use the special project ID me
to return your personal project.
Definition
https://api.domo.com/v1/projects/me
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | string | Required | The ID of the project |
Sample Request
GET https://api.domo.com/v1/projects/3 HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns a project object.
Sample Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id": "3",
"name": "Agile Project",
"members": [
27, 35, 102
],
"createdBy": 27,
"createdDate": "2018-08-01T01:00:00Z",
"public": false
}
Create a project
Create a new project in your Domo instance
Definition
POST https://api.domo.com/v1/projects
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
name | String | Required | The name of the project |
members | Long | Required | Array of user ID's that will be assigned as members of the project |
public | Boolean | Required | whether or not the project should be publicly available to other Domo users |
description | String | -- | Description of the project |
dueDate | Date | -- | Due date of the project |
Sample Request
POST https://api.domo.com/v1/projects/
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Request Body
The request body accepts a project object.
{
"name": "Scrum Project",
"members": [27, 105],
"public": "TRUE"
}
Returns
Returns a project object when successful.
Sample Response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
{
"id": "4",
"name": "Scrum Project",
"members": [
27, 105
],
"createdBy": 27,
"createdDate": "2018-08-01T05:00:00Z",
"public": true
}
Update a project
Updates attributes of an existing project in your Domo instance. The following properties are read-only and cannot be updated with this request:
id
members
createdBy
createdDate
Definition
PUT https://api.domo.com/v1/projects/{PROJECT_ID}
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | Long | Required | ID of the project that needs to be updated |
name | String | -- | Updates the name of the project |
public | Boolean | -- | Updates whether or not the project is publicly available to Domo users |
description | String | -- | Updates the description of the project |
dueDate | Date | -- | Updates the due date of the project |
Sample Request
PUT https://api.domo.com/v1/project/4
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Request Body
The request body accepts a project object.
{
"name": "Scrum Project for Q4"
}
Returns
Returns the updated project object.
Sample Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id": "4",
"name": "Scrum Project for Q4",
"members": [
27, 105
],
"createdBy": 27,
"createdDate": "2018-08-01T05:00:00Z",
"public": true
}
Delete a project
Permanently deletes a project from your Domo instance.
Definition
DELETE https://api.domo.com/v1/project/{PROJECT_ID}
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | String | Required | The ID of the project to delete |
Sample Request
DELETE https://api.domo.com/v1/project/4
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns the parameter of success or error based on the project ID being valid.
Sample Response
HTTP/1.1 200 OK
Retrieve project members
Retrieves a list of ids of the users that are members of the given project id.
Definition
https://api.domo.com/v1/projects/{PROJECT_ID}/members
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | string | Required | The ID of the project |
Sample Request
GET https://api.domo.com/v1/projects/3/members HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns an array of member ids.
Sample Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
27, 35, 102
]
Update project members
Update the members of a given project id.
Definition
PUT https://api.domo.com/v1/projects/{PROJECT_ID}/members
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | Long | Required | ID of project that needs to be updated |
Sample Request
PUT https://api.domo.com/v1/project/3/members
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Request Body
The request body accepts an array of member ids.
[27, 105, 93, 84, 107]
Sample Response
HTTP/1.1 200 OK
The list object
Attributes
Property Name | Type | Description |
---|---|---|
name | String | The name of the List |
id | String | The ID of the List |
type | String | The type of List (i.e. TODO , WORKING_ON , COMPLETED ) |
index | Long | The ordered index of the list within the project. |
Retrieve all project lists
Retrieves all lists available within a given project id.
Definition
https://api.domo.com/v1/projects/{PROJECT_ID}/lists
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | String | Required | The ID of the project |
Sample Request
GET https://api.domo.com/v1/projects/3/lists HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns an array of list objects.
Sample Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
{
"id": "4",
"name": "To Do",
"type": "TODO",
"index": 1
},
{
"id": "5",
"name": "Working On",
"type": "WORKING_ON",
"index": 2
},
{
"id": "6",
"name": "Completed",
"type": "COMPLETED",
"index": 3
}
]
Retrieve Individual List
Retrieves the details of an individual list given a project id and a list id.
Definition
https://api.domo.com/v1/projects/{PROJECT_ID}/lists/{LIST_ID}
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | string | Required | The ID of the project |
list_id | string | Required | The ID of the list |
Sample Request
GET https://api.domo.com/v1/projects/3/lists/4 HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns a list object.
Sample Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id": "4",
"name": "To Do",
"type": "TODO",
"index": 1
}
Create a list
Creates a new list within the given project id.
Definition
POST https://api.domo.com/v1/projects/{PROJECT_ID}/lists
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | string | Required | The ID of the project |
name | String | Required | The name of the List |
type | String | Required | The type of List (i.e. TODO , WORKING_ON , COMPLETED ) |
index | Long | -- | The ordered index of the list within the project. Setting this property will re-order other lists in the project to maintain sequential order. Leaving this property blank will default the index to 1 and shift the index of all other lists. |
Sample Request
POST https://api.domo.com/v1/projects/3/lists
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Request Body
The request body accepts a list object.
{
"name": "Needs Validation",
"type": "TODO",
"index": 3
}
Returns
Returns a list object when successful.
Sample Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id": "13",
"name": "Needs Validation",
"type": "TODO",
"index": 3
}
Update a list
Update the details of a list given an existing project id and list id.
Definition
PUT https://api.domo.com/v1/projects/{PROJECT_ID}/lists/{LIST_ID}
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | Long | Required | ID of the project that needs to be updated |
list_id | Long | Required | ID of the list that needs to be updated |
name | String | Required | Updated name of the list |
type | String | Required | One of the following strings TODO , WORKING_ON , COMPLETED |
index | Long | Required | The updated index of the list within the project. Updating the index of a list may also change the order of the other lists in the project to remain sequential. |
Sample Request
PUT https://api.domo.com/v1/project/3/lists/13
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Request Body
The request body accepts a list object.
{
"name": "Needs QA",
"type": "TODO",
"index": 3
}
Returns
Returns the updated list object.
Sample Response
HTTP/1.1 200 OK
{
"id": "13",
"name": "Needs QA",
"type": "TODO",
"index": 3
}
Delete a list
Permanently deletes a list from your Domo instance.
Definition
DELETE https://api.domo.com/v1/project/{PROJECT_ID}/lists/{LIST_ID}
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | String | Required | The ID of the project to delete |
list_id | String | Required | The ID of the list to delete |
Sample Request
DELETE https://api.domo.com/v1/project/3/lists/13
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns the parameter of success or error based on the project ID and list ID being valid.
Sample Response
HTTP/1.1 200 OK
The task object
Attributes
Property Name | Type | Description |
---|---|---|
id | String | The ID of the task |
projectId | String | The ID of the project that the task belongs to |
projectListId | String | The ID of the list within a project that the task belongs to |
taskName | String | The name of the task |
description | String | An optional description of the task |
createdDate | Date | The date the task was created |
dueDate | Date | The date the task is expected to be completed |
priority | Long | The prioritized order of the task in a list |
createdBy | Long | The ID of the Domo user that created the task |
ownedBy | Long | The ID of the Domo user that owns the task |
contributors | Long | An array of user IDs that are assigned as contributors to the task |
attachmentCount | Long | The number of attachments that task has |
tags | String | An array of tags that have been assigned to the task |
archived | Boolean | whether or not the task has been archived |
Retrieve all project tasks
Retrieves all tasks from a given project id.
Definition
https://api.domo.com/v1/projects/{PROJECT_ID}/tasks?offset={OFFSET}&limit={LIMIT}
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | String | Required | The ID of the project |
limit | Long | -- | The maximum amount of results to return (defaults to 10 with a maximum of 50) |
offset | Long | -- | The number of records to offset from the beginning of the result list (defaults to 0) |
Sample Request
GET https://api.domo.com/v1/projects/2/tasks HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns an array of task objects.
Sample Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
{
"id": "1",
"projectId": "2",
"projectListId": "4",
"taskName": "User Story Mapping",
"createdDate": "2018-08-01T07:00:00Z",
"priority": 1,
"createdBy": 27,
"ownedBy": 27,
"contributors": [
27
],
"attachmentCount": 0,
"tags": [],
"archived": false
},
{
"id": "2",
"projectId": "2",
"projectListId": "4",
"taskName": "UML Architecture",
"createdDate": "2018-08-01T07:00:00Z",
"priority": 2,
"createdBy": 27,
"ownedBy": 27,
"contributors": [
27
],
"attachmentCount": 0,
"tags": [],
"archived": false
},
{
"id": "3",
"projectId": "2",
"projectListId": "4",
"taskName": "Project Scaffolding",
"createdDate": "2018-08-01T07:00:00Z",
"priority": 3,
"createdBy": 27,
"ownedBy": 27,
"contributors": [
27
],
"attachmentCount": 0,
"tags": [],
"archived": false
},
{
"id": "4",
"projectId": "2",
"projectListId": "14",
"taskName": "Initial Commit",
"createdDate": "2018-08-01T07:00:00Z",
"priority": 1,
"createdBy": 27,
"ownedBy": 27,
"contributors": [
27
],
"attachmentCount": 0,
"tags": [],
"archived": false
}
]
Retrieve all List tasks
Retrieves all tasks from a given project id and list id.
Definition
https://api.domo.com/v1/projects/{PROJECT_ID}/lists/{LIST_ID}/tasks?offset={OFFSET}&limit={LIMIT}
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | String | Required | The ID of the project |
list_id | String | Required | The ID of the list |
limit | Long | -- | The maximum amount of results to return (defaults to 10 with a maximum of 50) |
offset | Long | -- | The number of records to offset from the beginning of the result list (defaults to 0) |
Sample Request
GET https://api.domo.com/v1/projects/2/lists/4/tasks HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns an array of task objects.
Sample Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
{
"id": "1",
"projectId": "2",
"projectListId": "4",
"taskName": "User Story Mapping",
"createdDate": "2018-08-01T07:00:00Z",
"priority": 1,
"createdBy": 27,
"ownedBy": 27,
"contributors": [
27
],
"attachmentCount": 0,
"tags": [],
"archived": false
},
{
"id": "2",
"projectId": "2",
"projectListId": "4",
"taskName": "UML Architecture",
"createdDate": "2018-08-01T07:00:00Z",
"priority": 2,
"createdBy": 27,
"ownedBy": 27,
"contributors": [
27
],
"attachmentCount": 0,
"tags": [],
"archived": false
},
{
"id": "3",
"projectId": "2",
"projectListId": "4",
"taskName": "Project Scaffolding",
"createdDate": "2018-08-01T07:00:00Z",
"priority": 3,
"createdBy": 27,
"ownedBy": 27,
"contributors": [
27
],
"attachmentCount": 0,
"tags": [],
"archived": false
}
]
Retrieve individual task
Retrieves an individual task from a given project id and list id.
Definition
https://api.domo.com/v1/projects/{PROJECT_ID}/lists/{LIST_ID}/tasks/{TASK_ID}
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | String | Required | The ID of the project |
list_id | String | Required | The ID of the list |
task_id | String | Required | The ID of the task |
Sample Request
GET https://api.domo.com/v1/projects/2/lists/4/tasks/3 HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns a task object.
Sample Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id": "3",
"projectId": "2",
"projectListId": "4",
"taskName": "Project Scaffolding",
"createdDate": "2018-08-01T07:00:00Z",
"updatedDate": "2018-08-01T07:00:00Z",
"priority": 3,
"createdBy": 27,
"ownedBy": 27,
"contributors": [
27
],
"attachmentCount": 0,
"tags": [],
"archived": false
}
Create a task
Add a task to a project list.
Definition
POST https://api.domo.com/v1/projects/{PROJECT_ID}/lists/{LIST_ID}/tasks
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
projectId | String | Required | The ID of the project that the task belongs to |
projectListId | String | Required | The ID of the list within a project that the task belongs to |
taskName | String | Required | The name of the task |
description | String | -- | An optional description of the task |
dueDate | Date | -- | The date the task is expected to be completed |
priority | Long | -- | Priority of task within a list. Setting this property will impact the index of other tasks in the list to maintain sequential order. If not provided the priority will default to 1 and the index of all the other tasks in the list will shift. |
ownedBy | Long | Required | The ID of the Domo user that owns the task |
contributors | Long | Required | An array of user IDs that are assigned as contributors to the task |
tags | String | -- | An array of tags that have been assigned to the task |
Sample Request
POST https://api.domo.com/v1/project/2/lists/4/tasks
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Request Body
The request body accepts a task object.
{
"id": "3",
"projectId": "2",
"projectListId": "4",
"taskName": "Business Plan Review",
"priority": 3,
"contributors": [
27
],
"tags": [],
"archived": false
}
Returns
Returns the task object.
Sample Response
HTTP/1.1 200 OK
{
"id": "5",
"projectId": "2",
"projectListId": "4",
"taskName": "Business Plan Review",
"createdDate": "2018-08-01T08:00:00Z",
"updatedDate": "2018-08-01T08:00:00Z",
"priority": 3,
"createdBy": 27,
"ownedBy": 27,
"contributors": [
27
],
"attachmentCount": 0,
"tags": [],
"archived": false
}
Update a Task
Update the details of a task given an existing project id, list id, and task id.
Definition
PUT https://api.domo.com/v1/projects/{PROJECT_ID}/lists/{LIST_ID}/tasks/{TASK_ID}
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | Long | Required | ID of the project that needs to be updated |
list_id | Long | Required | ID of the list that needs to be updated |
task_id | Long | Required | ID of the task that needs to be updated |
taskName | String | Required | The name of the task |
description | String | -- | An optional description of the task |
dueDate | Date | -- | The date the task is expected to be completed |
priority | Long | Required | Priority of task within a list. Setting this property will impact the index of other tasks in the list to maintain sequential order. |
ownedBy | Long | Required | The ID of the Domo user that owns the task |
contributors | Long | Required | An array of user IDs that are assigned as contributors to the task |
tags | String | -- | An array of tags that have been assigned to the task |
Sample Request
PUT https://api.domo.com/v1/project/2/lists/4/tasks/3
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Request Body
The request body accepts a task object.
{
"id": "3",
"projectId": "2",
"projectListId": "4",
"taskName": "Project Scaffolding and Infrastructure",
"priority": 3,
"contributors": [
27
],
"tags": [],
"archived": false
}
Returns
Returns the updated task object.
Sample Response
HTTP/1.1 200 OK
{
"id": "3",
"projectId": "2",
"projectListId": "4",
"taskName": "Project Scaffolding and Infrastructure",
"createdDate": "2018-08-01T07:00:00Z",
"updatedDate": "2018-08-01T08:00:00Z",
"priority": 3,
"createdBy": 27,
"ownedBy": 27,
"contributors": [
27
],
"attachmentCount": 0,
"tags": [],
"archived": false
}
Retrieve list of attachments
Retrieve details about all of the attachments belonging to a particular task.
Definition
https://api.domo.com/v1/projects/{PROJECT_ID}/lists/{LIST_ID}/tasks/{TASK_ID}/attachments
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | String | Required | The ID of the project |
list_id | String | Required | The ID of the list |
task_id | String | Required | The ID of the task |
Sample Request
GET https://api.domo.com/v1/projects/2/lists/4/tasks/5/attachments HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns an array of attachment objects.
Sample Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
{
"id": 2,
"taskId": 5,
"createdDate": "2018-08-01T09:00:00Z",
"createdBy": 27,
"fileName": "dataflows.csv",
"mimeType": "text/csv"
},
{
"id": 1,
"taskId": 5,
"createdDate": "2018-08-01T09:00:00Z",
"createdBy": 27,
"fileName": "logo.png",
"mimeType": "image/png"
}
]
Download attachment
Downloads an individual attachment given an attachment id.
Definition
https://api.domo.com/v1/projects/{PROJECT_ID}/lists/{LIST_ID}/tasks/{TASK_ID}/attachments/{ATTACHMENT_ID}
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | String | Required | The ID of the project |
list_id | String | Required | The ID of the list |
task_id | String | Required | The ID of the task |
attachment_id | String | Required | The ID of the attachment |
Sample Request
GET https://api.domo.com/v1/projects/2/lists/4/tasks/5/attachments/1 HTTP/1.1
Content-Type: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns the downloaded bytes of the attachment on the response body.
Sample Response
HTTP/1.1 200 OK
Content-Type: image/png;charset=UTF-8
Add attachment
Add a multipart form file to a task item as an attachment.
Definition
POST https://api.domo.com/v1/projects/{PROJECT_ID}/lists/{LIST_ID}/tasks/{TASK_ID}/attachments
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | String | Required | ID of the project |
list_id | String | Required | ID of the list |
task_id | String | Required | ID of the task that the attachment will be added to |
Sample Request
POST https://api.domo.com/v1/project/2/lists/4/tasks/5/attachments
Content-Type: multipart/form-data; boundary
=----WebKitFormBoundary7MA4YWxkTrZu0gW
Authorization: bearer <your-valid-oauth-access-token>
------WebKitFormBoundary7MA4YWxkTrZu0gWrnContent-Disposition: form-data; name="file"; filename="Domo Validation.xlsx"rnContent-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheetrnrnrn------WebKitFormBoundary7MA4YWxkTrZu0gW--
Returns
Returns the attachment object.
Sample Response
HTTP/1.1 200 OK
{
"id": 3,
"taskId": 5,
"createdDate": "2018-08-01T09:00:00Z",
"createdBy": 27,
"fileName": "Domo Validation.xlsx",
"mimeType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
}
Delete an attachment
Permanently deletes an attachment from your task.
Definition
DELETE https://api.domo.com/v1/project/{PROJECT_ID}/tasks/{TASK_ID}/attachments/{ATTACHMENT_ID}
Arguments
Property Name | Type | Required | Description |
---|---|---|---|
project_id | String | Required | The ID of the project that the attachment belongs to |
task_id | String | Required | The ID of the task that the attachment belongs to |
attachment_id | String | Required | The ID of the attachment to be deleted |
Sample Request
DELETE https://api.domo.com/v1/project/2/tasks/5/attachments/3
Content-Type: application/json
Accept: application/json
Authorization: bearer <your-valid-oauth-access-token>
Returns
Returns the parameter of success or error based on the attachment ID being valid.
Sample Response
HTTP/1.1 200 OK