Request and retrieve on-demand video clips for specific stops or work orders
Vision API (1.11.0)
The Hauler Hero system includes functionality to provide imagery of container pickup in the context of each relevant stop or work order. We have a lot of customer demand for this feature and, at a macro level, this is a unique time for automation technology in general, and the development of visual recognition features is well timed to benefit from these advances.
In order to unlock the tremendous new value of next-generation service levels and additional revenue opportunities for our customers, and to capitalize on this unique juncture with us, we request our camera management partners to provide a specific set of functionality in their video access API. The key functionality is listed below.
We require a video access API to be reachable from the Internet on a public IP, subject to proper security controls. It should be a well documented API that would accept requests from our cloud computing infrastructure.
It should be straight-forward to specify the source of the video precisely, namely:
- The customer (by name or ID),
- The specific truck, ideally specified via the same ID as used for work order and routing specification already,
- The camera on that truck, if it has several cameras. We have flexibility to utilize commonly understood naming for camera placement, as well as a predefined numbering scheme.
We need to be able to provide a time range, specified as a start and an end timestamp (ISO format), for the video range to be requested for downloading. This would initiate the process of video discovery and preparation for the export.
Once the video has been requested per specifications above, we would need a polling interface to check whether the video has been prepared and is available for downloading. This could be a request API endpoint that would return a (paginated) list of available videos, based on the filtering specifications above. Each element of this list would specify the video source and time range of the video, and provide a downloadable link to the video (which could be valid temporarily, while giving us ample time to download the video).
- Hauler Hero calls POST /video-hero/v1/videos/requests with customer, truck, camera, and time range
- Partner begins video discovery and preparation for export
- Hauler Hero polls GET /video-hero/v1/videos to check whether video is prepared and available
- Partner returns a paginated list of available videos with downloadable links
- Hauler Hero downloads the video files using the provided links
Some of our customers would benefit from a continuous video made available to them that would show the truck moving along the full length of its route. Our system would be able to receive the continuous recordings via an API that would yield a paginated list of all continuous recordings (chunked into constant time durations) available within a given source and time range specification. This API would follow a similar access authorization and security, as the on-demand variant of the API.
- Hauler Hero calls GET /video-hero/v1/videos/continuous with source and time range filters
- Partner returns a paginated list of continuous recordings chunked into constant time durations
- Hauler Hero downloads the recordings using the provided links
Please reach out to integrations@haulerhero.com if you have any questions or would like additional clarification.
Unique identifier or name for the customer
Truck identifier, ideally the same ID used for work order and routing specification
Camera identifier on the truck. Can use commonly understood naming for camera placement (e.g., "front", "rear", "left", "right") or a predefined numbering scheme (e.g., "1", "2", "3").
Start of the requested video time range in ISO 8601 format
- Mock serverhttps://docs.haulerhero.com/_mock/vision/video-hero/v1/videos/requests
- Partner production serverhttps://api.yourcompany.com/video-hero/v1/videos/requests
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.haulerhero.com/_mock/vision/video-hero/v1/videos/requests \
-H 'API-KEY: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"customerId": "123e4567-e89b-12d3-a456-426614174000",
"truckId": "truck-5201",
"cameraId": "front",
"startTime": "2026-02-04T08:30:00Z",
"endTime": "2026-02-04T08:35:00Z"
}'{ "success": true, "requestId": "req-abc123-def456", "status": "processing", "message": "Video request accepted. Poll GET /video-hero/v1/videos to check availability." }
Request
Returns a paginated list of available videos based on filtering specifications. Use this endpoint to poll whether requested videos have been prepared and are available for downloading. Each element specifies the video source, time range, and provides a downloadable link (which may be valid temporarily).
- Mock serverhttps://docs.haulerhero.com/_mock/vision/video-hero/v1/videos
- Partner production serverhttps://api.yourcompany.com/video-hero/v1/videos
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.haulerhero.com/_mock/vision/video-hero/v1/videos?customerId=123e4567-e89b-12d3-a456-426614174000&truckId=truck-5201&cameraId=front&requestId=req-abc123-def456&startTime=2026-02-04T08%3A30%3A00Z&endTime=2026-02-04T08%3A35%3A00Z&page=1&pageSize=20' \
-H 'API-KEY: YOUR_API_KEY_HERE'{ "success": true, "data": { "videos": [ … ], "pagination": { … } } }