Setup

From a Wialon token to a database you can query

No servers to provision, no connector to maintain. You paste a Wialon API token, choose what to extract, and FleetSQL keeps a PostgreSQL database in sync with your fleet — starting with up to three years of history on the first run.

First run
Backfills up to 3 years
Then
Daily sync on your schedule
Isolation
One database per client
Access
Standard PostgreSQL connection

Step 1 — Connect with a Wialon token

FleetSQL authenticates against your Wialon account with an API token you generate yourself, so nothing is stored that you cannot revoke in a click. The token is verified on entry: if the account cannot read the units you expect, you find out during setup rather than three days into a backfill.

Read access is all it needs. FleetSQL never writes back to Wialon — no unit properties changed, no reports created, no notifications registered. Whatever your dispatchers see in the platform stays exactly as they left it.

Step 2 — Configure what to extract

You choose what lands in the database: unit properties, the daily telemetry summary, fuel fillings and drains, and eco-driving violations. Each has a cost in API calls, so picking only what you will query keeps the sync inside the limits Wialon enforces — a subject covered in detail in working within Wialon's limits.

Timezone matters more than it looks. A daily row is only meaningful once you have said which day it belongs to, so the fleet's timezone is part of the configuration rather than an assumption — otherwise trips just after midnight land on the wrong date and every daily aggregate is quietly wrong.

Step 3 — Backfill, then sync

The first run pulls history — up to three years, as far back as your Wialon retention actually goes. That is the deepest history the database will ever hold, because once a period ages out of the source, no pipeline can recover it. It is the reason the first extraction is worth running early rather than at the end of an evaluation.

After that the sync runs once a day, at a time you set. Each run is idempotent: re-running a date replaces that date's rows rather than duplicating them, so a failed night is fixed by running it again rather than by cleaning up afterwards.

Step 4 — Query it like any other database

You get a PostgreSQL connection string, and everything downstream is standard from that point: psql, DBeaver, Metabase, Grafana, Power BI, pandas, an ORM in whatever language your team writes. There is no FleetSQL SDK to learn and no proprietary query language, which is the whole point.

Idle share by vehicle, last 30 days
SELECT unit_name,
       ROUND(SUM(idling_hours), 1) AS idle_hours,
       ROUND(SUM(engine_hours), 1) AS engine_hours,
       ROUND(100 * SUM(idling_hours) / NULLIF(SUM(engine_hours), 0), 1) AS idle_pct
FROM   wialon_standard
WHERE  date >= CURRENT_DATE - INTERVAL '30 days'
GROUP  BY unit_name
ORDER  BY idle_pct DESC NULLS LAST;

What runs where

Every client gets a separate PostgreSQL database rather than a shared table with a tenant column. That is a deliberate trade: it costs more to operate than one big table, and it means a query written for one client cannot accidentally return another client's rows. For an integrator running fleets for several customers, that distinction is the difference between a data model and a liability.

Databases are hosted in the EU, encrypted at rest and in transit, with access logged. Deletion on request drops the database rather than flagging rows — what an engagement includes covers how that is handled contractually.

Frequently asked questions

Does FleetSQL write anything back to Wialon? +

No. It authenticates with a read token and never modifies units, reports, notifications or properties. If it stopped running tomorrow, your Wialon account would look exactly as it does today.

How far back does the first extraction go? +

Up to three years, bounded by what your Wialon deployment still retains. Anything already aged out of the source cannot be recovered later by any tool, which is why the first backfill is worth running early rather than at the end of an evaluation.

What happens if a nightly sync fails? +

The run is retried, and because each date's rows are replaced rather than appended, re-running a failed day produces the correct result rather than duplicates. A day that never landed shows up as a gap in the daily table rather than as a silently wrong total.

Can we choose the sync time? +

Yes, and it matters for more than convenience. Scheduling the pull outside the hours when your dispatchers hit the Wialon API keeps the extraction from competing with operational calls for the same rate-limit budget.

Do we need to run any infrastructure? +

No. The database is hosted and managed, and you receive a connection string. Teams that need the data inside their own network run the same model as a custom pipeline — that is an Asset Track engagement rather than this product.

Contact

Interested in FleetSQL?

Why FleetSQL

Your Telematics data in a PostgreSQL database you control — queryable, joinable, and yours.