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.

Warning
This is destructive and cannot be reversed.

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.

Warning
This is destructive and cannot be reversed.

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.

Warning
This is destructive and cannot be reversed.

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