An asset is a piece of hardware you support, such as a workstation, server, network device, or printer, tied to a client. Asset types come from each tenant’s own registry, so the set is configurable per tenant. Use this API to register assets, keep them on a maintenance schedule, map how they relate, and drive RMM actions from your own tools.
POST /assets needs five fields: client_id, an asset_type, an asset_tag you assign, name, and status. The asset_type is a slug from the tenant’s asset type registry. Common ones are workstation, server, network_device, mobile_device, and printer, but a tenant can define its own, so read the available types rather than hard-coding the list. Serial number, location, and warranty dates are optional.
curl https://algapsa.com/api/v1/assets \
-H "X-API-Key: $ALGA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"client_id": "cl_3f9a2c",
"asset_type": "workstation",
"asset_tag": "WS-0481",
"name": "Reception desk PC",
"status": "active",
"serial_number": "5CD1234XYZ",
"warranty_end_date": "2027-08-01"
}'Each asset carries its own maintenance log. List schedules with GET /assets/{id}/maintenance, add one with POST /assets/{id}/maintenance, and log work that actually happened with POST /assets/{id}/maintenance/record; past work reads back from GET /assets/{id}/history. To model how hardware connects — a laptop docked to a monitor, a VM on a host — use POST /assets/{id}/relationships. Documents attach through POST /assets/{id}/documents.
When an asset is connected to an RMM agent, you can act on it remotely: POST /assets/{id}/rmm/reboot, POST /assets/{id}/rmm/script to run a script, and POST /assets/{id}/rmm/refresh to pull current state. Read installed software from GET /assets/{id}/software and a rollup from GET /assets/{id}/summary.
Every asset can be linked to one or more service tickets — the same association visible in the asset and ticket detail UIs. Use GET /assets/{id}/tickets to list all tickets currently linked to an asset; each row includes the ticket ID, number, status, and relationship type. Create a link with POST /assets/{id}/tickets (supply ticket_id; optionally pass relationship_type, default affected, and notes), and remove it with DELETE /assets/{id}/tickets/{ticketId}. Reading linked tickets requires asset:read and ticket:read; creating or removing a link also requires asset:update. The same associations are readable and writable from the ticket side — see Tickets API.
Every endpoint links through to its full parameters, request and response schemas, and code samples.
GET/api/v1/assetsAlgaPSAList assetsPOST/api/v1/assetsAlgaPSACreate assetGET/api/v1/assets/{id}AlgaPSAGet asset detailsPUT/api/v1/assets/{id}AlgaPSAUpdate assetDELETE/api/v1/assets/{id}AlgaPSADelete assetGET/api/v1/assets/{id}/documentsAlgaPSAList asset document associationsPOST/api/v1/assets/{id}/documentsAlgaPSAAssociate document with assetGET/api/v1/assets/{id}/historyAlgaPSAList asset maintenance historyGET/api/v1/assets/{id}/maintenanceAlgaPSAList asset maintenance schedulesPOST/api/v1/assets/{id}/maintenanceAlgaPSACreate asset maintenance schedulePOST/api/v1/assets/{id}/maintenance/recordAlgaPSARecord asset maintenanceGET/api/v1/assets/{id}/notesAlgaPSAGet asset notesPUT/api/v1/assets/{id}/notesAlgaPSAUpdate asset notesDELETE/api/v1/assets/{id}/notesAlgaPSADelete asset notesGET/api/v1/assets/{id}/relationshipsAlgaPSAList asset relationshipsPOST/api/v1/assets/{id}/relationshipsAlgaPSACreate asset relationshipGET/api/v1/assets/{id}/rmmAlgaPSAGet cached RMM dataPOST/api/v1/assets/{id}/rmm/rebootAlgaPSAReboot device via RMMPOST/api/v1/assets/{id}/rmm/refreshAlgaPSARefresh RMM data for deviceGET/api/v1/assets/{id}/rmm/remote-controlAlgaPSAGet remote-control session URLPOST/api/v1/assets/{id}/rmm/scriptAlgaPSARun a script via RMMGET/api/v1/assets/{id}/softwareAlgaPSAList asset software inventoryGET/api/v1/assets/{id}/summaryAlgaPSAGet asset summary metricsGET/api/v1/assets/{id}/ticketsAlgaPSAList tickets linked to an assetPOST/api/v1/assets/{id}/ticketsAlgaPSALink a ticket to an assetDELETE/api/v1/assets/{id}/tickets/{ticketId}AlgaPSAUnlink a ticket from an assetPUT/api/v1/assets/bulk-statusAlgaPSABulk update asset statusPUT/api/v1/assets/bulk-updateAlgaPSABulk update assetsDELETE/api/v1/assets/documents/{associationId}AlgaPSARemove asset document associationGET/api/v1/assets/exportAlgaPSAExport assetsPUT/api/v1/assets/maintenance/{scheduleId}AlgaPSAUpdate asset maintenance scheduleDELETE/api/v1/assets/maintenance/{scheduleId}AlgaPSADelete asset maintenance scheduleDELETE/api/v1/assets/relationships/{relationshipId}AlgaPSADelete asset relationshipGET/api/v1/assets/searchAlgaPSASearch assetsGET/api/v1/assets/statsAlgaPSAGet asset statistics