Skip to content
QuantyDocs
Open Quanty

Your own system (API)

When your trucks report to a telematics Quanty does not read itself (or to your own system), that system can send the positions to Quanty instead. You connect Your own system (API) in Telematics, make an API key that may send positions, and your system posts the positions to one address. From then on they work like those of any provider: on the fleet map, on the vehicle board in Tracking, for the kilometres of orders and for the odometer.

Before you start

  • Telematics is part of the TMS add-on, and only organization admins connect telematics and make API keys.
  • The vehicles must already be in the TMS fleet (Vehicles and sets): Quanty matches each position to one of your TMS vehicles and never creates a vehicle from a position.
  • The developer of the sending system needs the address, the key and the request below. The full request and answer are also in the API Reference.

1. Connect Your own system (API)

  1. Open Telematics (from Integrations) and click Connect on the tile Your own system (API): "For a telematics Quanty does not read itself: your system sends the positions to Quanty."
  2. Access has nothing to fill in: "Nothing to fill in here. Your system sends vehicle positions to the address below, with your organization's API key." It shows the same instructions as How to send data (below).
  3. Destination: a table or No table, map only, as for any provider (see Connecting telematics).
  4. Schedule: "Nothing is read on a schedule: positions arrive when your system sends them." Give it a name if you like and save. There is no test: nothing is asked of a provider.

The connection's row then says Receiving: Through the API and Last data (when the last position arrived), and has How to send data. One such connection is enough; the tile hides Connect once you have it.

How to send data. In your organization the address is your Quanty API address.
The connection Your own system (API) with How to send data open: the address with Copy, the four rules, and the example request

2. Make an API key that may send positions

  1. Open TMS settings, API and webhooks and click Create key.
  2. Give it a Name, for example "Telematics sender".
  3. Tick Telematics: sending. It is never ticked by default, and keys made earlier do not have it. The four kinds of data to read (Orders, Contractors, Vehicles, Invoices) are ticked by default: untick them for a key that only sends positions.
  4. Click Create key and copy the key: "We show this key only once. The list keeps only its beginning; if it is lost, revoke it and create a new one."

A key with only Telematics: sending can send positions and read nothing. An organization can hold up to 20 active keys. Revoke stops a key at once.

The API key dialog; tick Telematics: sending.
The New API key dialog: Name and the kinds of data, Orders, Contractors, Vehicles, Invoices and Telematics: sending

3. Send positions

How to send data shows the address with Copy:

POST https://<your Quanty API address>/api/v1/ext/tms/telematics/positions
Authorization: Bearer <API key>
Content-Type: application/json

and the example request, with the current time filled in:

{"items":[{"vehicle":{"plate":"PO 1AB23"},"at":"2026-11-02T10:00:00Z","lat":52.4064,"lng":16.9252,"speed_kmh":82}]}

The fields of a position

FieldWhat it meansExample
vehicleWhich vehicle: its Quanty id, its vin or its plate. Required.{"plate":"PO 1AB23"}
atWhen the position was taken: ISO 8601 (without an offset it is UTC) or Unix seconds. Required."2026-11-02T10:00:00Z"
lat, lngThe position in degrees (WGS 84). Required; 0,0 is refused.52.4064, 16.9252
speed_kmhSpeed, 0 to 400. Send it: without a speed the vehicle shows as Offline on the map.82
headingDirection in degrees.90
odometer_kmThe odometer, above 0 and up to 5 000 000.423434.5
fuel_pct, fuel_lFuel level in % (0 to 100) and in litres.64
driverThe driver: id and name.{"name":"Marek Zieliński"}
trailerThe trailer: plate or vin.{"plate":"PO 4TR11"}

An optional value that does not make sense (a speed of -1, an odometer of 0, a fuel of "n/a") is left out and listed under ignored; the position itself is kept. A field you do not send keeps its last value (for example the driver); null clears it.

How a vehicle is matched

  1. By id when given (an unknown id is refused, with no fallback).
  2. Else by vin; a VIN that matches nothing falls back to the plate.
  3. Else by plate, compared without spaces and dashes and in capitals ("po-1ab23" matches "PO 1AB23").

A TMS vehicle with no telematics yet is linked to this connection on its first position, and its history says so. A vehicle that another telematics connection already feeds is refused, and so is a plate or VIN that two of your vehicles share.

Limits

LimitValue
Positions per requestat most 500, and at most 1 MB
Requests per key60 a minute and 2 000 an hour
Time in the futureat most 15 minutes ahead of Quanty's clock ("check the sender's clock")
Old positionsnot older than the position history (90 days)
At the same timeone request per organization; a second one gets "busy" with a retry hint of 2 seconds

Send in batches of a few hundred positions, in time order per vehicle. The vehicle is Driving from 3 km/h, Stopped below that, and Offline when its last report is more than 6 hours old. The odometer of the TMS vehicle only goes up, so send real readings.

The answer

Quanty answers 200 when at least one position was stored, with:

FieldMeaning
acceptedPositions taken.
positions_addedPositions added to the history.
older_than_storedPositions older than what the vehicle already has (taken, not added to the trail).
vehicles_linkedPlates linked to this connection by this request.
rejectedEach refused position with its index, its reason and the field.
ignoredOptional values left out, with their index and field.

When nothing was stored, the answer has the same shape with the status of the refusals (404, 409 or 422).

ProblemAnswer
The key is missing, unknown or revoked401
The organization has no TMS add-on, or its plan is unpaid402
The key does not have Telematics: sending403
Your own system (API) is not connected, or it is paused409
The request is too large413
Not JSON, no items, or more than 500422
Too many requests, or another request is still running429 (wait and send again)

A single position can be refused for: an unknown vehicle id (404), a vehicle that is not unique or is fed by another telematics (409), a time in the future or older than the history, or a missing or wrong field (422).

Keep the key secret

The key lets anyone who has it send positions for your vehicles. Keep it in the sending system only, and revoke it in TMS settings when it may have leaked.

Good to know

  • Pausing the connection refuses new positions until you resume it; the row then says Receiving: Paused.
  • Deleting the connection deletes its position history and unlinks the TMS vehicles; positions sent afterwards are refused.
  • Positions from your system appear on the fleet map within 30 seconds and count for the order kilometres and road cards like any provider's.