v2.0Public · No account needed to read

API Reference

A single REST endpoint returns the live location of every vehicle in your fleet. Built to the BRTA GPS Monitoring Platform specification, callable from any language or straight from a browser.

One endpoint
Whole fleet in a single request.
API key auth
Query-parameter key, no OAuth dance.
CORS enabled
Call it directly from the browser.
200 — Fleet response
{
  "success": true,
  "message": "Vehicle locations fetched successfully.",
  "vehicle_count": 3,
  "data": [
    {
      "vehicle_id": "VEH001",
      "vehicle_name": "Bus-01",
      "registration_number": "Dhaka Metro-GA-12-3456",
      "vehicle_type": "Bus",
      "ignition_status": "ON",
      "speed": 45,
      "heading": 180,
      "timestamp": "2026-07-07T10:35:21.000Z",
      "location": {
        "latitude": 23.810331,
        "longitude": 90.412521
      }
    },
    {
      "vehicle_id": "VEH002",
      "vehicle_name": "Bus-02",
      "registration_number": "Dhaka Metro-GA-12-3470",
      "vehicle_type": "Bus",
      "ignition_status": "OFF",
      "speed": 0,
      "heading": 0,
      "timestamp": "2026-07-07T10:35:15.000Z",
      "location": {
        "latitude": 23.801120,
        "longitude": 90.405600
      }
    }
  ]
}

Introduction

What the API does and who it is for.

The MobiTrack24 API exposes the latest GPS position of the vehicles an organization manages. It exists so regulators, corporate fleet owners, and partner systems can read live location data without touching the tracking dashboard.

Everything is a plain HTTPS GET returning JSON. There is no SDK to install and no session to maintain — one request returns the current state of the entire fleet.

Vehicles added to your account later appear automatically. The fleet is resolved at request time, so no change to the endpoint, your API key, or your integration is ever required.

Quickstart

From nothing to live coordinates in three steps.

  1. 1
    Get a key

    Sign in to the API dashboard and generate one. It is shown once — store it somewhere your server can read it.

  2. 2
    Call the endpoint

    Send your organization name, registered email, and key as query parameters. Nothing else is required — no headers, no session, no SDK.

  3. 3
    Read the fleet

    The response carries vehicle_count and a data array of positions. Poll it on an interval to keep a live view.

Your first request
curl -G "https://api.mobitrack24.com/v1/vehicles/current-location" \
  --data-urlencode "organization_name=ABC GPS Ltd" \
  --data-urlencode "email=integration@abc.com" \
  --data-urlencode "api_key=$API_KEY"

Prefer to try it without leaving the page? The playground runs the same call against the live API.

Authentication

Every request is identified by three query parameters.

Authentication uses an API key issued to your organization, passed as a query parameter alongside the organization name and registered email that BRTA holds on record. All three must match for a request to succeed.

ParameterDescription
organization_nameOfficial organization name registered with BTRC.
emailRegistered email address of the organization.
api_keyThe secret key issued for your integration.

Keep your key secret. It grants read access to every vehicle in your fleet. Call the API from your server where you can, and rotate the key from the dashboard if it is ever exposed.

Generate or rotate a key on the API dashboard. An optional Authorization: Bearer token can be required in addition, if agreed during integration.

Conventions

Units, formats, and transport rules that apply to every response.

Transport
HTTPS only. Plain HTTP is not served.
Format
JSON, UTF-8. Always includes a boolean success field.
Coordinates
WGS84 decimal degrees.
Timestamps
UTC, ISO 8601 (e.g. 2026-07-07T10:35:21.000Z).
Speed
Kilometres per hour (km/h).
Heading
Degrees clockwise from north, 0–359.

Fleet locations

Returns the latest position of every vehicle your organization manages.

GEThttps://api.mobitrack24.com/v1/vehicles/current-location

Query parameters

ParameterTypeDescription
organization_nameStringRequiredRegistered organization name.
emailStringRequiredRegistered email address.
api_keyStringRequiredYour issued API key.
vehicle_idStringOptionalOmit to receive the whole fleet. See Single vehicle below.

Returns

A data array holding one object per vehicle, and vehicle_count with the number of entries returned. A vehicle that has never reported a position has no location to send, so it is omitted from both.

curl -G "https://api.mobitrack24.com/v1/vehicles/current-location" \
  --data-urlencode "organization_name=ABC GPS Ltd" \
  --data-urlencode "email=integration@abc.com" \
  --data-urlencode "api_key=YOUR_API_KEY" \
  -H "Accept: application/json"
200 — Response
{
  "success": true,
  "message": "Vehicle locations fetched successfully.",
  "vehicle_count": 3,
  "data": [
    {
      "vehicle_id": "VEH001",
      "vehicle_name": "Bus-01",
      "registration_number": "Dhaka Metro-GA-12-3456",
      "vehicle_type": "Bus",
      "ignition_status": "ON",
      "speed": 45,
      "heading": 180,
      "timestamp": "2026-07-07T10:35:21.000Z",
      "location": {
        "latitude": 23.810331,
        "longitude": 90.412521
      }
    },
    {
      "vehicle_id": "VEH002",
      "vehicle_name": "Bus-02",
      "registration_number": "Dhaka Metro-GA-12-3470",
      "vehicle_type": "Bus",
      "ignition_status": "OFF",
      "speed": 0,
      "heading": 0,
      "timestamp": "2026-07-07T10:35:15.000Z",
      "location": {
        "latitude": 23.801120,
        "longitude": 90.405600
      }
    }
  ]
}

Single vehicle

The same endpoint narrowed to one vehicle, kept for existing v1 integrations.

GEThttps://api.mobitrack24.com/v1/vehicles/current-location?vehicle_id=VEH001

Adding vehicle_id returns that one vehicle. The response body is the original v1 shape: a single data object rather than an array, and without vehicle_count, vehicle_name, or registration_number.

New integrations should prefer the fleet call above. This form exists so integrations written against v1 keep working unchanged.

An unknown vehicle, or one your key is not scoped to, returns 404 Vehicle not found.

curl -G "https://api.mobitrack24.com/v1/vehicles/current-location" \
  --data-urlencode "organization_name=ABC GPS Ltd" \
  --data-urlencode "email=integration@abc.com" \
  --data-urlencode "api_key=YOUR_API_KEY" \
  --data-urlencode "vehicle_id=VEH001" \
  -H "Accept: application/json"
200 — Response
{
  "success": true,
  "message": "Current vehicle location fetched successfully.",
  "data": {
    "vehicle_id": "VEH001",
    "vehicle_type": "Bus",
    "ignition_status": "ON",
    "speed": 45,
    "heading": 180,
    "timestamp": "2026-07-07T10:35:21.000Z",
    "location": {
      "latitude": 23.810331,
      "longitude": 90.412521
    }
  }
}

Response fields

Every field returned by the fleet endpoint.

FieldTypeDescription
successBooleanWhether the request succeeded.
messageStringHuman-readable result message.
vehicle_countNumberTotal number of vehicles returned.
data[].vehicle_idStringUnique vehicle identifier.
data[].vehicle_nameStringName assigned to the vehicle by the provider.
data[].registration_numberStringVehicle registration number, or UNAVAILABLE.
data[].vehicle_typeStringType of vehicle (e.g. Bus, Truck, Car).
data[].ignition_statusStringON, OFF, or UNAVAILABLE.
data[].speedNumberCurrent speed in km/h.
data[].headingNumberDirection of travel in degrees.
data[].timestampStringGPS update time, UTC ISO 8601.
data[].location.latitudeNumberLatitude in WGS84.
data[].location.longitudeNumberLongitude in WGS84.

Errors & status codes

Failures use the same JSON envelope as successes.

CodeMeaningTypical cause
200SuccessRequest completed.
400Bad RequestA required parameter is missing or empty.
401UnauthorizedKey, organization name, or email does not match.
404Vehicle Not FoundUnknown vehicle_id, or one outside your scope.
500Internal Server ErrorUpstream tracking platform unavailable.

Error bodies always carry success: false and a message, so a client can branch on the body alone without inspecting the status line.

4xx / 5xx — Response
{
  "success": false,
  "message": "Vehicle not found."
}

Freshness & polling

How current the data is, and how often to ask for it.

Poll every 15–30 s
Matches how often a tracker reports. Polling faster returns the same fix twice.
Never cached
Every response is computed at request time and sent with Cache-Control: no-store.
Trust the timestamp
It is the moment of the GPS fix, not the moment you asked — compare it, don't assume.

A vehicle parked out of coverage keeps returning its last known fix with an unchanged timestamp. Treat a fix older than a few minutes as stale in your own UI rather than as a live position.

A vehicle that has never reported a position has nothing to send, so it appears in neither data nor vehicle_count. A shorter array than you expect is normal for a fleet with newly fitted devices.

Vehicles added to your account later appear on the next call. The fleet is resolved when the request arrives, so no change to your key or integration is ever needed.

CORS & browser use

The API is callable directly from front-end code.

Cross-origin requests are permitted from any origin, and the headers are present on every response including errors — so a 401 reaches your code as a readable 401 rather than an opaque network failure.

HeaderValue
Access-Control-Allow-Origin*
Access-Control-Allow-MethodsGET, OPTIONS
Access-Control-Allow-HeadersAccept, Authorization, Content-Type
Access-Control-Max-Age86400

Credentials are not used, so Access-Control-Allow-Credentials is deliberately not sent. Remember that a key shipped to a browser is visible to anyone using the page.

Postman collection

Import the whole API, with tests, in one click.

Postman collection
Every endpoint, every error case, with assertions already written.
Download collection
Download & import

In Postman: Import → File, then pick the downloaded .json.

Fill in the variables

Open the collection's Variables tab and set api_key (plus organization and email if they are blank). Every request reads them from there.

Run it

Send Fleet locations, or use Run collection to execute every request with its tests in one pass.

What's inside

Both endpoints plus an Error cases folder (400, 401, 404). The fleet request stores the first vehicle it sees, so the single-vehicle request is runnable immediately after.

The file carries no API key — Postman keeps yours in its own variable store, so the collection stays safe to share with your team.

Playground

Run a real request against the live API from this page.

GET https://api.mobitrack24.com/v1/vehicles/current-location?organization_name=…&email=…&api_key=…

Changelog

What changed, and what it means for an existing integration.

v2.0Fleet endpoint

Omitting vehicle_id now returns the whole fleet, with vehicle_count, vehicle_name, and registration_number added per vehicle. organization_name is accepted alongside the original organization_id. CORS headers are sent on every response, errors included.

v1.0Single vehicle

The original current-location call. Still served unchanged — a v1 integration needs no edits, and passing vehicle_id returns the exact v1 body it always did.

Published fields are never removed or renamed. New fields may be added, so parse defensively and ignore what you don't recognise.

Support

Getting help with an integration.

Issue or rotate keys on the API dashboard. When reporting a problem, include the UTC timestamp of the request, the HTTP status you received, and the message from the response body — never your API key.