Platform · Vehicle data and receivers
Every source, one vehicle record.
Vehicles reach c.technology three ways: vendor clouds and devices push over HTTP, IoT hardware connects over TCP, and the owner's phone forwards what the vehicle sends over Bluetooth. Everything lands in one record per vehicle, with one current status and one history, and every role and every API reads that record.
01The record
One shared base, with your additions on top.
Every vehicle reports the same core, so every screen, report and API works for all of them. What only your vehicles know is added on top, by industry, protocol or manufacturer.
Shared base · every vehicle
The status every vehicle has
Same fields, same units, whether it is a boat, a motorcycle or an e-bike. Charge or fuel, depending on the drive.
- Late data goes to history, never over the present
- Each field permissioned on its own
Demo Motorcycle 1 · demo data
- StatusParked at home
- Position47.37° N, 8.54° E
- GPS qualityGood · 11 satellites
- IgnitionOff
- LockedYes
- Charge or fuel level62 %
- Range81 km
- 12 V battery12.9 V, steady
- Odometer80,392 km
Industry-specific
What a boat knows that a motorcycle does not, and the other way round.
- Depth marine
- Water sensors marine
- Additional GPS marine
- Engine data marine
- Motor temperature light EV
Manufacturer-specific
Your own data points, from your ECU or battery system, mapped during setup.
- Battery measurements
- ECU values
- Your own fields
02Receivers
Every source pushes. Nothing is polled.
Three receivers today, Kafka and MQTT next. A new source is a new receiver, our adapter for it, and nothing above it changes.
-
Live
HTTP push
Vendor clouds such as Bosch Mobility, your own backend, our devices.
Each upload carries a signed token
-
Live
TCP direct
IoT hardware in the vehicle, over its own SIM. Nine device models decoded.
Common telematics protocols, or your own
-
Live
The owner's phone
Vehicles that talk Bluetooth. The app forwards, and adds the phone's position.
Offline cache on the phone, replayed in order
-
Coming
Kafka to Kafka
You already run a data platform. Your Kafka topics stream straight into ours.
Topic to topic, nothing in between
-
Coming
MQTT
Devices and brokers that publish over MQTT, the usual language of IoT hardware.
Your devices or your broker publish to ours
Everything lands in
One record per vehicle
Every role and every API reads one current status and one history.
What we read
Data arrives bus by bus, field by field.
Your device, your supplier's, or one of ours. Want to know exactly what comes off the bus? The field list in the documentation ↗
Position
- Latitude and longitude
- Altitude
- Speed
- Heading
- Satellites
- Fix quality (PDOP, HDOP)
- Movement
- Odometer
Power
- Vehicle battery voltage
- Device battery voltage
- Device battery current
- Sleep mode
Inputs and outputs
- 4 analog inputs
- 5 digital inputs
- 4 digital outputs
- The event that sent the update
Network and sensors
- Mobile signal
- Mobile operator
- Up to 4 Bluetooth sensors: temperature, humidity, battery
Engines, up to 6
- Engine speed
- Oil pressure
- Oil temperature
- Oil level
- Engine temperature
- Coolant pressure
- Fuel pressure
- Fuel rate
- Alternator voltage
- Engine load
- Engine torque
- Engine hours
- Status flags 1 and 2
Batteries, up to 8
- State of charge
- State of health
- Time remaining
- Battery type
- Voltage
- Current
- Temperature
- Capacity (Ah)
- Charger state
Tanks, up to 4
- Fluid type
- Level
- Capacity
Depth and weather
- Water depth
- Transducer offset
- Water temperature
- Wind speed
- Air temperature
Up to six engines, eight batteries and four tanks, each with its own instance. Proprietary PGNs, we scope with you.NMEA 2000 in the docs ↗
Engine
- Engine speed
- Load at current speed
- Actual torque
- Coolant temperature
- Coolant pressure
- Oil level
- Oil pressure
- Oil temperature
- Fuel temperature
- Intake air temperature
- Intake air pressure
- Intake manifold pressure
- Intake manifold temperature
- Charge air cooler outlet
- Throttle valve position
- Wastegate position
- EGR valve position
- Injector rail pressure
- Exhaust temperature
- Barometric pressure
Fuel and hours
- Fuel rate
- Fuel level 1 and 2
- Total fuel used
- Idle fuel used
- Average fuel economy
- Engine hours
- Idle hours
- Total revolutions
- Water in fuel
Aftertreatment
- DEF tank level
- DEF tank temperature
- Urea concentration
- Urea level
- DPF status
- DPF active regeneration
- Regeneration inhibited
- DPF intake temperature
- DOC intake temperature
- SCR intake temperature
- SCR system state
- SCR inducement active
Vehicle and electrics
- Distance, high resolution
- Selected gear
- Accelerator pedal
- Brake pedal
- Battery voltage
- Alternator current
- Charging voltage
- Keyswitch voltage
- Ambient air temperature
- Cargo temperature
- VIN
- Active error codes
- Distance with MIL on
Read today through Bosch Mobility's C-Hub. Your own J1939 source connects the same way.
Driving
- Vehicle speed
- Throttle position
Engine
- Engine speed
- Engine load
- Oil temperature
- Coolant temperature
- Intake air temperature
Fuel and battery
- Fuel level
- Fuel rate
- Fuel pressure
- Hybrid battery life
Electrics and faults
- Control module voltage
- Ambient air temperature
- Fault codes (DTC)
On the Teltonika FMC001/003, plugged into the vehicle's OBD port.
Driving
- Speed
- Engine speed
- Accelerator pedal
- Total mileage
- Mileage, counted
Fuel and power
- Fuel level (%)
- Fuel level (litres)
- Fuel consumed
- Fuel consumed, counted
- Battery voltage
Alerts and states
- Unplug alert
- Towing alert
- Control state flags
- Security state flags
Your own signals
- 20 raw frames: CAN ID, 8 data bytes, age
- 8 decoded values of your choice
Your protocol does not need to be a standard: we read your frames as they are and decode them in our adapter.
Riding
- Speed
- Throttle position
- Front brake
- Rear brake
- Drive mode
- Powertrain state
- Ignition
- Motor speed
- Torque current
- Max available power
- Recuperation allowed
Vehicle
- Total distance
- Estimated range
- Kickstand
- Kill switch
- Handlebar lock
- Top case sensor
- Malfunction indicator
- Firmware version
- Serial number
Battery pack
- State of charge
- Remaining capacity
- Full charge capacity
- Part charge capacity
- Charger plugged in
- Time to full
- Time to empty
- Max charge current
- Max discharge current
- Pack voltage
- Pack current
- Pack state
- Lowest and highest cell voltage
- Lowest and highest temperature
- Voltage mismatch
- Batteries recognised, active, faulty
- Swap level
Each battery, up to 2
- Voltage
- Current
- State
- State of charge
- Temperatures
- Power stage temperature
- Remaining capacity
- Error codes
Seven formats decoded today, each built for one manufacturer or supplier: from an electric outboard's full drive and battery set to a supplier's track-and-trace status. Yours gets its own, mapped onto the record during setup.
03Master data
Out of spreadsheets, into one database for good.
Your model range, your parts, your vehicles, your error codes, your maintenance plans, your partners. Today they live in your ERP, in PDFs and in Excel sheets. We bring them in during setup, as they are.
Today
- PDFModel range 2026.pdfSales brochure
- CSVerp_
export_ From your ERPvehicles.csv - XLSXBill of materials v12.xlsxEngineering
- XLSXError codes_
FINAL_ Shared drive2.xlsx - PDFService booklet EN.pdfPrinted, in the glovebox
- XLSXDealers DACH + IT.xlsxSales team
In c.technologyOne database · audited
-
Model range
Your categories, families and types, the way you sell them.
Category Family Type
from Model range 2026.pdf
-
Parts
What goes on each type, tied to the firmware it runs.
Part Firmware
from Bill of materials v12.xlsx
-
Vehicles
Every vehicle you built, with its VIN and your ERP id.
VIN ERP id Type
from erp_export_vehicles.csv
-
Error codes
Every code any of your types can throw, and what it means.
Code Meaning Type
from Error codes_FINAL_2.xlsx
-
Maintenance plans
Intervals and tasks per type, from the booklet to the screen.
Interval Task Type
from Service booklet EN.pdf
-
Partners
Importers, distributors, dealers and service partners.
Role Market Vehicles
from Dealers DACH + IT.xlsx
-
Your own fields
Anything else you keep, on any of the above.
Any field Any metadata
you name it
- AuditedEvery change is logged, with who made it and when.
- Kept for goodNothing lives on a laptop or a shared drive any more. It stays, for as long as your vehicles run.
- Built to fitThe base every manufacturer needs is there. Anything only you keep is added as your own fields.
Your ERP id stays on every level, so both systems keep talking. One vehicle can carry more than one maker's type, the engine maker's and the boat builder's, each seeing its own.
04APIs
Out over REST and a live stream.
The same record and the same permissions as every screen, for your own systems.
Everything comes from
One record per vehicle
Read with the permissions of whoever asks. Nothing else.
-
Live
REST API
Every vehicle, its status and history, your master data. Versioned, with a full OpenAPI reference.
GET /api/v2.2/vehicle/{id}/status -
Live
Live stream
Everything stays in sync. A change reaches you the moment the vehicle reports it.
wss api.ctechnology.io/vehicle/status {"latitude": 47.37, "speed": 0, …} -
Live
History
Any fields over any period: as CSV over REST, a month per request, or the whole database as a dump.
CSV over REST · database dumps
-
Coming
Webhooks
We call your endpoint when something happens on a vehicle, instead of you asking.
Your URL, the events you choose
API keys are scoped to an organisation or to one vehicle. A stream is re-scoped the moment a permission changes.
The c.technology fabric
The same API reaches every vehicle a key has been granted, whichever manufacturer built it. Your own systems, a multi-brand dealer, a mixed fleet and an AI agent all use it. It uses one format and one key, with the permissions of whoever asks.
05Firmware
We distribute it. The vehicle applies it.
A rollout per part, confirmed per vehicle. Two ways to the vehicle: over its own connection, or through the owner's app. We host and serve the file, we never flash a control unit.
-
Uploaded
You
Upload
A firmware file with its version, for one part.
-
Switched on
You
Target
The part and the vehicle type, then switch the rollout on.
-
Served
Us
Serve
Its own modemThe vehicle fetches the file from our API, with a key bound to that vehicle.
Out of the boxThe owner's appNo modem: your app carries the file over Bluetooth.
With enterprise -
Applied
Vehicle
Apply
The control unit applies it and reports back. You see which vehicles have.
Display 3.4.0
1,201 applied · 83 not yet · demo data
The Bluetooth path runs in your own app, with your vehicle's Bluetooth protocol built in. Pricing →
06Hardware
Not sure which hardware to use?
We advise you and help you choose the right device, whatever your vehicle and your use case.
Official hardware partners, with example devices

- Connectivity Hub (C-Hub)
- Track and Trace

- AT241
- AT242
- AT300
- FMC650
- FMC003
- FMC230

- Master
And more. These are examples, not a list to choose from. If your device speaks one of the common telematics protocols, it connects. Ask us about hardware →
07Questions
Asked by engineering.
We already have a telematics supplier. Do we have to change it?
No. If your supplier's cloud can push, it becomes a receiver. If your device uses one of the common telematics protocols, it connects over TCP. Nothing above the receiver changes when a source is added.
Can our engineers read the raw data?
Yes, through the API, with the same permissions as everyone else: live over the WebSocket stream, or any fields as CSV, a month per request.
Do you offer MQTT or webhooks?
Not yet. MQTT is coming as a way in, next to Kafka. Data comes out over REST and a live WebSocket stream. Outbound webhooks are on the roadmap.
What does a vehicle type change?
What the screens show first, the thresholds for alerts and when a vehicle counts as offline, and which fields it fills. The record, the APIs and the permissions stay the same.
Where to go next