The Vision API is implemented by camera and vision integration partners on their own infrastructure. Hauler Hero calls the partner's endpoints to request, list, and download truck-camera video — both on-demand clips tied to specific stops or work orders, and continuous recordings covering full routes.
You'll build and host this API on your own infrastructure, then share the URL and credentials with Hauler Hero.
- A public URL reachable from the internet, subject to appropriate security controls.
- An
API-KEYthat you issue to Hauler Hero. See Authentication.
Three endpoints across two workflows:
| Endpoint | Workflow | Purpose |
|---|---|---|
POST /video-hero/v1/videos/requests | On-demand | Initiate video preparation for a specific clip |
GET /video-hero/v1/videos | On-demand | List available (prepared) videos — used to poll request status |
GET /video-hero/v1/videos/continuous | Continuous | List continuous recordings for a truck over a time range |
Used when Hauler Hero needs a specific clip — for example, video tied to a stop or a work order.
- Hauler Hero calls
POST /video-hero/v1/videos/requestswithcustomerId,truckId,cameraId,startTime, andendTime. - Your system begins discovery and preparation, returning
202 Acceptedwith arequestIdandstatus: processing. - Hauler Hero polls
GET /video-hero/v1/videos?requestId={requestId}to check whether the video is ready. - Once prepared, your response lists the video with a temporary
downloadUrland anexpiresAttimestamp. - Hauler Hero downloads the file before the URL expires.
Used when a customer needs the full-route recording — continuous video chunked into constant time durations.
- Hauler Hero calls
GET /video-hero/v1/videos/continuouswithcustomerId,truckId,startTime, andendTime. - Your system returns a paginated list of recording chunks, each with its own temporary
downloadUrlandexpiresAt. - Hauler Hero downloads the recordings before the URLs expire.
Your implementation must:
- Be reachable from the internet on a public IP, with appropriate security controls.
- Authenticate requests via the
API-KEYheader. - Support precise video source specification — customer, truck, and (where applicable) camera.
- Accept time ranges in ISO 8601 format.
- Return temporary download URLs with an
expiresAtgiving Hauler Hero ample time to fetch the file. - Paginate list responses (
page,pageSize, plustotalItems/totalPagesin the response).
| Field | Required | Notes |
|---|---|---|
customerId | Yes | Customer identifier |
truckId | Yes | Truck identifier — ideally the same ID used for work-order and routing specification |
cameraId | Yes | Camera identifier. Use placement names (front, rear, left, right) or a numbering scheme (1, 2, 3) — Hauler Hero accepts either |
startTime | Yes | ISO 8601 timestamp |
endTime | Yes | ISO 8601 timestamp |
| Parameter | In | Required | Notes |
|---|---|---|---|
customerId | query | Yes | Customer identifier |
truckId | query | No | Filter by truck |
cameraId | query | No | Filter by camera |
requestId | query | No | Filter by a specific video request — used for polling a single request's status |
startTime | query | No | ISO 8601 lower bound |
endTime | query | No | ISO 8601 upper bound |
page | query | No | Default 1 |
pageSize | query | No | Default 20, max 100 |
| Parameter | In | Required | Notes |
|---|---|---|---|
customerId | query | Yes | Customer identifier |
truckId | query | Yes | Truck identifier |
cameraId | query | No | Filter by camera |
startTime | query | Yes | ISO 8601 start of range |
endTime | query | Yes | ISO 8601 end of range |
page | query | No | Default 1 |
pageSize | query | No | Default 20, max 100 |
See the Schemas section of the Vision API reference for the exact response shapes.
Shared across all three endpoints:
| Code | Error code | Meaning | When your implementation should return this |
|---|---|---|---|
200 / 202 | — | Success | 202 for accepted video requests, 200 for list endpoints |
400 | INVALID_PAYLOAD | Invalid parameters | Required field missing or malformed (e.g., startTime after endTime) |
401 | UNAUTHORIZED | API key invalid or missing | API-KEY header is missing or doesn't match what you issued |
404 | NOT_FOUND | Customer, truck, or camera not found | No matching entity in your system |
500 | INTERNAL_ERROR | Unexpected error | Log the incident for your own investigation |
Download URLs are temporary — give Hauler Hero ample time to fetch the file and include an expiresAt timestamp on every URL so the caller knows how long it's valid.
- Integration questions: integrations@haulerhero.com
- API support: api-support@haulerhero.com