API Documentation

Summit Fleet API · Knowledge Base

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.

v1.0 · Last updated May 2026 7 endpoints · REST · JSON

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.

Who this is for

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 /login endpoint 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 /location endpoint 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

Read-only by design

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.

Treat credentials like passwords

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

EnvironmentBase URLNotes
Productionhttps://data.summitfleet.comReal 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...
Token lifetime

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

CodeMeaningWhat to do
200Success
400Bad RequestFix the request body or query params.
401UnauthorizedToken is missing, malformed, or expired. Call /login for a fresh token.
403ForbiddenYour account doesn't have access to the requested resource.
404Not FoundResource doesn't exist or is outside your account.
500Server ErrorRetry shortly. Contact support if persistent.
503Service UnavailableMaintenance 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.

GET /fleet

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"
  }
]
GET /rentals

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
    }
  ]
}
GET /off-rents

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"
    }
  ]
}
GET /orders

Orders

Returns vehicle order details — order number, requested-by, delivery address, status, and current vehicle assignment.

Read-only

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"
    }
  ]
}
GET /invoices

Invoices

Returns invoice and line-item data covering a rolling two-month window — billing period, contract, line type, amounts, and payment status.

Two-month rolling window

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"
    }
  ]
}
GET /location

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.

Polling guidance

Location data refreshes every 60 seconds upstream from telematics. Polling more frequently than once per minute won't return fresher data.

Query parameters

ParameterTypeDescription
vinstringOptional. 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"
    }
  ]
}
GET /alerts

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 /login again to get a fresh one.

CORS errors in browser-based apps

The API is server-side only

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.

Coming soon

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 /login endpoint 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.

Was this page helpful? Reach out to your Summit Fleet contact with feedback or corrections.