List members
curl --request GET \
--url https://api.hellotracks.com/v1/members \
--header 'API-Key: <api-key>'import requests
url = "https://api.hellotracks.com/v1/members"
headers = {"API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'API-Key': '<api-key>'}};
fetch('https://api.hellotracks.com/v1/members', 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.hellotracks.com/v1/members",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>"
],
]);
$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.hellotracks.com/v1/members"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
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.hellotracks.com/v1/members")
.header("API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hellotracks.com/v1/members")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"items": [
{
"id": "a1b2c3",
"type": "person",
"username": "alex@example.com",
"name": "Alex Rivera",
"email": "alex@example.com",
"phone": "+1 415 555 0101",
"color": "#2f80ed",
"profileImageUrl": "",
"companyId": "c0c0c0",
"role": "worker",
"statusLabel": "",
"teams": [
1
],
"location": {
"lat": 37.7793,
"lng": -122.4193,
"ts": 1761980400000,
"head": 90,
"accuracy": 12,
"speed": 0
},
"units": {
"distance": "US",
"time": "12",
"date": "MM-dd-yyyy"
},
"locale": {
"language": "en",
"timezone": "America/Los_Angeles"
},
"routeStartLat": 37.7749,
"routeStartLng": -122.4194,
"routeEndLat": 37.7749,
"routeEndLng": -122.4194,
"travelMode": "car",
"vehicleCapacity": 0,
"routeStartTime": "08:00",
"workingHours": {
"monday": {
"start": 800,
"end": 1700
},
"tuesday": {
"start": 800,
"end": 1700
},
"wednesday": {
"start": 800,
"end": 1700
},
"thursday": {
"start": 800,
"end": 1700
},
"friday": {
"start": 800,
"end": 1700
},
"saturday": {
"start": 0,
"end": 0
},
"sunday": {
"start": 0,
"end": 0
},
"source": "individual"
},
"workingHoursOverrides": {
"20261224": {
"start": 800,
"end": 1200
}
},
"states": {
"moving": "halted",
"tracking_status": true,
"location_services": true,
"login_status": true,
"battery_save": false,
"off_trackrecording": false,
"ignoring_battery_optimization": true,
"off_gps_stationary": false,
"location_permission": true,
"background_location": true
},
"timestamps": {
"signal": 1761980400000,
"created": 1735689600000,
"login": 1761970000000,
"sync": 1761975000000,
"tracking": 1761970000000,
"suspended": 0,
"recovered": 0,
"invited": 1735689600000,
"reminded": 1735689600000
}
}
]
},
"error": null,
"meta": {
"path": "/v1/members",
"method": "GET"
}
}{
"data": null,
"error": {
"code": "invalid_api_key",
"message": "Invalid Hellotracks API key."
},
"meta": {
"path": "/jobs",
"method": "GET"
}
}{
"data": null,
"error": {
"code": "forbidden",
"message": "No permission."
},
"meta": {
"path": "/jobs",
"method": "GET"
}
}{
"data": null,
"error": {
"code": "throttled",
"message": "Too many requests."
},
"meta": {
"path": "/jobs",
"method": "GET"
}
}Members
List members
Lists the company’s active members the key may see: admins and company keys see everyone; operators and workers see what the company’s visibility settings allow (for example only their own team). The caller is always included. Removed members appear only when asked for by id. No paging: query and max filter the full list.
GET
/
members
List members
curl --request GET \
--url https://api.hellotracks.com/v1/members \
--header 'API-Key: <api-key>'import requests
url = "https://api.hellotracks.com/v1/members"
headers = {"API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'API-Key': '<api-key>'}};
fetch('https://api.hellotracks.com/v1/members', 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.hellotracks.com/v1/members",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>"
],
]);
$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.hellotracks.com/v1/members"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
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.hellotracks.com/v1/members")
.header("API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hellotracks.com/v1/members")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"items": [
{
"id": "a1b2c3",
"type": "person",
"username": "alex@example.com",
"name": "Alex Rivera",
"email": "alex@example.com",
"phone": "+1 415 555 0101",
"color": "#2f80ed",
"profileImageUrl": "",
"companyId": "c0c0c0",
"role": "worker",
"statusLabel": "",
"teams": [
1
],
"location": {
"lat": 37.7793,
"lng": -122.4193,
"ts": 1761980400000,
"head": 90,
"accuracy": 12,
"speed": 0
},
"units": {
"distance": "US",
"time": "12",
"date": "MM-dd-yyyy"
},
"locale": {
"language": "en",
"timezone": "America/Los_Angeles"
},
"routeStartLat": 37.7749,
"routeStartLng": -122.4194,
"routeEndLat": 37.7749,
"routeEndLng": -122.4194,
"travelMode": "car",
"vehicleCapacity": 0,
"routeStartTime": "08:00",
"workingHours": {
"monday": {
"start": 800,
"end": 1700
},
"tuesday": {
"start": 800,
"end": 1700
},
"wednesday": {
"start": 800,
"end": 1700
},
"thursday": {
"start": 800,
"end": 1700
},
"friday": {
"start": 800,
"end": 1700
},
"saturday": {
"start": 0,
"end": 0
},
"sunday": {
"start": 0,
"end": 0
},
"source": "individual"
},
"workingHoursOverrides": {
"20261224": {
"start": 800,
"end": 1200
}
},
"states": {
"moving": "halted",
"tracking_status": true,
"location_services": true,
"login_status": true,
"battery_save": false,
"off_trackrecording": false,
"ignoring_battery_optimization": true,
"off_gps_stationary": false,
"location_permission": true,
"background_location": true
},
"timestamps": {
"signal": 1761980400000,
"created": 1735689600000,
"login": 1761970000000,
"sync": 1761975000000,
"tracking": 1761970000000,
"suspended": 0,
"recovered": 0,
"invited": 1735689600000,
"reminded": 1735689600000
}
}
]
},
"error": null,
"meta": {
"path": "/v1/members",
"method": "GET"
}
}{
"data": null,
"error": {
"code": "invalid_api_key",
"message": "Invalid Hellotracks API key."
},
"meta": {
"path": "/jobs",
"method": "GET"
}
}{
"data": null,
"error": {
"code": "forbidden",
"message": "No permission."
},
"meta": {
"path": "/jobs",
"method": "GET"
}
}{
"data": null,
"error": {
"code": "throttled",
"message": "Too many requests."
},
"meta": {
"path": "/jobs",
"method": "GET"
}
}Authorizations
Your API key, from More → API & Integrations in the dashboard, or from ht signup / ht auth login.
Query Parameters
Only these member ids; comma-separated or repeated. Removed members of the company are included.
One member id (replaces uids).
Case-insensitive text found in id, username, name or email.
At most this many members; no limit by default.
Required range:
x >= 1