Technicians API¶
Enterprise feature
The REST API is available on Enterprise plans. Compare plans to find the right fit for your team.
The Technicians API provides read-only access to your technician workforce data. Retrieve technician profiles, skills, availability schedules, and current status to build integrations with external scheduling tools, dispatch systems, or analytics dashboards.
Endpoints summary¶
| Method | Path | Scope | Description |
|---|---|---|---|
GET | /api/v1/technicians | technicians:read | List technicians |
GET | /api/v1/technicians?id={id} | technicians:read | Get a single technician |
Read-only
The Technicians API is read-only. Technician management (create, update, deactivate) is handled through the FSM Navigator web application.
List technicians¶
GET /api/v1/technicians
Scope: technicians:read
Returns a paginated list of technicians in your company.
Query parameters¶
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number |
per_page | integer | 50 | Results per page (max 100) |
status | string | — | Filter by account status: Active or Inactive |
availability_status | string | — | Filter by availability: Available, Busy, or Offline |
Response¶
{
"data": [
{
"technician_id": 6,
"first_name": "Mike",
"last_name": "Johnson",
"status": "Active",
"availability_status": "Available",
"vehicle_type": "Van",
"transport_modes": ["driving"],
"created_at": "2025-11-28T14:00:00Z",
"updated_at": "2026-01-15T09:30:00Z"
}
],
"pagination": {
"page": 1,
"per_page": 50,
"total": 3,
"total_pages": 1
},
"request_id": "a1b2c3d4e5f6"
}
Fields¶
| Field | Type | Description |
|---|---|---|
technician_id | integer | Unique technician identifier |
first_name | string | First name |
last_name | string | Last name |
status | string | Account status — Active or Inactive |
availability_status | string | Current availability — Available, Busy, or Offline |
vehicle_type | string | null | Assigned vehicle type |
transport_modes | array | Transportation modes (e.g., ["driving"]) |
created_at | string | ISO 8601 creation timestamp |
updated_at | string | ISO 8601 last-update timestamp |
Get a single technician¶
GET /api/v1/technicians?id={id}
Scope: technicians:read
Returns a detailed profile for a specific technician, including contact information, skills, and weekly schedule.
Response¶
{
"data": {
"technician_id": 6,
"first_name": "Mike",
"last_name": "Johnson",
"email": "[email protected]",
"phone": "+15551234567",
"status": "Active",
"availability_status": "Available",
"vehicle_type": "Van",
"transport_modes": ["driving"],
"skills": [
{
"skill_category_id": 1,
"skill_name": "HVAC Repair",
"skill_level": 5
},
{
"skill_category_id": 2,
"skill_name": "Electrical",
"skill_level": 3
}
],
"schedule": [
{
"day_of_week": 1,
"start_time": "08:00:00",
"end_time": "17:00:00",
"is_available": true
},
{
"day_of_week": 2,
"start_time": "08:00:00",
"end_time": "17:00:00",
"is_available": true
}
],
"created_at": "2025-11-28T14:00:00Z",
"updated_at": "2026-01-15T09:30:00Z"
},
"request_id": "a1b2c3d4e5f6"
}
Additional detail fields¶
| Field | Type | Description |
|---|---|---|
email | string | Contact email address |
phone | string | null | Contact phone number in E.164 format |
skills | array | Assigned skill categories with proficiency levels (1–5) |
skills[].skill_category_id | integer | Skill category identifier |
skills[].skill_name | string | Skill category name |
skills[].skill_level | integer | Proficiency level (1 = beginner, 5 = expert) |
schedule | array | Weekly availability schedule |
schedule[].day_of_week | integer | ISO day of week (1 = Monday, 7 = Sunday) |
schedule[].start_time | string | Shift start time (HH:MM:SS) |
schedule[].end_time | string | Shift end time (HH:MM:SS) |
schedule[].is_available | boolean | Whether the technician works this day |
Error responses¶
| Status | Error code | Description |
|---|---|---|
401 | unauthorized | Missing or invalid API key |
403 | insufficient_scope | API key lacks technicians:read scope |
404 | not_found | Technician does not exist or belongs to another company |
405 | method_not_allowed | Only GET is supported |
429 | rate_limit_exceeded | Too many requests — see Rate limits |
Rate limits¶
| Action | Limit | Window |
|---|---|---|
| List technicians | 60 requests | 1 minute |
| Get technician | 120 requests | 1 minute |
See Rate limits for global API limits.