Live GPS snapshot
curl --request GET \
--url https://api.fleeticc.com/api/partner/v1/track \
--header 'X-Api-Key: <api-key>' \
--header 'X-Signature: <x-signature>' \
--header 'X-Timestamp: <x-timestamp>'import requests
url = "https://api.fleeticc.com/api/partner/v1/track"
headers = {
"X-Api-Key": "<api-key>",
"X-Timestamp": "<x-timestamp>",
"X-Signature": "<x-signature>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Api-Key': '<api-key>',
'X-Timestamp': '<x-timestamp>',
'X-Signature': '<x-signature>'
}
};
fetch('https://api.fleeticc.com/api/partner/v1/track', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fleeticc.com/api/partner/v1/track",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>",
"X-Signature: <x-signature>",
"X-Timestamp: <x-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fleeticc.com/api/partner/v1/track"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("X-Timestamp", "<x-timestamp>")
req.Header.Add("X-Signature", "<x-signature>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fleeticc.com/api/partner/v1/track")
.header("X-Api-Key", "<api-key>")
.header("X-Timestamp", "<x-timestamp>")
.header("X-Signature", "<x-signature>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fleeticc.com/api/partner/v1/track")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
request["X-Timestamp"] = '<x-timestamp>'
request["X-Signature"] = '<x-signature>'
response = http.request(request)
puts response.read_body{
"code": "200",
"message": "Partner track positions retrieved successfully.",
"data": {
"record": [
{
"vehicleId": "8f3c2a1b-4d5e-6f70-8192-a3b4c5d6e7f8",
"imei": "359633100000001",
"plateNumber": "ABC-1234",
"vehicleName": "Truck 01",
"latitude": 7.2916,
"longitude": 80.6349,
"speed": 32.5,
"course": 180,
"accstatus": 1,
"gpstime": 1761200000,
"servertime": 1761200001,
"lastSeen": 1761200001
}
]
}
}Partner API
Live location
Get current vehicle positions, or stream live updates
GET
/
api
/
partner
/
v1
/
track
Live GPS snapshot
curl --request GET \
--url https://api.fleeticc.com/api/partner/v1/track \
--header 'X-Api-Key: <api-key>' \
--header 'X-Signature: <x-signature>' \
--header 'X-Timestamp: <x-timestamp>'import requests
url = "https://api.fleeticc.com/api/partner/v1/track"
headers = {
"X-Api-Key": "<api-key>",
"X-Timestamp": "<x-timestamp>",
"X-Signature": "<x-signature>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Api-Key': '<api-key>',
'X-Timestamp': '<x-timestamp>',
'X-Signature': '<x-signature>'
}
};
fetch('https://api.fleeticc.com/api/partner/v1/track', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fleeticc.com/api/partner/v1/track",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>",
"X-Signature: <x-signature>",
"X-Timestamp: <x-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fleeticc.com/api/partner/v1/track"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("X-Timestamp", "<x-timestamp>")
req.Header.Add("X-Signature", "<x-signature>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fleeticc.com/api/partner/v1/track")
.header("X-Api-Key", "<api-key>")
.header("X-Timestamp", "<x-timestamp>")
.header("X-Signature", "<x-signature>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fleeticc.com/api/partner/v1/track")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
request["X-Timestamp"] = '<x-timestamp>'
request["X-Signature"] = '<x-signature>'
response = http.request(request)
puts response.read_body{
"code": "200",
"message": "Partner track positions retrieved successfully.",
"data": {
"record": [
{
"vehicleId": "8f3c2a1b-4d5e-6f70-8192-a3b4c5d6e7f8",
"imei": "359633100000001",
"plateNumber": "ABC-1234",
"vehicleName": "Truck 01",
"latitude": 7.2916,
"longitude": 80.6349,
"speed": 32.5,
"course": 180,
"accstatus": 1,
"gpstime": 1761200000,
"servertime": 1761200001,
"lastSeen": 1761200001
}
]
}
}Two options:
Leave both empty to get up to 100 vehicles for your account.
Same headers and filters as the snapshot. Use an SSE / EventSource client and keep the connection open.
- Snapshot — one request, current positions
- Stream — keep a connection open and receive updates as they happen
Snapshot
GET https://api.fleeticc.com/api/partner/v1/track
Headers
string
required
Your Partner API key
string
required
Unix seconds
string
required
HMAC signature — must cover the exact path including query string
Query
string
Comma-separated IMEIs (optional). Example:
3596…,3597…string
Comma-separated Fleeticc vehicle UUIDs (optional)
Request example
export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/opt/homebrew/bin:$PATH"
KEY="$FLEETICC_API_KEY"
SECRET="$FLEETICC_API_SECRET"
REQ_PATH="/api/partner/v1/track?imeis=359633100000001"
TS=$(date +%s)
BODY_HASH=$(printf '' | openssl dgst -sha256 -hex | awk '{print $NF}')
SIG=$(printf 'GET\n%s\n%s\n%s' "$REQ_PATH" "$TS" "$BODY_HASH" | openssl dgst -sha256 -hmac "$SECRET" -hex | awk '{print $NF}')
curl -sS -X GET "https://api.fleeticc.com$REQ_PATH" \
-H "X-Api-Key: $KEY" \
-H "X-Timestamp: $TS" \
-H "X-Signature: $SIG"
Example response
{
"code": "200",
"message": "Partner track positions retrieved successfully.",
"data": {
"record": [
{
"vehicleId": "8f3c2a1b-4d5e-6f70-8192-a3b4c5d6e7f8",
"imei": "359633100000001",
"plateNumber": "ABC-1234",
"vehicleName": "Truck 01",
"latitude": 7.2916,
"longitude": 80.6349,
"speed": 32.5,
"course": 180,
"accstatus": 1,
"gpstime": 1761200000,
"servertime": 1761200001,
"lastSeen": 1761200001
}
]
}
}
| Field | Description |
|---|---|
latitude, longitude | Position |
speed | km/h |
course | Heading in degrees |
accstatus | Ignition when available (0 / 1) |
gpstime, servertime, lastSeen | Unix time in seconds |
Limits
Up to 120 requests per minute per API key.Live stream (SSE)
GET https://api.fleeticc.com/api/partner/v1/track/stream
| Update type | Meaning |
|---|---|
track.snapshot | Full list when you connect |
track.update | One vehicle moved / updated |
track.heartbeat | Connection is alive |
When to use which
| Use case | Suggested approach |
|---|---|
| Live ops map | Stream |
| Occasional “where is this vehicle?” | Snapshot every few seconds |
Limits
Up to 30 new stream connections per minute per API key.Authorizations
Also send X-Timestamp (Unix seconds) and X-Signature (HMAC-SHA256 hex). See Authentication.
Headers
Your Partner API key
Example:
"pk_078dd6a8b290dbce3543d18f9c6cf72d"
Current Unix time in seconds (±5 minutes)
Example:
"1761200000"
HMAC-SHA256 hex of METHOD\nPATH\nTIMESTAMP\nBODY_SHA256
Query Parameters
Comma-separated IMEIs (1–100). Leave empty for up to 100 vehicles.
Example:
"359633100000001,359633100000002"
Comma-separated Fleeticc vehicle UUIDs