↑ ↓ to navigate · ↵ to open See all results
PATCH /api/v1/locations/{record}/timeline/{type}/{entry}

Update a location timeline entry

Edit an event or to-do on a location’s timeline, and add, rename, or remove its files and comments.

Last updated

Request

PATCH /api/v1/locations/{record}/timeline/{type}/{entry}

Requires locations:read and locations:timeline:update. For a todo entry, locations:todos is required as well. See token permissions.

Send Authorization: Bearer YOUR_API_TOKEN and Accept: application/json. Send request bodies as JSON with Content-Type: application/json, or as multipart/form-data when uploading attachments. This write requires Idempotency-Key. Reuse the same key only when retrying the same action.

Path parameters

record integer Required
The numeric location ID in your token’s organization.
type string Required
person_location_event for an event recorded on this location, or todo for one of its to-dos. This matches the type in the timeline.
entry integer Required
The entry’s event_id from the timeline, or the to-do id.

Query parameters

This endpoint does not use query parameters.

Request body

Field Type Required Description
version string Yes The 64-character version from the latest GET of this entry.
Editable keys varies No Any key listed in the entry’s fields, such as event_date, description, event_type_id, cost, or for to-dos name, notes, due_date, assigned_to, and is_complete. Send only what you want to change.
acquisition, warranty, billing, field_values object No Partial objects for nested keys, such as {"billing":{"license_count":12}} or {"field_values":{"104":"B-2001"}}. Unsent nested values are kept.
attachments[] file array No Up to 10 new files, each up to 10 MB: PNG, JPG, PDF, Word or Excel. Requires multipart/form-data.
comments[] string array No Up to 20 new plain-text comments, each up to 10,000 characters.
renamed_attachments object array No Objects with an attachment id from this entry and a new name that keeps the original file extension.
deleted_attachment_ids integer array No Attachment IDs from this entry to remove. An ID cannot also be renamed in the same request.

Get the entry first: its fields list the keys you can write for that entry, and its version is required.

Example

Set ASSETCENTER_API_TOKEN as described in the quick start. Replace example record and option IDs with values from your organization. Set IDEMPOTENCY_KEY to a new UUID for this action; keep it for retries. Set VERSION to the version from your latest GET.

cURL / Bash
curl --request PATCH "https://my.assetcenter.app/api/v1/locations/123/timeline/person_location_event/901" \
  --header "Authorization: Bearer $ASSETCENTER_API_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --header "Content-Type: application/json" \
  --data '{"version":"VERSION","description":"Updated by our integration."}'

To add files, rename or remove existing ones, use multipart/form-data:

cURL / Bash
curl --globoff --request PATCH "https://my.assetcenter.app/api/v1/locations/123/timeline/person_location_event/901" \
  --header "Authorization: Bearer $ASSETCENTER_API_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --form "version=$VERSION" \
  --form "renamed_attachments[0][id]=3" \
  --form "renamed_attachments[0][name]=invoice.pdf" \
  --form "comments[]=Invoice attached." \
  --form "attachments[]=@photo.jpg"

Response

200 OK. The counts confirm what this request added, renamed, and removed.

JSON
{
  "data": {
    "entry_id": 901,
    "entry_deleted": false,
    "attachments_count": 1,
    "comments_count": 1,
    "renamed_attachments_count": 1,
    "deleted_attachments_count": 0
  }
}

Behavior and constraints

Only the values you send change; everything else on the entry is kept, including nested details you leave out. event_date needs seconds and an explicit offset or Z, such as 2026-09-30T10:00:00-07:00; responses use UTC. Text is stored as plain text and escaped for display. Keys that are not in the entry’s fields, such as tenant_id or read-only values, return 422.

If anything changed the entry since your GET, version no longer matches and the request returns 409; get the entry again and reapply your change. Editing the most recent billing, acquisition, or warranty entry also updates the matching summary on the location; editing an older billing entry leaves current terms unchanged.

New files are stored privately and count toward your plan’s storage; exceeding it returns 422 with a plan error and changes nothing. Removed files are deleted once the request succeeds. If any step fails, nothing is changed. An Idempotency-Key retry must resend the same body and files.

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 child record is unavailable in this organization. 422 identifies invalid or unsupported input; inspect the errors object when present. 409 indicates a conflicting state or concurrent change; inspect the message and refresh the record before deciding how to proceed. Reusing an idempotency key with a different method, path, or body also returns 409. 429 means a rate limit was reached. See error handling and rate limits.