Add Asset
Add a new device or piece of equipment to your company's asset inventory.
/api/v1/assets/add-assetDescription
Register company equipment such as laptops, phones, monitors, or printers so you can track, assign, and manage it in Unduit.
When asset_status is In Use, include assign_to_email for the employee who will use the device. For statuses like Ready to Deploy, assign_to_email is optional.
Device details (processor, memory, IMEI, screen size, and so on) are optional. Send them as top-level fields or inside a specifications object — include only what applies to the product_type.
Optional custom_fields let you set Manage-app custom field values. Use GET /api/v1/assets/custom-fields to discover field labels for each product type.
custom_fields[].value accepts string, number, or boolean (stored as a string). Multiselect values must be a comma-separated string. 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
Request Body Parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| product_type | string | Yes | Laptop | Device category (e.g. Laptop, Desktop, Smartphone, Monitor, Printer). |
| product_name | string | Yes | MacBook Pro 14 | Product name or model title. |
| manufacturer | string | Yes | Apple | Brand or manufacturer. |
| serial_number | string | Yes | C02XK1ABCDEF | Device serial number (must be unique per company). |
| asset_status | string | Yes | 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. Required applicable fields must be included when creating an asset.
Fields
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| field_label | string | Yes | 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. |
Response Fields
| Field | Type | Description |
|---|---|---|
| success | string | Operation status message. |
| data | object | Created asset record object. |
| data.id | number | Internal asset ID. |
| data.asset_number | string | Generated unique asset number. |
| data.custom_fields | array | Applicable custom field definitions with stored values for the created asset. |
| data.custom_fields[].field_label | string | Display label. |
| data.custom_fields[].placeholder | string | null | Placeholder text when configured. |
| data.custom_fields[].field_type | string | text, textarea, number, checkbox, date, datetime, select, multiselect, or currency. File types are excluded from API responses. |
| data.custom_fields[].options | object | array | null | Select/multiselect options when configured. |
| data.custom_fields[].is_required | boolean | Whether a value is required for applicable product types. |
| data.custom_fields[].is_readonly | boolean | When true, the field cannot be set via add, bulk-add, or update (API returns 422). |
| data.custom_fields[].default_value | string | null | Default value when configured. |
| data.custom_fields[].is_global | boolean | Whether the field applies to all product types. |
| data.custom_fields[].sort_order | integer | Display order. |
| data.custom_fields[].validation_rules | object | null | Additional validation rules when configured. For currency fields, includes the fixed currency code (e.g. currency_code). |
| data.custom_fields[].is_active | boolean | Whether the definition is active. |
| data.custom_fields[].stored_value | string | null | Value stored for the created asset. |
Related Endpoints
Request
curl -X POST https://dev-api.unduit.com/api/v1/assets/add-asset \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"product_type": "Laptop",
"product_name": "MacBook Pro 14",
"manufacturer": "Apple",
"serial_number": "C02XK1ABCDEF",
"asset_status": "In Use",
"model_number": "A2338",
"sku": "MBP-16-2021",
"asset_id": "IT-1234-ABCD",
"condition": "Good",
"purchase_date": "2023-01-15",
"purchase_cost": 1999.99,
"purchase_type": "Leased",
"warranty_start": "2023-01-15",
"warranty_expire": "2025-01-14",
"warranty_type": "Manufacturer",
"assign_to_email": "[email protected]",
"department": "IT",
"location_name": "Headquarters",
"vendor": "CDW",
"description": "Engineering team laptop",
"processor_name": "Apple M3 Pro",
"memory": "16 GB",
"storage": "512 GB SSD",
"os": "macOS 14",
"mac_address": "00:1A:2B:3C:4D:5E",
"ip_address": "192.168.1.42",
"encryption": "FileVault",
"antivirus": "Installed",
"custom_fields": [
{
"field_label": "Cost Center",
"value": "Cost Center A"
}
]
}'Success Response
{
"success": "Asset created successfully",
"data": {
"id": 24546,
"company_id": 317,
"user_id": 0,
"purchase_id": 0,
"product_type_id": 4108,
"product_category_id": 1,
"model_id": 1196,
"asset_id": "",
"customer_asset_id": "IT-112342443E1234",
"serial_number": "2312E2334E234",
"model_number": "A23338",
"status_id": 60,
"condition": "Good",
"purchase_date": "2023-01-15",
"price": 1999.99,
"purchase_type": 1,
"warranty_start": "2023-01-15",
"warranty_expire": "2025-01-14",
"warranty_type": "Manufacturer",
"assign_to": 8019,
"department_id": 88,
"asset_location_beta": 132,
"imei": "",
"imei2": "",
"processor_name": "Apple M3 Pro",
"memory": "16 GB",
"storage": "512 GB SSD",
"os": "macOS 14",
"mac_address": "00:1A:2B:3C:4D:5E",
"ip_address": "192.168.1.42",
"encryption": "FileVault",
"antivirus": "Installed",
"mdm_status": "",
"screen_size": "",
"resolution": "",
"aspect_ratio": "",
"print_resolution": "",
"printer_type": "",
"description": "Engineering team laptop",
"end_of_life": "2028-06-01",
"asset_assign_date": "",
"vendor_id": 12,
"currency_code": "",
"currency_symbol": "",
"sku": "MBP-16-2021",
"address_1": "",
"city": "",
"state": "",
"zip": "",
"is_old": 0,
"status": "In Use",
"created_at": "2025-06-02 04:48:25",
"updated_at": "2025-06-02 04:48:25",
"asset_number": "2454620250602044825",
"custom_fields": [
{
"field_label": "Cost Center",
"placeholder": null,
"field_type": "text",
"options": null,
"is_required": true,
"is_readonly": false,
"default_value": null,
"is_global": false,
"sort_order": 0,
"validation_rules": null,
"is_active": true,
"stored_value": "Cost Center A"
}
]
}
}