Skip to content

API and SDK

Busroot has full API coverage, so your own systems can send data to Busroot and read data from it. Use it to connect an ERP, MES or BI tool, to automate set-up, and to keep your own analytics in step with the shop floor.

Choosing an interface

You want to Use
Send machine signals from a device, PLC or gateway MQTT
Create schedules, stations, SKUs or other records from another system, such as an ERP The HTTP API or the SDK
Read production, downtime and performance data into another application The HTTP API or the SDK
Receive live events, such as new production, as they happen The SDK with MQTT enabled
Query large amounts of data in a BI tool Power BI & Grafana
Download files for a spreadsheet CSV export

HTTP API

The HTTP API is at https://<your Busroot address>/api.

  • Authentication. Send an API key in the x-api-key request header. An Admin generates keys on API keys.
  • Reference. Your Busroot instance publishes an OpenAPI description of every endpoint at https://<your Busroot address>/api/openapi.json and https://<your Busroot address>/api/openapi.yml. Load either file into an OpenAPI tool, such as Swagger UI or Postman, to browse the endpoints.
  • Time periods. Time-based endpoints take their period as a range code, such as TODAY or WEEK_2026_09. See Range codes.
  • Data model. Most performance data comes from station windows: one record per station per minute.

SDK

The Busroot SDK is a TypeScript and JavaScript client for the HTTP API, published on npm as busroot-sdk. It includes type definitions for every Busroot data structure, and it can subscribe to live events over MQTT.

Install it with your package manager:

npm install busroot-sdk

Create a client with your account ID and an API key:

import { BusrootClient } from "busroot-sdk";

const client = new BusrootClient({
  accountId: "account_your-account-id",
  apiKey: "your-api-key",
  apiEndpoint: "https://<your Busroot address>/api",
  mqttHost: "mqtt.<your Busroot address>",
});

const profile = await client.methods["profile.get"]();

Each method is named after the part of the API it calls, for example station.get, schedule.createUpdate, production.get, downtime.get and metrics.get. The package README on npm lists them all.

MQTT

Devices send station signals to Busroot over MQTT. See MQTT for the signals, topics and credentials, and Shop floor network for the hosts and ports.

FAQs

Where can I find the MQTT connection details, for example for Ignition?

The message format is on the MQTT page. Ask support for the details of the MQTT server that will receive your data. In Ignition, configure them in the MQTT Transmission module. For the transmitter, use the tag provider and tag path you think best: they can be adjusted later if Busroot doesn't receive the data you expect.

What do you need from us for an ERP integration?

To review the integration, the Busroot team needs:

  • the API documentation for your ERP system
  • the field mapping: which fields in your system hold the data Busroot needs

Busroot needs these fields for each schedule:

  • station code or name
  • work order reference
  • SKU code
  • start time
  • quantity
  • end time (optional)

After the review, the team needs access credentials to connect and test the data exchange. This lets them check the requirements and confirm compatibility before the work starts. See also Scheduling.

We have an integration problem or question.

Integrations are reviewed case by case. Contact support.

Can we use the API to show production progress in real time?

Yes. See the HTTP API and the SDK. Contact support to make sure you have the right API key.