U-Haul APIuhaul.com ↗
Access U-Haul truck rates, trailer types, storage units, and location data via API. Search by date, pickup, and drop-off for live pricing and availability.
What is the U-Haul API?
The U-Haul API exposes 8 endpoints covering truck rental pricing, trailer catalogs, self-storage unit listings, and nearby location lookup. The search_truck_rates endpoint returns daily rates, mileage charges, and inside dimensions for every available truck on a given date between two locations. Storage queries span both facility search and per-unit pricing, giving developers full coverage from move planning to storage comparison.
curl -X GET 'https://api.parse.bot/scraper/38b07629-45cb-4bed-9b33-28064c47e8ac/search_truck_rates?pickup_date=07%2F21%2F2026&pickup_location=Phoenix%2C+AZ&dropoff_location=Los+Angeles%2C+CA' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace uhaul-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""U-Haul API: search truck rates, browse facilities, and explore storage units."""
from parse_apis.u_haul_api import UHaul, LocationNotFound
client = UHaul()
# Search for one-way truck rental rates from Phoenix to LA.
truck = client.truckrates.search(
pickup_location="Phoenix, AZ",
pickup_date="07/15/2026",
dropoff_location="Los Angeles, CA",
limit=3,
).first()
if truck:
print(f"Top truck: {truck.name}, rate={truck.rate}, type={truck.moving_type}")
# Browse all truck type specifications.
for tt in client.trucktypes.list(limit=3):
print(f"{tt.name}: {tt.volume}, max_load={tt.max_load}, mpg={tt.mpg}")
# Find storage facilities near a zip code, then drill into the first one's units.
facility = client.facilities.search(location="85001", limit=1).first()
if facility:
print(f"Facility: {facility.name}, starts at {facility.starting_price}")
for unit in facility.units.list(limit=3):
print(f" {unit.dimensions} — {unit.price_per_month}, features={unit.features}")
# Combined facility+units search in one call.
fwu = client.facilitywithunitses.search(location="Phoenix, AZ", limit=1).first()
if fwu:
print(f"Facility: {fwu.facility_name}, units={len(fwu.units)}")
# Search for U-Haul locations and handle a not-found error.
try:
for loc in client.locations.search(location="Phoenix, AZ", limit=2):
print(f"Location: {loc.name}, rating={loc.rating}, phone={loc.phone}")
except LocationNotFound as exc:
print(f"No locations: {exc}")
# List moving supply categories.
for cat in client.supplycategories.list(limit=3):
print(f"Category: {cat.name}, url={cat.url}")
print("Exercised: truckrates.search, trucktypes.list, facilities.search, facility.units.list, facilitywithunitses.search, locations.search, supplycategories.list")
Search for available trucks and pricing between two locations on a given date. Returns truck names, daily rates, mileage rates, and moving type recommendations. One-way moves include mileage in the rate; in-town rates show per-mile charges separately.
| Param | Type | Description |
|---|---|---|
| pickup_daterequired | string | Pickup date in MM/DD/YYYY format (e.g. '07/01/2026'). |
| pickup_locationrequired | string | Pickup city and state (e.g. 'Phoenix, AZ') or zip code. |
| dropoff_location | string | Drop-off location for one-way rentals (e.g. 'Los Angeles, CA'). Omitting returns in-town rates. |
{
"type": "object",
"fields": {
"trucks": "array of truck objects with name, rate, mileage_rate, moving_type, and inside_dimensions",
"pickup_date": "string, the pickup date as provided",
"total_trucks": "integer, number of available trucks",
"pickup_location": "string, the pickup location as provided",
"dropoff_location": "string or null, the drop-off location if provided"
},
"sample": {
"data": {
"trucks": [
{
"name": "10' Truck",
"rate": "$284.00",
"moving_type": "Studio to 1 Bedroom Apt.",
"mileage_rate": null,
"inside_dimensions": "9'11\" x 6'4\" x 6'2\" (LxWxH)"
},
{
"name": "15' Truck",
"rate": "$299.00",
"moving_type": "1 Bedroom Home to 2 Bedroom Apt.",
"mileage_rate": null,
"inside_dimensions": "15' x 7'8\" x 7'2\" (LxWxH)"
}
],
"pickup_date": "07/01/2026",
"total_trucks": 6,
"pickup_location": "Phoenix, AZ",
"dropoff_location": "Los Angeles, CA"
},
"status": "success"
}
}About the U-Haul API
Truck and Trailer Rates
The search_truck_rates endpoint takes a pickup_date (MM/DD/YYYY), a pickup_location, and an optional dropoff_location. When dropoff_location is omitted the response reflects in-town rental pricing where mileage_rate is listed separately per truck. When both locations are provided, one-way rates are returned with mileage bundled into a single rate field. Each truck object includes name, rate, mileage_rate, moving_type, and inside_dimensions. The get_truck_types endpoint returns static specs for every truck model — volume, max load, MPG, seat count, and towing capacity — without requiring any location or date input.
The search_trailer_rates endpoint takes a pickup_date and pickup_location and returns the available trailer catalog with name, url, and capacity per trailer. Note that trailer pricing on U-Haul depends on towing vehicle selection, so this endpoint reflects the available trailer types rather than a quoted dollar rate.
Storage Facilities and Units
Storage queries can be executed at two levels of depth. search_facilities accepts a location (zip or city/state) and returns a list of nearby facilities with name, address, distance, rating, reviews, and starting_price — useful for building a facility comparison view quickly. For deeper detail, get_facility_units takes a facility_url from those results and returns every available unit with dimensions, price_per_month, description, and features. The search_storage_units endpoint combines both steps: it fetches nearby facilities and immediately retrieves unit-level detail, returning facilities_with_units in a single call at the cost of higher latency.
Locations and Supplies
find_locations accepts any address, city/state, or zip code and returns an array of U-Haul branches with address, phone, hours, services, rating, and reviews — covering what each branch actually offers. get_moving_supplies_categories returns the full list of product categories (boxes, packing materials, covers, tools, etc.) with names and URLs, serving as a directory for navigating the supplies catalog.
The U-Haul API is a managed, monitored endpoint for uhaul.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when uhaul.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official uhaul.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Compare one-way truck rental costs between two cities for a given move date using
search_truck_rates - Build a truck size selector tool using specs from
get_truck_typessuch as volume, MPG, and max load - Find self-storage facilities near a zip code and surface per-unit monthly pricing with
search_storage_units - Display a map of nearby U-Haul branches with hours and services using
find_locations - Aggregate storage unit prices across multiple facilities by chaining
search_facilitieswithget_facility_units - List available trailer types for a pickup location and date via
search_trailer_ratesfor a move planning tool - Enumerate all moving supply categories from
get_moving_supplies_categoriesto link users to relevant product pages
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does U-Haul have an official public developer API?+
What is the difference between `search_facilities` and `search_storage_units`?+
search_facilities returns a lightweight list of nearby storage facilities — name, address, distance, rating, and starting price — without unit detail. search_storage_units goes further by also retrieving per-unit data (dimensions, price_per_month, features) for each facility in a single call. Use search_facilities when you only need a facility overview, and get_facility_units separately when you want full unit detail for a specific location.Does `search_truck_rates` return pricing for both one-way and in-town rentals?+
pickup_location, the response returns in-town rates where mileage_rate is a separate per-mile charge. When you add a dropoff_location, the response shifts to one-way pricing where mileage is bundled into the rate field. The moving_type field on each truck object indicates which rental type applies.Does the API return actual dollar pricing for trailer rentals?+
search_trailer_rates endpoint returns the trailer catalog with name, url, and capacity, but not a quoted price. On U-Haul's site, trailer rates depend on the towing vehicle selected, so a flat rate is not available without that input. The API currently covers truck rates with full pricing. You can fork it on Parse and revise to add a towing-vehicle parameter if you need trailer price quotes.