Everything You Need to Build with the
Summit Fleet API
A single reference for getting started, integrating, troubleshooting, and getting the most out of your Summit Fleet data. Bookmark this page — it's the canonical source.
Overview
The Summit Fleet API gives your developers programmatic access to the same fleet, rental, invoice, alert, and location data your team uses inside the Summit Fleet Customer Portal — formatted as clean JSON for your BI tools, dashboards, and operational systems.
Developers and data engineers integrating Summit Fleet data into existing systems. If you're looking for a non-technical overview, visit data.summitfleet.com instead.
What you get
- RESTful and JSON. Standard HTTP verbs, predictable URL patterns.
- Bearer-token authentication. Short-lived tokens (30 minutes by default) generated via the
/loginendpoint using your Summit Fleet API credentials. - Read-only by design. The API surfaces data; vehicle orders go through the Customer Portal.
- Refreshed throughout the day. The
/locationendpoint is truly real-time. Other endpoints (/fleet,/rentals,/orders,/off-rents,/invoices,/alerts) refresh approximately every 15 minutes.
Base URL
https://data.summitfleet.com
What's not in scope
Vehicle orders, rental modifications, and approvals cannot be performed through the API. These actions go through the Summit Fleet Customer Portal so approval workflows, audit trails, and procurement controls remain consistent.
Quickstart
Make your first authenticated API call in under five minutes.
1. Get your API credentials
When your Summit Fleet API access is set up, you'll be issued a username and password by your Summit Fleet contact. These credentials are used to generate short-lived bearer tokens at runtime — you don't store the token itself; you generate one whenever you need to make calls.
Never commit your API username or password to version control. Use environment variables or a secrets manager. If credentials are leaked, contact your Summit Fleet representative to have them rotated.
2. Generate a bearer token
Make a GET request to /login with your credentials passed via HTTP basic authentication. You'll receive a bearer token in the response. Tokens are valid for 30 minutes by default. Generate a new token when the old one expires.
$ curl "https://data.summitfleet.com/login" \
-u "your_username:your_password"
import requests
auth = requests.get(
"https://data.summitfleet.com/login",
auth=(USERNAME, PASSWORD),
)
TOKEN = auth.json()["token"]
const credentials = Buffer.from(`${USERNAME}:${PASSWORD}`).toString("base64");
const auth = await fetch("https://data.summitfleet.com/login", {
headers: { "Authorization": `Basic ${credentials}` },
});
const { token } = await auth.json();
3. Make your first call
Use the token from step 2 in the Authorization header:
$ curl "https://data.summitfleet.com/fleet" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
response = requests.get(
"https://data.summitfleet.com/fleet",
headers={
"Authorization": f"Bearer {TOKEN}",
"Accept": "application/json",
},
)
response.raise_for_status()
data = response.json()
print(data)
const response = await fetch("https://data.summitfleet.com/fleet", {
headers: {
"Authorization": `Bearer ${token}`,
"Accept": "application/json",
},
});
if (!response.ok) {
throw new Error(`API error: ${response.status}`);
}
const data = await response.json();
console.log(data);
4. You'll get back JSON
[
{
"Assigned Driver": "John S",
"Bed": "Short Bed",
"Body": "Short Bed",
"Contract Start Date": "2025-02-02T00:00:00.000",
"Cost Center": "None",
"Current Street Address": "2773 S Main St, Bountiful, UT 84010, USA",
"Customer Unit #/Tag": "None",
"Engine Hours": 1153.4000244141,
"Engine Oil Percent": 67.8300018311,
"Jobsite": "Utah Main",
"Make": "GMC",
"Model": "Sierra 1500",
"Months on Rent": 15.3999996185,
"Name": "2023 GMC SIERRA 1500 SLE GAS WHITE SHORT BED SINGLE",
"Odometer": 46972.0,
"On Rent Order": "ON- 000000",
"PO": "00000000000",
"Plate Expiration": "2026-09-30T00:00:00.000",
"Plate Number": "A000000",
"Plate Type": "IRP",
"Record Type": "Rental Asset",
"Registration": "https://ffr-truck-registrations.s3.amazonaws.com/current/Registration+00000000.pdf",
"Telematics Last Updated": "2026-03-27T22:08:43.000",
"Temporary Plate": false,
"Truck Type": "1/2 Ton",
"Type": "Truck",
"VIN": "1GTUUBED8PZ184414",
"Year": "2023"
}
]
Odometer values are reported in miles. Field names are case-sensitive and include spaces.
Authentication
All Summit Fleet API requests (other than /login) require an Authorization header containing a bearer token. Tokens are short-lived and generated via the /login endpoint using your Summit Fleet–issued username and password.
Environment
| Environment | Base URL | Notes |
|---|---|---|
| Production | https://data.summitfleet.com | Real account data. Only environment available. |
Getting a token
Make a GET request to /login with your credentials passed via HTTP basic authentication:
$ curl "https://data.summitfleet.com/login" \
-u "your_username:your_password"
You'll receive a token in the response. Use it as the bearer credential on subsequent requests:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Tokens are valid for 30 minutes by default. When a token expires, requests will return a 401 with a Token has expired message — call /login again to get a fresh one. Long-running jobs should refresh proactively before each significant batch of calls.
Errors & Status Codes
The Summit Fleet API uses standard HTTP status codes. Error responses include a JSON body describing what went wrong.
Error response
HTTP/1.1 401 Unauthorized
Content-Type: application/json
{
"message": "Token has expired"
}
Status codes
| Code | Meaning | What to do |
|---|---|---|
| 200 | Success | — |
| 400 | Bad Request | Fix the request body or query params. |
| 401 | Unauthorized | Token is missing, malformed, or expired. Call /login for a fresh token. |
| 403 | Forbidden | Your account doesn't have access to the requested resource. |
| 404 | Not Found | Resource doesn't exist or is outside your account. |
| 500 | Server Error | Retry shortly. Contact support if persistent. |
| 503 | Service Unavailable | Maintenance window. Retry shortly. |
Endpoint Reference
Each endpoint below includes its purpose and a sample response. All data endpoints are GET requests on https://data.summitfleet.com. Your account's scope determines what data is returned — you'll receive everything associated with your Summit Fleet account.
Fleet & Vehicles
Returns the current state of all vehicles assigned to your account — VIN, unit details, assigned driver, odometer (miles), engine hours, plate information, and most recent telematics timestamp.
Example response
[
{
"Assigned Driver": "John S",
"Bed": "Short Bed",
"Body": "Short Bed",
"Contract Start Date": "2025-02-02T00:00:00.000",
"Cost Center": "None",
"Current Street Address": "2773 S Main St, Bountiful, UT 84010, USA",
"Customer Unit #/Tag": "None",
"Engine Hours": 1153.4000244141,
"Engine Oil Percent": 67.8300018311,
"Jobsite": "None",
"Make": "GMC",
"Model": "Sierra 1500",
"Months on Rent": 15.3999996185,
"Name": "2023 GMC SIERRA 1500 SLE GAS WHITE SHORT BED SINGLE",
"Odometer": 46972.0,
"On Rent Order": "ON- 000000",
"PO": "00000000000",
"Plate Expiration": "2026-09-30T00:00:00.000",
"Plate Number": "A000000",
"Plate Type": "IRP",
"Record Type": "Rental Asset",
"Registration": "https://ffr-truck-registrations.s3.amazonaws.com/current/Registration+00000000.pdf",
"Telematics Last Updated": "2026-03-27T22:08:43.000",
"Temporary Plate": false,
"Truck Type": "1/2 Ton",
"Type": "Truck",
"VIN": "1GTUUBED8PZ184414",
"Year": "2023"
}
]
Rentals
Returns rental contract details — contract dates, vehicle make/model, mileage allowance, and starting/ending odometer readings.
Example response
{
"data": [
{
"Bed Type": "Short Bed",
"Contract End Date": null,
"Contract Start Date": "2025-01-29T00:00:00.000",
"Created Date": "2025-01-22T19:53:59.000",
"Days on Contract": 469.0,
"Ending Mileage": null,
"Make": "Chevy",
"Model": "Silverado 2500",
"Monthly Distance Allowance": 4000.0,
"Months on Contract": 15.3999996185,
"Rental": "RLH-0000000",
"Starting Mileage": 8737.0,
"Truck Type": "3/4 Ton",
"VIN": "2GC4YNEY4R1206722",
"Year": 2024
}
]
}
Off-Rents
Returns off-rent request details — pickup location, scheduled date, reason, and current status.
Example response
{
"data": [
{
"After Hours": "False",
"Created Date": "2018-06-27T13:18:41.000",
"Days Available": "Weekdays: Mon-Fri",
"Expected Off-Rent Date": "2018-06-27T00:00:00.000",
"Latest Time": "2:00 pm",
"Off-Rent Date": "2018-06-27T00:00:00.000",
"Off-Rent Request Id": "a000000000000000000",
"Order Number": "None",
"Pick-Up City": "Bountiful",
"Pick-Up State": "UT",
"Pick-Up Street Address": "2772 S Main St",
"Pick-Up Zip": "84010",
"Plate Number": "None",
"Reason": "Project Finished",
"Request to Drop Off": "False",
"Status": "Off Rent",
"VIN": "1GC1YNEY5MF284401"
}
]
}
Orders
Returns vehicle order details — order number, requested-by, delivery address, status, and current vehicle assignment.
Orders cannot be created or modified through the API. Use the Summit Fleet Customer Portal to place new orders.
Example response
{
"data": [
{
"Asset Type": "None",
"Base Asset Type": "3/4 Ton",
"Created Date": "2022-04-26T00:00:00.000",
"Customer PO": "In progress",
"Delivered Date": "2024-09-30T00:00:00.000",
"Delivery Address": "2773 S Main St",
"Delivery City": "Bountiful",
"Delivery Instructions": "DO NOT DELIVER PRIOR TO RECEIVING INVOICE",
"Jobsite": "Main Office",
"License Plate": "A000000",
"On Rent Form Name": "Summit Fleet Main - 2022-04-26 10:52:58",
"On Rent Line Item Name": "ORL 00000000",
"On Rent Request Id": "a00000000000000000000",
"Order Number": "ON- 000000",
"Request to Pickup": false,
"Requested By": "John S",
"Requested Delivery Date": "2022-05-02T00:00:00.000",
"State/Province": "UT",
"Status": "Delivered",
"Trim Level": "Base",
"VIN": "1GC1YNEY5MF284401"
}
]
}
Invoices
Returns invoice and line-item data covering a rolling two-month window — billing period, contract, line type, amounts, and payment status.
The /invoices endpoint returns the last two months of invoices on a rolling basis. For historical invoice data outside this window, contact Summit Fleet Accounting directly.
Example response
{
"data": [
{
"Account Id": "0000000000000000",
"Billing Period End": "2026-05-07T00:00:00.000",
"Billing Period Start": "2026-05-07T00:00:00.000",
"Contract Name": "CT000000000",
"Currency": "USD",
"Customer PO": "000000000000",
"Customer Reference Number": "R000000",
"Distance Allowance": null,
"Document Number": "SIN000000",
"Document Type": "INVOICE",
"Due Date": "2026-06-06T00:00:00.000",
"End Mileage": null,
"Estimated Over/Under": null,
"Invoice Date": "2026-05-07T00:00:00.000",
"Invoice Id": "00000000000000000",
"Invoice Net Total": 388.44,
"Invoice Tax Total": 0.0,
"Invoice Total": 388.44,
"License Plate": "A0000000",
"Line Count": 1,
"Line Type": "STANDARD",
"Net Amount": 388.44,
"Odometer Change": null,
"Overage Rate": null,
"Payment Status": "Unpaid",
"Product Name": "Service Charge",
"Quantity": 1.0,
"Start Mileage": null,
"Tax Amount": 0.0,
"Tax Rate": 4.0,
"Total Amount": 388.44,
"Unit Price": 388.44,
"VIN": "1FTFW3L8XRKE23861"
}
]
}
Location
Returns real-time GPS location for vehicles in your fleet — coordinates, address, speed, and GPS signal status. This is the only endpoint that returns true real-time data.
Location data refreshes every 60 seconds upstream from telematics. Polling more frequently than once per minute won't return fresher data.
Query parameters
| Parameter | Type | Description |
|---|---|---|
vin | string | Optional. Return location for a specific vehicle, e.g. /location?vin=1FTFW3L89RKE36763. |
Example request
$ curl "https://data.summitfleet.com/location?vin=1FTFW3L89RKE36763" \
-H "Authorization: Bearer $TOKEN"
Example response
{
"data": [
{
"Address": "2773 S Main St, Bountiful, UT 84010, USA",
"City": "Bountiful",
"Country": "United States",
"Device Type": "CustomVehicleDevice",
"GPS Status": "Online",
"Latitude": 40.8599418,
"Longitude": -111.8995766,
"Position Timestamp": "Fri, 15 May 2026 21:07:48 GMT",
"Speed": 50,
"State": "UT",
"Street": "2773 S Main St",
"VIN": "1FTFW3L89RKE36763",
"Zip": "84010"
}
]
}
Alerts
Returns driving behavior counts and engine diagnostics per vehicle — speeding, harsh braking, idling, engine oil percent, open recalls, and check-engine-light status.
Example response
{
"data": [
{
"Check Engine Light": false,
"Cornering": 0.0,
"Engine Hours": 5631.2998046875,
"Engine Oil Percent": "85.0%",
"Harsh Breaking": 0.0,
"Idling": 6.0,
"Odometer": 98001.0,
"Racing": 0.0,
"Rapid Acceleration": 0.0,
"Speeding": 2.0,
"Total Open Recalls": 0.0,
"VIN": "3GCUKREC3HG209811"
}
]
}
Frequently Asked Questions
How fast can we be live?
Typical integration is 1–2 weeks once your dev team starts. Onboarding from our side takes 24–48 hours from the moment you submit the access request.
What does it cost?
Priced as a Fleet Management add-on, scaled to fleet size. Contact your Summit Fleet account manager or request a quote.
Where is the data hosted?
North America. Same infrastructure as the Summit Fleet Customer Portal — we don't run separate stacks for the API.
Can I get historical data?
The API mirrors what's available to you in the Customer Portal — there are no date range filters. /invoices covers a rolling two-month window; for invoice data outside that window, contact Summit Fleet Accounting directly. All other endpoints return the full set of records associated with your account.
Can I use the API to place orders?
No — and that's intentional. Vehicle orders go through the Customer Portal so approvals, audit trails, and procurement workflows stay consistent. The API is read-only by design. If you need order automation, talk to your account manager about workflow integrations.
What about driver privacy?
All telematics and driver data is governed by the same privacy controls as the Customer Portal. Driver names can be anonymized at the account level if required for compliance.
Multi-account / parent-child structures?
When an API account is created, it's linked to a Salesforce Account Id. Any data under that Account Id is accessible to the API user. If you have a more complex organizational structure (multiple subsidiaries, regional rollups), reach out to your Summit Fleet contact so we can scope your access correctly.
What's the SLA?
99.9% uptime, measured monthly, on production endpoints. Same SLA as the Customer Portal — they share infrastructure.
Troubleshooting
Common issues and how to diagnose them. If your problem isn't here, see Resources for support contacts.
"401 Unauthorized" on every request
Most common cause: missing, malformed, or expired Authorization header. Check that:
- The header is exactly
Authorization: Bearer YOUR_TOKEN(note the space after "Bearer"). - The token hasn't been wrapped in quotes accidentally.
- The token hasn't expired. Tokens are valid for 30 minutes — if you see
{"message": "Token has expired"}, call/loginagain to get a fresh one.
CORS errors in browser-based apps
The Summit Fleet API does not allow direct browser calls — CORS is intentionally restrictive. Always proxy requests through your backend. This protects your credentials and tokens from being exposed in client-side code.
Still stuck?
Reach out to your Summit Fleet contact for API support. When you do, please include:
- The endpoint, HTTP status code, and approximate timestamp.
- The full error response body (e.g.
{"message": "Token has expired"}). - Your account ID or username.
Note: Dedicated API support contact details are being finalized. Until then, route requests through your existing Summit Fleet account contact.
Resources
Helpful links for building, integrating, and getting help.
Dedicated API resources — including the API Portal, OpenAPI specification, status page, and support channels — are being finalized. In the meantime, reach out to your Summit Fleet account contact for anything you need.
Glossary
Plain-language definitions of the terms used throughout this page.
- API
- Application Programming Interface. The structured way our customers' systems talk to ours.
- Bearer token
- The short-lived credential (30 minutes by default) the customer's system sends with each API request to prove who they are. Generated via the
/loginendpoint using a username and password. - Endpoint
- A specific URL the customer can call to get a specific kind of data — e.g.,
/fleet,/rentals. - JSON
- The structured text format we send data back in. Universal in modern software.
- REST
- The flavor of API we use — predictable URLs, standard HTTP methods, JSON in and out. Most modern web APIs are REST.