Update Asset
Update fields on an existing asset.
/api/v1/assets/{id}Description
Send only the fields you want to change. Field names match Add Asset.
If you set asset_status to In Use, include assign_to_email. Send an empty assign_to_email to remove the current assignment.
Device detail fields may be sent at the top level or inside a specifications object.
Optional custom_fields updates stored values for the fields you include. Match field_label values from GET /api/v1/assets/custom-fields.
custom_fields[].value accepts string, number, or boolean (stored as a string). Send empty string or null to clear a previously stored value. For currency fields, send the amount only or { "amount": "..." }; currency is fixed on the field definition.
Fields with is_readonly true cannot be set; including them returns 422.
Request
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer <access_token> | Yes |
| Content-Type | application/json | Yes |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Serial number, customer asset ID, internal asset ID, or asset number. |
Body Parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| product_type | string | No | Laptop | Device category (e.g. Laptop, Desktop, Smartphone, Monitor, Printer). |
| product_name | string | No | MacBook Pro 14 | Product name or model title. |
| manufacturer | string | No | Apple | Brand or manufacturer. |
| serial_number | string | No | C02XK1ABCDEF | Device serial number (must be unique per company). |
| asset_status | string | No | In Use | Current status. Must match a status configured for your company. Common values: Ready to Deploy, In Use, Unprovisioned, Lost/Stolen, Faulty, Recycled, Pending Recovery, Pending, Pending Processing, In Processing, Awaiting Action, Processing Started, Resolved, Under Review, Open, Disposed, Available, Assigned, Faulty, In Use, Retired. |
| model_number | string | No | A2338 | Manufacturer model identifier. |
| sku | string | No | MBP-16-2021 | Stock keeping unit. Cannot be a parent SKU with product variants. |
| asset_id | string | No | IT-1234-ABCD | Customer asset ID. Alias: customer_asset_id. |
| condition | string | No | Good | New, Good, Fair, or Poor. |
| purchase_date | string | No | 2023-01-15 | Purchase date (YYYY-MM-DD). |
| purchase_cost | number | No | 1999.99 | Acquisition cost. Alias: price. |
| purchase_type | string | No | Leased | Leased, Owned, Financed, or Rented. |
| warranty_start | string | No | 2023-01-15 | Warranty start date. |
| warranty_expire | string | No | 2025-01-14 | Warranty end date (must be after warranty_start). |
| warranty_type | string | No | Manufacturer | Warranty type: Manufacturer or Extended. |
| assign_to_email | string | No | [email protected] | Employee work email. Required when asset_status is In Use. |
| department | string | No | IT | Department name. Created automatically if it does not exist. |
| location_name | string | No | Headquarters | Where the device is stored or used (e.g. office name). |
| vendor | string | No | CDW | Vendor or supplier name. Must already exist in your company settings. |
| description | string | No | Engineering team laptop | Free-text asset notes. |
| end_of_life | string | No | 2028-06-01 | Planned end-of-life date (YYYY-MM-DD). |
| custom_fields | array | No | — | Manage-app custom field values. Use Custom Field List to discover field labels. File-type and read-only fields are not writable via API. |
Laptop / Desktop specifications
Applicable when product_type is Laptop or Desktop.
Fields
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| processor_name | string | No | Apple M3 Pro | CPU / processor. |
| memory | string | No | 16 GB | RAM. |
| storage | string | No | 512 GB SSD | Storage capacity. |
| os | string | No | macOS 14 | Operating system. |
| mac_address | string | No | 00:1A:2B:3C:4D:5E | MAC address. |
| ip_address | string | No | 192.168.1.42 | IP address. |
| encryption | string | No | FileVault | Disk encryption status or type. |
| antivirus | string | No | Installed | Whether antivirus is Installed or not Installed. |
Smartphone / Tablet specifications
Applicable when product_type is Smartphone or Tablet.
Fields
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| storage | string | No | 256 GB | Storage capacity. |
| os | string | No | iOS 17 | Operating system. |
| imei | string | No | 356938035643809 | Primary IMEI (must be unique per company). |
| imei2 | string | No | 356938035643817 | Secondary IMEI (must be unique per company). |
| mac_address | string | No | 00:1A:2B:3C:4D:5E | MAC address. |
| mdm_status | string | No | Enrolled | MDM enrollment status. |
Monitor specifications
Applicable when product_type is Monitor.
Fields
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| screen_size | string | No | 27" | Display size. |
| resolution | string | No | 2560x1440 | Screen resolution. |
| aspect_ratio | string | No | 16:9 | Aspect ratio. |
Printer specifications
Applicable when product_type is Printer.
Fields
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| print_resolution | string | No | 1200x1200 dpi | Print resolution. |
| printer_type | string | No | Laser | Printer technology type. |
Each object in custom_fields[]
Optional. Send only the custom fields you want to update. An empty or null value clears the stored value for that field.
Fields
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| field_label | string | No | Cost Center | Custom field label from Custom Field List. |
| value | string | number | boolean | object | null | No | Cost Center A | Accepted as string, number, boolean, or object; stored as a string. Prefer strings. Checkbox may use true/false. Multiselect must be a comma-separated string. Currency fields accept the numeric amount only (e.g. "1500.00") or an object with amount (e.g. { "amount": "1500.00" }); the currency code is fixed on the field definition and cannot be overridden. Required when the definition is required for this product type. Send empty string or null to clear on update. |
Example Request Body
{
"asset_status": "In Use",
"assign_to_email": "[email protected]",
"condition": "Good",
"memory": "32 GB",
"antivirus": "Installed",
"warranty_type": "Extended",
"description": "Upgraded RAM",
"custom_fields": [
{
"field_label": "Cost Center",
"value": "Cost Center B"
}
]
}Response
| Field | Type | Description |
|---|---|---|
| message | string | Human-readable confirmation. |
Related Endpoints
Request
curl -X PUT https://dev-api.unduit.com/api/v1/assets/C02XK1ABCDEF \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"asset_status": "In Use",
"assign_to_email": "[email protected]",
"condition": "Good",
"memory": "32 GB",
"antivirus": "Installed",
"warranty_type": "Extended",
"description": "Upgraded RAM",
"custom_fields": [
{
"field_label": "Cost Center",
"value": "Cost Center B"
}
]
}'Success Response
{
"message": "Asset updated successfully."
}