Last updated: Jul 30, 2026

Entity Overview

Entity Overviewlink

The Infraspeak API is organized around interconnected entities that represent your maintenance operations. Understanding these relationships is essential for building effective integrations.

Entity Relationship Diagramlink

graph TD
    Client["Client<br>(Customer)"] -->|has many| Building["Building<br>(Site)"]
    Building -->|contains| Location["Location<br>(Space)"]
    Location -->|has| Element["Element<br>(Asset)"]
    Location -->|has| Failure["Failure<br>(Work Order)"]
    Category["Category<br>(Equipment Type)"] -->|classifies| Element
    Element -->|has| Failure
    Problem["Problem<br>(Issue Type)"] -->|classifies| Failure
    Failure -->|uses| Material["Material<br>(Part)"]
    Stock["Stock<br>(Inventory)"] -->|tracks| Material

Core Entitieslink

Organizationallink

Entity Description Primary Use
Client Customer or tenant organization Multi-tenancy, customer management
Operator Staff member or technician Work assignment, permissions
Contact Person associated with client Communication, service requests

Assetslink

Entity Description Primary Use
Building Top-level physical structure Site management
Location Space within a building Work order placement
Element Asset or equipment Asset tracking, maintenance history
Category Hard and soft maintenance classification Asset organization, maintenance procedures

Work Managementlink

Entity Description Primary Use
Failure (Work Order) Corrective maintenance work order Reactive maintenance
Problem Issue type or fault category Work order classification
Scheduled Work (Planned Job) Planned maintenance task Preventive maintenance

Inventory & Procurementlink

Entity Description Primary Use
Material Part or consumable item Spare parts catalog
Stock Inventory level tracking Warehouse management
Warehouse Storage location Inventory organization
Buy Order Purchase order Procurement
Supplier Vendor or provider Supplier management

Commerciallink

Entity Description Primary Use
Sell Order Service invoice or sale Billing
Quote Price quotation Sales process

Key Relationshipslink

Client → Building → Location Hierarchylink

Clients own buildings, which contain locations:

{
  "client": {
    "id": "100",
    "name": "Acme Corp",
    "buildings": [
      {
        "id": "200",
        "name": "Headquarters",
        "locations": [
          { "id": "300", "name": "Floor 1" },
          { "id": "301", "name": "Floor 2" }
        ]
      }
    ]
  }
}

Location ↔ Element (Asset) Relationshiplink

Elements (Assets) are placed at locations:

{
  "element": {
    "id": "500",
    "name": "HVAC Unit A1",
    "location_id": 300,
    "category_id": 50
  }
}

Failure (Work Order) → Location/Element Associationlink

Work Orders are always associated with locations, which have a correspondent Element (Asset):

{
  "failure": {
    "id": "1000",
    "description": "AC not cooling",
    "local_id": 300,
    "problem_id": 75
  }
}

Material → Stock → Warehouselink

Materials are tracked as stock in warehouses:

{
  "stock": {
    "id": "2000",
    "material_id": 800,
    "warehouse_id": 50,
    "quantity": 25
  }
}