Skip to content
English - United Kingdom
  • There are no suggestions because the search field is empty.

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.

Related