Skip to main content
The Assets API (also referred to as “hardware” in routes) allows you to manage hardware assets in Snipe-IT.

List Assets

curl -X GET "https://your-domain.com/api/v1/hardware" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
limit
integer
default:"50"
Number of results to return
offset
integer
default:"0"
Offset for pagination
Search string to filter results
sort
string
default:"created_at"
Column to sort by. Allowed values: id, name, asset_tag, serial, model, model_number, last_checkout, category, manufacturer, notes, expected_checkin, order_number, company, location, purchase_date, purchase_cost
order
string
default:"desc"
Sort order: asc or desc
status
string
Filter by status: Deleted, Pending, RTD, Undeployable, Archived, Requestable, Deployed
model_id
integer
Filter by model ID
category_id
integer
Filter by category ID
manufacturer_id
integer
Filter by manufacturer ID
company_id
integer
Filter by company ID
location_id
integer
Filter by location ID
status_id
integer
Filter by status label ID
total
integer
Total number of assets
rows
array
Array of asset objects

Get Asset by ID

curl -X GET "https://your-domain.com/api/v1/hardware/{asset_id}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
asset_id
integer
required
The asset ID

Get Asset by Tag

curl -X GET "https://your-domain.com/api/v1/hardware/bytag/{asset_tag}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
asset_tag
string
required
The asset tag

Get Asset by Serial

curl -X GET "https://your-domain.com/api/v1/hardware/byserial/{serial}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
serial
string
required
The serial number

Create Asset

curl -X POST "https://your-domain.com/api/v1/hardware" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "asset_tag": "LAP-00123",
    "model_id": 1,
    "status_id": 2,
    "name": "Employee Laptop"
  }'
asset_tag
string
required
Unique asset tag
model_id
integer
required
Asset model ID
status_id
integer
required
Status label ID
name
string
Asset name
serial
string
Serial number
purchase_date
string
Purchase date (YYYY-MM-DD)
purchase_cost
number
Purchase cost
order_number
string
Order/PO number
notes
string
Asset notes
rtd_location_id
integer
Default location ID
warranty_months
integer
Warranty duration in months
supplier_id
integer
Supplier ID
company_id
integer
Company ID

Update Asset

curl -X PATCH "https://your-domain.com/api/v1/hardware/{asset_id}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Asset Name",
    "status_id": 2
  }'
asset_id
integer
required
The asset ID

Delete Asset

curl -X DELETE "https://your-domain.com/api/v1/hardware/{asset_id}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
asset_id
integer
required
The asset ID

Checkout Asset

curl -X POST "https://your-domain.com/api/v1/hardware/{asset_id}/checkout" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "assigned_user": 123,
    "checkout_at": "2024-01-15",
    "note": "Assigned to employee"
  }'
asset_id
integer
required
The asset ID
assigned_user
integer
User ID to checkout to (use one of assigned_user, assigned_asset, or assigned_location)
assigned_asset
integer
Asset ID to checkout to
assigned_location
integer
Location ID to checkout to
checkout_at
string
Checkout date (YYYY-MM-DD)
expected_checkin
string
Expected checkin date (YYYY-MM-DD)
note
string
Checkout note

Checkin Asset

curl -X POST "https://your-domain.com/api/v1/hardware/{asset_id}/checkin" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "note": "Returned in good condition",
    "location_id": 5
  }'
asset_id
integer
required
The asset ID
note
string
Checkin note
location_id
integer
Location to check in to

Audit Asset

curl -X POST "https://your-domain.com/api/v1/hardware/{asset_id}/audit" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "location_id": 5,
    "note": "Annual audit"
  }'
asset_id
integer
required
The asset ID
location_id
integer
Current location
note
string
Audit note
next_audit_date
string
Next audit date (YYYY-MM-DD)

Get Assets Due for Audit

curl -X GET "https://your-domain.com/api/v1/hardware/audits/due" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
Returns assets that are due for audit based on audit interval settings.

Get Overdue Audits

curl -X GET "https://your-domain.com/api/v1/hardware/audits/overdue" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
Returns assets with overdue audits.

Build docs developers (and LLMs) love