Skip to main content

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.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vehk_axle-2.0.0.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vehk_axle-2.0.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

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

Hashes for vehk_axle-2.0.0.tar.gz
Algorithm Hash digest
SHA256 d4ef6e6463fbe2c4cd4bb69b043b17d3e11cfe9cc15b6e27a9c3f49efa137db5
MD5 217f40f2c25e9b3c7ebc345d94af96d8
BLAKE2b-256 2fda592be7ab71e0ef63174c0b37051069b7fff98e8670ae7b7fe0a811da6a84

See more details on using hashes here.

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

Hashes for vehk_axle-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b17de613e8d711134e80ba71f304364c18269c5ce8279a584f4be4aa31d50a77
MD5 d2b0129362e7b422ef500ef3437a053e
BLAKE2b-256 cf34bed611a4889daaf749d72657367bfcececfc8e010f9145e6e67c322c48a2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page