New:Thread Pilot—AI follow-ups for Gmail.
Learn more
Built by Fleet Operators

One API. Every Vehicle.

Connect OKAI, Omni, Segway, Queclink, and more through a single REST API. Lock, unlock, track, and manage your entire fleet — regardless of hardware.

30,000+ vehicles in production5 protocol familiesSub-3s confirmed commands
30,000+
Vehicles Powered
5
Protocols Supported
<3s
Avg Lock/Unlock

Built from Live Operations

Not a concept deck. A normalized control plane already in production.

Switchboard is the same IoT infrastructure that powers Levy Fleets — a fleet management platform serving 30,000+ vehicles across multiple cities and hardware families. Now available as a standalone API for any operator.

30,000+
vehicles powered

Switchboard is the IoT backbone behind Levy Fleets, managing 30,000+ vehicles across multiple cities and vehicle types.

5
live protocol families

TCP, MQTT, REST, and vendor-specific command lifecycles behind one API.

<3s
typical command confirmation

Designed around confirmed state changes instead of fire-and-forget dispatch.

24/7
connection visibility

Heartbeats, reconnects, and offline transitions surfaced as product signals.

The Hardware Problem

Your fleet software should not care which board is inside the vehicle.

Operators usually end up in one of two bad places: rebuilding every vendor protocol in-house or layering their business on top of a generic middleware abstraction that was never designed for micromobility operations.

Build Every Protocol Yourself

Maximum control, maximum engineering drag. It works until procurement changes hardware and your roadmap turns into protocol maintenance.

Every hardware change becomes a new protocol project.
Connection handling, retries, and heartbeats become your problem.
Your app team ends up debugging vendor docs instead of shipping rider features.

Use Generic Middleware

Faster to start, but often too far from actual operations. You get an abstraction layer, not necessarily a control plane built around lock, unlock, and state confirmation.

You inherit another layer between your commands and the device.
Generic abstractions often stop at 'message sent' instead of confirmed state.
Migration and edge-case behavior stay opaque when operations get messy.

Switchboard packages the missing middle layer.

Normalize device state across hardware families, confirm commands against live telemetry, and expose the whole thing as a product-ready API with webhooks, fleet-level access, and operational visibility from day one.

How It Works

From unboxing to API calls in under an hour

1

Register Devices

Add your IMEIs and hardware type via the API or dashboard. Switchboard provisions a device record. When the device connects for the first time — via TCP handshake (OKAI, Queclink) or MQTT CONNECT (Omni, ZIMO) — it auto-associates by IMEI. No manual pairing step.

2

Point to Switchboard

For TCP devices (OKAI, Queclink): update the server IP and port via the manufacturer's BLE config app — one Bluetooth connection per device, about 30 seconds each. For MQTT devices (Omni, ZIMO): update the broker address. That's the only change on the hardware side.

3

Devices Connect

TCP devices establish persistent socket connections. MQTT devices authenticate with ICCID as the client ID and subscribe to their command topic. Switchboard handles heartbeat SACK responses (OKAI), MQTT keep-alive, LWT disconnect detection, and automatic reconnection across all protocols.

4

Use the API

Lock, unlock, locate, throttle, speed-limit — all through REST calls. Commands return confirmed/timeout/failed status based on actual device acknowledgment, not just message delivery. Telemetry is normalized into a single schema regardless of hardware. Webhooks stream events in real time.

Built for Production Fleets

Every feature battle-tested across hundreds of devices in real rider traffic

Unified REST API

One endpoint schema regardless of hardware vendor. POST /devices/{imei}/lock dispatches an AT+GTRTO command over TCP for OKAI, a JSON 'stop' message on the device's MQTT subscribe topic for Omni, or a binary control frame for Queclink — but your integration code is identical. Responses follow the same normalized schema: device state, command status, and the latest telemetry snapshot.

Command Confirmation

We don't return 'sent' and hope. After dispatching a command, Switchboard polls for a state-change acknowledgment from the device — an OKAI GTULS response confirming ecuLockEngaged, an Omni MT2 telemetry report with scooterLocked: true, or a Queclink ACK frame. Only when the device confirms the physical state change do we return status: 'confirmed'. If the device doesn't respond within the timeout window (configurable, default 16 seconds), you get status: 'timeout' with the last known state so your app can decide what to do next.

Real-Time Telemetry

Normalized telemetry across all hardware: lat/lon, GPS timestamp, speed (km/h), vehicle battery (%), IoT module battery (separate from vehicle), lock state (boolean), ignition (boolean), odometer (km), heading (degrees), altitude (m), signal strength (RSSI in dBm), charging state, and online status. OKAI reports ignition via GTSPD subcodes (0x18 throttle on, 0x19 throttle off). Omni reports it as a boolean in the MT2 JSON payload. Smart Guard reports voltage and fuel level. You get the same normalized fields regardless of vehicle type or hardware.

Heartbeat & Connection Monitoring

OKAI devices send GTHBD heartbeat packets over TCP and expect the server to reply with a SACK (server acknowledgment) within the heartbeat interval — miss it and the device disconnects, queuing commands that silently fail. Switchboard handles SACK responses automatically. For MQTT devices (Omni, ZIMO), we monitor MQTT keep-alive and last-will-and-testament (LWT) messages. Every device has a tracked lastSeen timestamp; online/offline transitions fire as webhook events.

Geofencing Engine

Define zones as GeoJSON polygons with properties: max speed, auto-lock on exit, no-ride designation. As telemetry streams in, each GPS fix is evaluated via point-in-polygon tests. Zone enter/exit events fire with zone ID, event type, and triggering coordinates. For speed enforcement, Switchboard can send throttle-limit commands to hardware that supports it — OKAI via AT+GTSPD, Omni via the 0x11 speed mode UART command. Zone events are also written to a queryable event log for post-hoc ride path analysis.

Signed Webhooks

Event types: device.online/offline (connection state), device.telemetry (periodic GPS/battery at configurable intervals), command.confirmed/timeout/failed (full command lifecycle), zone.enter/exit (geofence transitions), device.low_battery (configurable threshold), device.tamper (hardware-dependent), trip.start/end (if using trip lifecycle). Each payload includes device ID, hardware type, ISO 8601 timestamp, event type, and the full current telemetry snapshot. Delivered with HMAC signatures, retried with exponential backoff on 4xx/5xx.

Multi-Tenant Isolation

Each fleet gets its own API key and device pool. API keys can only see and command devices assigned to their tenant — no cross-tenant visibility at the API level. Webhooks are delivered per-tenant with tenant-specific HMAC signing secrets. All tenants share infrastructure but device records, command history, and event logs are isolated by tenant ID. Enterprise plans can deploy a fully isolated proxy instance per tenant for additional separation.

OTA Firmware Updates

OKAI devices support firmware upgrades via the AT+GTUPD command set, staging binaries over the TCP connection. Omni devices support both IoT firmware and ECU (motor controller) firmware updates via MQTT commands with chunked binary delivery. Switchboard orchestrates the process: upload a firmware binary, select targets (individual IMEI, by model, or by fleet), and we handle delivery, progress tracking, and rollback if the device doesn't report healthy post-update. Staged rollouts push to 5% first, verify, then expand.

How the Architecture Works

Switchboard sits between vendor-specific device behavior and your application stack, so you only build once even when your hardware mix changes.

Device Protocols In

Vendor-specific transports, topics, and command formats stay isolated in adapters.

OKAI over TCP / AT commands
Omni over MQTT / JSON
Queclink tracker messages
ZIMO MQTT topics
Smart Guard telematics APIs

Switchboard Control Plane

The place where raw protocol behavior becomes a consistent product interface.

Protocol adapters per hardware family
Normalized device model and command states
Heartbeat, reconnect, and offline monitoring
Command confirmation against returned telemetry
Tenant-aware auth, routing, and audit history

Apps and Workflows Out

Your customer-facing and internal systems consume one API, not five vendor specs.

Rider app and admin dashboard
Rental / billing backend
Operations alerts and support tooling
Webhooks into analytics or CRM
Internal tooling over a consistent REST API

Normalized state model

One device shape for battery, location, lock state, ignition, and online status.

Command lifecycle

Dispatch, pending, confirmed, failed, and timeout states surfaced as application-level events.

Webhook fan-out

Stream status changes, trip events, offline alerts, and geofence transitions into your stack.

Protocol onboarding

New hardware gets mapped into the same API instead of forcing an app rewrite.

Supported Hardware

One integration to rule them all. We add new protocols monthly.

OKAI

Live

TCP / AT Commands (EF80xx firmware)

ES200, ES400, EB100 e-bikes

Lock / Unlock via AT+GTRTO with GTULS/GTULF confirmation
Throttle on/off via AT+GTSPD (subcmd 0x18/0x19)
Periodic FRI reports: GPS, battery, stateCode (0x41/0x42)
Heartbeat SACK handling (GTHBD → +SACK:GTHBD)
Speed limiting via AT+GTSPD with configurable km/h
Device config via GTQSS (heartbeat interval, region, server IP)

Omni

Live

MQTT v3.1.1 / JSON (Lannmarker V2.9)

ACTON, Lannmarker IoT boards

Lock / Unlock via JSON command on IMEI subscribe topic
MT2 telemetry: scooterLocked, scooterBattery, GPS, speed
Buzzer / Light / BLE management via UART 0x30/0x31 passthrough
ECU firmware + IoT firmware OTA via chunked MQTT delivery
Speed mode control via 0x11 UART command
ICCID-based auth, QoS 0, topic: data/KW/scooter/{IMEI}

Queclink

Live

TCP / Proprietary Binary Frames

GL300, GL500, GV series GPS trackers

Fixed-length report frames with GPS, speed, battery
Configurable reporting intervals (distance, time, heading)
Geofence event triggers at the device level
Motion detection via 3-axis accelerometer
Ignition state detection
Deep sleep mode with wake-on-motion

ZIMO

Live

MQTT / JSON (proprietary topic schema)

Multi-vehicle IoT modules

Lock / Unlock with state confirmation
GPS tracking with configurable report intervals
Vehicle battery + IoT module battery (dual reporting)
Speed monitoring and trip event lifecycle
Remote configuration updates
Keep-alive monitoring with LWT disconnect detection

Smart Guard

Live

REST / Telematics API (polling + webhooks)

Connected vehicle security modules

Lock / Unlock via authenticated REST endpoints
GPS location, heading, altitude, speed
Battery voltage / fuel level / odometer
Ignition state and door lock status
VIN-based vehicle identification
Webhook event delivery for state changes

Segway-Ninebot

Coming Soon

Coming soon

Max, KickScooter series

Lock / Unlock
GPS tracking
Battery level and charging state
Speed limiting per zone
Trip lifecycle events
Firmware OTA
Don't see your hardware? Send us the spec — we add new protocols in 1-2 weeks.

Example API Calls

Representative requests and normalized responses from the Switchboard API

Request

POST /v1/devices/:imei/lock
curl -X POST https://api.switchlabs.dev/v1/devices/860012345678/lock \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json"

Response

200 OK
{
  "deviceId": "860012345678",
  "hardware": "okai",
  "command": "lock",
  "status": "confirmed",
  "latencyMs": 2847,
  "protocol": {
    "transport": "tcp",
    "commandSent": "AT+GTRTO=lock",
    "ackReceived": "GTULS",
    "stateCode": "0x41"
  },
  "telemetry": {
    "lat": 37.9876,
    "lon": -87.5432,
    "battery": 72,
    "locked": true,
    "ignition": false,
    "speed": 0,
    "gpsTimestamp": "2026-03-11T22:14:03Z"
  }
}
Auth
Bearer Token
Format
JSON
Rate Limit
100 req/s
Command Timeout
Configurable
Uptime SLA
99.9%

Security and Reliability

Enterprise buyers need more than protocol support. They need confidence that access, events, deployment, and operations can hold up in production.

Access Control

Per-fleet API keys, separated device pools, and role-aware operational access.

Event Integrity

Signed webhook delivery and a normalized event stream that is easier to verify downstream.

Deployment Options

Shared cloud, private cloud, or on-prem deployments depending on fleet size and requirements.

Operational Visibility

Connection health, command status, and offline transitions surfaced as reviewable signals.

Security Review Ready

If a fleet, city partner, or insurance team needs to understand how traffic flows and where responsibilities sit, we can walk them through the architecture instead of hand-waving over it.

Operational controls

Reviewable command history, normalized device state, and clearer ownership between the app layer and hardware layer.

Deployment flexibility

Shared-hosted for speed, private deployment for tighter controls, or on-prem when procurement requires it.

TLS transport
Per-fleet isolation
Signed webhooks
Audit-friendly command history
Private deployment options
Architecture walkthrough available

How Switchboard Stacks Up

Purpose-built for micromobility, not a generic integration layer

Feature
Switchboard
Legacy Middleware
DIY
Generic IoT Platform
Built for micromobility and light EV fleets
Confirmed command execution (not just 'sent')
Command lifecycle (confirmed / timeout / failed)
Heartbeat SACK handling (TCP protocols)
MQTT keep-alive + LWT disconnect detection
Normalized telemetry model across hardware
Per-zone speed limiting via device commands
Signed webhook delivery with retry + backoff
Multi-tenant fleet isolation
Staged OTA firmware rollouts
Setup time to first API callHoursWeeksMonthsDays
Protocol onboarding from manufacturer spec1-2 weeksMonths
Zero-downtime migration from existing middleware
On-prem / private cloud deployment option

This reflects the typical tradeoffs operators run into when choosing between a purpose-built micromobility API, legacy middleware, a generic IoT platform, or a fully in-house build.

Simple, Transparent Pricing

Indicative monthly pricing for live fleets. Deployment model and protocol mix can adjust final scope.

Starter

For pilots and small fleets

$49/mo

Up to 100 devices ($0.49/device)

All supported protocols
REST API access
Real-time telemetry
Webhooks
Email support
1 API key
Request Access
Most Popular

Growth

For growing operations

$149/mo

Up to 500 devices ($0.30/device)

Everything in Starter
Geofencing & zones
Command confirmation
Priority support
5 API keys
Webhook retry & delivery logs
Request Access

Fleet

For multi-city operators

$399/mo

Up to 2,000 devices ($0.20/device)

Everything in Growth
Multi-tenant management
OTA firmware updates
Custom protocol onboarding
Unlimited API keys
Dedicated support channel
Request Access

Enterprise

Need more than 2,000 devices, on-prem deployment, or a custom protocol? Tell us about your fleet.

Request Access

Tell us about your fleet.

Share your hardware mix, deployment timeline, and rough fleet size. We will reply with fit, migration notes, and the fastest path to a live pilot.

Fast fit check

We can tell you quickly whether your current hardware mix fits the normalized API.

Migration plan

Share your vendor stack and we will outline the cleanest path from existing middleware or direct integrations.

Protocol review

If your hardware is new, we can scope protocol onboarding from the spec before you commit.

Expect a reply within one business day with next steps, fit, and any immediate protocol questions.

Frequently Asked Questions

Everything you need to know about Switchboard

Contact

Tell us what you're building and we'll get in touch fast

Ship a proof-of-concept, integrate Metro2, or hand off the workflow entirely—we respond within one business day and loop in the right Switch Labs partner for your stack.

Response Time
< 24 hours
Delivery Options
Product | Services

By submitting you agree to let Switch Labs contact you about relevant products and services.