Assets API
Base URL
https://api.uslimato.com/v1
Required scope: assets:read (read operations) or assets:write (write operations).
List Assets
GET /assets
Returns a paginated list of assets in your organization.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
limit | integer | Items per page (default: 20, max: 100) |
q | string | Search by name, asset tag, or serial number |
status | string | Filter by status (e.g. in_use) |
asset_type_id | UUID | Filter by asset type |
kind | string | Filter by asset kind: physical or logical |
Example:
curl "https://api.uslimato.com/v1/assets?kind=physical&status=in_use&limit=10" \
-H "Authorization: Bearer usl_live_..."
Response:
{
"data": [
{
"id": "clx...",
"asset_tag": "LPC-2026-000042",
"name": "MacBook Pro 14\" M3",
"status": "in_use",
"asset_type_name": "Laptop",
"asset_kind": "physical",
"manufacturer": "Apple",
"model": "MacBook Pro 14\" M3",
"model_id": "clx...",
"catalog_manufacturer_name": "Apple",
"catalog_model_name": "MacBook Pro 14\" M3",
"serial_number": "C02XY1234",
"purchase_date": "2024-01-10",
"purchase_price": 2499.00,
"warranty_until": "2027-01-10",
"assigned_to": "user-uuid",
"notes": null,
"custom_fields": {},
"created_at": "2024-01-15T10:00:00Z",
"updated_at": "2024-06-01T08:30:00Z"
}
],
"meta": {
"total": 42,
"page": 1,
"limit": 10,
"total_pages": 5
}
}
Asset kind values:
| Value | Description |
|---|---|
physical | Hardware assets (laptops, servers, peripherals, etc.) |
logical | Software and license assets (SaaS, subscriptions, etc.) |
Get Asset
GET /assets/:id
Returns a single asset by ID, including all catalog-linked fields.
Response: { "data": { ...asset } }
The response includes the same fields as the list response, plus catalog_model_name and catalog_manufacturer_name if the asset is linked to a catalog model.
Create Asset
POST /assets
Required scope: assets:write
Request Body:
{
"name": "Dell XPS 15",
"asset_type_id": "clx...",
"status": "in_stock",
"model_id": "clx...",
"serial_number": "5CG123456",
"purchase_date": "2024-06-01",
"purchase_price": 1899.00,
"notes": "Purchased for new hire"
}
Fields:
| Field | Required | Description |
|---|---|---|
name | Yes | Asset display name |
asset_type_id | No | UUID of the asset type |
status | No | Initial status (default: in_stock) |
model_id | No | UUID of a catalog model — auto-fills manufacturer and model text |
manufacturer | No | Manufacturer name (free text, used if model_id is not set) |
model | No | Model name (free text, used if model_id is not set) |
serial_number | No | Device serial number |
purchase_date | No | ISO 8601 date string |
purchase_price | No | Decimal number |
warranty_until | No | ISO 8601 date string |
notes | No | Internal notes |
custom_fields | No | Object with custom field values |
The asset tag is generated automatically from the tenant's configured template. If the template uses
{TYPE_CODE}, the asset type's catalog code is substituted.
Response: { "data": { ...created_asset } }
Update Asset
PATCH /assets/:id
Required scope: assets:write
Send only the fields you want to update (partial update). Supports the same fields as POST, plus assigned_to (user UUID or null).
Example:
curl -X PATCH "https://api.uslimato.com/v1/assets/clx..." \
-H "Authorization: Bearer usl_live_..." \
-H "Content-Type: application/json" \
-d '{"status": "in_use", "assigned_to": "user-uuid", "model_id": "catalog-model-uuid"}'
Delete Asset
DELETE /assets/:id
Required scope: assets:write
Permanently removes the asset. Consider updating the status to scrapped instead to preserve audit history.
Response: { "message": "Asset deleted." }
Asset Statuses
| Value | Label |
|---|---|
in_stock | In Stock |
preparing | Preparing |
in_use | In Use |
in_service | In Service |
returned | Returned |
scrapped | Scrapped |