to navigate · to open See all results
PATCH / PUT /api/v1/assets/{record}

Update an asset

Update the supplied detail fields on an existing asset.

Last updated

Request

PATCH / PUT /api/v1/assets/{record}

Requires assets:update. See token permissions. Every listed permission is required for this endpoint.

Send Authorization: Bearer YOUR_API_TOKEN and Accept: application/json. Send request bodies as JSON with Content-Type: application/json.

record is the numeric asset ID in your token’s organization.

Request body

Field Type Usage
category_id integer Optional on update. Asset category ID from options.
model string Optional on update. Up to 255 characters; cannot be empty when supplied.
asset_tag string or null Optional. Up to 255 characters; unique within the organization.
manufacturer string or null Optional. Up to 255 characters.
model_number string or null Optional. Up to 255 characters.
serial_number string or null Optional. Up to 255 characters.
manufacture_date string or null Optional. YYYY-MM-DD.
parent_id integer or null Optional. Parent asset in this organization; null removes the component relationship. Cycles are rejected.
parent_cost_rollup boolean Optional. Including component costs requires a parent asset.
custom_fields object Optional when retaining the category; only supplied values change. Key values by field ID. Changing category requires all of its required fields. Discover them with creation options.
custom_field_times object Optional. Key HH:mm times by date-field ID; also supply the matching custom_fields date.

Example

Set ASSETCENTER_API_TOKEN as described in the quick start. Replace example record and option IDs with values from your organization.

cURL / Bash
curl --request PATCH "https://my.assetcenter.app/api/v1/assets/123" \
  --header "Authorization: Bearer $ASSETCENTER_API_TOKEN" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{"model":"Field laptop — engineering"}'

Response

200 OK. Example response; IDs, values, and timestamps will differ in your organization.

JSON
{
  "data": {
    "id": 123,
    "asset_tag": "LAP-042",
    "manufacturer": "Lenovo",
    "model": "Field laptop \u2014 engineering",
    "model_number": null,
    "serial_number": null,
    "manufacture_date": null,
    "parent_id": null,
    "parent_cost_rollup": false,
    "status": "available",
    "category_id": 7,
    "person_id": null,
    "location_id": null,
    "sublocation_id": null,
    "is_in_storage": false,
    "person_loan_due": null,
    "location_loan_due": null,
    "condition_id": null,
    "decommission_event_type_id": null,
    "created_at": "2026-09-07T16:00:00.000000Z",
    "updated_at": "2026-09-07T16:00:00.000000Z"
  }
}

Behavior and constraints

PATCH and PUT both update only the supplied fields. Supply at least one writable field. Unknown fields, lifecycle status, assignments, and file uploads are rejected. These inventory updates have no idempotency replay protection.

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. 429 means a rate limit was reached. See error handling and rate limits.