Machines
The machines endpoint lists your organisation's machines by the identifiers the rest of the API accepts: foreign_id (sent as machine_foreign_id / machine_foreign_ids) and display_name (sent as machine_display_name). Use it to build a machine picker, or to check which identifiers to send when clocking on a job.
Permissions
| Endpoint | Method | Read-only Access | Read-write Access | Description |
|---|---|---|---|---|
/api/v1/machines | GET | ✅ | ✅ | List the organisation's machines |
GET /api/v1/machines
Required role: read-only or read-write
Takes no parameters. Returns every machine that is not archived, sorted by display name. Archived machines are left out because jobs can't be clocked onto them.
This endpoint is also served on the shared host, https://api.trackmymachines.app/api/v1/machines (see Base URL).
Example request
curl -X GET "https://your-org.trackmymachines.app/api/v1/machines" \
-H "Authorization: Bearer YOUR_API_KEY"
Example response
[
{ "foreign_id": "MACHINE_001", "display_name": "CNC-01" },
{ "foreign_id": null, "display_name": "Lathe 2" }
]
Response fields
foreign_id: the machine's foreign ID (your ERP or CMMS key), ornullif not set.display_name: the machine's name as shown in TrackMyMachines.
Internal database IDs are never exposed — only foreign identifiers cross the API boundary.