Skip to main content

Vehk Axle Python SDK

Official Python SDK for the Vehk Axle Fleet Management, GPS Tracking & Predictive Maintenance Platform.

PyPI version Python Version License: MIT

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 - TrackingData and DeviceLocation dataclasses

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+
  • requests library

Getting Your API Key

  1. Log in to Vehk Dashboard
  2. Go to Settings > API Keys
  3. Click "Generate New Key"
  4. Copy the key (shown only once)

Support

License

MIT License - see LICENSE for details.

Metadata

Release files for vehk-axle 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vehk-axle 2.1.0
File Size Uploaded
vehk_axle-2.1.0.tar.gz 15.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vehk-axle 2.1.0
File Interpreter ABI Platform
vehk_axle-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.0 kB

Release files / vehk_axle-2.1.0.tar.gz

Download URL vehk_axle-2.1.0.tar.gz
Size 15.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f2412d486d699ae787626319cb7c62cb7f85f87a3941a01492b15ca8fe20afdb
BLAKE2b-256 checksum
How to use checksums
1a55ca23ef2783539bcad64a31f3dd601234c0e83390a76f0774593083f9381f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / vehk_axle-2.1.0-py3-none-any.whl

Download URL vehk_axle-2.1.0-py3-none-any.whl
Size 13.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92e649a6b7fec957540e35970c18d71be1d20520d839b27f0cccaed202ed0018
BLAKE2b-256 checksum
How to use checksums
d8e1e7b69c59bb2cf389af27fb90eca9a06be9fca29ea0d448856382f3c319f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 release files

2.0.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page