Supergood | FMX CMMS Software API

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"
}

Get full API Specs →


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

  1. Schedule Integration Assessment

Book a 30-minute session to confirm your modules, licensing, and authentication model.

  1. Supergood Builds and Validates Your API

We deliver a hardened FMX adapter tailored to your workflows and entitlements.

  1. Deploy with Monitoring

Go live with continuous monitoring and automatic adjustments as FMX evolves.

Schedule Integration Call →


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.



Ready to automate your FMX workflows?

Supergood can have your FMX integration live in days with no ongoing engineering maintenance.

Get Started →

Read more