Retrieving Issue activity
Follow what has happened on an Issue: the internal notes case handlers write to each other, and the audit trail of every change made to it. Use this for compliance reporting, exporting case records, or confirming that changes your integration made were applied.
Two endpoints provide this. Comments returns the notes. History returns the timeline of changes, including changes made through the API.
Both are read only. Neither can be written through the API.
On this page: Endpoints · Permissions · Comments · Mentions · History · Placeholders in history · Errors
Endpoints
| Method and path | What it does |
|---|---|
GET /v1/public/issues/{id}/comments |
Returns the internal comments on an Issue. |
GET /v1/public/issues/{id}/history |
Returns the change history for an Issue. |
| Path parameter | Required | Description |
|---|---|---|
id |
Yes | The unique identifier of the Issue. |
Permissions
Requires an App Integration with read only or full access for Issues. See how do I create an App Integration and get API credentials?
Comments
GET /v1/public/issues/{id}/comments
Provides access to all comments related to an Issue, in the same order shown in the interface, oldest first. If the Issue has no comments, the response is an empty array.
Comments are notes between case handlers. They are not part of the conversation with the reporter.
curl -X GET '{API_BASE_URL}/v1/public/issues/1001/comments' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
Example response:
[
{
"id": 285,
"value": "Can we look further into this issue?",
"user": "John Doe",
"userId": 166,
"mentions": [],
"createdAt": "2026-01-27T11:07:03.520Z",
"updatedAt": "2026-01-27T11:07:08.322Z"
},
{
"id": 286,
"value": "@John Doe yes we can :)",
"user": "John Smith",
"userId": 5,
"mentions": [
{
"userId": 166,
"user": "John Doe",
"position": 0
}
],
"createdAt": "2026-01-27T11:07:10.912Z",
"updatedAt": "2026-01-27T11:07:20.289Z"
}
]
| Field | Type | Description |
|---|---|---|
id |
Number | Unique identifier for the comment. |
value |
String | The text content of the comment. |
user |
String | Name of the User who posted the comment. |
userId |
Number | Unique identifier of the User who posted the comment. |
mentions |
Array | List of mentioned Users in the comment. Empty array if none. See below. |
createdAt |
String | Timestamp when the comment was created. |
updatedAt |
String | Timestamp when the comment was last updated. |
Mentions
Each entry in mentions identifies a User referenced in the comment text.
| Field | Type | Description |
|---|---|---|
userId |
Number | ID of the mentioned User. |
user |
String | Name of the mentioned User. |
position |
Number | Character index in value where the mention starts. |
Use position if you need to render mentions as links or highlight them. It points at the start of the mention within the comment text.
If a User has been deleted from the system, their name appears as Deleted user in value, in user, and in mentions. The userId is still returned.
History
GET /v1/public/issues/{id}/history
Provides a clear timeline of everything that happens to an Issue. It shows what changed, who did it, and when it happened. Entries are sorted by createdAt.
curl -X GET '{API_BASE_URL}/v1/public/issues/1001/history' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
Example response:
[
{
"id": 150,
"action": "Jane Smith updated the status from In Progress to Resolved",
"userId": 67,
"createdAt": "2025-12-20T10:30:00.000Z",
"updatedAt": "2025-12-20T10:30:00.000Z"
},
{
"id": 149,
"action": "John Doe added document final-report.pdf",
"userId": 45,
"createdAt": "2025-12-20T09:15:22.000Z",
"updatedAt": "2025-12-20T09:15:22.000Z"
},
{
"id": 148,
"action": "Reporter sent a message",
"userId": null,
"createdAt": "2025-12-19T14:20:10.500Z",
"updatedAt": "2025-12-19T14:20:10.500Z"
},
{
"id": 146,
"action": "John Doe created issue",
"userId": 45,
"createdAt": "2025-12-18T04:30:38.153Z",
"updatedAt": "2025-12-18T04:30:38.153Z"
}
]
| Field | Type | Description |
|---|---|---|
id |
Number | Unique identifier for this history entry. |
action |
String | A simple description of what happened, for example "John Doe created issue". |
userId |
Number or null | The ID of the person who performed the action. Null for system or reporter actions. |
createdAt |
String | When the action occurred, as an ISO 8601 timestamp. |
updatedAt |
String | When this history entry was last updated, as an ISO 8601 timestamp. |
action is a simple description written for people to read, not a structured field. To detect specific changes reliably, use webhooks, which report changed fields by name.
Changes made through the API
When changes are made through the Public API, the integration name appears in the action. The userId is null, because no person performed the action.
{
"id": 125,
"action": "App integration MyIntegration updated the status from New to In Progress",
"userId": null,
"createdAt": "2025-12-18T12:00:00.000Z",
"updatedAt": "2025-12-18T12:00:00.000Z"
}
This gives a full audit trail of everything an integration has changed.
Placeholders in history
The action text uses fixed placeholders where a value is missing or no longer available.
| Placeholder | Meaning |
|---|---|
Deleted user |
The person who performed the action has been deleted from the system. The userId is still returned. |
Unassigned |
No one is assigned, used when showing assignee changes. Also shown when an Issue has no labels. |
None |
The entity or value could not be found. |
No date |
A date field is empty or has not been set. |
Labels are shown in a simple list format.
| Case | Shown as |
|---|---|
| Single label | [ 'urgent' ] |
| Multiple labels | [ 'urgent', 'security', 'critical' ] |
| No labels | Unassigned |
Errors
See the API error reference for the full list.
| Status | Cause | What to do |
|---|---|---|
| 401 | The token is missing, invalid, or expired. | Request a new token. Tokens are valid for 1 hour. |
| 403 | The Public API package is not enabled. | Contact your Customer Success Manager. |
| 404 | No Issue exists with that ID, or the integration cannot access it. | Check the ID against the list endpoint in Retrieving Issues. |