entopizo API Reference β€” GPS Tracking API

entopizo API Reference
GPS tracking for vehicles & fleets

Programmatic access to live vehicle positions, route history, events, alert rules, geofences, device commands, reports and fleet management. All responses are JSON.

Base URL https://go.entopizo.gr/api

Note: This page is fully static (no JavaScript rendering), so it is completely readable by AI tools, crawlers and plain HTTP clients. Some endpoints may vary depending on the platform version and active plugins on the server. Machine-readable version: https://entopizo.com/llms.txt

Getting Started

Introduction

The entopizo API is a conventional REST API. Every request (except login) is authenticated with a user_api_hash token passed as a parameter. There are no SDKs to install β€” any HTTP client works.

Quickstart: your first request in 60 seconds

Step 1 β€” Obtain your token once with your entopizo account credentials.

Step 2 β€” Call any endpoint with the token. The example fetches all your vehicles with their live positions.

That's the whole integration model: one token, plain GET/POST requests, JSON back.

Step 1 β€” Get your token

curl -X POST "https://go.entopizo.gr/api/login" \
  -d "email=user@example.com" \
  -d "password=β€’β€’β€’β€’β€’β€’β€’β€’"

# β†’ { "status": 1, "user_api_hash": "$2y$10$..." }

Step 2 β€” Fetch your vehicles

curl "https://go.entopizo.gr/api/get_devices?user_api_hash=HASH&lang=en"
Getting Started

Authentication

Authentication uses a static per-user token, the user_api_hash. It is issued once via login and then passed as a parameter on every call. Bearer headers are not used. The token does not expire unless the account password changes.

POST /api/login

Returns the account's user_api_hash. Call it once and store the hash securely.

ParameterTypeDescription
emailstring requiredYour entopizo account email
passwordstring requiredYour account password

Request

curl -X POST "https://go.entopizo.gr/api/login" \
  -d "email=user@example.com" \
  -d "password=β€’β€’β€’β€’β€’β€’β€’β€’"

Response 200

{
  "status": 1,
  "user_api_hash": "$2y$10$EXAMPLEHASH..."
}
Security: Never embed email/password in client applications or AI prompts. Store only the user_api_hash, encrypted at rest, and always transmit over HTTPS. Changing the account password invalidates the current hash.
Getting Started

Conventions

Formats used consistently across the API:

ConventionFormatExample
DatesYYYY-MM-DD2026-07-05
TimesHH:MM (account timezone)14:30
Timestamps in responsesDD-MM-YYYY HH:MM:SS05-07-2026 14:32:10
CoordinatesDecimal degrees, WGS84lat: 37.97552, lng: 23.73481
SpeedAccount unit setting (km/h or mph)"speed": 54
Paginationpage parameter; responses include current_page, last_page?page=2
Booleans in requests1 / 0snap_to_road=1
Success flag"status": 1 in response bodyβ€”

Distance and capacity units (km/mi, litres/gallons) follow the account settings β€” see Account & Setup.

Core Resources

Devices

A device is a GPS tracker installed in a vehicle or asset. Device objects carry the latest known position, motion state and sensor values, so for "where is my fleet right now" questions a single call is enough.

GET /api/get_devices

Returns all devices of the account, grouped, with last known position, speed, heading, connection state and sensor values. Use it to map vehicle names to device_id for all other calls.

ParameterTypeDescription
user_api_hashstring requiredAuthentication token
langstring optionalLanguage of translated fields, e.g. en or el
online field: online = transmitting now, ack = recent signal without GPS fix, offline = no communication for over 5 minutes, engine = idling with ignition on.

Request

curl "https://go.entopizo.gr/api/get_devices?user_api_hash=HASH&lang=en"

Response 200 (abridged)

[
  {
    "id": 0,
    "title": "Ungrouped",
    "items": [
      {
        "id": 1042,
        "name": "Truck YZX-1234",
        "online": "online",
        "time": "05-07-2026 14:32:10",
        "speed": 54,
        "course": 118,
        "lat": 37.97552,
        "lng": 23.73481,
        "altitude": 92,
        "address": "132 Gr. Lampraki Ave, Korydallos",
        "protocol": "teltonika",
        "total_distance": 48211.7,
        "stop_duration": "0s",
        "sensors": [
          { "name": "Ignition", "value": "On" },
          { "name": "Battery", "value": "12.6V" }
        ],
        "tail": [
          { "lat": "37.97501", "lng": "23.73390" }
        ]
      }
    ]
  }
]

Other device endpoints

All accept user_api_hash.

EndpointMethodKey parametersDescription
/api/get_devices_latestGETβ€”Latest positions only β€” lighter payload than get_devices
/api/add_devicePOSTname, imeiRegister a new device
/api/edit_devicePOSTdevice_id, name, icon_id, group_id, fuel_quantity, fuel_priceEdit device details and fuel settings
/api/destroy_deviceGETdevice_idPermanently delete a device
Core Resources

Route History

GET /api/get_history

Returns a device's history for a time range, split into drive and stop segments, with total distance and top speed.

ParameterTypeDescription
user_api_hashstring requiredAuthentication token
device_idinteger requiredDevice ID from get_devices
from_datedate requiredYYYY-MM-DD
from_timetime requiredHH:MM
to_datedate requiredYYYY-MM-DD
to_timetime requiredHH:MM
snap_to_roadboolean optionalSnap points to the road network (1/0)
status field per segment: 1 = driving, 2 = stopped with engine on (idle), 3 = parked, 4 = event, 5 = no signal. For AI use, prefer the per-segment aggregates over the raw GPS points.

Request

curl "https://go.entopizo.gr/api/get_history?user_api_hash=HASH\
&device_id=1042&from_date=2026-07-04&from_time=00:00\
&to_date=2026-07-04&to_time=23:59"

Response 200 (abridged)

{
  "distance_sum": "182.4 km",
  "top_speed": "96 kph",
  "items": [
    {
      "status": 1,
      "distance": 42.7,
      "time": "1h 05min",
      "items": [
        { "lat": 37.975, "lng": 23.734,
          "speed": 51, "time": "08:12:04" }
      ]
    },
    {
      "status": 3,
      "time": "38min",
      "location": "Warehouse, Aspropyrgos"
    }
  ]
}

Other history endpoints

EndpointMethodKey parametersDescription
/api/get_history_messagesGETdevice_id, from_date, from_time, to_date, to_timeRaw position messages including all protocol parameters
/api/delete_history_positionsPOSTdevice_id, from, toDelete history positions for a period
Core Resources

Events

Events are occurrences recorded against a device: overspeeding, geofence entry/exit, power cut, towing, SOS and more. Events are generated only when a matching alert rule is active.

GET /api/get_events

Returns a paginated list of events, newest first.

ParameterTypeDescription
user_api_hashstring requiredAuthentication token
device_idinteger optionalFilter by device
pageinteger optionalResult page (default 1)

Response 200 (abridged)

{
  "items": {
    "data": [
      {
        "id": 88211,
        "device_id": 1042,
        "type": "overspeed",
        "message": "Speed limit exceeded",
        "speed": 112,
        "latitude": 38.0142,
        "longitude": 23.6650,
        "address": "Athinon Ave, Athens",
        "time": "04-07-2026 16:44:31"
      }
    ],
    "current_page": 1,
    "last_page": 4
  }
}

Other event endpoints

EndpointMethodKey parametersDescription
/api/destroy_eventsPOSTevent_id / device_idDelete events
/api/get_custom_eventsGETβ€”List custom events (based on protocol parameters)
/api/add_custom_eventPOSTname, protocol, parameter, valueDefine a custom event, e.g. SOS button or low battery
Core Resources

Alert Rules

Alert rules define when events are generated and how the user is notified (push, email, SMS).

POST /api/add_alert

Creates an alert rule for one or more devices.

ParameterTypeDescription
user_api_hashstring requiredAuthentication token
namestring requiredRule name, e.g. "Overspeed 100 km/h"
typestring requiredoverspeed, geofence_in, geofence_out, ignition_on, ignition_off, custom
devicesarray requiredDevice IDs the rule applies to
overspeedinteger optionalSpeed limit when type = overspeed
geofencesarray optionalGeofence IDs when type = geofence_in / geofence_out
notificationsjson optionalNotification channels: push, email, sms

Request

curl -X POST "https://go.entopizo.gr/api/add_alert" \
  -d "user_api_hash=HASH" \
  -d "name=Overspeed 100 km/h" \
  -d "type=overspeed" \
  -d "overspeed=100" \
  -d "devices[]=1042" \
  -d "devices[]=1043"

Response 200

{ "status": 1 }

Other alert endpoints

EndpointMethodKey parametersDescription
/api/get_alertsGETβ€”List all alert rules of the account
/api/edit_alertPOSTid, name, type, devicesEdit a rule
/api/change_active_alertPOSTid, active (1/0)Enable / disable a rule
/api/destroy_alertGETalert_idDelete a rule
/api/get_events_by_protocolGETprotocolAvailable event types per protocol (e.g. teltonika)
Core Resources

Geofences & Routes

Geofences are named areas (polygons or circles) used for entry/exit alerts and reporting. Routes are predefined paths a vehicle is expected to follow.

POST /api/add_geofence

Creates a geofence. For polygons, coordinates are passed as a JSON array of points.

ParameterTypeDescription
user_api_hashstring requiredAuthentication token
namestring requiredGeofence name, e.g. "Warehouse Aspropyrgos"
polygonjson requiredArray of points [{"lat":..,"lng":..}, ...]
polygon_colorstring optionalHex colour, e.g. #0E8A5F

Request

curl -X POST "https://go.entopizo.gr/api/add_geofence" \
  -d "user_api_hash=HASH" \
  -d "name=Warehouse Aspropyrgos" \
  -d 'polygon=[{"lat":38.061,"lng":23.593},
              {"lat":38.062,"lng":23.601},
              {"lat":38.057,"lng":23.600}]'

Response 200

{ "status": 1 }

Other geofence & route endpoints

EndpointMethodKey parametersDescription
/api/get_geofencesGETβ€”List geofences with name, colour and coordinates
/api/edit_geofencePOSTid, name, polygonEdit a geofence
/api/destroy_geofenceGETgeofence_idDelete a geofence
/api/point_in_geofencesGETlat, lngCheck which geofences contain a point
/api/get_routesGETβ€”List predefined routes
/api/add_routePOSTname, coordinatesCreate a route
/api/destroy_routeGETroute_idDelete a route
Core Resources

Commands

Commands are messages sent to the tracker over GPRS or SMS β€” for example engine stop/resume on supported installations. Available command types depend on the device protocol.

POST /api/send_gprs_command

Sends a GPRS command to a device. Use send_command_data first to discover which command types the device supports.

ParameterTypeDescription
user_api_hashstring requiredAuthentication token
device_idinteger requiredTarget device
typestring requiredCommand type, e.g. custom or a protocol-defined type
datastring optionalCommand payload when type = custom
Caution: Immobilisation commands physically affect the vehicle. Automated systems β€” and AI agents in particular β€” should require explicit user confirmation before every command.

Request

curl -X POST "https://go.entopizo.gr/api/send_gprs_command" \
  -d "user_api_hash=HASH" \
  -d "device_id=1042" \
  -d "type=custom" \
  -d "data=setdigout 1"

Response 200

{ "status": 1, "message": "Command sent" }

Other command endpoints

EndpointMethodKey parametersDescription
/api/send_command_dataGETdevice_idAvailable command types for the device (per protocol)
/api/send_sms_commandPOSTdevice_id, messageSend a command via SMS (requires SMS gateway)
/api/get_device_commandsGETdevice_idHistory of sent commands
/api/get_user_gprs_templatesGETβ€”Saved GPRS command templates
/api/add_user_gprs_templatePOSTtitle, messageCreate a GPRS template
/api/get_user_sms_templatesGETβ€”Saved SMS templates
/api/add_user_sms_templatePOSTtitle, messageCreate an SMS template
Core Resources

Reports

Generates reports β€” general, drives & stops, driver behaviour, fuel, overspeeding, geofence activity and more β€” in HTML, PDF or XLS, or schedules them for automatic delivery.

POST /api/generate_report

Generates a report for selected devices and time range. Fetch get_report_types once to map report names to type IDs on your server.

ParameterTypeDescription
user_api_hashstring requiredAuthentication token
titlestring requiredReport title
typeinteger requiredReport type ID β€” see get_report_types
devicesarray requiredDevice IDs
date_from / date_todatetime requiredYYYY-MM-DD HH:MM
formatstring optionalhtml, pdf, xls

Request

curl -X POST "https://go.entopizo.gr/api/generate_report" \
  -d "user_api_hash=HASH" \
  -d "title=June mileage" \
  -d "type=1" \
  -d "devices[]=1042" \
  -d "date_from=2026-06-01 00:00" \
  -d "date_to=2026-06-30 23:59" \
  -d "format=html"

Response 200

{
  "status": 1,
  "url": "https://go.entopizo.gr/report/…"
}

Other report endpoints

EndpointMethodKey parametersDescription
/api/get_reportsGETβ€”List saved / scheduled reports
/api/get_report_typesGETβ€”Available report types with their IDs
/api/destroy_reportGETreport_idDelete a saved report
For AI use: prefer format=html and extract the summary tables, or compute basic figures directly from get_history (distance_sum, top_speed) when that is sufficient.
Fleet Management

Drivers

Drivers can be assigned to devices manually or identified automatically via RFID / iButton. Driver identity then appears in history, events and reports.

EndpointMethodKey parametersDescription
/api/get_user_driversGETβ€”List drivers with device assignment and RFID/iButton number
/api/add_user_driverPOSTname, device_id, rfid, phone, email, descriptionCreate a driver
/api/edit_user_driverPOSTid, name, device_id, rfidEdit a driver
/api/destroy_user_driverGETdriver_idDelete a driver
Fleet Management

Sensors

Sensors translate raw protocol parameters into readable values: ignition, fuel level, temperature, door state, battery voltage and more. Sensor values appear inside get_devices responses.

EndpointMethodKey parametersDescription
/api/get_sensorsGETdevice_idList sensors of a device
/api/add_sensorPOSTdevice_id, name, type, tag_name, unit_of_measurementCreate a sensor from a protocol parameter
/api/edit_sensorPOSTid, name, typeEdit a sensor
/api/destroy_sensorGETsensor_idDelete a sensor
Fleet Management

Maintenance

Maintenance items (services) track recurring vehicle obligations β€” servicing, oil changes, vehicle inspection, insurance β€” by odometer, engine hours or calendar days, with expiration warnings.

EndpointMethodKey parametersDescription
/api/get_servicesGETdevice_idMaintenance reminders of a device
/api/add_servicePOSTdevice_id, name, expiration_by (odometer / engine_hours / days), interval, trigger_beforeCreate a maintenance reminder
/api/edit_servicePOSTid, name, intervalEdit a reminder
/api/destroy_serviceGETservice_idDelete a reminder
Fleet Management

Tasks

Tasks represent jobs or deliveries assigned to a vehicle, with pickup/delivery details, priority and status tracking.

EndpointMethodKey parametersDescription
/api/get_tasksGETβ€”List tasks / deliveries with status and priority
/api/add_taskPOSTtitle, device_id, priority, pickup & delivery address/timeCreate a task
/api/edit_taskPOSTid, status, priorityUpdate a task
/api/destroy_taskGETtask_idDelete a task
Other

Account & Setup

EndpointMethodKey parametersDescription
/api/get_user_dataGETβ€”Account details: email, device limits, subscription expiration
/api/edit_setup_dataGETβ€”Full settings data: timezone, units (km/mi, lt/gl), language, groups
/api/save_setupPOSTlang, timezone_id, unit_of_distance, unit_of_capacitySave settings
/api/change_passwordPOSTold_password, new_passwordChange password β€” caution: invalidates the current user_api_hash
/api/get_user_map_iconsGETβ€”Custom map icons and POI groups
Other

Plugin-dependent endpoints

The following endpoints are available only when the corresponding platform plugin is enabled on the server. If a call returns HTTP 404 or an HTML error page, the plugin is not active for your account.

AreaTypical endpointsDescription
Camera / Mediaget_device_media, get_device_media_filePhotos and video clips uploaded by camera-equipped trackers
Sharingget_sharings, add_sharing, destroy_sharingTemporary public links to view a vehicle's live position
Expensesget_device_expenses, add_device_expenseVehicle cost logging (fuel, tolls, repairs)
Checklistsget_checklists, checklist rows & imagesDriver inspection checklists per task or vehicle
POIsget_user_map_icons, add_map_iconPoints of interest shown on the map
Contact support@entopizo.gr to check plugin availability for your subscription, or verify directly: a plugin endpoint that responds with JSON is active.
Other

Errors & limits

Successful calls return HTTP 200 with "status": 1. Failures return "status": 0 in the body, or an HTTP error code.

CodeMeaningAction
200 / status:1Successβ€”
200 / status:0Logical error (e.g. invalid parameters)Check the message field
401Invalid or revoked user_api_hashLog in again to obtain a new hash
404Unknown endpoint or resourceCheck the path, device_id, and plugin availability
422Validation errorCheck required parameters and formats
429Rate limit exceededReduce request frequency, apply exponential backoff

Error example

{
  "status": 0,
  "message": "Wrong email or password"
}
Other

Guidance for AI agents

This section addresses LLM-based agents (Claude, ChatGPT, custom assistants) consuming the API through MCP servers or function calling.

Recommended flow

1. Call get_devices once to map vehicle names to device_id. 2. Use the device_id for history, events, sensors or commands. 3. For current-position questions, get_devices data is sufficient β€” no second call needed.

Token efficiency

Responses from get_devices and get_history are large. Keep only the fields id, name, online, time, speed, lat, lng, address, and in history the per-segment aggregates (distance, time, status, location) instead of raw GPS points.

Safety & consent

Never store credentials in prompts. Calls to send_gprs_command or any destroy endpoint require explicit user confirmation. Location data is personal data under GDPR β€” do not expose it to third parties.

A machine-readable summary of this documentation is available in markdown at https://entopizo.com/llms.txt, following the llms.txt standard.
entopizo.com β€” GPS Tracking Systems support@entopizo.gr Β· +30 210 300 7750 ISO 27001:2022
We use cookies
Cookie preferences
Below you may find information about the purposes for which we and our partners use cookies and process data. You can exercise your preferences for processing, and/or see details on our partners' websites.
Analytical cookies Disable all
Functional cookies
Other cookies
We use cookies to personalize content and ads, to provide social media features and to analyze our traffic. Learn more about our cookie policy.
Accept all Decline all Change preferences
Cookies