uslimato
|

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:

ParameterTypeDescription
pageintegerPage number (default: 1)
limitintegerItems per page (default: 20, max: 100)
qstringSearch by name, asset tag, or serial number
statusstringFilter by status (e.g. in_use)
asset_type_idUUIDFilter by asset type
kindstringFilter 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:

ValueDescription
physicalHardware assets (laptops, servers, peripherals, etc.)
logicalSoftware 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:

FieldRequiredDescription
nameYesAsset display name
asset_type_idNoUUID of the asset type
statusNoInitial status (default: in_stock)
model_idNoUUID of a catalog model — auto-fills manufacturer and model text
manufacturerNoManufacturer name (free text, used if model_id is not set)
modelNoModel name (free text, used if model_id is not set)
serial_numberNoDevice serial number
purchase_dateNoISO 8601 date string
purchase_priceNoDecimal number
warranty_untilNoISO 8601 date string
notesNoInternal notes
custom_fieldsNoObject 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

ValueLabel
in_stockIn Stock
preparingPreparing
in_useIn Use
in_serviceIn Service
returnedReturned
scrappedScrapped