Supergood | Facilities Management Express API

Supergood | Facilities Management Express API

Programmatically access Facilities Management Express work orders, preventive maintenance schedules, assets, inventory, and facility reservations with a stable REST API. Supergood builds and operates production-grade, unofficial FMX integrations so your team can automate facilities operations without heavy custom engineering.

Plain English: Facilities Management Express (FMX) is cloud-based facility and maintenance management software used by schools, municipalities, healthcare, manufacturing, and property teams to manage service requests, work orders, preventive maintenance, assets, inventory, and room reservations. An unofficial API lets you programmatically pull work orders, PM plans and tasks, assets and meter readings, parts inventory levels, and reservations—and push new requests, updates, checklists, and approvals back into FMX.

For a tech company integrating with FMX, this means you can ingest real-time request and asset data to power dashboards, sync inventory and labor costs to accounting (e.g., QuickBooks), automate PM scheduling from IoT sensor signals, or enrich your platform with reservation calendars, setup requirements, and facility usage. You can also trigger SLA alerts, route work orders, attach photos and documents, and keep stakeholder systems (ERP, analytics, BMS/IoT, helpdesk) in lockstep.

Many teams report challenges with FMX integration: reliance on CSV exports and scheduled reports, limited native API access or add-on costs, narrow webhook coverage, and complexity in approval workflows across modules. Supergood’s adapter turns those portal-first flows into secure, reliable endpoints for true automation.

What is Facilities Management Express?

Facilities Management Express (https://www.gofmx.com/) is a cloud platform for facilities and maintenance operations that centralizes service requests, work orders, preventive maintenance, asset tracking, inventory, facility scheduling, and transportation/fleet requests. Teams use FMX to triage and complete work orders, maintain equipment with calendar- or meter-based PM plans, manage parts stock and suppliers, schedule rooms and events with approval workflows, and analyze KPIs like response times, completion rates, and downtime.

Core product areas include:

  • Work Orders & Service Requests (Maintenance, Custodial, Grounds, IT/Technology)
  • Preventive Maintenance (Schedules, Checklists, Calendar/Meter-Based Tasks)
  • Asset & Equipment Management (Locations, Lifecycles, Warranty, Meter Readings)
  • Inventory & Parts (Stock Levels, Issues/Receipts, Reorder Points, Suppliers)
  • Facility Scheduling & Events (Room Reservations, Approvals, Setup/Teardown)
  • Fleet & Transportation (Vehicle Requests, Inspections, Maintenance)
  • Reporting & Dashboards (KPIs, SLA Tracking, Exports)

Common data entities:

  • Organizations, Sites/Campuses, Buildings, Rooms/Spaces
  • Users, Roles/Permissions (Requester, Technician, Approver, Admin)
  • Work Orders/Requests (Category, Priority, Status, SLA, Assignments)
  • Assets/Equipment (Tags, Models, Serial Numbers, Location, Vendor, Warranty)
  • Preventive Maintenance Plans & Tasks (Frequency, Checklists, Next Due)
  • Inventory Items (SKU, Unit, Quantity, Min/Max, Cost, Supplier)
  • Facility Reservations (Space, Time, Setup Requirements, Approvals)
  • Vendors/Suppliers (Contacts, Agreements)
  • Meter Readings, Attachments, Photos, Comments

The FMX Integration Challenge

Facilities teams rely on FMX daily, but turning portal-based workflows into API-driven automation is non-trivial:

  • Role-aware modules: Requesters, technicians, and approvers each see different data and transitions
  • Approval workflows: Reservations, PM, and multi-step requests require compliant state handling
  • Portal-first features: Checklists, inventory issues, and reservation setup are optimized for UI flows
  • Authentication complexity: SSO/MFA and session lifecycles complicate headless automation
  • Data spread: Key objects span assets, work orders, PM plans, inventory, and reservations with context across calendars and reports

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 Order & Request Hub

  • Mirror service requests and work orders into your internal systems
  • Keep priorities, SLA due dates, and assignments current for analytics and routing
  • Attach photos/documents and unify comments across field and office tools

Preventive Maintenance & IoT Automation

  • Generate PM tasks from sensor alerts or runtime meters
  • Update checklists and next-due dates programmatically
  • Track completion and trigger follow-on inspections or audits

Assets, Inventory & Accounting Sync

  • Sync assets, meter readings, and warranty details with your CMDB/ERP
  • Normalize parts issues/receipts and push costs to accounting (e.g., QuickBooks)
  • Reconcile stock levels and reorder points across sites

Facility Scheduling & Events

  • Ingest reservations and approvals into your calendar platform
  • Automate setup/teardown tasks linked to events
  • Drive notifications and room utilization analytics in real time

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_2b71c9",
    "name": "Facilities Manager",
    "entitlements": ["work_orders", "pm", "assets", "inventory", "reservations"]
  }
}

POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.

Work Orders

GET /work-orders: List work orders and service requests with filters and summary details.

Query parameters

  • siteId: string
  • buildingId: string
  • status: open | in_progress | on_hold | completed | canceled
  • category: maintenance | custodial | grounds | technology | other
  • priority: low | medium | high | critical
  • updatedFrom, updatedTo: ISO 8601 timestamps
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "workOrderId": "wo_8c9210",
      "number": 10427,
      "title": "Replace belt on AHU-3",
      "category": "maintenance",
      "priority": "high",
      "status": "in_progress",
      "requesterId": "u_fmx_4912a1",
      "requesterName": "J. Rivera",
      "assigneeId": "u_fmx_77c8b2",
      "assigneeName": "Tech Team A",
      "siteId": "site_campus_north",
      "buildingId": "bldg_science",
      "room": "Mechanical Room 2",
      "assetId": "asset_ahu_003",
      "assetTag": "AHU-3",
      "description": "Observed frayed belt; replace and verify tension.",
      "slaDueAt": "2026-01-27T22:00:00Z",
      "createdAt": "2026-01-25T12:14:00Z",
      "updatedAt": "2026-01-26T09:31:22Z",
      "laborHours": 1.5,
      "materials": [
        {"inventoryItemId": "inv_belt_3v650", "name": "3V650 Drive Belt", "quantity": 1, "unitCost": 17.50}
      ],
      "attachments": [
        {"attachmentId": "att_91a02f", "fileName": "belt_photo.jpg", "contentType": "image/jpeg", "size": 284123}
      ]
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

Assets

POST /assets: Create a new asset/equipment record with location, lifecycle, and warranty metadata.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/assets \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "assetTag": "RTU-7",
    "name": "Rooftop Unit 7",
    "category": "HVAC",
    "model": "Trane RTU-15T",
    "serialNumber": "TRN-RTU-7-88234",
    "siteId": "site_campus_north",
    "buildingId": "bldg_gym",
    "location": "Roof",
    "vendorId": "ven_trane_local",
    "purchaseDate": "2023-06-18",
    "warrantyExpiration": "2026-06-18",
    "meterUnit": "hours",
    "currentMeterReading": 2140,
    "status": "active",
    "customFields": {
      "voltage": "480V",
      "phase": "3"
    },
    "attachments": [
      {"fileName": "rtu_submittal.pdf", "uploadToken": "upl_43ab91"}
    ]
  }'

Example response

{
  "assetId": "asset_rtu_007",
  "assetTag": "RTU-7",
  "status": "active",
  "createdAt": "2026-01-26T10:03:11Z"
}

Preventive Maintenance

PATCH /pm-tasks/{pmTaskId}: Update a preventive maintenance task's schedule, assignments, and checklist.

curl --request PATCH \
  --url https://api.supergood.ai/integrations/<integration_id>/pm-tasks/pm_2c71e4 \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "frequency": {"type": "calendar", "interval": "monthly"},
    "nextDueAt": "2026-02-15T08:00:00Z",
    "assignedTeamId": "team_hvac_a",
    "checklist": [
      {"itemId": "chk_1", "text": "Inspect belts", "required": true},
      {"itemId": "chk_2", "text": "Clean coils", "required": false}
    ],
    "notes": "Shifted schedule due to gym tournament; ensure coil cleaning happens before weekend."
  }'

Example response

{
  "pmTaskId": "pm_2c71e4",
  "status": "scheduled",
  "nextDueAt": "2026-02-15T08:00:00Z",
  "updatedAt": "2026-01-26T11:22:45Z"
}

Facility Reservations

POST /reservations: Create a room reservation with approvals and setup requirements.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/reservations \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "siteId": "site_campus_north",
    "buildingId": "bldg_auditorium",
    "spaceId": "room_main_hall",
    "eventTitle": "Spring Concert",
    "start": "2026-03-18T18:00:00Z",
    "end": "2026-03-18T21:00:00Z",
    "requestedByUserId": "u_fmx_87e210",
    "setupRequirements": [
      {"type": "chairs", "quantity": 300},
      {"type": "av", "details": "Wireless mics x4, stage monitors"}
    ],
    "approverIds": ["u_fmx_principal", "u_fmx_av_lead"],
    "notifyOnApproval": true,
    "attachments": [
      {"fileName": "event_program.pdf", "uploadToken": "upl_7fa223"}
    ]
  }'

Example response

{
  "reservationId": "res_51af80",
  "status": "pending_approval",
  "spaceId": "room_main_hall",
  "createdAt": "2026-01-26T11:56:12Z"
}

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, PM tasks, assets, 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, schedule changes)

Performance Characteristics

  • Latency: Sub-second responses for list/detail queries under normal load
  • Throughput: Designed for high-volume work order sync and PM/reservation 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, Preventive Maintenance (Plans, Tasks, Checklists), Asset Management (Tags, Warranty, Meter Readings), Inventory (Issues/Receipts, Reorder), and Facility Scheduling (Reservations, Approvals), 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 inventory, labor, and costs to our accounting system?

Yes. We can normalize parts issues/receipts and labor hours from work orders to match your ERP/accounting schema (e.g., cost centers, GL codes) and deliver updates via webhooks or polling while complying with rate and permission constraints. We commonly integrate with QuickBooks.

Q: Are approvals supported for reservations and preventive maintenance changes?

Yes. We support downloading approval artifacts and uploading attachments via signed uploads, with checksum validation and time-limited URLs. Approval states and required sign-offs are modeled explicitly in our normalized responses.



Ready to automate your Facilities Management Express workflows?

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

Get Started →

Read more