- Data from an IoT device: In this case, a custom TCP endpoint or an MQTT broker is commonly used. This guide does not cover this scenario. Please refer to the hardware section for more information about devices supported out of the box.
- Data ingested via HTTP endpoints: This scenario covers mobile app relay connections, cloud-to-cloud solutions, and “heavier” IoT devices that can communicate via HTTPS. This guide focuses on this scenario.

Retrieve upload token
The ingestion endpoints are separated from the main REST API for security and scalability reasons. As such, you first need to obtain an upload token for your vehicle before you can upload data. To do this, you either need upload access directly as a vehicle owner, or federated upload access via an organization. As a vehicle owner (this is primarily important if you use an app as a data relay, as only the user is logged in there, and you should not expose your API key into an app), use the following request:The
YOUR_VEHICLE_UPLOAD_API_KEY
must be an API key that has the VEHICLE_DATA_UPLOAD
permission for the indicated vehicle. You can create such an API key as described here.This should only be used for cloud-to-cloud integrations where you can securely store the token, as it allows uploading data for all vehicles in your organization.
Retrieve vehicle upload API key
To create an API key with theVEHICLE_DATA_UPLOAD
permission for a specific vehicle, use the following request:
Authenticate with ingress and obtain session token
The ingress service itself uses short-lived session tokens to authenticate vehicles. These session tokens are tied to a specific vehicle and include metadata such as the vehicle UUID.You will have to refresh the session token periodically or when it expires.
Upload vehicle data
To upload vehicle data, use the session token obtained in the previous step to authenticate your requests. Make the following request to upload data:Vehicle Command System
The platform enables bidirectional communication with vehicles through a sophisticated command queuing system that ensures reliable delivery and execution of commands. Commands are sent through the vehicle command API with support for immediate execution or best-effort delivery. Make the following request to enqueue a command:Command Priority Levels
The system supports two priority levels with different delivery mechanisms:HIGH
Priority Commands
- Delivery Method: SMS or other active push via GPRS (ensures devices can be reached even without a data connection)
- Execution: Immediate upon receipt
- Use Cases: Emergency stops, security alerts, critical safety commands
- Cost: Higher cost due to SMS delivery
- Reliability: Very high, works even with poor data connectivity
LOW
Priority Commands
- Delivery Method: Data connection (command is sent at next device check-in)
- Execution: Scheduled or next available opportunity
- Use Cases: Configuration updates, scheduled maintenance, routine adjustments
- Cost: Lower cost, uses existing data connection
- Reliability: High, but depends on device connectivity
Command Status and Tracking
This is currently under development and may not be supported in all environments.
Data Upload Best Practices
Please consider the following best practices when uploading data.Optimal Upload Frequency
Balance data freshness with bandwidth and battery consumption:- Moving mode: Every 5-10 seconds for active vehicles
- Stationary mode: Every 10-30 minutes for parked vehicles
- Power-saving mode: Every 30 minutes to 3 hours for low battery scenarios
- Event-Triggered: Immediate upload for critical events
Batch Upload Strategy
Batch uploads are currently under development and may not be supported in all environments.
Security Considerations
Ensuring tokens are secure is crucial to keep clean and reliable data, and prevent tampering:- Token Management: You must securely store API keys and periodically refresh session tokens.
- Data Encryption: All endpoints require the use of HTTPS for all data transmission.
- Rate Limiting: APIs are rate-limited. You will be informed via HTTP 429 responses if you exceed limits. Implement exponential backoff and retry logic.
Troubleshooting
This section may help you resolve common issues during data upload and command management.Authentication problems
Verify that the upload token and session token are correct and have not expired.
Ensure the vehicle is registered and associated with the correct organization or user.
Data upload failures
Check the data format against the expected schema.
Ensure all required fields are present, especially the timestamp.
Validate numeric ranges for sensor values.
Command delivery failures
Ensure the vehicle is online and has a stable connection.
Check command priority and adjust if necessary.
Rate limiting errors
Implement exponential backoff retry logic.
Reduce upload frequency if hitting rate limits.
Consider batch uploading multiple data points.