Fire Truck Mall APIfiretruckmall.com ↗
Access all fire truck listings from firetruckmall.com with pricing, year, specs, and image URLs. Two endpoints cover inventory and listing date approximation.
What is the Fire Truck Mall API?
The Fire Truck Mall API provides access to the full inventory of fire apparatus listings from firetruckmall.com across 2 endpoints, returning structured data for each truck including title, price, year, specs, image URL, and listing URL. The get_all_trucks endpoint aggregates all paginated results into a single response, filtering out non-numeric price entries so every record in the output carries a usable numeric price.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/eee34a3d-ff36-46c8-83d0-b0e928e18d22/get_all_trucks' \ -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 firetruckmall-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.
"""Walkthrough: Fire Truck Mall SDK — browse listings and check dates."""
from parse_apis.Fire_Truck_Mall_Listings_API import FireTruckMall, InvalidImageUrls
import json
client = FireTruckMall()
# List all available trucks (internally paginated, single-page scheme).
for truck in client.trucks.list(limit=5):
print(truck.title, truck.price, truck.year)
# Drill into one truck and use its image_url to fetch its listing date.
first_truck = client.trucks.list(limit=1).first()
if first_truck:
# Fetch the listing date for this truck's image URL.
try:
result = client.truck_date_results.fetch(
image_urls=json.dumps([first_truck.image_url]),
max_workers=5,
)
print(result.total, result.dates)
except InvalidImageUrls as exc:
print(f"bad input: {exc}")
print("exercised: trucks.list / truck_date_results.fetch / InvalidImageUrls catch")
Fetches all fire truck listings across all pages from firetruckmall.com. Returns only trucks with valid numeric prices greater than zero — skips listings with pricingType 'QUOTE' and zero-priced entries. Paginated internally (100 per page); the caller receives the full collected set. Each truck includes title, listing URL, image URL, price, year, and specs text.
No input parameters required.
{
"type": "object",
"fields": {
"trucks": "array of Truck objects with title, listing_url, image_url, price, year, and specs",
"total_found": "integer - number of trucks with valid numeric prices returned"
},
"sample": {
"data": {
"trucks": [
{
"year": 2005,
"price": 199500,
"specs": "Hale 1500 GPM Pump, 3000 Gallon Tank, Low Miles",
"title": "2005 International Tandem-Axle Commercial Pumper Tanker",
"image_url": "https://s3.amazonaws.com/00do0000000jlleea4/01t-product2/01tV100000DfglNIAR/medium_21077_9.jpg",
"listing_url": "https://www.firetruckmall.com/AvailableTruck/21077/2005-International-Tandem-Axle-Commercial-Pumper-Tanker"
}
],
"total_found": 300
},
"status": "success"
}
}About the Fire Truck Mall API
Inventory Data via get_all_trucks
The get_all_trucks endpoint returns the complete set of fire truck listings available on firetruckmall.com at the time of the request. Each item in the trucks array includes title, listing_url, image_url, price (numeric, non-null), year, and specs. Listings priced as "Call For Custom Quote", "Held on Deposit", or any other non-numeric format are excluded — the total_found integer reflects only the count of records that passed this filter. No input parameters are required; pagination is handled internally with 100 listings per page.
Approximate Listing Dates via get_truck_dates
The get_truck_dates endpoint accepts a JSON-encoded array of S3 image URLs (the image_urls parameter) taken from get_all_trucks results, and returns a dates object that maps each URL to its Last-Modified HTTP date string, or null if the header is unavailable. The optional max_workers integer controls how many concurrent requests are issued, letting callers balance speed against resource usage. The total field confirms how many URLs were processed. This is the recommended way to approximate when a listing first appeared.
Coverage and Filtering Notes
Only listings with valid numeric prices appear in get_all_trucks output, so deposit-held or quote-only trucks are not represented in the returned count or array. The specs field surfaces the structured specification data shown on each listing. Listing dates are derived from image metadata rather than a dedicated timestamp field on the site, so they represent an approximation of when the listing was created rather than a guaranteed publish date.
The Fire Truck Mall API is a managed, monitored endpoint for firetruckmall.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when firetruckmall.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 firetruckmall.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?+
- Monitor new fire truck inventory by polling get_all_trucks and comparing listing URLs over time
- Build a price-comparison tool across apparatus types using the numeric price and year fields
- Identify recently posted listings by running get_truck_dates against image_url values from get_all_trucks
- Filter available inventory by year range using the year field for fleet procurement research
- Aggregate specs data across all listings to analyze common apparatus configurations on the market
- Track price trends for specific truck types over repeated API calls using title and price fields
| 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.