Official Python SDK for Vehk Axle Fleet Management, GPS Tracking & Predictive Maintenance Platform
Project description
Vehk Axle Python SDK
Official Python SDK for the Vehk Axle Fleet Management, GPS Tracking & Predictive Maintenance Platform.
Installation
pip install vehk-axle
What's New in v2.0.0
- GPS Tracking API - Send and retrieve real-time device location data
- Device Management API - List devices and get fleet-wide locations
- Scoped Permissions - Granular API key scopes (
telemetry:write,tracking:read, etc.) - Enforced Rate Limits - Per-key sliding window rate limiting (default 60 req/min)
- New Models -
TrackingDataandDeviceLocationdataclasses
Quick Start
from vehk_axle import VehkClient
client = VehkClient(api_key="vehk_your_api_key_here")
# Send telemetry data
response = client.telemetry.send(
vehicle_id="VH-001",
sensor_data={
"speed": 65,
"rpm": 2500,
"coolant_temp": 92,
"fuel_level": 45,
"battery_voltage": 12.6
}
)
print(f"Telemetry sent: {response['telemetry_id']}")
# Send GPS tracking data from a device
client.tracking.send(
device_id="dev-abc123",
latitude=12.9716,
longitude=77.5946,
speed=45.2,
ignition=True
)
# Get ML prediction
prediction = client.predict(
vehicle_id="VH-001",
sensor_data={"speed": 65, "rpm": 2500, "coolant_temp": 92}
)
print(f"Health Score: {prediction.health_score}%")
print(f"Status: {prediction.health_status.value}")
print(f"Critical: {prediction.is_critical}")
Features
Telemetry Ingestion
Send real-time sensor data from your vehicles:
# Single telemetry point
client.telemetry.send(
vehicle_id="VH-001",
sensor_data={"speed": 65, "rpm": 2500},
timestamp="2026-03-26T10:00:00Z",
location={"lat": 12.97, "lng": 77.59}
)
# Batch telemetry (up to 100 at a time)
batch_result = client.telemetry.send_batch([
{"vehicle_id": "VH-001", "sensor_data": {"speed": 65}},
{"vehicle_id": "VH-002", "sensor_data": {"speed": 70}},
{"vehicle_id": "VH-003", "sensor_data": {"speed": 55}},
])
print(f"Processed: {batch_result.records_processed}")
GPS Tracking (v2.0)
Send and retrieve GPS tracking data from configured devices:
# Send a single tracking data point
client.tracking.send(
device_id="dev-abc123",
latitude=12.9716,
longitude=77.5946,
speed=45.2,
heading=180,
ignition=True,
event="periodic"
)
# Batch tracking (up to 100 at a time)
client.tracking.send_batch([
{"device_id": "dev-1", "latitude": 12.97, "longitude": 77.59, "speed": 45},
{"device_id": "dev-2", "latitude": 13.01, "longitude": 77.61, "speed": 30},
])
# Get all device locations (real-time fleet map)
locations = client.tracking.locations()
for loc in locations:
print(f"{loc['device_id']}: {loc['latitude']}, {loc['longitude']}")
# Get a single device location
loc = client.tracking.location("dev-abc123")
print(f"Speed: {loc['speed']} km/h, Ignition: {loc['ignition']}")
Device Management (v2.0)
List and query devices registered to your tenant:
# List all devices
devices = client.devices.list()
for d in devices:
print(f"{d['device_id']}: {d.get('status', 'unknown')}")
# Filter by status
active = client.devices.list(status="active")
Predictions
Get AI-powered predictions for vehicle health:
prediction = client.predictions.get(
vehicle_id="VH-001",
sensor_data={"speed": 65, "rpm": 2500, "coolant_temp": 92}
)
print(f"Health Score: {prediction.health_score}")
print(f"Risk Level: {prediction.risk_level.value}")
if prediction.needs_maintenance:
for alert in prediction.maintenance_alerts:
print(f" {alert.type}: {alert.description}")
for rec in prediction.recommendations:
print(f" {rec}")
# List recent predictions
recent = client.predictions.list(vehicle_id="VH-001", limit=10)
for p in recent:
print(f"{p.vehicle_id}: {p.health_score}%")
Vehicle Management
vehicles = client.vehicles.list()
for vehicle in vehicles:
print(f"{vehicle.vehicle_id}: Health {vehicle.health_score}%")
Error Handling
from vehk_axle import (
VehkClient,
VehkAuthenticationError,
VehkRateLimitError,
VehkConnectionError,
VehkAPIError,
)
try:
client = VehkClient(api_key="vehk_your_key")
prediction = client.predict("VH-001", {"speed": 65})
except VehkAuthenticationError:
print("Invalid API key. Check your credentials.")
except VehkRateLimitError as e:
print(f"Rate limit hit. Retry after {e.retry_after} seconds.")
except VehkConnectionError:
print("Could not connect to Vehk API. Check your network.")
except VehkAPIError as e:
print(f"API error [{e.status_code}]: {e.message}")
API Scopes (v2.0)
API keys now enforce granular permission scopes:
| Scope | Description |
|---|---|
telemetry:write |
Send telemetry data |
telemetry:read |
Read telemetry history |
tracking:write |
Send GPS tracking data |
tracking:read |
Read device locations |
devices:read |
List devices |
predict |
Request ML predictions |
vehicles:read |
List vehicles |
Configuration
Custom Base URL
client = VehkClient(
api_key="vehk_your_key",
base_url="https://api-staging.vehk.in"
)
Timeout & Retries
client = VehkClient(
api_key="vehk_your_key",
timeout=60,
retries=5,
retry_delay=2.0
)
Context Manager
with VehkClient(api_key="vehk_your_key") as client:
prediction = client.predict("VH-001", {"speed": 65})
Health Check
health = client.health_check()
print(f"Status: {health['status']}")
print(f"Version: {health['version']}")
Supported Sensor Fields
| Field | Description | Unit |
|---|---|---|
speed |
Vehicle speed | km/h |
rpm |
Engine RPM | RPM |
coolant_temp |
Coolant temperature | °C |
fuel_level |
Fuel level | % |
battery_voltage |
Battery voltage | V |
oil_pressure |
Oil pressure | PSI |
throttle |
Throttle position | % |
intake_air_temp |
Intake air temperature | °C |
ambient_temp |
Ambient temperature | °C |
odometer |
Odometer reading | km |
Requirements
- Python 3.8+
requestslibrary
Getting Your API Key
- Log in to Vehk Dashboard
- Go to Settings > API Keys
- Click "Generate New Key"
- Copy the key (shown only once)
Support
License
MIT License - see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vehk_axle-2.0.0.tar.gz.
File metadata
- Download URL: vehk_axle-2.0.0.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4ef6e6463fbe2c4cd4bb69b043b17d3e11cfe9cc15b6e27a9c3f49efa137db5
|
|
| MD5 |
217f40f2c25e9b3c7ebc345d94af96d8
|
|
| BLAKE2b-256 |
2fda592be7ab71e0ef63174c0b37051069b7fff98e8670ae7b7fe0a811da6a84
|
File details
Details for the file vehk_axle-2.0.0-py3-none-any.whl.
File metadata
- Download URL: vehk_axle-2.0.0-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b17de613e8d711134e80ba71f304364c18269c5ce8279a584f4be4aa31d50a77
|
|
| MD5 |
d2b0129362e7b422ef500ef3437a053e
|
|
| BLAKE2b-256 |
cf34bed611a4889daaf749d72657367bfcececfc8e010f9145e6e67c322c48a2
|