Object Updates

Personas in this Story: Default, Member.

When we check our notifications stream, we'll see that is empty:

Response: HTTP 200, application/json (Hide)
GET /notifications

Response:

1
2
3
4
{
    "notifications": [],
    "related": []
}

Now, a member came and created a task and posted two comments:

Response: HTTP 200, application/json (Hide)
POST /projects/1/tasks (as Member)

Payload:

1
2
3
4
{
    "name": "One hundred push ups",
    "body": "<span class=\"new_mention\" data-user-id=\"1\">@Owner<\/span> please do some push-ups"
}

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
    "single": {
        "id": 1,
        "class": "Task",
        "url_path": "\/projects\/1\/tasks\/1",
        "name": "One hundred push ups",
        "assignee_id": 0,
        "delegated_by_id": 0,
        "completed_on": null,
        "completed_by_id": null,
        "is_completed": false,
        "comments_count": 0,
        "attachments": [],
        "labels": [],
        "is_trashed": false,
        "trashed_on": null,
        "trashed_by_id": 0,
        "project_id": 1,
        "is_hidden_from_clients": false,
        "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
        "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
        "created_on": 1430164935,
        "created_by_id": 2,
        "updated_on": 1430164935,
        "updated_by_id": 2,
        "task_number": 1,
        "task_list_id": 0,
        "position": 1,
        "is_important": false,
        "due_on": null,
        "estimate": 0,
        "job_type_id": 0,
        "total_subtasks": 0,
        "completed_subtasks": 0,
        "open_subtasks": 0
    },
    "subscribers": [
        1,
        2
    ],
    "comments": [],
    "reminders": [],
    "subtasks": [],
    "task_list": null,
    "tracked_time": 0,
    "tracked_expenses": 0
}
Response: HTTP 200, application/json (Hide)
POST /comments/task/1 (as Member)

Payload:

1
2
3
{
    "body": "First comment"
}

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
    "single": {
        "id": 1,
        "class": "Comment",
        "url_path": "\/comments\/1",
        "attachments": [],
        "is_trashed": false,
        "trashed_on": null,
        "trashed_by_id": 0,
        "parent_type": "Task",
        "parent_id": 1,
        "body": "First comment",
        "body_formatted": "First comment",
        "body_plain_text": "First comment",
        "created_on": 1430164936,
        "created_by_id": 2,
        "updated_on": 1430164936,
        "updated_by_id": 2
    }
}
Response: HTTP 200, application/json (Hide)
POST /comments/task/1 (as Member)

Payload:

1
2
3
{
    "body": "Second comment"
}

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
    "single": {
        "id": 2,
        "class": "Comment",
        "url_path": "\/comments\/2",
        "attachments": [],
        "is_trashed": false,
        "trashed_on": null,
        "trashed_by_id": 0,
        "parent_type": "Task",
        "parent_id": 1,
        "body": "Second comment",
        "body_formatted": "Second comment",
        "body_plain_text": "Second comment",
        "created_on": 1430164936,
        "created_by_id": 2,
        "updated_on": 1430164936,
        "updated_by_id": 2
    }
}
Response: HTTP 200, application/json (Hide)
POST /projects/1/tasks (as Member)

Payload:

1
2
3
4
5
6
{
    "name": "Two hundred push ups",
    "subscribers": [
        1
    ]
}

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
    "single": {
        "id": 2,
        "class": "Task",
        "url_path": "\/projects\/1\/tasks\/2",
        "name": "Two hundred push ups",
        "assignee_id": 0,
        "delegated_by_id": 0,
        "completed_on": null,
        "completed_by_id": null,
        "is_completed": false,
        "comments_count": 0,
        "attachments": [],
        "labels": [],
        "is_trashed": false,
        "trashed_on": null,
        "trashed_by_id": 0,
        "project_id": 1,
        "is_hidden_from_clients": false,
        "body": "",
        "body_formatted": "",
        "created_on": 1430164936,
        "created_by_id": 2,
        "updated_on": 1430164936,
        "updated_by_id": 2,
        "task_number": 2,
        "task_list_id": 0,
        "position": 2,
        "is_important": false,
        "due_on": null,
        "estimate": 0,
        "job_type_id": 0,
        "total_subtasks": 0,
        "completed_subtasks": 0,
        "open_subtasks": 0
    },
    "subscribers": [
        1,
        2
    ],
    "comments": [],
    "reminders": [],
    "subtasks": [],
    "task_list": null,
    "tracked_time": 0,
    "tracked_expenses": 0
}

When we check our notifications stream, we'll see these notifications:

Response: HTTP 200, application/json (Hide)
GET /notifications

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
{
    "notifications": [
        {
            "id": 5,
            "class": "NewTaskNotification",
            "url_path": "\/notifications\/5",
            "parent_type": "Task",
            "parent_id": 2,
            "created_on": 1430164936,
            "sender_id": 2
        },
        {
            "id": 4,
            "class": "NewCommentNotification",
            "url_path": "\/notifications\/4",
            "parent_type": "Task",
            "parent_id": 1,
            "created_on": 1430164936,
            "sender_id": 2,
            "comment_id": 2
        },
        {
            "id": 3,
            "class": "NewCommentNotification",
            "url_path": "\/notifications\/3",
            "parent_type": "Task",
            "parent_id": 1,
            "created_on": 1430164936,
            "sender_id": 2,
            "comment_id": 1
        },
        {
            "id": 2,
            "class": "NewTaskNotification",
            "url_path": "\/notifications\/2",
            "parent_type": "Task",
            "parent_id": 1,
            "created_on": 1430164935,
            "sender_id": 2
        }
    ],
    "related": {
        "Task": {
            "1": {
                "id": 1,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/1",
                "name": "One hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 2,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "created_on": 1430164935,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 1,
                "task_list_id": 0,
                "position": 1,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "2": {
                "id": 2,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/2",
                "name": "Two hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 0,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "",
                "body_formatted": "",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 2,
                "task_list_id": 0,
                "position": 2,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            }
        },
        "Project": {
            "1": {
                "id": 1,
                "class": "Project",
                "url_path": "\/projects\/1",
                "name": "Test Project",
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "members": [
                    1,
                    2
                ],
                "category_id": 0,
                "label_id": 0,
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "created_on": 1430164935,
                "created_by_id": 1,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "body": null,
                "body_formatted": "",
                "company_id": 1,
                "leader_id": 1,
                "currency_id": 2,
                "template_id": 0,
                "based_on_type": null,
                "based_on_id": null,
                "email": "notifications+m2p-6yoXZuE@mail.manageprojects.com",
                "is_tracking_enabled": true,
                "is_client_reporting_enabled": false,
                "budget": null,
                "count_tasks": 2,
                "count_discussions": 0,
                "count_files": 0,
                "count_notes": 0
            }
        },
        "Comment": {
            "2": {
                "id": 2,
                "class": "Comment",
                "url_path": "\/comments\/2",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "Second comment",
                "body_formatted": "Second comment",
                "body_plain_text": "Second comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            },
            "1": {
                "id": 1,
                "class": "Comment",
                "url_path": "\/comments\/1",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "First comment",
                "body_formatted": "First comment",
                "body_plain_text": "First comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            }
        }
    }
}

Another type of notification response that we can get are aggregated notifications by an updated object. In our scenario, we have two updated objects (tasks), where for first task we got new subscription and two new comments, and for the second task we just got notification about new subscription:

Response: HTTP 200, application/json (Hide)
GET /notifications/object-updates

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
{
    "objects_and_updates": [
        {
            "object": {
                "id": 2,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/2",
                "name": "Two hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 0,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "",
                "body_formatted": "",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 2,
                "task_list_id": 0,
                "position": 2,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": {
                "new_instance": 1
            },
            "last_update_on": 1430164936,
            "is_subscribed": true
        },
        {
            "object": {
                "id": 1,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/1",
                "name": "One hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 2,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "created_on": 1430164935,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 1,
                "task_list_id": 0,
                "position": 1,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": {
                "new_comments": 2,
                "new_instance": 1,
                "mentions": 1
            },
            "last_update_on": 1430164936,
            "is_subscribed": true
        }
    ],
    "related": {
        "Project": {
            "1": {
                "id": 1,
                "class": "Project",
                "url_path": "\/projects\/1",
                "name": "Test Project",
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "members": [
                    1,
                    2
                ],
                "category_id": 0,
                "label_id": 0,
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "created_on": 1430164935,
                "created_by_id": 1,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "body": null,
                "body_formatted": "",
                "company_id": 1,
                "leader_id": 1,
                "currency_id": 2,
                "template_id": 0,
                "based_on_type": null,
                "based_on_id": null,
                "email": "notifications+m2p-6yoXZuE@mail.manageprojects.com",
                "is_tracking_enabled": true,
                "is_client_reporting_enabled": false,
                "budget": null,
                "count_tasks": 2,
                "count_discussions": 0,
                "count_files": 0,
                "count_notes": 0
            }
        },
        "Comment": {
            "2": {
                "id": 2,
                "class": "Comment",
                "url_path": "\/comments\/2",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "Second comment",
                "body_formatted": "Second comment",
                "body_plain_text": "Second comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            },
            "1": {
                "id": 1,
                "class": "Comment",
                "url_path": "\/comments\/1",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "First comment",
                "body_formatted": "First comment",
                "body_plain_text": "First comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            }
        }
    },
    "total_unread": -1
}

Special case of object updates response are recent notification updates. Unlike regular object updates collection that is paginated and returns 30 objects per page, recent returns only top 5 and indication how many other unseen objects are there in the stream:

Response: HTTP 200, application/json (Hide)
GET /notifications/object-updates/recent

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
{
    "objects_and_updates": [
        {
            "object": {
                "id": 2,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/2",
                "name": "Two hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 0,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "",
                "body_formatted": "",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 2,
                "task_list_id": 0,
                "position": 2,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": {
                "new_instance": 1
            },
            "last_update_on": 1430164936,
            "is_subscribed": true
        },
        {
            "object": {
                "id": 1,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/1",
                "name": "One hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 2,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "created_on": 1430164935,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 1,
                "task_list_id": 0,
                "position": 1,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": {
                "new_comments": 2,
                "new_instance": 1,
                "mentions": 1
            },
            "last_update_on": 1430164936,
            "is_subscribed": true
        }
    ],
    "related": {
        "Project": {
            "1": {
                "id": 1,
                "class": "Project",
                "url_path": "\/projects\/1",
                "name": "Test Project",
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "members": [
                    1,
                    2
                ],
                "category_id": 0,
                "label_id": 0,
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "created_on": 1430164935,
                "created_by_id": 1,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "body": null,
                "body_formatted": "",
                "company_id": 1,
                "leader_id": 1,
                "currency_id": 2,
                "template_id": 0,
                "based_on_type": null,
                "based_on_id": null,
                "email": "notifications+m2p-6yoXZuE@mail.manageprojects.com",
                "is_tracking_enabled": true,
                "is_client_reporting_enabled": false,
                "budget": null,
                "count_tasks": 2,
                "count_discussions": 0,
                "count_files": 0,
                "count_notes": 0
            }
        },
        "Comment": {
            "2": {
                "id": 2,
                "class": "Comment",
                "url_path": "\/comments\/2",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "Second comment",
                "body_formatted": "Second comment",
                "body_plain_text": "Second comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            },
            "1": {
                "id": 1,
                "class": "Comment",
                "url_path": "\/comments\/1",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "First comment",
                "body_formatted": "First comment",
                "body_plain_text": "First comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            }
        }
    },
    "total_unread": 2
}

Object updates response returns unseen updates, so if we visit the task:

Response: HTTP 200, application/json (Hide)
GET /projects/1/tasks/1

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
{
    "single": {
        "id": 1,
        "class": "Task",
        "url_path": "\/projects\/1\/tasks\/1",
        "name": "One hundred push ups",
        "assignee_id": 0,
        "delegated_by_id": 0,
        "completed_on": null,
        "completed_by_id": null,
        "is_completed": false,
        "comments_count": 2,
        "attachments": [],
        "labels": [],
        "is_trashed": false,
        "trashed_on": null,
        "trashed_by_id": 0,
        "project_id": 1,
        "is_hidden_from_clients": false,
        "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
        "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
        "created_on": 1430164935,
        "created_by_id": 2,
        "updated_on": 1430164936,
        "updated_by_id": 2,
        "task_number": 1,
        "task_list_id": 0,
        "position": 1,
        "is_important": false,
        "due_on": null,
        "estimate": 0,
        "job_type_id": 0,
        "total_subtasks": 0,
        "completed_subtasks": 0,
        "open_subtasks": 0
    },
    "subscribers": [
        1,
        2
    ],
    "comments": [
        {
            "id": 2,
            "class": "Comment",
            "url_path": "\/comments\/2",
            "attachments": [],
            "is_trashed": false,
            "trashed_on": null,
            "trashed_by_id": 0,
            "parent_type": "Task",
            "parent_id": 1,
            "body": "Second comment",
            "body_formatted": "Second comment",
            "body_plain_text": "Second comment",
            "created_on": 1430164936,
            "created_by_id": 2,
            "updated_on": 1430164936,
            "updated_by_id": 2
        },
        {
            "id": 1,
            "class": "Comment",
            "url_path": "\/comments\/1",
            "attachments": [],
            "is_trashed": false,
            "trashed_on": null,
            "trashed_by_id": 0,
            "parent_type": "Task",
            "parent_id": 1,
            "body": "First comment",
            "body_formatted": "First comment",
            "body_plain_text": "First comment",
            "created_on": 1430164936,
            "created_by_id": 2,
            "updated_on": 1430164936,
            "updated_by_id": 2
        }
    ],
    "reminders": [],
    "subtasks": [],
    "task_list": null,
    "tracked_time": 0,
    "tracked_expenses": 0
}

response will still include this task, but update counters will be removed because user saw them:

Response: HTTP 200, application/json (Hide)
GET /notifications/object-updates

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
{
    "objects_and_updates": [
        {
            "object": {
                "id": 2,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/2",
                "name": "Two hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 0,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "",
                "body_formatted": "",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 2,
                "task_list_id": 0,
                "position": 2,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": {
                "new_instance": 1
            },
            "last_update_on": 1430164936,
            "is_subscribed": true
        },
        {
            "object": {
                "id": 1,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/1",
                "name": "One hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 2,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "created_on": 1430164935,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 1,
                "task_list_id": 0,
                "position": 1,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": [],
            "last_update_on": 1430164936,
            "is_subscribed": true
        }
    ],
    "related": {
        "Project": {
            "1": {
                "id": 1,
                "class": "Project",
                "url_path": "\/projects\/1",
                "name": "Test Project",
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "members": [
                    1,
                    2
                ],
                "category_id": 0,
                "label_id": 0,
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "created_on": 1430164935,
                "created_by_id": 1,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "body": null,
                "body_formatted": "",
                "company_id": 1,
                "leader_id": 1,
                "currency_id": 2,
                "template_id": 0,
                "based_on_type": null,
                "based_on_id": null,
                "email": "notifications+m2p-6yoXZuE@mail.manageprojects.com",
                "is_tracking_enabled": true,
                "is_client_reporting_enabled": false,
                "budget": null,
                "count_tasks": 2,
                "count_discussions": 0,
                "count_files": 0,
                "count_notes": 0
            }
        },
        "Comment": {
            "2": {
                "id": 2,
                "class": "Comment",
                "url_path": "\/comments\/2",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "Second comment",
                "body_formatted": "Second comment",
                "body_plain_text": "Second comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            },
            "1": {
                "id": 1,
                "class": "Comment",
                "url_path": "\/comments\/1",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "First comment",
                "body_formatted": "First comment",
                "body_plain_text": "First comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            }
        }
    },
    "total_unread": -1
}
Response: HTTP 200, application/json (Hide)
GET /notifications/object-updates/recent

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
{
    "objects_and_updates": [
        {
            "object": {
                "id": 2,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/2",
                "name": "Two hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 0,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "",
                "body_formatted": "",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 2,
                "task_list_id": 0,
                "position": 2,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": {
                "new_instance": 1
            },
            "last_update_on": 1430164936,
            "is_subscribed": true
        },
        {
            "object": {
                "id": 1,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/1",
                "name": "One hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 2,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "created_on": 1430164935,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 1,
                "task_list_id": 0,
                "position": 1,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": [],
            "last_update_on": 1430164936,
            "is_subscribed": true
        }
    ],
    "related": {
        "Project": {
            "1": {
                "id": 1,
                "class": "Project",
                "url_path": "\/projects\/1",
                "name": "Test Project",
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "members": [
                    1,
                    2
                ],
                "category_id": 0,
                "label_id": 0,
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "created_on": 1430164935,
                "created_by_id": 1,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "body": null,
                "body_formatted": "",
                "company_id": 1,
                "leader_id": 1,
                "currency_id": 2,
                "template_id": 0,
                "based_on_type": null,
                "based_on_id": null,
                "email": "notifications+m2p-6yoXZuE@mail.manageprojects.com",
                "is_tracking_enabled": true,
                "is_client_reporting_enabled": false,
                "budget": null,
                "count_tasks": 2,
                "count_discussions": 0,
                "count_files": 0,
                "count_notes": 0
            }
        },
        "Comment": {
            "2": {
                "id": 2,
                "class": "Comment",
                "url_path": "\/comments\/2",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "Second comment",
                "body_formatted": "Second comment",
                "body_plain_text": "Second comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            },
            "1": {
                "id": 1,
                "class": "Comment",
                "url_path": "\/comments\/1",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "First comment",
                "body_formatted": "First comment",
                "body_plain_text": "First comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            }
        }
    },
    "total_unread": 1
}

Lets try how things work when task gets reassigned multiple times:

Response: HTTP 200, application/json (Hide)
PUT /projects/1/tasks/1 (as Member)

Payload:

1
2
3
{
    "assignee_id": 1
}

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
{
    "single": {
        "id": 1,
        "class": "Task",
        "url_path": "\/projects\/1\/tasks\/1",
        "name": "One hundred push ups",
        "assignee_id": 1,
        "delegated_by_id": 2,
        "completed_on": null,
        "completed_by_id": null,
        "is_completed": false,
        "comments_count": 2,
        "attachments": [],
        "labels": [],
        "is_trashed": false,
        "trashed_on": null,
        "trashed_by_id": 0,
        "project_id": 1,
        "is_hidden_from_clients": false,
        "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
        "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
        "created_on": 1430164935,
        "created_by_id": 2,
        "updated_on": 1430164938,
        "updated_by_id": 2,
        "task_number": 1,
        "task_list_id": 0,
        "position": 1,
        "is_important": false,
        "due_on": null,
        "estimate": 0,
        "job_type_id": 0,
        "total_subtasks": 0,
        "completed_subtasks": 0,
        "open_subtasks": 0
    },
    "subscribers": [
        1,
        2
    ],
    "comments": [
        {
            "id": 2,
            "class": "Comment",
            "url_path": "\/comments\/2",
            "attachments": [],
            "is_trashed": false,
            "trashed_on": null,
            "trashed_by_id": 0,
            "parent_type": "Task",
            "parent_id": 1,
            "body": "Second comment",
            "body_formatted": "Second comment",
            "body_plain_text": "Second comment",
            "created_on": 1430164936,
            "created_by_id": 2,
            "updated_on": 1430164936,
            "updated_by_id": 2
        },
        {
            "id": 1,
            "class": "Comment",
            "url_path": "\/comments\/1",
            "attachments": [],
            "is_trashed": false,
            "trashed_on": null,
            "trashed_by_id": 0,
            "parent_type": "Task",
            "parent_id": 1,
            "body": "First comment",
            "body_formatted": "First comment",
            "body_plain_text": "First comment",
            "created_on": 1430164936,
            "created_by_id": 2,
            "updated_on": 1430164936,
            "updated_by_id": 2
        }
    ],
    "reminders": [],
    "subtasks": [],
    "task_list": null,
    "tracked_time": 0,
    "tracked_expenses": 0
}
Response: HTTP 200, application/json (Hide)
PUT /projects/1/tasks/1 (as Member)

Payload:

1
2
3
{
    "assignee_id": 0
}

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
{
    "single": {
        "id": 1,
        "class": "Task",
        "url_path": "\/projects\/1\/tasks\/1",
        "name": "One hundred push ups",
        "assignee_id": 0,
        "delegated_by_id": 2,
        "completed_on": null,
        "completed_by_id": null,
        "is_completed": false,
        "comments_count": 2,
        "attachments": [],
        "labels": [],
        "is_trashed": false,
        "trashed_on": null,
        "trashed_by_id": 0,
        "project_id": 1,
        "is_hidden_from_clients": false,
        "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
        "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
        "created_on": 1430164935,
        "created_by_id": 2,
        "updated_on": 1430164938,
        "updated_by_id": 2,
        "task_number": 1,
        "task_list_id": 0,
        "position": 1,
        "is_important": false,
        "due_on": null,
        "estimate": 0,
        "job_type_id": 0,
        "total_subtasks": 0,
        "completed_subtasks": 0,
        "open_subtasks": 0
    },
    "subscribers": [
        1,
        2
    ],
    "comments": [
        {
            "id": 2,
            "class": "Comment",
            "url_path": "\/comments\/2",
            "attachments": [],
            "is_trashed": false,
            "trashed_on": null,
            "trashed_by_id": 0,
            "parent_type": "Task",
            "parent_id": 1,
            "body": "Second comment",
            "body_formatted": "Second comment",
            "body_plain_text": "Second comment",
            "created_on": 1430164936,
            "created_by_id": 2,
            "updated_on": 1430164936,
            "updated_by_id": 2
        },
        {
            "id": 1,
            "class": "Comment",
            "url_path": "\/comments\/1",
            "attachments": [],
            "is_trashed": false,
            "trashed_on": null,
            "trashed_by_id": 0,
            "parent_type": "Task",
            "parent_id": 1,
            "body": "First comment",
            "body_formatted": "First comment",
            "body_plain_text": "First comment",
            "created_on": 1430164936,
            "created_by_id": 2,
            "updated_on": 1430164936,
            "updated_by_id": 2
        }
    ],
    "reminders": [],
    "subtasks": [],
    "task_list": null,
    "tracked_time": 0,
    "tracked_expenses": 0
}
Response: HTTP 200, application/json (Hide)
PUT /projects/1/tasks/1 (as Member)

Payload:

1
2
3
{
    "assignee_id": 1
}

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
{
    "single": {
        "id": 1,
        "class": "Task",
        "url_path": "\/projects\/1\/tasks\/1",
        "name": "One hundred push ups",
        "assignee_id": 1,
        "delegated_by_id": 2,
        "completed_on": null,
        "completed_by_id": null,
        "is_completed": false,
        "comments_count": 2,
        "attachments": [],
        "labels": [],
        "is_trashed": false,
        "trashed_on": null,
        "trashed_by_id": 0,
        "project_id": 1,
        "is_hidden_from_clients": false,
        "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
        "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
        "created_on": 1430164935,
        "created_by_id": 2,
        "updated_on": 1430164938,
        "updated_by_id": 2,
        "task_number": 1,
        "task_list_id": 0,
        "position": 1,
        "is_important": false,
        "due_on": null,
        "estimate": 0,
        "job_type_id": 0,
        "total_subtasks": 0,
        "completed_subtasks": 0,
        "open_subtasks": 0
    },
    "subscribers": [
        1,
        2
    ],
    "comments": [
        {
            "id": 2,
            "class": "Comment",
            "url_path": "\/comments\/2",
            "attachments": [],
            "is_trashed": false,
            "trashed_on": null,
            "trashed_by_id": 0,
            "parent_type": "Task",
            "parent_id": 1,
            "body": "Second comment",
            "body_formatted": "Second comment",
            "body_plain_text": "Second comment",
            "created_on": 1430164936,
            "created_by_id": 2,
            "updated_on": 1430164936,
            "updated_by_id": 2
        },
        {
            "id": 1,
            "class": "Comment",
            "url_path": "\/comments\/1",
            "attachments": [],
            "is_trashed": false,
            "trashed_on": null,
            "trashed_by_id": 0,
            "parent_type": "Task",
            "parent_id": 1,
            "body": "First comment",
            "body_formatted": "First comment",
            "body_plain_text": "First comment",
            "created_on": 1430164936,
            "created_by_id": 2,
            "updated_on": 1430164936,
            "updated_by_id": 2
        }
    ],
    "reminders": [],
    "subtasks": [],
    "task_list": null,
    "tracked_time": 0,
    "tracked_expenses": 0
}

We'll get this info in /notifications/object-updates response:

Response: HTTP 200, application/json (Hide)
GET /notifications/object-updates

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
{
    "objects_and_updates": [
        {
            "object": {
                "id": 1,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/1",
                "name": "One hundred push ups",
                "assignee_id": 1,
                "delegated_by_id": 2,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 2,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "created_on": 1430164935,
                "created_by_id": 2,
                "updated_on": 1430164938,
                "updated_by_id": 2,
                "task_number": 1,
                "task_list_id": 0,
                "position": 1,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": {
                "reassigned": 2
            },
            "last_update_on": 1430164938,
            "is_subscribed": true
        },
        {
            "object": {
                "id": 2,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/2",
                "name": "Two hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 0,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "",
                "body_formatted": "",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 2,
                "task_list_id": 0,
                "position": 2,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": {
                "new_instance": 1
            },
            "last_update_on": 1430164936,
            "is_subscribed": true
        }
    ],
    "related": {
        "Project": {
            "1": {
                "id": 1,
                "class": "Project",
                "url_path": "\/projects\/1",
                "name": "Test Project",
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "members": [
                    1,
                    2
                ],
                "category_id": 0,
                "label_id": 0,
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "created_on": 1430164935,
                "created_by_id": 1,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "body": null,
                "body_formatted": "",
                "company_id": 1,
                "leader_id": 1,
                "currency_id": 2,
                "template_id": 0,
                "based_on_type": null,
                "based_on_id": null,
                "email": "notifications+m2p-6yoXZuE@mail.manageprojects.com",
                "is_tracking_enabled": true,
                "is_client_reporting_enabled": false,
                "budget": null,
                "count_tasks": 2,
                "count_discussions": 0,
                "count_files": 0,
                "count_notes": 0
            }
        },
        "Comment": {
            "2": {
                "id": 2,
                "class": "Comment",
                "url_path": "\/comments\/2",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "Second comment",
                "body_formatted": "Second comment",
                "body_plain_text": "Second comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            },
            "1": {
                "id": 1,
                "class": "Comment",
                "url_path": "\/comments\/1",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "First comment",
                "body_formatted": "First comment",
                "body_plain_text": "First comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            }
        }
    },
    "total_unread": -1
}
Response: HTTP 200, application/json (Hide)
GET /notifications/object-updates/recent

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
{
    "objects_and_updates": [
        {
            "object": {
                "id": 1,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/1",
                "name": "One hundred push ups",
                "assignee_id": 1,
                "delegated_by_id": 2,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 2,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "body_formatted": "<span class=\"mention\">@Owner<\/span> please do some push-ups",
                "created_on": 1430164935,
                "created_by_id": 2,
                "updated_on": 1430164938,
                "updated_by_id": 2,
                "task_number": 1,
                "task_list_id": 0,
                "position": 1,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": {
                "reassigned": 2
            },
            "last_update_on": 1430164938,
            "is_subscribed": true
        },
        {
            "object": {
                "id": 2,
                "class": "Task",
                "url_path": "\/projects\/1\/tasks\/2",
                "name": "Two hundred push ups",
                "assignee_id": 0,
                "delegated_by_id": 0,
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "comments_count": 0,
                "attachments": [],
                "labels": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "project_id": 1,
                "is_hidden_from_clients": false,
                "body": "",
                "body_formatted": "",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "task_number": 2,
                "task_list_id": 0,
                "position": 2,
                "is_important": false,
                "due_on": null,
                "estimate": 0,
                "job_type_id": 0,
                "total_subtasks": 0,
                "completed_subtasks": 0,
                "open_subtasks": 0
            },
            "updates": {
                "new_instance": 1
            },
            "last_update_on": 1430164936,
            "is_subscribed": true
        }
    ],
    "related": {
        "Project": {
            "1": {
                "id": 1,
                "class": "Project",
                "url_path": "\/projects\/1",
                "name": "Test Project",
                "completed_on": null,
                "completed_by_id": null,
                "is_completed": false,
                "members": [
                    1,
                    2
                ],
                "category_id": 0,
                "label_id": 0,
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "created_on": 1430164935,
                "created_by_id": 1,
                "updated_on": 1430164936,
                "updated_by_id": 2,
                "body": null,
                "body_formatted": "",
                "company_id": 1,
                "leader_id": 1,
                "currency_id": 2,
                "template_id": 0,
                "based_on_type": null,
                "based_on_id": null,
                "email": "notifications+m2p-6yoXZuE@mail.manageprojects.com",
                "is_tracking_enabled": true,
                "is_client_reporting_enabled": false,
                "budget": null,
                "count_tasks": 2,
                "count_discussions": 0,
                "count_files": 0,
                "count_notes": 0
            }
        },
        "Comment": {
            "2": {
                "id": 2,
                "class": "Comment",
                "url_path": "\/comments\/2",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "Second comment",
                "body_formatted": "Second comment",
                "body_plain_text": "Second comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            },
            "1": {
                "id": 1,
                "class": "Comment",
                "url_path": "\/comments\/1",
                "attachments": [],
                "is_trashed": false,
                "trashed_on": null,
                "trashed_by_id": 0,
                "parent_type": "Task",
                "parent_id": 1,
                "body": "First comment",
                "body_formatted": "First comment",
                "body_plain_text": "First comment",
                "created_on": 1430164936,
                "created_by_id": 2,
                "updated_on": 1430164936,
                "updated_by_id": 2
            }
        }
    },
    "total_unread": 2
}