Supergood | FMX CMMS Software API
Programmatically access FMX service requests, preventive maintenance schedules, assets, parts inventory, and facility reservations with a stable REST API. Supergood builds and operates production-grade, unofficial FMX integrations so your team can automate maintenance and facilities workflows without heavy custom engineering.
Plain English: FMX (Computerized Maintenance Management System) is facilities and maintenance software used by schools, municipalities, manufacturers, and commercial properties to submit requests, manage work orders, track assets and parts, schedule preventive maintenance, and reserve rooms/equipment. An unofficial API lets you programmatically pull work orders, assets, preventive maintenance tasks, parts inventory, reservations, meter readings, and documents—and push new requests, updates, labor and parts usage, meter readings, reservations, approvals, and attachments back into FMX.
For a tech company integrating with FMX, this means you can ingest real-time maintenance and asset data to power dashboards, trigger work orders from IoT sensors, sync parts usage and purchasing with ERP/accounting (e.g., QuickBooks, NetSuite), automate preventive maintenance based on meter readings, or enrich your platform with reservation calendars, inspection checklists, and photos. You can also send requester updates, route approvals, attach documents, and keep stakeholder systems (ERP, analytics, CRM, calendaring) in lockstep.
What is FMX?
FMX (https://www.gofmx.com/) is a cloud CMMS and facilities management platform that centralizes maintenance operations, asset tracking, inventory, and facility scheduling for K–12 schools, universities, public sector organizations, manufacturers, and commercial real estate teams. Facilities teams use FMX to manage service requests and work orders, build preventive maintenance schedules tied to assets and meter readings, track parts and inventory, manage vendors and approvals, and coordinate room and resource reservations—all with mobile access for field technicians.
Core product areas include:
- Work Order Management (Requests, Assignments, Statuses, Labor, Parts, Attachments)
- Preventive Maintenance (Schedules, Tasks, Checklists, Meter/Calendar Triggers)
- Asset & Equipment Management (Registry, Locations, Warranty, Lifecycle, Meters)
- Parts & Inventory (Items, Stock Levels, Bins, Reorder Points, Unit Costs)
- Facility Scheduling & Reservations (Rooms, Equipment, Calendars, Approvals)
- Inspections & Checklists (Forms, Compliance, Pass/Fail, Follow-up WOs)
- Vendors & Service Providers (Contacts, Contracts, SLAs)
- Reporting & Dashboards (KPIs, Costs, Response Times, MTTR/MTBF)
Common data entities:
- Organizations, Users, Roles/Permissions (Requester, Technician, Admin)
- Locations (Sites, Buildings, Rooms, Zones)
- Assets/Equipment (metadata, model, serial, manufacturer, status, warranty)
- Work Orders (type, category, priority, status, SLA, due dates, assignments)
- Preventive Maintenance Plans & Tasks (frequency, triggers, checklists)
- Parts/Inventory (SKU, bin, quantityOnHand, reorderPoint, unitCost)
- Labor Entries/Timesheets (users, hours, rates, cost codes)
- Vendors/Service Providers (company, contact, agreements)
- Reservations (resources, start/end, approvals, conflicts)
- Meters & Meter Readings (runtime hours, odometer, cycles)
- Attachments/Documents (photos, manuals, invoices)
The FMX Integration Challenge
Facilities teams rely on FMX daily, but turning portal-based workflows into API-driven automation can be difficult:
- Role-aware portals: Requesters, technicians, and admins see different data, fields, and approval states
- PM & meter rigor: Preventive maintenance tied to meter readings and calendars requires careful modeling
- Facility scheduling: Reservations, conflicts, and approvals are optimized for front-end calendars
- Authentication complexity: SSO/MFA and session lifecycles complicate headless automation
- Data spread: Key objects span work orders, assets, inventory, and reservations with context across modules
- Export limitations: Teams often report CSV-only exports, no webhooks, or gated/limited official API access
- Cost & entitlements: API features may be a paid add-on or limited by module licensing and permissions
How Supergood Creates FMX APIs
Supergood reverse-engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your FMX tenant.
- Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
- Maintains session continuity with automated refresh and change detection
- Normalizes responses so you can integrate once and rely on consistent objects across modules
- Aligns with customer entitlements and role-based permissions to ensure compliant access
Use Cases
Work Orders & Asset Data Sync
- Mirror work orders, statuses, and assignments into your internal systems
- Keep the asset registry current for analytics, warranty, and lifecycle planning
- Normalize locations, categories, and priorities for multi-site operations
Preventive Maintenance & IoT Triggers
- Generate PM tasks from IoT/BMS events (e.g., BACnet/Modbus sensors, runtime thresholds)
- Log meter readings programmatically to trigger schedules and forecasts
- Track completion and follow-ups with checklists and attachments
Facility Scheduling & Calendaring
- Sync FMX reservations to Google Calendar or Microsoft 365
- Manage approvals and conflicts from your product workflows
- Centralize room/equipment availability in a single planning view
Inventory & Purchasing Sync
- Post parts usage from work orders and update stock levels with reorder alerts
- Push purchase requests/POs to ERP/accounting (e.g., QuickBooks, NetSuite)
- Normalize SKUs, bins, and unit costs across facilities
Operations Reporting
- Build a clean data pipeline for KPIs (response time, MTTR, PM compliance)
- Attribute costs by asset, location, category, and labor/parts
- Drive SLA alerts and dashboards with near real-time updates
Available Endpoints
Authentication
POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short-lived auth token maintained by the platform.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/sessions \
--header 'Authorization: Basic <Base64 encoded token>' \
--header 'Content-Type: application/json' \
--data '{
"username": "[email protected]",
"password": "<password>",
"mfa": { "type": "totp", "code": "123456" }
}'
Example response
{
"authToken": "eyJhbGciOi...",
"expiresIn": 3600,
"user": {
"id": "u_fmx_81c02a",
"name": "Facilities Manager",
"entitlements": ["work_orders", "assets", "inventory", "reservations", "reports"]
}
}
POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.
Work Orders
GET /work-orders: List work orders with filters and summary details.
Query parameters
- locationId: string
- assetId: string
- status: open | in_progress | on_hold | completed | cancelled
- priority: low | normal | high | critical
- category: hvac | electrical | plumbing | general | custodial | grounds | other
- assignedToUserId: string
- updatedFrom, updatedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"workOrderId": "wo_7b23f9",
"number": 10482,
"title": "HVAC - Classroom A3 warm air",
"description": "Room is not cooling below 78°F during afternoon classes.",
"status": "in_progress",
"priority": "high",
"category": "hvac",
"requestType": "maintenance",
"asset": {
"assetId": "asset_3f9c10",
"name": "Trane Rooftop Unit RTU-4",
"location": {
"site": "North High School",
"building": "Main",
"room": "A3"
}
},
"requester": { "userId": "u_fmx_93d211", "name": "Teacher, A3" },
"assignedTo": { "userId": "u_fmx_12aa88", "name": "Tech - J. Lopez" },
"slaDue": "2026-01-27T20:00:00Z",
"createdAt": "2026-01-25T14:22:57Z",
"updatedAt": "2026-01-26T09:11:05Z",
"attachmentsCount": 2,
"laborHours": 1.5,
"partsUsedTotalCost": 0.0
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
POST /work-orders: Create a work order (service request or preventive maintenance task instance).
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/work-orders \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"title": "Custodial - Spill in Gym",
"description": "Large sports drink spill near south bleachers.",
"category": "custodial",
"priority": "normal",
"location": {
"site": "North High School",
"building": "Athletics",
"room": "Gym"
},
"assetId": null,
"requesterUserId": "u_fmx_6bc412",
"notifyRequester": true,
"attachments": [
{ "fileName": "spill_photo.jpg", "uploadToken": "upl_28af71" }
],
"referenceId": "helpdesk-98122"
}'
Example response
{
"workOrderId": "wo_8c10a2",
"number": 10483,
"status": "open",
"createdAt": "2026-01-26T10:03:11Z"
}
PATCH /work-orders/{workOrderId}: Update status, assignments, and optionally add labor entries and parts usage.
curl --request PATCH \
--url https://api.supergood.ai/integrations/<integration_id>/work-orders/wo_7b23f9 \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"status": "completed",
"assignedToUserId": "u_fmx_12aa88",
"completionNotes": "Found clogged filter; replaced and verified 68°F setpoint.",
"laborEntries": [
{ "userId": "u_fmx_12aa88", "hours": 1.5, "rate": 35.00 }
],
"partsUsage": [
{ "partId": "part_af-20x25x1", "quantity": 1, "unitCost": 12.50 }
],
"attachments": [
{ "fileName": "pm_checklist.pdf", "uploadToken": "upl_90cb22" }
]
}'
Example response
{
"workOrderId": "wo_7b23f9",
"status": "completed",
"laborHours": 1.5,
"partsUsedTotalCost": 12.50,
"updatedAt": "2026-01-26T12:45:30Z"
}
Meter Readings
POST /assets/{assetId}/meter-readings: Record a meter reading (e.g., runtime hours, odometer) for an asset to drive PM schedules and analytics.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/assets/asset_3f9c10/meter-readings \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"meterName": "runtime_hours",
"value": 5231.4,
"readingAt": "2026-01-26T11:50:00Z",
"source": "sensor_gateway"
}'
Example response
{
"readingId": "mr_5a21c7",
"assetId": "asset_3f9c10",
"meterName": "runtime_hours",
"value": 5231.4,
"readingAt": "2026-01-26T11:50:00Z",
"createdAt": "2026-01-26T11:50:02Z"
}
Technical Specifications
- Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer-managed credentials
- Response format: JSON with consistent resource schemas and pagination across modules
- Rate limits: Tuned for enterprise throughput while honoring customer entitlements and usage controls
- Session management: Automatic reauth and cookie/session rotation with health checks
- Data freshness: Near real-time retrieval of work orders, assets, preventive maintenance, inventory, and reservations
- Security: Encrypted transport, scoped tokens, and audit logging; respects FMX role-based permissions
- Webhooks: Optional asynchronous delivery for long-running workflows (e.g., approvals, PM task generation)
Performance Characteristics
- Latency: Sub-second responses for list/detail queries under normal load
- Throughput: Designed for high-volume work order sync and PM/parts processing
- Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
- Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates
Getting Started
- Schedule Integration Assessment
Book a 30-minute session to confirm your modules, licensing, and authentication model.
- Supergood Builds and Validates Your API
We deliver a hardened FMX adapter tailored to your workflows and entitlements.
- Deploy with Monitoring
Go live with continuous monitoring and automatic adjustments as FMX evolves.
Frequently Asked Questions
Q: Which FMX modules can this integration cover?
Supergood supports workflows across commonly used modules such as Work Orders (Requests, Assignments, Labor, Parts), Preventive Maintenance (Schedules, Tasks, Meter Triggers), Asset Management (Registry, Locations, Meters), Facility Scheduling (Rooms/Equipment, Approvals), and Inventory (Parts, Stock Levels), subject to your licensing and entitlements. We scope coverage during integration assessment.
Q: How are MFA and SSO handled for automation?
We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled. Sessions are refreshed automatically with secure challenge handling.
Q: Can you sync parts usage and purchasing to our accounting system?
Yes. We can normalize parts usage, work order costs, and purchasing requests to match your ERP/accounting schema (e.g., SKUs, cost codes, taxes) and deliver updates via webhooks or polling while complying with rate and permission constraints. We commonly integrate with QuickBooks and NetSuite.
Q: Can reservations be synced to Outlook or Google Calendar?
Yes. We can push and reconcile FMX reservations with Microsoft 365 and Google Calendar, manage conflicts and approvals, and provide ICS or API-based updates depending on your environment.
Related Integrations
Intralinks API - Programmatically access the Intralinks VDR with Supergood
Ready to automate your FMX workflows?
Supergood can have your FMX integration live in days with no ongoing engineering maintenance.