/api/v1/assets/{record}/timeline/{type}/{entry}
Get an asset timeline entry
Read one event or to-do from an asset’s timeline with its editable values, files, and comments.
Last updated
Request
GET /api/v1/assets/{record}/timeline/{type}/{entry}
Requires assets:read. For a todo entry, assets:todos is required as well. See token permissions.
Send Authorization: Bearer YOUR_API_TOKEN and Accept: application/json.
Path parameters
-
recordinteger Required - The numeric asset ID in your token’s organization.
-
typestring Required asset_eventfor an event recorded on this asset, ortodofor one of its to-dos. This matches thetypein the timeline.-
entryinteger Required - The entry’s
event_idfrom the timeline, or the to-doid.
Query parameters
This endpoint does not use query parameters.
Example
Set ASSETCENTER_API_TOKEN as described in the quick start. Replace example record and option IDs with values from your organization.
curl --request GET "https://my.assetcenter.app/api/v1/assets/123/timeline/asset_event/901" \
--header "Authorization: Bearer $ASSETCENTER_API_TOKEN" \
--header "Accept: application/json"
Response
200 OK. Illustrative values; IDs, fields, and timestamps will differ.
{
"data": {
"resource": "assets",
"record_id": 123,
"entry_id": 901,
"type": "asset_event",
"version": "9b65205d14352a77bf1dbe6844e1a01c7c5a2bd74a68d662b6d7192593d9061b",
"timezone": "UTC",
"can_update": true,
"can_delete": true,
"values": {
"event_date": "2026-09-30T17:00:00.000000Z",
"description": "Screen replaced."
},
"fields": [
{
"key": "event_date",
"type": "datetime",
"required": true
},
{
"key": "description",
"type": "editor",
"required": false
}
],
"event": {
"id": "asset_event:901",
"event_id": 901,
"type": "asset_event",
"event_date": "2026-09-30T17:00:00.000000Z",
"event_type": {
"id": 9,
"name": "Quick Note",
"slug": "quick-note",
"category": "system"
},
"description": "Screen replaced.",
"cost": null,
"date_due": null,
"created_by": {
"id": 4,
"name": "Alex Admin"
},
"related": {
"asset": {
"resource": "assets",
"id": 123,
"name": "LAP-042 Lenovo ThinkPad T14"
},
"person": null,
"previous_person": null,
"location": null,
"previous_location": null
},
"acquisition": null,
"warranty": null,
"billing": null,
"contract": null,
"comments": [
{
"id": 7,
"body": "Covered by warranty.",
"created_by": {
"id": 4,
"name": "Alex Admin"
},
"created_at": "2026-10-02T16:00:00.000000Z"
}
],
"attachments": [
{
"id": 3,
"name": "receipt.pdf",
"size": 48213,
"url": "https://files.example.com/receipt.pdf?signature=example",
"url_expires_at": "2026-10-02T16:15:00.000000Z"
}
],
"field_values": [],
"created_at": "2026-10-02T16:00:00.000000Z",
"updated_at": "2026-10-02T16:00:00.000000Z"
}
}
}
Behavior and constraints
version identifies the entry’s current state; send it back to update or delete the entry. It changes whenever the entry changes. values holds the entry’s current editable values in UTC, and fields lists each editable key with its type and whether it is required. Select fields with fixed choices include options as {"id", "name"} objects; send the id. Nested keys such as acquisition.price, warranty.end_date, billing.license_count, or field_values.104 are sent as nested objects when updating.
can_update and can_delete show whether this token may edit or delete the entry, based on assets:timeline:update and assets:timeline:delete and on whether the entry can be deleted at all. For events, event is the same entry shape as the timeline, always including comments, attachments, and field_values. For a todo entry, todo replaces event and holds the to-do with its comments and attachments. Attachment url values are temporary download links that expire at url_expires_at, 15 minutes after the request.
The responsible-person field is only offered when the token also has people:read. Drafts, entries belonging to another record, and entries in other organizations return 404. Edit an event through the record that owns it. When a timeline shows an event owned by another record, use that record’s path and type, taken from the entry’s type and related references.
Errors
401 means the token is missing, expired, revoked, or not a customer API token. 403 means a required permission or administrator access is missing. 404 means the record or entry is unavailable through this path. 422 identifies invalid or unsupported input; inspect the errors object when present. 429 means a rate limit was reached. See error handling and rate limits.